Вопросы по CLEO-скриптингу

Milleron

Новичок
14
0
С чем может быть связана проблема , что скрипт работает только у меня. У остальных крашит.
 

Milleron

Новичок
14
0
Если переменной не давать памяти через "0AC8: 1@ = allocate_memory_size 64" , то сколько у нее по стандарту идет?
 

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
122
Как можно получить id пикапа в зоне стрима,зная его модель ?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Как можно получить 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 если не найден)
Можно использовать как условие.
 
  • Нравится
Реакции: fonarik и DubStep_

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
122
Ня:

Код:
: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 если не найден)
Можно использовать как условие.

Cпасибо,благодарен.
 

TheUnity

Известный
113
40
Как сделать проверку: Актер на велосипеде. Желательно, именно на велосипеде.
 

hnnssy

Известный
Друг
2,684
2,769
это и мотоциклы тоже, а конкретно велосипед можно через структуру узнать
Или юзануть способ попроще, например, взять модель ТС актёра и сравнить её с моделями велосипедов, их всего лишь 3 тем более.