Closed divinity76 closed 8 years ago
1 bug: if the tile contains a splash, like water, wine, or blood, we need to do SS + 1 ... any idea how to detect that?
I can't test it right now but there might be a little logic problem in here:
If (DatTiles(tileID).usable2 = True Or _
DatTiles(tileID).floorChangeDOWN = True Or _
DatTiles(tileID).floorChangeUP = True Or _
DatTiles(tileID).noFloorChange = False) Then
It will execute even if only one condition is TRUE so I would throw away lastcondition for sure. I'm not sure about the first one too...Will test it later
another bug: when i was on a tile with a ladder, i was standing on the tile, it had a burning fire, AND a blood splat, the packet was 0A 00 82 25 04 4A 05 05 9C 07 02 02
as you can see, the last byte is 02 , but in blackd proxy, the last byte is HARDCODED to 00 -
sCheat = "0A 00 82 " & FiveChrLon(X) & " " & FiveChrLon(y) & " " & GoodHex(CByte(z)) & _
" " & GoodHex(b1) & " " & GoodHex(b2) & " " & GoodHex(SS) & " 00"
so.. more stuff to figure out
currently im doing
sCheat = "0A 00 82 " & FiveChrLon(X) & " " & FiveChrLon(y) & " " & GoodHex(CByte(z)) & _
" " & GoodHex(b1) & " " & GoodHex(b2) & " " & GoodHex(SS) & " 00"
' debug
'frmMain.txtPackets.Text = frmMain.txtPackets.Text & vbCrLf & sCheat
inRes = GetCheatPacket(cPacket, sCheat)
waitCounter(idConnection) = GetTickCount() + 2000
frmMain.UnifiedSendToServerGame idConnection, cPacket, True
sCheat = "0A 00 82 " & FiveChrLon(X) & " " & FiveChrLon(y) & " " & GoodHex(CByte(z)) & _
" " & GoodHex(b1) & " " & GoodHex(b2) & " " & GoodHex(SS + 1) & " 00"
inRes = GetCheatPacket(cPacket, sCheat)
frmMain.UnifiedSendToServerGame idConnection, cPacket, True
sCheat = "0A 00 82 " & FiveChrLon(X) & " " & FiveChrLon(y) & " " & GoodHex(CByte(z)) & _
" " & GoodHex(b1) & " " & GoodHex(b2) & " " & GoodHex(SS + 1) & " 02"
inRes = GetCheatPacket(cPacket, sCheat)
frmMain.UnifiedSendToServerGame idConnection, cPacket, True
which is obviously an ugly detectable hack :p
Maybe thats a number of items on top of ladder or something like that ; d I don't know you have to make debug.print or just a normal command printing all the items on the stack so you can analyze this stuff
now im even more confused, guessing by the assertion in the function that calculates the last byte, it has something to do with number of open containers... there could be other functions to calculate the last byte in other situations though, im not sure
closing, this code is also bugged.
needs more testing, but this seem to fix using-item-on-ground issue with 760, the old code fails some places, especially with floor change.. related: https://github.com/blackdtools/Blackd-Proxy-CLASSIC/issues/20
@Nrated since you're playing 760 too, can you test this?