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

Natami

Участник
377
26
HELP! Пишу в чат "чит" , а в ответ мне "ans 6542173 окей"
Почему "id" не работает.
CLEO:
while true
wait 0
    if 0C18: 0 = strstr string1 9@ string2 "чит {01FCFF}("
    then
        0AA5: call 0x8220AD num_params 5 pop 5 params 9@ "чит {01FCFF}(%s_%s)[%d]" 13@v 12@v 11@
        wait 150
        0AF9: samp say_msg "ans %d окей" 11@
    end
    0C11: memset destination 9@ value 0 size 256
end

HELP! Пишу в чат "чит" , а в ответ мне "ans 6542173 окей"
Почему "id" не работает.
CLEO:
while true
wait 0
    if 0C18: 0 = strstr string1 9@ string2 "чит {01FCFF}("
    then
        0AA5: call 0x8220AD num_params 5 pop 5 params 9@ "чит {01FCFF}(%s_%s)[%d]" 13@v 12@v 11@
        wait 150
        0AF9: samp say_msg "ans %d окей" 11@
    end
    0C11: memset destination 9@ value 0 size 256
end
help (
 

astap_

Известный
Всефорумный модератор
626
601
HELP! Пишу в чат "чит" , а в ответ мне "ans 6542173 окей"
Почему "id" не работает.
CLEO:
while true
wait 0
    if 0C18: 0 = strstr string1 9@ string2 "чит {01FCFF}("
    then
        0AA5: call 0x8220AD num_params 5 pop 5 params 9@ "чит {01FCFF}(%s_%s)[%d]" 13@v 12@v 11@
        wait 150
        0AF9: samp say_msg "ans %d окей" 11@
    end
    0C11: memset destination 9@ value 0 size 256
end


help (
1. в 0x8220AD параметры передаются справа налево
2. передавать нужно указатель на переменную, а не её саму.
и ваще научитесь читать, уже миллионный раз эту тему мусолите: sscanf

Есть какой то исходник или тема?
FarmBot говнокод, но суть уловишь думаю
 

Andreyss

Новичок
15
0
Как можно заменить текст текстдрава на свой? Например
Бизнес имеет: ник
и ник заменить на свой?
 

The Spark

Известный
656
685
CLEO:
Render.DrawText(1@, 31@, 1478, 126, 0xFFffffff)
Играю на мониторе 16:9, и код сделан под него, а когда перехожу на ноут(4:3) текст выходит за рамки. Как это исправить?
 

Carrentine

Потрачен
569
463
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
CLEO:
Render.DrawText(1@, 31@, 1478, 126, 0xFFffffff)
Играю на мониторе 16:9, и код сделан под него, а когда перехожу на ноут(4:3) текст выходит за рамки. Как это исправить?
Это потому что на 4:3 другии пропорции, значит и позиция нужна другая.
Как то можно исправить, но мне лень. Попробуй просто подобрать нужное значение для позиции.
 

astap_

Известный
Всефорумный модератор
626
601
CLEO:
Render.DrawText(1@, 31@, 1478, 126, 0xFFffffff)
Играю на мониторе 16:9, и код сделан под него, а когда перехожу на ноут(4:3) текст выходит за рамки. Как это исправить?
игровые корды на всех разрешениях равны
CLEO:
0B5F: convert_window_screen_coords 0@ 1@ to_game_screen_coords 2@ 3@
 

AntonLemon

Новичок
1
0
Хочу поменять команду /find на /dfind

Код:
{$CLEO .cs}

//-------------MAIN---------------
thread "{$TH3RM4L"
0662: printstring "Player Finder for recode by blast.hk"
0B34: samp register_client_command "find" to_label @{$TH3RM4L_13
0B34: samp register_client_command "myfind" to_label @{$TH3RM4L_13
0B34: samp register_client_command "stopfind" to_label @{$TH3RM4L_13
31@ = 0
30@ = 0
thread "{$TH3RM4L"

:{$TH3RM4L_13
wait 0
if
  31@ == 1
else_jump @{$TH3RM4L_13
if
   SAMP.IsPlayerConnected(2@)
else_jump @{$TH3RM4L_13
3@ = SAMP.GetActorHandleByPlayerID(2@)
if
856D:   not actor 3@ defined
else_jump @{$TH3RM4L_13
SAMP.GetStreamedOutPlayerPos(2@, 9@, 10@, 11@)
12@ = Marker.CreateIconAndSphere(41, 9@, 10@, 11@)
wait 750
Marker.Disable(12@)
thread "{$TH3RM4L"

:{$TH3RM4L_13
if
056D:   actor 3@ defined
else_jump @{$TH3RM4L_13
Actor.StorePos(3@, 5@, 6@, 7@)
8@ = Marker.CreateIconAndSphere(41, 5@, 6@, 7@)
wait 750
Marker.Disable(8@)
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
if
  30@ == 0
else_jump @{$TH3RM4L_13
   SAMP.IsCommandTyped(0@)
if
0AD4: 1@ = scan_string 0@ format "%d" 2@ 
else_jump @{$TH3RM4L_13
if
   SAMP.IsPlayerConnected(2@)
else_jump @{$TH3RM4L_13
30@ = 1
31@ = 1
4@ = SAMP.GetPlayerNickname(2@)
chatmsg "Marker set on the player %s, ID %d. Use [/stopfind] to stop finding." 6330577 4@ 2@
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
if
  31@ == 1
else_jump @{$TH3RM4L_13
30@ = 0
31@ = 0
Marker.Disable(12@)
Marker.Disable(8@)
chatmsg "The finding has been stopped succefully." 6330577
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
if
  31@ == 1
else_jump @{$TH3RM4L_13
chatmsg "You are finding %s, ID %d." 6330577 4@ 2@
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
chatmsg "The player which you were finding has disconnected." 12517376
Marker.Disable(12@)
Marker.Disable(8@)
30@ = 0
31@ = 0
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
Marker.Disable(12@)
Marker.Disable(8@)
wait 100
   SAMP.IsCommandTyped(0@)
if
0AD4: 1@ = scan_string 0@ format "%d" 2@ 
else_jump @{$TH3RM4L_13
if
   SAMP.IsPlayerConnected(2@)
else_jump @{$TH3RM4L_13
30@ = 1
31@ = 1
4@ = SAMP.GetPlayerNickname(2@)
chatmsg "Marker set on the player %s, ID %d. Use [/stopfind] to stop finding." 6330577 4@ 2@
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
chatmsg "USAGE: /find <playerID>" 12566463
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
chatmsg "Invalid ID." 12517376
30@ = 0
31@ = 0
SAMP.CmdRet
jump @{$TH3RM4L_13
thread "{$TH3RM4L"

:{$TH3RM4L_13
chatmsg "You are not finding anyone." 16507548
SAMP.CmdRet
jump @{$TH3RM4L_13
 

The Spark

Известный
656
685
CLEO:
0C5A: samp textdraw 1 get_string_to 0@
alloc 2@ 50
0AA5: call 0x8220AD num_params 4 pop 4 params 1@v 2@ "~p~Бензин: ~%s~%i%" 0@
free 2@
%s меняется постоянно, мне нужно от туда брать только %i, как это сделать?
 

madim

Новичок
7
0
Можно ли как-то сделать в Sanny Builder 3, сделать так, чтобы актёр, например на аризоне, прописал команду в чат /eat и съел чипсы? Может быть и команду писать не надо, главное чтобы он их съел. Возможно ли это?
 

AXE_CAMERON

Участник
66
0
Код:
while samp.Available()
wait 0
if
0AB0:   key_pressed 106
then
0AB1: call_scm_func @1
end
end

:1
wait 0
if
0AB0:  not key_pressed 106
then
wait 5
0C72: set_virtual_key 16 down true
wait 0
0C72: set_virtual_key 16 down false
else
ret 0
end
Что не так, я хочу чтобы при нажатии одной и той же клавиши скрипт активировался/деактивировался
 

astap_

Известный
Всефорумный модератор
626
601
Можно ли как-то сделать в Sanny Builder 3, сделать так, чтобы актёр, например на аризоне, прописал команду в чат /eat и съел чипсы? Может быть и команду писать не надо, главное чтобы он их съел. Возможно ли это?
конечно
CLEO:
say "/eat"
если тебе для простоя в афк, то я уже делал такое (хавает рыбу) - https://blast.hk/threads/26876/#post-274904
Код:
while samp.Available()
wait 0
if
0AB0:   key_pressed 106
then
0AB1: call_scm_func @1
end
end

:1
wait 0
if
0AB0:  not key_pressed 106
then
wait 5
0C72: set_virtual_key 16 down true
wait 0
0C72: set_virtual_key 16 down false
else
ret 0
end
Что не так, я хочу чтобы при нажатии одной и той же клавиши скрипт активировался/деактивировался
не в обиду, но это дичь просто.
Цикл while у тебя сразу же будет скипнут, потому что клео работает ещё до загрузки сампа. Делай проверку так:
CLEO:
while not SAMP.Available() {1 ВАРИАНТ} // цикл работает, пока САМП не загружен
    wait 0
end

repeat {2 ВАРИАНТ}  // цикл работает, пока САМП не загрузится
    wait 0
until SAMP.Available()

while true {3 ВАРИАНТ}  // цикл работает всегда, но если самп загрузится, мы выходим из цикла.
    wait 0
    if SAMP.Available()
    then
        break
    end
end
Активацию/деактивацию проще всего делать таким образом:
CLEO:
while true
    wait 0
    if 0c89: 49 // 1
    then
        chatmsg "Скрипт был активирован!" -1
      
        repeat
            wait 0
            print "working" 20
            // code
        until 0c98: 49 // цикл будет работать, пока мы снова не нажмём клавишу "1"
      
        chatmsg "Скрипт был {ff0000}деактивирован!" -1
    end
end
 
Последнее редактирование: