Пятница, 29.03.2024, 00:04
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
d88Дата: Суббота, 23.01.2010, 13:22 | Сообщение # 61
Группа: Проверенные
Сообщений: 113
Статус: Offline
Den_spb, я хочу сделать таймер, но мне надо чтоб цифр не было видно. Просто чтоб по прошествию опр. времени выполнялось действие. Я вообще-то могу сделать чтоб из переменной вычиталась ежесекундно 1, но с таймером было бы удобнее. wait тут не подойдёт, сразу говорю.
 
Gans[64]Дата: Суббота, 23.01.2010, 13:30 | Сообщение # 62
Группа: Проверенные
Сообщений: 8
Статус: Offline
Как сделать чтобы везде был плотный туман? Как нибудь через скрипт?
 
d88Дата: Суббота, 23.01.2010, 13:57 | Сообщение # 63
Группа: Проверенные
Сообщений: 113
Статус: Offline
Quote (Gans|64|)
Как сделать чтобы везде был плотный туман?

01b6: set_weather 9

 
Gans[64]Дата: Суббота, 23.01.2010, 14:04 | Сообщение # 64
Группа: Проверенные
Сообщений: 8
Статус: Offline
d88, а в интерьерах будет?
 
Den_spbДата: Суббота, 23.01.2010, 14:25 | Сообщение # 65
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (d88)
Den_spb, я хочу сделать таймер, но мне надо чтоб цифр не было видно. Просто чтоб по прошествию опр. времени выполнялось действие. Я вообще-то могу сделать чтоб из переменной вычиталась ежесекундно 1, но с таймером было бы удобнее. wait тут не подойдёт, сразу говорю.
В каждом потоке (и в миссии по-моему тоже) есть 2 таймера - переменные 32@ и 33@. Значения, записанные в эти переменные, увеличиваются с каждой миллисекундой на 1, т.е. за 1 секунду значение увеличится на 1000. Можно записывать в эти переменные любые целые числа - тогда значение, записанное в переменную будет возрастать уже с этого числа. Вот простой пример: первое действие производится постоянно, а второе - только по одному разу через каждые 10 секунд
Code
32@ = 0
while true
     wait 0
     // действие 1
     if
         32@ > 10000
     then
         // действие 2
         32@ = 0
     end
end
 
d88Дата: Суббота, 23.01.2010, 15:01 | Сообщение # 66
Группа: Проверенные
Сообщений: 113
Статус: Offline
Quote (Gans|64|)
d88, а в интерьерах будет?

Нет наверное, но можно наделать дым

Den_spb, это то же что и wait. Мне надо что таймер шёл не с начала потока, и потом его значения могут ещё увеличиваться.

Quote (Den_spb)
есть 2 таймера - переменные 32@ и 33@.

Как локальные переменные вообще сами могут увеличиваться? Такое я видел только у глобальных.
И в них же можно записать любое значения, и актёра, и транспорт и т.д.
 
Den_spbДата: Суббота, 23.01.2010, 15:39 | Сообщение # 67
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (d88)
Den_spb, это то же что и wait.
Либо ты невнимательно прочитал моё сообщение, либо просто не понял. Команда wait приостанавливает выполнение всего потока. В примере, что я дал выше, код не останавливается - первое действие выполняется всё время, а второе - только через определённые промежутки времени. Если тебя смутил в примере wait 0 - то он там нужен только для того, чтобы при выполнении цикла не зависла игра.
Quote (d88)
Мне надо что таймер шёл не с начала потока, и потом его значения могут ещё увеличиваться.
Обнули его в любой нужный тебе момент, затем сравнивай его значение с заданной величиной.
Quote (d88)
Как локальные переменные вообще сами могут увеличиваться? Такое я видел только у глобальных.
Это относится только к переменным-таймерам - 32@ и 33@. Убедиться в том, что значения, записанные в них, непрерывно растут, не сложно:
Code
{$CLEO}
32@ = 100
33@ = 1000
while true
      wait 0
      03F0: enable_text_draw 1   
      045A: draw_text_1number 5.0 5.0 GXT 'NUMBER' number 32@
      045A: draw_text_1number 5.0 20.0 GXT 'NUMBER' number 33@
