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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Код:
:getPlayerIdByNickname
1@ = -1 // player id
 
for 2@ = 0 to 999 step 1
    if SAMP.IsPlayerConnected(2@)
    then
        3@ = SAMP.GetPlayerNickname(2@)
        if 0C21: stricmp string1 0@ string2 3@
        then
            0085: 1@ = 2@
            break
        end
    end
end
 
if 1@ <> -1
then 0485:  return_true
else 059A:  return_false
end
ret 1 1@

Пример:
Код:
{$CLEO}
 
wait 0
 
while not SAMP.Available()
    wait 400
end
 
0ac8: alloc 0@ 24
0ad3: format 0@ = "SuperMan"
 
while true
    wait 0
    if 0ab1: call @getPlayerIdByNickname 1 nickname 0@ retr_id 1@
    then
        0af8: "%s[%d]" -1 0@ 1@
        0ac9: free 0@
        0a93: end_custom_thread // Завершаем работу скрипта
    end
end
 
:getPlayerIdByNickname
1@ = -1 // player id
 
for 2@ = 0 to 999 step 1
    if SAMP.IsPlayerConnected(2@)
    then
        3@ = SAMP.GetPlayerNickname(2@)
        if 0C21: stricmp string1 0@ string2 3@
        then
            0085: 1@ = 2@
            break
        end
    end
end
 
if 1@ <> -1
then 0485:  return_true
else 059A:  return_false
end
ret 1 1@
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469

ma_za_xa_ka

Известный
42
0
Создаю новый поток и из него надо выключить скрипт. Как такое сделать? Если обратиться командой в чат то выключится, если через gosub, то крашит. Код старта/отключения

Код:
:bot
if 10@ >= 1
then
10@ = 0
0ACC: show_text_lowpriority "Miner bot ~r~OFF" time 1000
else
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
10@ = 1
0ACC: show_text_lowpriority "Miner bot ~g~ON" time 1000
end
0B43: samp cmd_ret
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Создаю новый поток и из него надо выключить скрипт. Как такое сделать? Если обратиться командой в чат то выключится, если через gosub, то крашит. Код старта/отключения

Код:
:bot
if 10@ >= 1
then
10@ = 0
0ACC: show_text_lowpriority "Miner bot ~r~OFF" time 1000
else
1@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
10@ = 1
0ACC: show_text_lowpriority "Miner bot ~g~ON" time 1000
end
0B43: samp cmd_ret

Что ты имеешь в виду под новым потоком? Другой скрипт?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469

Ну я не знаю, попытайся использовать
0AB3: var 0 = 10 и 0AB4: 0@ = var 0
Самый оптимальный вариант, на данный момент.

Код:
0AB3: var 144 = 1
0AB3: var 144 = 0

В другом скрипте:
Код:
0AB4: 0@ = var 144
if 0@ == 1
then
    // работает
end

Вместо 144 можешь использовать любое число от 0 до 999. Это будет индекс глобальной переменной между ВСЕМИ скриптами.
 

DoneUp

Новичок
28
0
Как сделать проверку из .ini и игрока рядом, тоесть сверку есть ли он там в .ini