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

Terratomorf

Известный
315
58
У меня есть код помогите убрать от туда часть до строки 56 там где "У вас нет наживы" чтоб я зашёл и скрипт сразу работал и когда появлялась надпись "У вас нет наживы" сразу начинал работать кордмастер
Код:
{$CLEO}
{$INCLUDE SF}
wait 2500
$123 = 0
0BE3: raknet setup_incoming_rpc_hook @in_rpc
0B34: samp register_client_command "drpfish" to_label @on
:0
wait 0
if 
30@==1
then
actor.StorePos($PLAYER_ACTOR, 10@, 9@, 8@)
8@ -= 1.0
0AF9: samp say_msg "/fish"
:1
wait 300
if
30@ == 1
jf @0

if
$123 == 1
then
0B56: set_game_key 6 state true
wait 100
0B56: set_game_key 6 state false
end

if
$123 == 2
then
0B56: set_game_key 17 state true
wait 100
0B56: set_game_key 17 state false
end

alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
if or
0C18: 2@ = strstr string1 1@ string2 "Вы поймали рыбу:"
0C18: 2@ = strstr string1 1@ string2 "Рыба сорвалась"
then 
$123=0
wait 500
0B47: samp close_current_dialog_with_button 0 
wait 400
actor.PutAt($PLAYER_ACTOR, 10@, 9@, 8@)
0173: set_actor $PLAYER_ACTOR Z_angle_to 180.0
wait 600
0AF9: samp say_msg "/fish" 
end

alloc 1@ 256
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
if
0C18: 2@ = strstr string1 1@ string2 "У вас нет наживы"
then
call @coordmaster 5 X 2594.4607 Y -2463.0203 Length 0.1 Depth 2.0 Delay 100     
wait 200
call @coordmaster 5 X 2618.3899 Y -2459.6841 Length 0.1 Depth 12.0 Delay 100   
wait 200
call @coordmaster 5 X 2607.2791 Y -2436.8081 Length 0.1 Depth 12.0 Delay 100 
wait 500
actor.PutAt($PLAYER_ACTOR, 2607.2791, -2436.8081, 13.6466)
wait 2000
0B49: samp set_current_dialog_list_item 2
wait 400
0B47: samp close_current_dialog_with_button 1
wait 700
0B47: samp close_current_dialog_with_button 1
wait 700
0B47: samp close_current_dialog_with_button 0
wait 700
call @coordmaster 5 X 2618.3899 Y -2459.6841 Length 0.1 Depth 12.0 Delay 100 
wait 200
call @coordmaster 5 X 2594.4607 Y -2463.0203 Length 0.1 Depth 2.0 Delay 100 
wait 200
call @coordmaster 5 X 10@ Y 9@ Length 0.1 Depth 2.0 Delay 100
wait 500
0173: set_actor $PLAYER_ACTOR Z_angle_to 180.0
wait 500
0AF9: samp say_msg "/fish" 
end

jump @1
end
jump @0

:in_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == 73
    THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_INT
    0AC8: 5@ = allocate_memory_size 125
    0BE8: raknet bit_stream 1@ read_array 5@ size 4@
    0C1E: array 5@ element 4@ el_size 1 = 0
    0AC9: free_allocated_memory 5@   
        ////////////////////////////////////////////////
        if
        0C18: 20@ = strstr string1 5@ string2 "PED_LOCK_TARGET"
        then
        $123 = 1
        end
       
        if
        0C18: 20@ = strstr string1 5@ string2 "PED_FIREWEAPON"
        then
        $123 = 2
        end
        ////////////////////////////////////////////////
        free 7@
        end 
0BE0: raknet hook_ret true

:on
0B12: 30@ = 30@ XOR 1
if
30@==0
then
0AF8: samp add_message_to_chat "Выкл" 0xFFff
else
0AF8: samp add_message_to_chat "Вкл" 0xFFff
end
0B43: samp cmd_ret

