В каком файле храниться информация о том сколько раз игра была запущена?
С чем может быть связана проблема , что скрипт работает только у меня. У остальных крашит.
Пробегись по пулу всех пикапов, получи модель пикапа и по условию конвертируй через опкод сф.Как можно получить id пикапа в зоне стрима,зная его модель ?
Ня:Как можно получить id пикапа в зоне стрима,зная его модель ?
:SearchPickupByModel
// call @SearchPickupByModel 2 model 0@ send_rpc 1@ retr_id 29@
const
param_Model = 0@
param_SendRPC = 1@
out_id = 29@
SAMP_PICKUP_MAX = 4096
end
var
out_id : int = -1
param_Model : int
param_SendRPC : int
6@ : int
end
2@ = SAMP.Base()
2@ += 0x212A80 // SAMP_INFO_OFFSET
0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
2@ += 985 // *pPools
0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0
2@ += 28 // *pPool_Pickup
0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 //
0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0 // PickupsCount
if 3@ > 0
then
for 3@ = 0 to SAMP_PICKUP_MAX
0A8E: 4@ = 2@ + 4 //
0A90: 5@ = 3@ * 4 //
0A8E: 5@ = 5@ + 4@ //
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
if 6@ > 0
then
0A8E: 4@ = 2@ + 61444 // struct stPickup
0A90: 5@ = 3@ * 20 // sizeof (struct stPickup) = 20
0A8E: 5@ = 5@ + 4@ //
0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0
if 6@ == param_Model
then
0085: out_id = 3@
break
end
end
end
end
if out_id <> -1
then
if param_SendRPC == true
then
0B3D: raknet 7@ = new_bit_stream
0B40: raknet bit_stream 7@ write out_id type 3 size 4
0B41: raknet send_rpc 131 bit_stream 7@ priority 1 reliability 10 ordering_channel 0 shift_timestamp false
0B3E: raknet delete_bit_stream 7@
end
0485: ret_true
else 059a: ret_false
end
0ab2: ret 1 out_id
Ня:
Код::SearchPickupByModel // call @SearchPickupByModel 2 model 0@ send_rpc 1@ retr_id 29@ const param_Model = 0@ param_SendRPC = 1@ out_id = 29@ SAMP_PICKUP_MAX = 4096 end var out_id : int = -1 param_Model : int param_SendRPC : int 6@ : int end 2@ = SAMP.Base() 2@ += 0x212A80 // SAMP_INFO_OFFSET 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 2@ += 985 // *pPools 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 2@ += 28 // *pPool_Pickup 0A8D: 2@ = read_memory 2@ size 4 virtual_protect 0 // 0A8D: 3@ = read_memory 2@ size 4 virtual_protect 0 // PickupsCount if 3@ > 0 then for 3@ = 0 to SAMP_PICKUP_MAX 0A8E: 4@ = 2@ + 4 // 0A90: 5@ = 3@ * 4 // 0A8E: 5@ = 5@ + 4@ // 0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0 if 6@ > 0 then 0A8E: 4@ = 2@ + 61444 // struct stPickup 0A90: 5@ = 3@ * 20 // sizeof (struct stPickup) = 20 0A8E: 5@ = 5@ + 4@ // 0A8D: 6@ = read_memory 5@ size 4 virtual_protect 0 if 6@ == param_Model then 0085: out_id = 3@ break end end end end if out_id <> -1 then if param_SendRPC == true then 0B3D: raknet 7@ = new_bit_stream 0B40: raknet bit_stream 7@ write out_id type 3 size 4 0B41: raknet send_rpc 131 bit_stream 7@ priority 1 reliability 10 ordering_channel 0 shift_timestamp false 0B3E: raknet delete_bit_stream 7@ end 0485: ret_true else 059a: ret_false end 0ab2: ret 1 out_id
0ab1: call @SearchPickupByModel 2 model 0@ send_rpc 1@ retr_id 29@
0@ - ид модели
1@ - 1 - отправить RPC-пакет о взятии пикапа, если он был найден / любые другие значения - противоположное действие.
29@ - id пикапа(-1 если не найден)
Можно использовать как условие.
Как сделать проверку: Актер на велосипеде. Желательно, именно на велосипеде.
047A: actor $PLAYER_ACTOR driving_bike
Или юзануть способ попроще, например, взять модель ТС актёра и сравнить её с моделями велосипедов, их всего лишь 3 тем более.это и мотоциклы тоже, а конкретно велосипед можно через структуру узнать