Пятница, 26.04.2024, 09:51
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
ILYALIONДата: Суббота, 31.12.2011, 10:54 | Сообщение # 1096
Группа: Проверенные
Сообщений: 325
Статус: Offline
Аксиома, этот опкод берёт случайное число из интервала, я хочу знать, входят ли границы в результат рандома
 
izerliДата: Суббота, 31.12.2011, 12:26 | Сообщение # 1097
Группа: Проверенные
Сообщений: 90
Статус: Offline
ILYALION,
Code
0209: 17@ = random_int_in_ranges 0 10

0 входит, 10 нет.
 
АксиомаДата: Суббота, 31.12.2011, 14:33 | Сообщение # 1098
Группа: Заблокированные
Сообщений: 81
Статус: Offline
Я его использую для задержки
 
Den_spbДата: Суббота, 31.12.2011, 14:54 | Сообщение # 1099
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Для задержки ты используешь wait, а random - для выбора случайного числа.
 
АксиомаДата: Суббота, 31.12.2011, 14:59 | Сообщение # 1100
Группа: Заблокированные
Сообщений: 81
Статус: Offline
А для чего в random записываешь числа?
я пользуюсь им таким образом

0209: 1@ = random_int_in_ranges 100000 500000
wait 1@
 
Den_spbДата: Суббота, 31.12.2011, 15:04 | Сообщение # 1101
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Аксиома, все уже поняли, что ты пользуешься рандомом для выбора времени задержки.
Но случайные числа могут понадобиться и во многих других случаях - создание актёра со случайной моделью, создание машины в случайных координатах и т.д. Что тут непонятного?
 
АксиомаДата: Суббота, 31.12.2011, 16:01 | Сообщение # 1102
Группа: Заблокированные
Сообщений: 81
Статус: Offline
Den_spb, Ну может из за твоего уровня знаний, ты объясняешь умно и до меня не доходит.
Сформулируй сообщение и если можно то с кодом может пойму.
 
ILYALIONДата: Суббота, 31.12.2011, 16:42 | Сообщение # 1103
Группа: Проверенные
Сообщений: 325
Статус: Offline
Я не понимаю, как может вылет быть связан с командой return? SmLog "говорит", что последний опкод 0051, т.е. return
 
Den_spbДата: Суббота, 31.12.2011, 16:43 | Сообщение # 1104
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (ILYALION)
Я не понимаю, как может вылет быть связан с командой return? SmLog "говорит", что последний опкод 0051, т.е. return
Проверь, чтобы перед return обязательно выполнялся gosub.
 
ILYALIONДата: Суббота, 31.12.2011, 16:55 | Сообщение # 1105
Группа: Проверенные
Сообщений: 325
Статус: Offline
Den_spb, посмотрите, пожалуйста, что не так. Часть кода прикрепил к сообщению.
Прикрепления: 9913835.txt (10.3 Kb)
 
Den_spbДата: Суббота, 31.12.2011, 17:14 | Сообщение # 1106
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Лог лучше покажите.
 
ILYALIONДата: Суббота, 31.12.2011, 17:17 | Сообщение # 1107
Группа: Проверенные
Сообщений: 325
Статус: Offline
А вот и лог
Прикрепления: 0596993.log (240.6 Kb)
 
Den_spbДата: Суббота, 31.12.2011, 19:10 | Сообщение # 1108
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Code
3@ == 0
4@ == 0
...
15@ == 0
return
После проверок должна стоять команда jump или jf (else_jump), а не return.
 
ILYALIONДата: Суббота, 31.12.2011, 19:42 | Сообщение # 1109
Группа: Проверенные
Сообщений: 325
Статус: Offline
Den_spb, заменил, результат тот же.

Закомментировав строки
Code
0AF0: 16@ = get_int_from_ini_file "CLEO\POEZD.INI" section 29@v key "TYPE" //IF and SET
if
     16@ == 1  
else_jump @TYPE_2
у меня получилось. Вылетов не было. Но почему же был вылет? Проверок не может быть, пока работает gosub?
Прикрепления: 2754976.log (148.5 Kb) · 6175485.txt (10.4 Kb)


Сообщение отредактировал ILYALION - Суббота, 31.12.2011, 20:43
 
Den_spbДата: Суббота, 31.12.2011, 21:03 | Сообщение # 1110
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (ILYALION)
Проверок не может быть, пока работает gosub?
Проверки могут быть, но необходимо избегать jump-ов из "gosub-ного" кода в "общий" код, т.к. в результате gosub может выполниться много раз подряд и лимит вложенности gosub может быть превышен.
Поясню: допускается вызвать gosub 8 раз подряд - после этого нельзя вызвать gosub ещё раз до того, как будет вызван return.
Если вызвать gosub 9 и более раз, а затем вызвать return, то игра вылетит - видимо это и есть причина ошибки в данном случае.
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: