You are not logged in.
Берём например полосу ХП, её значение можно узнать (ну и собсна записать) опкодом 0226, а как узнать запас воздуха игрока?
И как можно поменять его значение?
Пытался найти что либо на эту тему в инете, по поиску опкодов SB тоже лазил, но как видите ничего я не нашёл.
Offline
Вариант #1 (самый простой и самый быстрый) - написать свой опкод, используя CLEO SDK и plugin-sdk.
Самое главное преимущество такого подхода, относительно скрипта - то, что скрипт остается "чистым" и понятным.
{$CLEO} {$OPCODE 1A04=2,%2d% = get_player %1d% breath_percentage} 0000: while true wait 0 if 0256: is_player_playing 0 then 1A04: 0@ = get_player 0 breath_percentage 0AD1: print_formatted_now "%.2f" time 100 0@ end end
Код опкода
// 1A04: 0@ = get_player 0 breath_percentage static OpcodeResult WINAPI Opcode_GetPlayerBreathPercentage(CScriptThread *thread) { int playerId = CLEO_GetIntOpcodeParam(thread); if ((playerId == 0 || playerId == 1) && CWorld::Players[playerId].m_pPed) CLEO_SetFloatOpcodeParam(thread, CWorld::Players[playerId].m_pPed->m_pPlayerData->m_fBreath / CallAndReturn<float, 0x559AF0>(8)); else CLEO_SetFloatOpcodeParam(thread, 0.0f); return OR_CONTINUE; }
Вариант #2 (для извращенцев)
{$CLEO} 0AC6: get_label_pointer @pop_float store_to 31@ while true wait 0 if 0256: is_player_playing 0 then 01F5: get_player_char 0 store_to 0@ 0A96: get_char_pointer 0@ store_to 1@ 1@ += 0x480 0A8D: read_memory 1@ size 4 vp 0 store_to 1@ 1@ += 0x44 0A8D: read_memory 1@ size 4 vp 0 store_to 1@ 0AA5: call_function 0x559AF0 num_params 1 pop 1 params 8 0AC7: get_var_pointer 2@ store_to 3@ 0AA5: call_function 31@ num_params 1 pop 1 params 3@ 0073: 1@ /= 2@ 0AD1: print_formatted_now "%.2f" time 100 1@ end end :pop_float hex 8B 44 24 04 // mov eax, [esp + 4] D9 18 // fstp [eax] C3 // retn end
Вариант #3 (для психопатов)
UP: Передумал писать...
Last edited by DK22Pac (04-03-2017 14:28)
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Придётся пока что быть извращенцем и сидеть понимать что тут к чему :с
Ну ничего, выйдет скоро полноценная VS2017 вот тогда и попробую установить ещё разок
Опять же - спасибо, какой раз уже хорошие, развёрнутые ответы
Last edited by Zin_869731 (04-03-2017 18:55)
Offline