Я не являюсь читером/игроком в мультиплеер, но решил создать эту тему здесь, т.к. один из пользователей даного сайта сообщил, что здесь обитает большое кол-во хорошо обознанных в скриптинге людей.
Конструкция switch в этом примере реализована через подключение дополнительных файлов перед компиляцией скрипта.
Как пример взят скрипт для изменения погоды в игре.
Скачать и ознакомиться подробнее можно здесь:
Конструкция switch в этом примере реализована через подключение дополнительных файлов перед компиляцией скрипта.
Как пример взят скрипт для изменения погоды в игре.
Код:
{$CLEO}
{$I switch}
// 0@ - Поточный ID погоды
// 1@ - Флаг текст-бокса. 1 - нужно показать текст бокс, 0 - не нужно
while true
wait 0
if
0AB1: call_scm_func @KeyJustPressed 1 _vkey 219
then
0@--
0AB1: call_scm_func @Limit 3 0@ _min 0 _max 22 _ret 0@
1@ = 1
else
if
0AB1: call_scm_func @KeyJustPressed 1 _vkey 221
then
0@++
0AB1: call_scm_func @Limit 3 0@ _min 0 _max 22 _ret 0@
1@ = 1
end
end
if
1@ == 1
then
1@ = 0
set_weather 0@
01B7: release_weather
// Конструкция switch используется позволяет выбрать действие в зависимости от значения переменной.
//
// {$I switch(<ПЕРЕМЕННАЯ>)} // Начало конструкции
//
// {$I case <ЗНАЧЕНИЕ1>}
// // Код, который выполнится, если ПЕРЕМЕННАЯ равна ЗНАЧЕНИЮ1.
// break - выход из конструкции.
//
// {$I case <ЗНАЧЕНИЕ2>}
// // Код, который выполнится, если ПЕРЕМЕННАЯ равна ЗНАЧЕНИЮ2.
// break - выход из конструкции.
//
// ...
//
// // Также в конструкции можно использовать специальный случай, именованный как default.
// {$I default}
// // Код, который выполнится, если переменная не равна ни одному из ЗНАЧЕНИЙ.
//
// {$I switch_end} // Завершение конструкции
{$I switch(0@)}
{$I case 0}
0ACA: show_text_box "0 - Los Santos - Extra Sunny"
break
{$I case 1}
0ACA: show_text_box "1 - Los Santos - Sunny"
break
{$I case 2}
0ACA: show_text_box "2 - Los Santos - Extra Sunny Smog"
break
{$I case 3}
0ACA: show_text_box "3 - Los Santos - Sunny Smog"
break
{$I case 4}
0ACA: show_text_box "4 - Los Santos - Cloudy"
break
{$I case 5}
0ACA: show_text_box "5 - San Fierro - Sunny"
break
{$I case 6}
0ACA: show_text_box "6 - San Fierro - Extra Sunny"
break
{$I case 7}
0ACA: show_text_box "7 - San Fierro - Cloudy"
break
{$I case 8}
0ACA: show_text_box "8 - San Fierro - Rainy"
break
{$I case 9}
0ACA: show_text_box "9 - San Fierro - Foggy"
break
{$I case 10}
0ACA: show_text_box "10 - Las Venturas - Sunny"
break
{$I case 11}
0ACA: show_text_box "11 - Las Venturas - Extra Sunny"
break
{$I case 12}
0ACA: show_text_box "12 - Las Venturas - Cloudy"
break
{$I case 13}
0ACA: show_text_box "13 - Countryside - Extra Sunny"
break
{$I case 14}
0ACA: show_text_box "14 - Countryside - Sunny"
break
{$I case 15}
0ACA: show_text_box "15 - Countryside - Cloudy"
break
{$I case 16}
0ACA: show_text_box "16 - Countryside - Rainy"
break
{$I case 17}
0ACA: show_text_box "17 - Desert - Extra Sunny"
break
{$I case 18}
0ACA: show_text_box "18 - Desert - Sunny"
break
{$I case 19}
0ACA: show_text_box "19 - Desert - Sandstorm"
break
{$I case 20}
0ACA: show_text_box "20 - Underwater"
break
{$I case 21}
0ACA: show_text_box "21 - Extracolours 1"
break
{$I case 22}
0ACA: show_text_box "22 - Extracolours 2"
{$I switch_end}
end
end
// Функция сверяет, нажата ли клавиша, и в случае нажатия - ждёт, пока клавиша не будет отпущена.
:KeyJustPressed
// 0@ - ID клавиши
if
0AB0: key_pressed 0@
then
while 0AB0: key_pressed 0@
wait 0
end
0485: return_true
0AB2: ret 0
end
059A: return_false
0AB2: ret 0
// Функция ограничивает число в указанных рамках.
:Limit
// 0@ - число
// 1@ - нижняя граница ограничения
// 2@ - верхняя граница ограничения
// Возвращаемое значение: число в указанных рамках
if
802D: not 0@ >= 1@
then
0085: 0@ = 2@
else
if
001D: 0@ > 2@
then
0085: 0@ = 1@
end
end
0AB2: ret 1 0@