end      
Код будет выводить значения переменных на экран.
 
d88Дата: Воскресенье, 24.01.2010, 08:36 | Сообщение # 68
Группа: Проверенные
Сообщений: 113
Статус: Offline
Я всё правильно понял, тем более я это уже слышал. Просто я имел ввиду что результат тот же – можно ждать когда 32@ станет равно 10000, а можно просто поставить wait 10000.
Но если ты говоришь что в любой момент можно приравнять 32@ к 0, то это другое дело, надо попробовать.


Сообщение отредактировал d88 - Воскресенье, 24.01.2010, 08:41
 
Gans[64]Дата: Воскресенье, 24.01.2010, 11:43 | Сообщение # 69
Группа: Проверенные
Сообщений: 8
Статус: Offline
Den_spb, а если в 32@ или 33@ записать актера или транспорт, с ним ничего не будет?
 
Den_spbДата: Воскресенье, 24.01.2010, 13:18 | Сообщение # 70
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (d88)
Я всё правильно понял, тем более я это уже слышал. Просто я имел ввиду что результат тот же – можно ждать когда 32@ станет равно 10000, а можно просто поставить wait 10000. Но если ты говоришь что в любой момент можно приравнять 32@ к 0, то это другое дело, надо попробовать.
wait - это просто остановка скрипта. В тех случаях, когда wait использовать нельзя, применяют таймеры. В таймер можно записать 0 или любое целое число.
Quote (Gans|64|)
Den_spb, а если в 32@ или 33@ записать актера или транспорт, с ним ничего не будет?
Указатель на актера/транспорт/объект - это целое число. Записать его в 32@ или 33@ можно (игра не вылетит), но только в этом нет смысла, т.к. значения, записанные в таймеры, непрерывно изменяются (увеличиваются). По изменённому указателю обратиться к данному транспорту или актёру не получится, а старый указатель будет уже удалён из переменной.
 
d88Дата: Понедельник, 25.01.2010, 13:23 | Сообщение # 71
Группа: Проверенные
Сообщений: 113
Статус: Offline
Den_spb, я где-то видил на форуме (вроде s4g) ты давал какой-то код для источника света. Я тогда его опробовал, но ничего не было, ты не мог бы объяснить как им пользоваться?
 
Den_spbДата: Понедельник, 25.01.2010, 15:05 | Сообщение # 72
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Есть 2 опкода: первый создаёт корону, которая является видимым объектом, но не ничего не освещает; второй создаёт свет в точке. Чтобы сделать скриптом полноценный источник света, нужно воспользоваться обоими командами. Корона и источник света существуют очень короткое время, поэтому команды надо применять постоянно. Пример - создадим источник света у гаража СФ:
Code
{$CLEO}
wait 0
while true
      wait 0
      09E5: create_flash_light_at -2015.9216 144.8292 28.0 RGB_mask 0 0 255 radius 50.0   
      024F: create_corona_with_radius 0.7 type 1 lensflares 0 with_color 0 0 255 at -2015.9216 144.8292 28.0 // есть опкод-аналог - 04D5
end
Параметры: координаты, цвета в формате RGB, radius - размер, type в опкоде короны - тип текстуры короны (1-уличный фонарь, 2-Луна и т.д.), lensflares - не знаю (пробовал менять с 0 на 1 - разницы не заметил).
 
Den_spbДата: Вторник, 26.01.2010, 11:49 | Сообщение # 73
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Уточнение по вопросу:
Quote
Den_spb, а если в 32@ или 33@ записать актера или транспорт, с ним ничего не будет?
Удаления сведений о машине или актерё (remove references) не произойдет, но и обратиться по данной переменной будет нельзя, т.к. значение в ней будет изменено.
 
d88Дата: Понедельник, 01.02.2010, 10:16 | Сообщение # 74
Группа: Проверенные
Сообщений: 113
Статус: Offline
Как сделать чтоб актёр сидя на пассажирском месте стрелял в других актёров?
 
Den_spbДата: Понедельник, 01.02.2010, 11:11 | Сообщение # 75
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Честно говоря, не интересовался данным вопросом. Но судя по этому коду: http://sannybuilder.com/forums/viewtopic.php?id=125 надо использовать 0713.
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: