(11.03.2012 21:47)Berserker Wrote: Где ложится?:
PROCEDURE COMBATBUTTONS; ASSEMBLER;
ASM
PUSHAD
//Код подсказки к предыдущей кнопке mov edx,[$6A6A14] mov eax,[$6A6A10]
PUSH 1
PUSH EDX
PUSH EAX
MOV ECX, EBX
MOV BYTE [EBP-4],0
MOV EAX, $5FEE00 CALL EAX
MOV EDX,[EBX+$50] LEA EDI,[EBX+$48] LEA ECX,[EBP+$0C] MOV DWORD [ebp+$0C],$39
PUSH ECX
PUSH 1
PUSH EDX
MOV ECX, EDI
MOV EAX, $404230
CALL EAX
MOV DWORD [Counter], 4
@@LoopButtons:
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
CMP EAX, 4 //проверка на кнопку битвы
JNZ @@INC
//Подсказка при ПКМ
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
MOV EDX, [ECX+28]
//Подсказка при наведении мыши
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
MOV EAX, [ECX+32]
MOV EAX, EAX
MOV EAX,[ESI+8] LEA ECX,[ebp+$0C]
PUSH ECX
PUSH 1
PUSH EAX
MOV ECX, ESI
MOV [ebp+$0C],EBX
MOV EAX, $5FE2D0
CALL EAX
PUSH $68
MOV EAX, $617492
CALL EAX
ADD ESP, 4
MOV [ebp+$0C],EAX
MOV BYTE [EBP-4],0
PUSH 2
PUSH 0
PUSH 0
PUSH 1
PUSH 0
MOV EDI, EAX
//деф кнопки
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+8]
//ID
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+4]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//Y-size
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+24]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//X-size
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+20]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//Y-position
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+16]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//X-position
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+12]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
MOV ECX, EDI
MOV EAX, $455BD0
CALL EAX
MOV [Temp], EAX
MOV EBX, EAX
//Подсказка при ПКМ
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
MOV EDX, [ECX+28]
//Подсказка при наведении мыши
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
MOV EAX, [ECX+32]
MOV EAX, EAX
PUSH 1
PUSH EDX
PUSH EAX
MOV ECX, EBX
MOV BYTE [EBP-4],0
MOV EAX, $5FEE00 CALL EAX
MOV EDX,[EBX+$50] LEA EDI,[EBX+$48] LEA ECX,[EBP+$0C] MOV DWORD [ebp+$0C],$39
PUSH ECX
PUSH 1
PUSH EDX
MOV ECX, EDI
MOV EAX, $404230
CALL EAX
@@INC:
ADD DWORD [Counter], 4
CMP DWORD [Counter], NumberOfStrings*4
JLE @@LoopButtons
POPAD
MOV EBX, [Temp]
PUSH $46B63D //13
END; // .COMBATBUTTONS
Что у тебя за версия? Вот Buttons.dll v3:
PROCEDURE COMBATBUTTONS; ASSEMBLER;
ASM
PUSHAD
//Код подсказки к предыдущей кнопке mov edx,[$6A6A14] mov eax,[$6A6A10]
PUSH 1
PUSH EDX
PUSH EAX
MOV ECX, EBX
MOV BYTE [EBP-4],0
MOV EAX, $5FEE00 CALL EAX
MOV EDX,[EBX+$50] LEA EDI,[EBX+$48] LEA ECX,[EBP+$0C] MOV DWORD [ebp+$0C],$20
PUSH ECX
PUSH 1
PUSH EDX
MOV ECX, EDI
MOV EAX, $404230
CALL EAX
MOV [Temp], EBX
MOV DWORD [Counter], 4
@@LoopButtons:
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
CMP EAX, 4 //проверка на кнопку битвы
JNZ @@INC
MOV EAX,[ESI+8] LEA ECX,[ebp+$0C]
PUSH ECX
PUSH 1
PUSH EAX
MOV ECX, ESI
MOV [ebp+$0C],EBX
MOV EAX, $5FE2D0
CALL EAX
PUSH $68
MOV EAX, $617492
CALL EAX
ADD ESP, 4
MOV [ebp+$0C],EAX
MOV BYTE [EBP-4],0
PUSH 2
PUSH 0
PUSH 0
PUSH 1
PUSH 0
MOV EDI, EAX
//деф кнопки
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+8]
//ID
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+4]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//Y-size
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+24]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//X-size
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+20]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//Y-position
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+16]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
//X-position
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+12]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
PUSH EAX
MOV ECX, EDI
MOV EAX, $455BD0
CALL EAX
MOV [Temp], EAX
MOV EBX, EAX
//Подсказка при ПКМ
MOV ECX, [PointerOfButtonsTable]
MOV EDX, [Counter]
MOV ECX, [ECX+EDX]
MOV ECX, [ECX+4]
MOV EDX, [ECX+28]
//Подсказка при наведении мыши
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
MOV EAX, [ECX+32]
MOV EAX, EAX
PUSH 1
PUSH EDX
PUSH EAX
MOV ECX, EBX
MOV BYTE [EBP-4],0
MOV EAX, $5FEE00 CALL EAX
//горячая клавиша
MOV EDX,[EBX+$50] LEA EDI,[EBX+$48] LEA ECX,[EBP+$0C]
PUSH ECX
PUSH 1
PUSH EDX
MOV ECX, [PointerOfButtonsTable]
MOV EAX, [Counter]
MOV ECX, [ECX+EAX]
MOV ECX, [ECX+4]
PUSH DWORD [ECX+36]
MOV EAX, C_FUNC_ZVS_CONVERTION_STRING_TO_INTEGER
CALL EAX
ADD ESP, 4
MOV DWORD [ebp+$0C],EAX
MOV ECX, EDI
MOV EAX, $404230
CALL EAX
MOV [Temp], EBX
@@INC:
ADD DWORD [Counter], 4
CMP DWORD [Counter], NumberOfStrings*4
JLE @@LoopButtons
POPAD
MOV EBX, [Temp]
PUSH $46B63D
END; // .COMBATBUTTONS
Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 12.03.2012 17:39 by MOP.)
|