:coordmaster 
 0acd: "CoordMaster ON" 500 
 0087: 15@ = 0@ 
 0087: 16@ = 1@ 
 while true 
         wait 0 
         if 12@ == 12 
         then 
             12@ = 0 
             break 
         end 
         0087: 0@ = 15@ 
         0087: 1@ = 16@ 
         actor.StorePos($PLAYER_ACTOR,9@,10@,11@) 
         0509: 6@ = distance_between_XY 0@ 1@ and_XY 9@ 10@ 
         if 6@ <= 120.0 
         then 
             02CE: 11@ = ground_z_at 0@ 1@ 999.0 
             09bc: $PLAYER_ACTOR 0@ 1@ 11@ 
             if actor.Driving($PLAYER_ACTOR) 
             then 
                 5@ = actor.CurrentCar($PLAYER_ACTOR) 
                 car.LockInCurrentPosition(5@,0) 
             else 
                 actor.LockInCurrentPosition($PLAYER_ACTOR,0) 
             end 
             break 
         else 
             0061: 0@ -= 9@ 
             0061: 1@ -= 10@ 
             0604: get_Z_angle_for_point 0@ 1@ store_to 6@ 
             if actor.Driving($PLAYER_ACTOR) 
             then 
                 5@ = actor.CurrentCar($PLAYER_ACTOR) 
                 car.LockInCurrentPosition(5@,1) 
                 car.Angle(5@) = 6@ 
             else 
                 actor.LockInCurrentPosition($PLAYER_ACTOR,1) 
                 actor.Angle($PLAYER_ACTOR) = 6@ 
             end 
             04C4: store_coords_to 8@ 9@ 10@ from_actor $PLAYER_ACTOR with_offset 0.0 2@ 0.0 // 70.0 - расстояние прыжка 
             09bc: $PLAYER_ACTOR 8@ 9@ 3@ 
             32@ = 0 
             while 0025:   4@ > 32@ 
                 wait 0 
                 if 0adc: "OFF" // Дезактивация 
                 then 
                     0acd: "CoordMaster OFF" 500 
                     actor.StorePos($PLAYER_ACTOR,8@,9@,10@) 
                     02CE: 11@ = ground_z_at 8@ 9@ 999.0 
                     11@ += 1.0 
                     00a1: $PLAYER_ACTOR 8@ 9@ 11@ 
                     if actor.Driving($PLAYER_ACTOR) 
                     then 
                         5@ = actor.CurrentCar($PLAYER_ACTOR) 
                         car.LockInCurrentPosition(5@,0) 
                     else 
                         actor.LockInCurrentPosition($PLAYER_ACTOR,0) 
                     end 
                     12@ = 12 
                     break 
                 end 
             end 
         end 
 end 
 0ab2: ret 0   

[/code/]

В чём ошибка?
Код:
{$CLEO}
{$INCLUDE SF}
0000: NOP

wait 2000

alloc 4@ 256
0c11: memset 4@ 0 256

0BE3: raknet setup_incoming_rpc_hook @ClientMessage


while true
wait 0
end

:ClientMessage
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT  // color
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT  // strLen
    0C11: memset destination 4@ value 0 size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
    0C0F: array 4@ element 3@ = 0x00
 
////////////////////////////////////
if
0C18: 7@ = strstr string1 4@ string2 "Äàðîâà" //-Òåêñò â ÷àòå
then
say "Ñîñè äî ïîë âòîðîãî" //-Îòâåò
end
////////////////////////////////////
[/code/]
 
Последнее редактирование модератором:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,957
В чём ошибка?
Код:
{$CLEO}
{$INCLUDE SF}
0000: NOP

wait 2000

alloc 4@ 256
0c11: memset 4@ 0 256

0BE3: raknet setup_incoming_rpc_hook @ClientMessage


while true
wait 0
end

:ClientMessage
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
if
1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg
then
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT  // color
    0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT  // strLen
    0C11: memset destination 4@ value 0 size 256
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text
    0C0F: array 4@ element 3@ = 0x00
 
