Кто нибудь заставлял работать этот опкод в сампе?Код:0AE2: find_all_random_vehicles_in_sphere 28@ 27@ 26@ radius 25.0 find_next 0 skip_dead 0 store_to 30@
На нем КарСпам основан, т.е. он работает ~99%
Кто нибудь заставлял работать этот опкод в сампе?Код:0AE2: find_all_random_vehicles_in_sphere 28@ 27@ 26@ radius 25.0 find_next 0 skip_dead 0 store_to 30@
МГ. Ты дурак, посмотри на номер опкода gcode и твой.
Вах вах. Прикрыли рты.
Ответ на вопрос: перебирать все автомобили в пуле игры, либо перебирать все автомобили в пуле сампа
{$I includes/RakNetDefines.txt}
:SendFakePosInCar
// Ex.: 0AB1: @SendFakePosInCar 3 0.0 0.0 0.0
// By Daniil
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 177
0AC8: 4@ 63
0C10: memcpy def 4@ source 3@ size 63
0C0D: struct 4@ offset 24 size 4 = 0@
0C0D: struct 4@ offset 28 size 4 = 1@
0C0D: struct 4@ offset 32 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_VEHICLE_SYNC type BS_TYPE_BYTE size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 63
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: 4@
0AB2: 0
Потому что функция для актера, а не для авто.
Для авто:
Код:{$I includes/RakNetDefines.txt} :SendFakePosInCar // Ex.: 0AB1: @SendFakePosInCar 3 0.0 0.0 0.0 // By Daniil 0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR 0B24: samp 3@ = get_player_ptr 3@ 3@ += 177 0AC8: 4@ 63 0C10: memcpy def 4@ source 3@ size 63 0C0D: struct 4@ offset 24 size 4 = 0@ 0C0D: struct 4@ offset 28 size 4 = 1@ 0C0D: struct 4@ offset 32 size 4 = 2@ 0B3D: raknet 5@ = new_bit_stream 0B40: raknet bit_stream 5@ write PACKET_VEHICLE_SYNC type BS_TYPE_BYTE size 1 0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 63 0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0 0B3E: raknet delete_bit_stream 5@ 0AC9: 4@ 0AB2: 0
Ну ... вообщем-то в SF есть strstr ... но как то не замечал.Зачем изобретать велосипед для работы со строками, если все функции вшиты в gta_sa.exe?
_strstr 0x822650
; char *__cdecl strstr(const char *Str, const char *SubStr)
Затем использовать опкод для вызова функции.
Из соглашения вызова:
cdecl Аргументы передаются через стек, справа налево. Очистку стека производит вызывающая программа. Это основной способ вызова функций с переменным числом аргументов.
Strstr - Функция ищет первое вхождение подстроки SubStr в строке Str . Возвращает указатель на первое вхождение строки SubStr в строку Str , или пустой указатель, если строка SubStr не является частью строки Str . В данном поиске нуль-символ не учитывается.
Ну, если кто-то не хочет пользоваться SF, и в exe есть некоторые функции для тех же строк, которых нет в SF.Ну ... вообщем-то в SF есть strstr ... но как то не замечал.