Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2010, 12:34   #11
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

ну вот сам и лезь туда xD
NiCola999 вне форума Ответить с цитированием
Старый 21.06.2010, 14:46   #12
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Да я полезу.
VintProg вне форума Ответить с цитированием
Старый 21.06.2010, 14:50   #13
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Только не забывай, что игра находится в памяти тоьлко во время выполнения, все адреса сто раз поменяются когда ты перезапустишь игру
NiCola999 вне форума Ответить с цитированием
Старый 22.06.2010, 06:12   #14
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Адреса поменяются, а указатели на них нет.

Последний раз редактировалось VintProg; 22.06.2010 в 12:50.
VintProg вне форума Ответить с цитированием
Старый 22.06.2010, 12:51   #15
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Еще вопрос: как вывести в игру свой спрайт на экран, что нужно сделать?
VintProg вне форума Ответить с цитированием
Старый 23.06.2010, 12:27   #16
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Еще вопрос: как вывести в игру свой спрайт на экран, что нужно сделать?
Не жели не кто не хочит помочь?
VintProg вне форума Ответить с цитированием
Старый 27.06.2010, 10:18   #17
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Это в Ide pro:

Код:
 ; __linkproc__ opcode_01B1
.text:004521D9     @@opcode_01B1:                         ; CODE XREF: CScriptThread__opcodeHandler_04+24j
.text:004521D9                                            ; DATA XREF: .data:off_689514o
.text:004521D9 098                 lea     eax, [ebp+10h] ; give_player %1d% weapon %2c% ammo %3d% ;; Load the weapon model before using this
.text:004521DC 098                 mov     ecx, ebp       ; CScriptThread *
.text:004521DE 098                 push    3              ; number
.text:004521E0 09C                 push    eax            ; pIp
.text:004521E1 0A0                 call    CScriptThread__getNumberParams
.text:004521E6 098                 mov     eax, ds:opcodeParams
.text:004521EB 098                 mov     esi, ds:opcodeParams+8
.text:004521F1 098                 imul    eax, 2Eh
.text:004521F4 098                 push    1              ; a4
.text:004521F6 09C                 push    esi            ; ammo
.text:004521F7 0A0                 mov     edi, ds:_players.pPed[eax*8]
.text:004521FE 0A0                 mov     eax, ds:opcodeParams+4
.text:00452203 0A0                 mov     ecx, edi       ; this
.text:00452205 0A0                 push    eax            ; weapon
.text:00452206 0A4                 call    CPed__GiveWeapon
.text:0045220B 098                 mov     [edi+60Ch], al
.text:00452211 098                 xor     al, al
.text:00452213 098                 add     esp, 88h
.text:00452219 010                 pop     ebp
.text:0045221A 00C                 pop     edi
.text:0045221B 008                 pop     esi
.text:0045221C 004                 pop     ebx
.text:0045221D 000                 retn    4
А это видимо и есть процедура которая дает игроку деньги.


Код:
004FFA30    ; void __thiscall CPed__GiveWeapon(CPed *this, int weapon, int ammo, int a4)
.text:004FFA30     CPed__GiveWeapon proc near             ; CODE XREF: _endCutscene+2F7p
.text:004FFA30                                            ; sub_429910+124p
.text:004FFA30                                            ; _initRampage+185p
.text:004FFA30                                            ; sub_430A60+11F4p ...
.text:004FFA30
.text:004FFA30     var_1C          = dword ptr -1Ch
.text:004FFA30     var_14          = dword ptr -14h
.text:004FFA30     weapon          = dword ptr  4
.text:004FFA30     ammo            = dword ptr  8
.text:004FFA30     a4              = dword ptr  0Ch
.text:004FFA30
.text:004FFA30 000                 push    ebx
.text:004FFA31 004                 push    esi
.text:004FFA32 008                 push    edi
.text:004FFA33 00C                 push    ebp
.text:004FFA34 010                 sub     esp, 10h
.text:004FFA37 020                 mov     ebp, [esp+20h+weapon]
.text:004FFA3B 020                 push    ebp            ; weaponIndex
.text:004FFA3C 024                 mov     esi, ecx
.text:004FFA3E 024                 call    GetWeaponInfoByIndex
.text:004FFA43 024                 pop     ecx
.text:004FFA44 020                 mov     ecx, [eax+60h]
.text:004FFA47 020                 mov     ebx, ecx
.text:004FFA49 020                 mov     [esp+20h+var_14], ecx
.text:004FFA4D 020                 lea     ebx, ds:0[ebx*8]
.text:004FFA54 020                 lea     ebx, [ebx+ebx*2]
.text:004FFA57 020                 mov     eax, [esi+ebx+408h]
.text:004FFA5E 020                 cmp     eax, ebp
.text:004FFA60 020                 jnz     loc_4FFAF2
.text:004FFA66 020                 mov     eax, [esp+20h+ammo]
.text:004FFA6A 020                 add     [esi+ebx+414h], eax
.text:004FFA71 020                 cmp     ebp, 25h
.text:004FFA74 020                 jge     short loc_4FFAA0
.text:004FFA76 020                 test    ebp, ebp
.text:004FFA78 020                 jle     short loc_4FFAA0
.text:004FFA7A 020                 mov     ebp, dword_69DA30[ebp*4]
.text:004FFA81 020                 test    ebp, ebp
.text:004FFA83 020                 jl      short loc_4FFAA0
.text:004FFA85 020                 mov     eax, [esi+ebx+414h]
.text:004FFA8C 020                 cmp     eax, ebp
.text:004FFA8E 020                 jl      short loc_4FFA92
.text:004FFA90 020                 mov     eax, ebp
.text:004FFA92
.text:004FFA92     loc_4FFA92:                            ; CODE XREF: CPed__GiveWeapon+5Ej
.text:004FFA92 020                 mov     [esi+ebx+414h], eax
.text:004FFA99 020                 jmp     short loc_4FFABA
.text:004FFA99    ; --------------------------------------------------------------------------
.text:004FFC1D 010                 pop     ebp
.text:004FFC1E 00C                 pop     edi
.text:004FFC21     CPed__GiveWeapon endp
Вопрос в том как объевить эту функцию
004FFA30 ; void __thiscall CPed__GiveWeapon(CPed *this, int weapon, int ammo, int a4)

для Delphi, и еще надо найти указатель на игрока:

give_player %1d% weapon %2c% ammo %3d% ;
%1d% - указатель на игрока, помогите пожалуйста.
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите реализовать плагины... W0LF Общие вопросы Delphi 19 21.07.2009 00:14
Плагины dani92 Общие вопросы Delphi 3 17.04.2009 15:05
Gta 4 Ruska882009 Софт 1 01.04.2009 15:01
Как реализовать плагины в Дельфи Лубышев Общие вопросы Delphi 3 20.02.2009 15:41
Плагины к программе. Dr.Badnezz Общие вопросы Delphi 2 20.02.2009 15:40