Author: Vladimir Chebotarev aka ex-lend
.text:004AB2A8 cmp dword_62C9A4, 0 .text:004AB2AF jz short loc_4AB2CB .text:004AB2B1 mov eax, [ebp+var_10] .text:004AB2B4 push eax .text:004AB2B5 mov ecx, [ebp+var_2C] .text:004AB2B8 mov ecx, [ecx+84h] .text:004AB2BE call sub_4738D0 .text:004AB2C3 mov edx, [eax+10h] .text:004AB2C6 mov [ebp+var_1C], edx .text:004AB2C9 jmp short loc_4AB2D2 .text:004AB2CB ; --------------------------------------------------------------------------- .text:004AB2CB .text:004AB2CB loc_4AB2CB: ; CODE XREF: sub_4AB19D+112 .text:004AB2CB mov [ebp+var_1C], 1 .text:004AB2D2 .text:004AB2D2 loc_4AB2D2: ; CODE XREF: sub_4AB19D:loc_4AB2A6 .text:004AB2D2 ; sub_4AB19D+12Callods2j .text:004AB2D2 mov eax, [ebp+var_10] .text:004AB2D5 push eax .text:004AB2D6 mov ecx, [ebp+var_2C] .text:004AB2D9 mov ecx, [ecx+84h] .text:004AB2DF call sub_4738D0 |
По адресу 62C9A4 находится флаг, соответствующий нажатию Shift, таким образом, если Shift зажат, игра получает количество предметов в данной ячейке (4AB2BE), иначе использует 1. Нетрудно переделать это место, чтобы можно было выкладывать по 10 и 100 (или вообще по произвольному количеству) предметов при удерживании Alt и Ctrl (62C9A0 и 62C9A8).
Для перетаскивания вещей не только на карте, но и в магазине, такие же изменения потребуется внести и по следующему адресу:
.text:004BA637 cmp dword_62C9A4, 0 .text:004BA63E jz short loc_4BA660 .text:004BA640 mov ecx, [ebp+var_4] .text:004BA643 mov edx, [ecx+410h] .text:004BA649 push edx .text:004BA64A mov eax, [ebp+var_C] .text:004BA64D mov ecx, [eax+84h] .text:004BA653 call sub_4738D0 .text:004BA658 mov ecx, [eax+10h] .text:004BA65B mov [ebp+var_8], ecx .text:004BA65E jmp short loc_4BA667 .text:004BA660 ; --------------------------------------------------------------------------- .text:004BA660 .text:004BA660 loc_4BA660: ; CODE XREF: sub_4BA58D+B1 .text:004BA660 mov [ebp+var_8], 1 .text:004BA667 .text:004BA667 loc_4BA667: ; CODE XREF: sub_4BA58D+D1 .text:004BA667 mov edx, [ebp+var_4] .text:004BA66A mov eax, [edx+410h] .text:004BA670 push eax .text:004BA671 mov ecx, [ebp+var_C] .text:004BA674 mov ecx, [ecx+84h] .text:004BA67A call sub_4738D0 |