Wow. I actually found a way to make the program crash.
MUSHCLIENT caused an invalid page fault in
module <unknown> at 0000:00000001.
Registers:
EAX=00000000 CS=017f EIP=00000001 EFLGS=00010202
EBX=00000000 SS=0187 ESP=007afa84 EBP=01013778
ECX=017563f0 DS=0187 ESI=007afa88 FS=29a7
EDX=017563fc ES=0187 EDI=01013294 GS=0000
Bytes at CS:EIP:
01 00 00 00 04 70 00 16 00 29 0c 65 04 70 00 65
Stack dump:
0040ca3f 00000001 01100340 01013294 007afb7c 00461100 017563f0 01044c88 3c202c95 00000000 007afa88 007afac0 00000000 00000001 00000000 00000000
The IPF was caused by the following script routine:
Sub Inventory_Full (thename, theoutput, thewildcards)
If World.GetVariable("HaveSlave") Then
If World.GetVariable("SlaveFull") Then
World.AddTimer "SlaveSellTimer", 0, 0, 2, CStr(thewildcards(1)), 5, "Slave_Sell_All"
Else
World.AddTimer "SlaveTakeTimer", 0, 0, 2, CStr(thewildcards(1)), 5, "Slave_Take_All"
End If
End If
End Sub
Specifically, the AddTimer lines.
I call this script when, during mud play, I attempt to pick up items, but can not because my inventory is full. I decided to delay calling of the two script routines, because often I would try and pick up multiple items at once, and therefor this subroutine would be called multiple times in quick succession. Adding a timer resloves the issue, by preventing the client from sending repetitive commands to the mud regarding my slave. (I just send multiple AddTimer requests, but since they all have the same name, only one timer is created, and the commands in the routines they call are only executed once)
I assume my error in the subroutine was not to pass paramters. I am still researching the answer to this script bug...
MUSHCLIENT caused an invalid page fault in
module <unknown> at 0000:00000001.
Registers:
EAX=00000000 CS=017f EIP=00000001 EFLGS=00010202
EBX=00000000 SS=0187 ESP=007afa84 EBP=01013778
ECX=017563f0 DS=0187 ESI=007afa88 FS=29a7
EDX=017563fc ES=0187 EDI=01013294 GS=0000
Bytes at CS:EIP:
01 00 00 00 04 70 00 16 00 29 0c 65 04 70 00 65
Stack dump:
0040ca3f 00000001 01100340 01013294 007afb7c 00461100 017563f0 01044c88 3c202c95 00000000 007afa88 007afac0 00000000 00000001 00000000 00000000
The IPF was caused by the following script routine:
Sub Inventory_Full (thename, theoutput, thewildcards)
If World.GetVariable("HaveSlave") Then
If World.GetVariable("SlaveFull") Then
World.AddTimer "SlaveSellTimer", 0, 0, 2, CStr(thewildcards(1)), 5, "Slave_Sell_All"
Else
World.AddTimer "SlaveTakeTimer", 0, 0, 2, CStr(thewildcards(1)), 5, "Slave_Take_All"
End If
End If
End Sub
Specifically, the AddTimer lines.
I call this script when, during mud play, I attempt to pick up items, but can not because my inventory is full. I decided to delay calling of the two script routines, because often I would try and pick up multiple items at once, and therefor this subroutine would be called multiple times in quick succession. Adding a timer resloves the issue, by preventing the client from sending repetitive commands to the mud regarding my slave. (I just send multiple AddTimer requests, but since they all have the same name, only one timer is created, and the commands in the routines they call are only executed once)
I assume my error in the subroutine was not to pass paramters. I am still researching the answer to this script bug...