////////////////////////////////////
if
0C18: 7@ = strstr string1 4@ string2 "Äàðîâà" //-Òåêñò â ÷àòå
then
say "Ñîñè äî ïîë âòîðîãî" //-Îòâåò
end
////////////////////////////////////
[/code/]
END проебал и у hook'a нет конца.
 

Lord

Новичок
236
42
Как сделать чтоб считывало ники из .txt файла залитый на dropbox?
 
1,417
1,029
  • Нравится
Реакции: Lord

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
ловишь этот хук, потом, допустим присваиваешь какой-нибудь переменной опредленное значение и ставишь эту проверку, которую ты писал в беск. цикл, а в условии пишешь если переменная равняется значению, которое ты указал в хуке, если оно верно, тогда выполняешь что-то и в конце обнуляешь переменную

CLEO:
0BE3: raknet setup_incoming_rpc_hook @IHook

while true
wait 0

if 1@ == 1
then
{code}
end

1@ = 0

end

:IHook
0BE5: raknet 0@ = get_hook_param 1
if 0@ == 11
then
1@ = 1
end
0BE0: raknet hook_ret 1
 
Последнее редактирование модератором:
  • Нравится
Реакции: Lord

WhackerH

Новичок
43
0
q, поч когда ввожу /och wait просто игнорится?
CLEO:
0B34: samp register_client_command "och" to_label @22
:22
wait 0
0B21:
jf @1
say "/me надел спец. очки"
wait 1100
say "/clist 0"
wait 1100
0B43:
jump @22
 

01EG

Известный
Проверенный
631
344
q, поч когда ввожу /och wait просто игнорится?
CLEO:
0B34: samp register_client_command "och" to_label @22
:22
wait 0
0B21:
jf @1
say "/me надел спец. очки"
wait 1100
say "/clist 0"
wait 1100
0B43:
jump @22

CLEO:
{$CLEO .cs}
0000: NOP

repeat
wait 2000
until 0AFA:  is_samp_available

0B34: samp register_client_command "och" to_label @22

while true
wait 0
    if 0@ == 1
    then
    say "/me надел спец.очки"
    wait 1100
    say "/clist 0" 
    0@ = 0
    end
end

:22
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret
проверяй, у меня обычно всё не с первого раза выходит, но думаю всё заебись.

Ах да и ответ на твой вопрос. Я сам не умею использовать задержку в теле команды(метке 22 например), если вообще можно. По-этому, если ты планируешь, чтоб после ввода твоей команды выполнялись какие-то действия, то команда должна быть всего лишь переключателем между вкл и выкл(типо флажок некий) и в самом цикле где выполняются действия там уже ставь свои задержки.
 

Вложения

  • test.cs
    17.6 KB · Просмотры: 3

Lord

Новичок
236
42
Можно ли какими либо способами вписать в этот опкод не int значение, а переменную?
CLEO:
????: 0@ = 1

Как-то так, но это не компилируется:

CLEO:
:command
SAMP.IsCommandTyped(1@)
0AD4: 10@ = scan_string 1@ format "%d" 2@
if 13@ == 0
then
chatmsg "Включено на %d " -1 2@
13@ = 2@
else
chatmsg "OFF" -1
13@ = 0
end
0B43: samp cmd_ret
 
Последнее редактирование:

SiTrak

Известный
193
251
Можно ли какими либо способами вписать в этот опкод не int значение, а переменную?
CLEO:
????: 0@ = 1

Как-то так, но это не компилируется:

CLEO:
:command
SAMP.IsCommandTyped(1@)
0AD4: 10@ = scan_string 1@ format "%d" 2@
if 13@ == 0
then
chatmsg "Включено на %d " -1 2@
13@ = 2@
else
chatmsg "OFF" -1
13@ = 0
end
0B43: samp cmd_ret
Можно, но в надо чтоб в переменную которую ты вставляешь, было записано целое число.
 
  • Нравится
Реакции: Mastir228

Lord

Новичок
236
42
Можно, но в надо чтоб в переменную которую ты вставляешь, было записано целое число.
Такая ошибка была:
NYEUS7T.png


Но я уже разобрался, спасибо.