Цены на строительство зданий в городе пробиты в BUILDING.TXT. Но что. если их требуется менять или считывать динамически? Вот и накатал:
CODE
; Контроль цен здания в городе. fastcall.
03409792 55; PUSH EBP
03409793 8BEC; MOV EBP,ESP
03409795 83F91A; CMP ECX,1A
03409798 7C60; JL SHORT mop.034097FA
0340979A 83F91D; CMP ECX,1D
0340979D 7F75; JG SHORT mop.03409814
0340979F 8B4508; MOV EAX,DWORD PTR SS:[EBP+8]
034097A2 85C0; TEST EAX,EAX
034097A4 7404; JE SHORT mop.034097AA
034097A6 8BE5; MOV ESP,EBP
034097A8 5D; POP EBP
034097A9 C3; RETN
034097AA B807000000; MOV EAX,7
034097AF 8B5D0C; MOV EBX,DWORD PTR SS:[EBP+C]
034097B2 8D1C9D64768800; LEA EBX,DWORD PTR DS:[EBX*4+887664]
034097B9 C70300000000; MOV DWORD PTR DS:[EBX],0
034097BF 83C304; ADD EBX,4
034097C2 48; DEC EAX
034097C3 85C0; TEST EAX,EAX
034097C5 75F2; JNZ SHORT mop.034097B9
034097C7 EBDD; JMP SHORT mop.034097A6
034097C9 6BC91C; IMUL ECX,ECX,1C
034097CC 8DB160816A00; LEA ESI,DWORD PTR DS:[ECX+6A8160]
034097D2 837D0802; CMP DWORD PTR SS:[EBP+8],2
034097D6 741D; JE SHORT mop.034097F5
034097D8 8B5D0C; MOV EBX,DWORD PTR SS:[EBP+C]
034097DB 8D3C9D64768800; LEA EDI,DWORD PTR DS:[EBX*4+887664]
034097E2 837D0801; CMP DWORD PTR SS:[EBP+8],1
034097E6 7409; JE SHORT mop.034097F1
034097E8 B907000000; MOV ECX,7
034097ED F3A5; REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
034097EF EBB5; JMP SHORT mop.034097A6
034097F1 87F7; XCHG EDI,ESI
034097F3 EBF3; JMP SHORT mop.034097E8
034097F5 8D7D0C; LEA EDI,DWORD PTR SS:[EBP+C]
034097F8 EBF7; JMP SHORT mop.034097F1
034097FA 83F911; CMP ECX,11
034097FD 7CCA; JL SHORT mop.034097C9
034097FF 69D2FC000000; IMUL EDX,EDX,0FC
03409805 83E911; SUB ECX,11
03409808 6BC91C; IMUL ECX,ECX,1C
0340980B 8DB41144836A00; LEA ESI,DWORD PTR DS:[ECX+EDX+6A8344]
03409812 EBBE; JMP SHORT mop.034097D2
03409814 69D288010000; IMUL EDX,EDX,188
0340981A 83E91E; SUB ECX,1E
0340981D 6BC91C; IMUL ECX,ECX,1C
03409820 8DB41180986A00; LEA ESI,DWORD PTR DS:[ECX+EDX+6A9880]
03409827 EBA9; JMP SHORT mop.034097D2
x1 - тип города
x2 - тип здания
x3 - способ (0-2)
Примеры:
!!SN:E54564754/3/4/0/0/500; получить в v500-v506 цену Гильдии Магов 5-го уровня. При этом номер города значения не имеет.
!!SN:E54564754/3/17/8/1/2; установить цену на Торговцев Артефактами в Сопряжении из переменных v2-v8.
!!SN:E54564754/3/22/4/2/0/5/0/5/5/5/5000; - установить цену Трансформатора Скелетов на 5 единиц ценных ресурсов и 5000 золота.
Функция автоматом игнорирует здания 26-29 (возвращает нули, а запись не производит). А вот о Верфи забывать не стоит - здание общее, но не во всех городах доступное.