Информация Создание многоуровневой команды SF.

Статус
В этой теме нельзя размещать новые ответы.

itsLegend

Фонд борьбы за жуков 🐞
Автор темы
Администратор
2,695
1,448
Даже не знаю, как ещё назвать.
Пример могу показать так:
/flood - осн. команда
/flood sleep 5 - подкоманда /flood, sleep
/flood text hello - подкоманда /flood, text

Естественно, необходим SAMPFUNCS.

Снова же буду основываться на вышеописанной команде:
Код:
{$CLEO}
 
wait 0
 
if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
    wait 400
until 0AFA: is_samp_structures_available
 
0B34: samp register_client_command "flood" to_label @cmd
 
while true
    wait 0
    if 29@ == true
    then
        0AF9: say "%s" 3@
        wait 2@
    end
end
 
:cmd
0B35: samp 0@ = get_last_command_params // Получаем параметры команды /flood
if 0C18: 1@ = strstr string1 0@ string2 "sleep" // Если найден текст sleep
then
    0C16: 1@ = strtok string1 0@ string2 "sleep" // Вырезаем текст из строки
    if 0AD4: 1@ = scan_string 1@ format "%d" 2@ // Ищем аргументы
    then 0AF8: chat "Sleep time: %d ms." 0xFFFF00 2@ // Если нашли, выводим
    else 0AF8: chat "Ex.: /flood sleep 5" 0xFF0000 // Иначе...
    end
 
    // OR
    // atoi 1@ 1@
 
    SAMP.CmdRet() // Возвращаемся.
end
 
if 0C18: 1@ = strstr string1 0@ string2 "text" // Если найден текст text
then
    0C18: 3@ = strstr string1 0@ string2 "text"
    3@ += 5 // "text "
    0AF8: chat "Text flood: %s" 0xFFFF00 3@
 
    SAMP.CmdRet() // Возвращаемся.
end
 
if 29@ == false
then 29@ = true
else 29@ = false
end
0AF8: chat "Main cmd, status: %d" 0xFFFF00 29@
SAMP.CmdRet()

Всё удобно и легко.
Черт знает, кому нужно, так, для барахолки закинул.
 
D

deleted-user-17124

Гость
А как получить несколько параметров цифровых если к примеру у меня /setcarph <id> <hp>
(/setcarph 311 1000) Как тогда получить такие параметры?
 

itsLegend

Фонд борьбы за жуков 🐞
Автор темы
Администратор
2,695
1,448
А как получить несколько параметров цифровых если к примеру у меня /setcarph <id> <hp>
(/setcarph 311 1000) Как тогда получить такие параметры?
0@ - полученные параметры команды ( 0B35: samp 0@ = get_last_command_params )

Код:
if 0AD4: 0@ = scan_string 0@ format "%d %d" 1@ 2@ // Форматируем, ну или разделяем параметры
then
    // Если найдены эти 2 числа то -
    0AF8: "Car = %d, Hp = %d" 0xff0000 1@ 2@ // Output - "Car = 311, Hp = 1000"
end
 
  • Нравится
Реакции: deleted-user-17124
D

deleted-user-17124

Гость
0@ - полученные параметры команды ( 0B35: samp 0@ = get_last_command_params )

Код:
if 0AD4: 0@ = scan_string 0@ format "%d %d" 1@ 2@ // Форматируем, ну или разделяем параметры
then
    // Если найдены эти 2 числа то -
    0AF8: "Car = %d, Hp = %d" 0xff0000 1@ 2@ // Output - "Car = 311, Hp = 1000"
end

Спасибо +
 
Статус
В этой теме нельзя размещать новые ответы.