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

Forus

Известный
54
12
0B34: samp register_client_command "tp" to_label @Teleport
Как сделать, чтобы при вводе "/tp 1" игрок телепортировался на эти координаты -594.5753 -1057.4774 23.3588, а при вводе "/tp 2" на эти -2045.3516 -2522.6531 31.0668? Нужно чтоб это все было в одной метке - :Teleport
P.S Сам пробовал сделать, не получилось. Не надо полный скрипт писать, просто помогите с этой частью
В одну метку запилить можно.
Сделай команду /tp
Сканируй строку,если там значение 1 то тпхайся на 1 координаты,если 2,3,4(иное),то тпхаемся на 2 координаты.
Ну я в любом случае сканировать строку.или же делать 2 команды в 2 метки,разницы то особой нет.
 

AWRage

Активный
642
141
0B34: samp register_client_command "tp" to_label @Teleport
Как сделать, чтобы при вводе "/tp 1" игрок телепортировался на эти координаты -594.5753 -1057.4774 23.3588, а при вводе "/tp 2" на эти -2045.3516 -2522.6531 31.0668? Нужно чтоб это все было в одной метке - :Teleport
P.S Сам пробовал сделать, не получилось. Не надо полный скрипт писать, просто помогите с этой частью
Код:
{$CLEO}
0000:

repeat
wait 400
until 0AFA: is_samp_available
0B34: samp register_client_command "tp" to_label @tp
0BDE: pause_thread 0

:tp
0B35: samp 0@ = get_last_command_params
if or
0@ == 1
0@ == 2
then
  if 0@ == 1
  then
    00A0: store_actor $PLAYER_ACTOR position_to -594.5753 -1057.4774 23.3588
  else
    00A0: store_actor $PLAYER_ACTOR position_to -2045.3516 -2522.6531 31.0668
  end
end
0B43: samp cmd_ret
 
  • Нравится
Реакции: next23012

Forus

Известный
54
12
Есть какая-нибудь универсальная активация-деактивация скрипта?Которая будет работать в любом случае.
UP
 

Forus

Известный
54
12
Может кто знает,как примерно реализован /fpick(поднятие пикапа на расстоянии) в собейте Мишана?
 
Последнее редактирование:

Forus

Известный
54
12
Не так сложно как кажется.. находим id пикапа далее его хендл и далее 2 варианта... Можно синхрой тп на него а можно поднять его опкодом.. Отправить серверу что он поднят
Хмм..Попробую..Спасибо..
----------------
Может кто знает как сделать что бы когда цикл прошёл определённое кол-во раз,вызывался другой цикл/вызывалась метка и т.п?
----------------------------------------------
В чём проблема?Почему игра виснет как только загружается?
Код:
{$CLEO}
0000: NOP

repeat
wait 0
until SAMP.Available()

0B34: samp register_cliend_command "Nbuy" to_label @Nbuy
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ by {FFA500}Pers[IK]. {DCDCDC}USE: /Nbuy"

while true
if and
  0@ == 1
  0B4C:  samp is_dialog_active -1
  then
      0C72: set_virtual_key 13 down true
         wait 100
      0C72: set_virtual_key 13 down false
     wait 300
    0AF9: samp say_msg "/cancel drugs"
end     
end

:Nbuy
if 0@ == 0
then
0@ = 1
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {228B22}çàïóùåí"
else
0@ = 0
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {B22222}âûêëþ÷åí"
end
SAMP.CmdRet()
 
Последнее редактирование:

AWRage

Активный
642
141
Хмм..Попробую..Спасибо..
----------------
Может кто знает как сделать что бы когда цикл прошёл определённое кол-во раз,вызывался другой цикл/вызывалась метка и т.п?
----------------------------------------------
В чём проблема?Почему игра виснет как только загружается?
Код:
{$CLEO}
0000: NOP

repeat
wait 0
until SAMP.Available()

0B34: samp register_cliend_command "Nbuy" to_label @Nbuy
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ by {FFA500}Pers[IK]. {DCDCDC}USE: /Nbuy"

while true
if and
  0@ == 1
  0B4C:  samp is_dialog_active -1
  then
      0C72: set_virtual_key 13 down true
         wait 100
      0C72: set_virtual_key 13 down false
     wait 300
    0AF9: samp say_msg "/cancel drugs"
end    
end

:Nbuy
if 0@ == 0
then
0@ = 1
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {228B22}çàïóùåí"
else
0@ = 0
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {B22222}âûêëþ÷åí"
end
SAMP.CmdRet()
wait 0 забыл

Можно ли опкодами менять погоду в игре? И будет ли это работать в САМП?
 

Forus

Известный
54
12
wait 0 забыл

Можно ли опкодами менять погоду в игре? И будет ли это работать в САМП?
wait 0 поставил.Не помогло..

Код:
{$CLEO}
0000: NOP

repeat
wait 0
until SAMP.Available()

0B34: samp register_cliend_command "Nbuy" to_label @Nbuy
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ by {FFA500}Pers[IK]. {DCDCDC}USE: /Nbuy"

while true
wait 0
if and
  0@ == 1
  0B4C:  samp is_dialog_active -1
  then
      0C72: set_virtual_key 13 down true
         wait 100
      0C72: set_virtual_key 13 down false
     wait 300
    0AF9: samp say_msg "/cancel drugs"
end    
end

:Nbuy
if 0@ == 0
then
0@ = 1
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {228B22}çàïóùåí"
else
0@ = 0
chatmsg "{DCDCDC}Áîò ïîêóïêè íàðêîòèêîâ {B22222}âûêëþ÷åí"
end
SAMP.CmdRet()
---------------------
Я думаю этот опкод меняет погоду в игре

01B6: set_weather 1(ид погоды).


---------------------------

Цикл такой сделать легко.. Подумать просто надо немного.. Просто определенной переменной прибавляем по единице
определенное кол-во раз и проверяем в конце достигла ли переменная нужного значения, как достигла прыгаем на другой цикл после обнуляем счетчиковую пременную
Я до этого пробовал писать вот так вот,сейчас пока что решаю проблему с висом игры..
Не знаю правильно или нет,вроде как должно работать.
Код:
:metkk
if and
20@ == 3
not Actor.Driving($Player_Actor)
then
      Actor.PutAt($Player_Actor, 5331,1115.6066,1083.8828) // âûõîä èç ïðèòîíà
         wait 3000
     Actor.PutAt($Player_Actor, 2166.9312,-1672.0231,15.10) // âõîä â ïðèòîí
         wait 3000
     Actor.PutAt($Player_Actor, 322.8085,1118.4113,1083.8828) // ïèêàï ïîêóïêè íàðêî
        wait 300
          if
            0B4C:  samp is_dialog_active -1
           then
           0B4B: samp set_current_dialog_editbox_text 50
              wait 100
           0C72: set_virtual_key 13 down true
              wait 100
           0C72: set_virtual_key 13 down false
              wait 300
             20@ = 0
end
end


while true
wait 0
if 0@ == 1
then
call @metk
wait 100
0AF9: samp say_msg "/selldrugs Andron_Neformal 1 1"
wait 2000
20@ +=1
end
end