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

D

deleted-user-54924

Гость
Вопрос в том,как доделать,мне нужно использования функций "%d" "%s".Зачем оно мне надо если есть биндер? Я отвечу - командой удобнее.
CLEO:
{$CLEO}
0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc
0BDE: pause_thread 0

:hl
0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
wait 2100
Его цена: %d. // тут должно писать цену которую ты указал в команде /hl ID цена.
wait 2100
0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
wait 2100
0C8F: samp process_chat_input "/me передал лекарство пациенту"
wait 2100
0C8F: samp process_chat_input "/heal id цена" // вместо ид и цены должно писать то что ты ввел после команды /hl ID цена
0B43: samp cmd_ret

:tm
0C8F: samp process_chat_input "/time"
0B43: samp cmd_ret

:lc
0C8F: samp process_chat_input "/lock"
0B43: samp cmd_ret
 

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
Вопрос в том,как доделать,мне нужно использования функций "%d" "%s".Зачем оно мне надо если есть биндер? Я отвечу - командой удобнее.
CLEO:
{$CLEO}
0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc
0BDE: pause_thread 0

:hl
0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
wait 2100
Его цена: %d. // тут должно писать цену которую ты указал в команде /hl ID цена.
wait 2100
0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
wait 2100
0C8F: samp process_chat_input "/me передал лекарство пациенту"
wait 2100
0C8F: samp process_chat_input "/heal id цена" // вместо ид и цены должно писать то что ты ввел после команды /hl ID цена
0B43: samp cmd_ret

:tm
0C8F: samp process_chat_input "/time"
0B43: samp cmd_ret

:lc
0C8F: samp process_chat_input "/lock"
0B43: samp cmd_ret
посмотри этот говнокод, может поймешь свои ошибки, ну а вообще поучи форматирование
 

Musaigen

abobusnik
Проверенный
1,585
1,309
бля,мне именно нужно дополнить мой.Я не понял что в твоем клео.Мне не нужен ини файл,а прямо в игре.
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc

while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    0C8F: samp_procces_chat_input "Его цена %d." 4@ // Указ цены из переменной 4@
                    wait 2100
                    0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
                    wait 2100
                    0C8F: samp process_chat_input "/me передал лекарство пациенту"
                    wait 2100
                    0C8F: samp process_chat_input "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                end
            else chatmsg "Игрок не подключён к серверу" -1
            end     
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]"
        end
    end
end 



:hl
0@ = 1
0B43: samp cmd_ret

:tm
0C8F: samp process_chat_input "/time"
0B43: samp cmd_ret

:lc
0C8F: samp process_chat_input "/lock"
0B43: samp cmd_ret
И да, wait в CallBack - функциях не работает, если ты хочешь использовать задержку, выноси в основной цикл, как я показал на примере твоего скрипта.
 
D

deleted-user-54924

Гость
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc

while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    0C8F: samp_procces_chat_input "Его цена %d." 4@ // Указ цены из переменной 4@
                    wait 2100
                    0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
                    wait 2100
                    0C8F: samp process_chat_input "/me передал лекарство пациенту"
                    wait 2100
                    0C8F: samp process_chat_input "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                end
            else chatmsg "Игрок не подключён к серверу" -1
            end    
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]"
        end
    end
end



:hl
0@ = 1
0B43: samp cmd_ret

:tm
0C8F: samp process_chat_input "/time"
0B43: samp cmd_ret

:lc
0C8F: samp process_chat_input "/lock"
0B43: samp cmd_ret
И да, wait в CallBack - функциях не работает, если ты хочешь использовать задержку, выноси в основной цикл, как я показал на примере твоего скрипта.
Сейчас чекну)
 
D

deleted-user-54924

Гость
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc

while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    0C8F: samp_procces_chat_input "Его цена %d." 4@ // Указ цены из переменной 4@
                    wait 2100
                    0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
                    wait 2100
                    0C8F: samp process_chat_input "/me передал лекарство пациенту"
                    wait 2100
                    0C8F: samp process_chat_input "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                end
            else chatmsg "Игрок не подключён к серверу" -1
            end    
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]"
        end
    end
end



:hl
0@ = 1
0B43: samp cmd_ret

:tm
0C8F: samp process_chat_input "/time"
0B43: samp cmd_ret

:lc
0C8F: samp process_chat_input "/lock"
0B43: samp cmd_ret
И да, wait в CallBack - функциях не работает, если ты хочешь использовать задержку, выноси в основной цикл, как я показал на примере твоего скрипта.
Не работает,когда ввожу /hl , /tm /heal id цена...Даже в чате не пишет ничего что я не вижу игрока и т.д
 

Musaigen

abobusnik
Проверенный
1,585
1,309
Не работает,когда ввожу /hl , /tm /heal id цена...Даже в чате не пишет ничего что я не вижу игрока и т.д
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc

while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    0C8F: samp_procces_chat_input "Его цена %d." 4@ // Указ цены из переменной 4@
                    wait 2100
                    0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
                    wait 2100
                    0C8F: samp process_chat_input "/me передал лекарство пациенту"
                    wait 2100
                    0C8F: samp process_chat_input "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                0@ = 0
                end
            else chatmsg "Игрок не подключён к серверу" -1
            0@ = 0
            end      
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]" -1
        0@ = 0
        end
    end
end  



:hl
0@ = 1
0B43: samp cmd_ret

:tm
say "/time"
0B43: samp cmd_ret

:lc
say "/lock"
0B43: samp cmd_ret
Всё проверял только что, если что-то не работает то я не виноват.
 
D

deleted-user-54924

Гость
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc

while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    0C8F: samp process_chat_input "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    0C8F: samp_procces_chat_input "Его цена %d." 4@ // Указ цены из переменной 4@
                    wait 2100
                    0C8F: samp process_chat_input "/me открыл сумку и достал лекарство"
                    wait 2100
                    0C8F: samp process_chat_input "/me передал лекарство пациенту"
                    wait 2100
                    0C8F: samp process_chat_input "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                0@ = 0
                end
            else chatmsg "Игрок не подключён к серверу" -1
            0@ = 0
            end  
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]" -1
        0@ = 0
        end
    end
end



:hl
0@ = 1
0B43: samp cmd_ret

:tm
say "/time"
0B43: samp cmd_ret

:lc
say "/lock"
0B43: samp cmd_ret
Всё проверял только что, если что-то не работает то я не виноват.
Imgur(https://imgur.com/a/tNTEV)
Как может работать если когда я ввожу /hl оно пишет так:
tNTEV
и получается ничего не работате.
Вместо цены #d а в конце пишет /heal %d %d а не те данные которые я писал в /hl.вместо чисел пишет буквы "#d"
 

Musaigen

abobusnik
Проверенный
1,585
1,309
Imgur(https://imgur.com/a/tNTEV)
Как может работать если когда я ввожу /hl оно пишет так:
tNTEV
и получается ничего не работате.
Вместо цены #d а в конце пишет /heal %d %d а не те данные которые я писал в /hl.вместо чисел пишет буквы "#d"
Боже, нужно писать /hl ID игрока(например 137) Цена(пример 100) и всё. Без процентов или решеточек.

UPD. 18:51 6 April. 2018.
Не знаю что у тебя не работает, у меня всё норм, игрок в зоне стрима находится, ты его глазными яблоками видишь? Есть ли игрок вообще на сервере? Или ты на рандоме пишешь?
 
D

deleted-user-54924

Гость
Боже, нужно писать /hl ID игрока(например 137) Цена(пример 100) и всё. Без процентов или решеточек.
я так и писал,попробуй.Я не писал проценты и решетки,я писал /hl 666 200 и оно хуйню писало.Теде даже акка не нужно еметь в больке,зайди на любой сервер "РП" и проверь что в чате напишет,и в конце нажми F6 и стрелочку вверх.И ты поймешь что оно не работает

Боже, нужно писать /hl ID игрока(например 137) Цена(пример 100) и всё. Без процентов или решеточек.

UPD. 18:51 6 April. 2018.
Не знаю что у тебя не работает, у меня всё норм, игрок в зоне стрима находится, ты его глазными яблоками видишь? Есть ли игрок вообще на сервере? Или ты на рандоме пишешь?
Сейчас фрапс скину....
 
Последнее редактирование модератором:

Musaigen

abobusnik
Проверенный
1,585
1,309
Сейчас фрапс скину....
Не надо, уже решил проблему, лучше используй кейворд say "текст"
CLEO:
{$CLEO}
0000:

repeat
wait 0
until samp.Available()

0B34: samp register_client_command "hl" to_label @hl
0B34: samp register_client_command "tm" to_label @tm
0B34: samp register_client_command "lc" to_label @lc


while true
wait 0
    if 0@ == 1
    then
        Samp.IsCommandTyped(1@)
        if
        0AD4: 2@ = scan_string 1@ format "%d %d" 3@ 4@ // Проверка на то, что в команде /hl есть два параметра (ID игрока, и цена), {Если все верно, идёт дальше.}
        then
            if
            0B23:  samp is_player_connected 3@ // Проверка на то что игрок подключен. Берётся из переменной 3@
            then
                0B20: samp 5@ = actor_handle_by_samp_player_id 3@ // Получаем хендл игрока для последующего взаимодействия с ним.
                if and
                056D:   actor 5@ defined // Проверка на то что игрок в зоне стрима.
                02CB:   actor 5@ bounding_sphere_visible // Проверка на то что ты видишь игрока, именно ВИДИШЬ!
                then
                    { ОТЫГРОВКА }
                    say "От головной боли я выпишу Вам лекарство Цитрамон."
                    wait 2100
                    say "Его цена %d" 4@ // Указ цены из переменной 4@
                    wait 2100
                    say "/me открыл сумку и достал лекарство"
                    wait 2100
                    say "/me передал лекарство пациенту"
                    wait 2100
                    say "/heal %d %d" 3@ 4@ // Указ ID игрока и цены из переменных 3@ и 4@
                    0@ = 0
                    { КОНЕЦ ОТЫГРОВКИ }
                else chatmsg "Игрок не в зоне стрима, либо вы его не видите." -1
                0@ = 0
                end
            else chatmsg "Игрок не подключён к серверу" -1
            0@ = 0
            end
        else chatmsg "Неправильный формат команды. Используйте /hl [ID игрока] [Цена]" -1
        0@ = 0
        end
    end
end

:hl
0@ = 1
samp.CmdRet()

:tm
say "/time"
samp.CmdRet()

:lc
say "/lock"
samp.CmdRet()
Если хочешь опкодом, используй 0AF9 | 0C8F просто ставит весь текст который ты написал
 
  • Нравится
Реакции: deleted-user-54924

Скептик

Известный
15
0
Есть ли способ получить текст из 'GameTextForPlayer'?
Текст который часто используют на серверах для приветствия или '/time'.