Четверг, 18.04.2024, 14:46
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Вопросы по созданию КЛЕО-скриптов
d88Дата: Пятница, 19.02.2010, 10:31 | Сообщение # 106
Группа: Проверенные
Сообщений: 113
Статус: Offline
K@sTieL, да, просто этот скрипт я давно делал. В нём эта же проверка была и вначале. Теперь я подобного не делаю biggrin
 
DK22PacДата: Суббота, 20.02.2010, 23:21 | Сообщение # 107
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
А сработает ли такое?
Если я создам обьект (доску или что-то такое), установлю её горизонтально, потом сделаю проверку находится ли СиДжей в том месте, заставлю обьект подниматься...
 
Den_spbДата: Суббота, 20.02.2010, 23:59 | Сообщение # 108
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Так а в чём вопрос? Если непонятно, как переместить объект, то сделать это можно командой:
Code
034E: move_object 0@ to 1@ 2@ 3@ speed 13@ 16@ 19@ flag 1    
Если нужно вращать объект, то варианты такие:
Code
05A2: set_object 82@ rotation_velocity_about_an_axis $TEMPVAR_FLOAT_2 0.0 $TEMPVAR_FLOAT_1 through_center_of_mass  
05A1: set_object 225@(224@,15i) rotation_velocity_about_an_axis 0.0 151@ 0.0 through_center_of_body
 
d88Дата: Воскресенье, 21.02.2010, 09:55 | Сообщение # 109
Группа: Проверенные
Сообщений: 113
Статус: Offline
Den_spb, вроде есть код, который делает объект уничтожаемым, но не могу его найти.
 
DK22PacДата: Суббота, 27.02.2010, 16:53 | Сообщение # 110
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, спасибо.
d88,
Object.Indestructibility($GIRLDOORS[0]) = False

Добавлено (27.02.2010, 16:53)
---------------------------------------------
А как сделать чтобы последовальность анимаций повторялась несколько раз?


Это не действует - проигрывается постоянно последняя анимация

А так вылет


Сообщение отредактировал DK22Pac - Воскресенье, 21.02.2010, 11:22
 
Den_spbДата: Четверг, 04.03.2010, 00:15 | Сообщение # 111
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
А так вылет
Цикл в данном случае выполнится только один раз, т.к. игрок существует. После этого выполнение кода перейдёт на команду end_thread и игра вылетит (в клео надо завершать код командой 0a93: , а не end_thread)
 
d88Дата: Пятница, 05.03.2010, 13:18 | Сообщение # 112
Группа: Проверенные
Сообщений: 113
Статус: Offline
Quote (DK22Pac)
А как сделать чтобы последовальность анимаций повторялась несколько раз?

Кодом
0643: set_AS_pack 2@ loop 1
Если 1 – то пак анимаций повторяется, если 0 – не повторяется.
И лучше убрать jump @ANIMS5 и заменить на 0A93: end_custom_thread
 
DK22PacДата: Пятница, 05.03.2010, 21:38 | Сообщение # 113
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
т.к. игрок существует

Аййй забыл not
Quote (d88)
0643: set_AS_pack 2@ loop 1

А за это спасибо.
И вопрос:
Как сделать проверку на то, смотрит ли игрок(камера) в небо?
Можно как-то узнать угол между прямой с точками 1@ 2@ 3@ , 4@ 5@ 6@ и поверхностью?
 
Den_spbДата: Пятница, 05.03.2010, 22:35 | Сообщение # 114
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Как сделать проверку на то, смотрит ли игрок(камера) в небо? Можно как-то узнать угол между прямой с точками 1@ 2@ 3@ , 4@ 5@ 6@ и поверхностью?

Есть специальный опкод:
Code
0604: get_Z_angle_for_point 0@ 1@ store_to 2@

В немодифицированной игре он использовался для нахождения угла между отрезком, лежащим в горизонтальной плоскости, и направлением на север. Если в 0@ записать разницу x-координат (x-координата конца отрезка - x-координата начала отрезка), а в 1@ - разницу y-координат (y-координата конца отрезка - y-координата начала отрезка), то угол будет записан в 2@.
Этот опкод можно применить и для вычисления угла между прямой и горизонтальной поверхностью (угол будет получен в пределах 0-90 градусов). В 0@ нужно записать разницу z-координат (z-координата начала отрезка - z-координата конца отрезка), а в 1@ - расстояние между проекциями точек начала и конца отрезка на горизонтальную плоскость (воспользоваться опкодом 0509).
Для отыскания углов между прямыми есть и другой, менее удобный способ - разложение арксинуса в ряд. Оба способа я использовал в скрипте "Swatvan с пулемётом" - там миниган прикрепляется к броневику в соответствии с позицией камеры.
 
DK22PacДата: Суббота, 06.03.2010, 16:03 | Сообщение # 115
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
0604: get_Z_angle_for_point 0@ 1@ store_to 2@

Ну этим я займусь позже, а сейчас не мог бы ты рассказать о параметрах в этом опкоде?
0922: set_camera_zoom_in_factor 70.0 out_factor 100.0 timelimit 10000 mode 1
 
Den_spbДата: Суббота, 06.03.2010, 18:25 | Сообщение # 116
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Этим опкодом пользоваться не приходилось. Чтобы выяснить смысл параметров, можешь протестировать команду с различными значениями.
 
DK22PacДата: Суббота, 06.03.2010, 20:42 | Сообщение # 117
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Понятно... Я просто ищу опкод чтобы делать зум... Но я так думаю, тут не опкод нужен, а изменение координат камеры (что-то типо $X += 50.0).
И ещё один вопрос:
Не мог бы ты сказать, как сделать, чтоб тектсуры постоянно плавно менялись... Например, есть у меня три текстуры и надо чтоб полсекунды показывалась первая, потом полс вторая, ... и третья, и потом опять первая (цикл). (Я пользуюсь опкодом 03F0, но в таком случае текстуры "мигают")


Сообщение отредактировал DK22Pac - Суббота, 06.03.2010, 21:07
 
Den_spbДата: Суббота, 06.03.2010, 21:54 | Сообщение # 118
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Не мог бы ты сказать, как сделать, чтоб тектсуры постоянно плавно менялись... Например, есть у меня три текстуры и надо чтоб полсекунды показывалась первая, потом полс вторая, ... и третья, и потом опять первая (цикл). (Я пользуюсь опкодом 03F0, но в таком случае текстуры "мигают")

Ты видимо wait используешь, а он здесь не подходит, т.к. останавливать работу скрипта нельзя - текстуры должны выводиться постоянно. Для решения задачи надо воспользоваться одним из двух таймеров (переменная 32@ или 33@):
Code
32@ = 0 // сначала обнуляем таймер
while true
      wait 0
      if
          32@ > 1500 // если значение таймера больше 1,5 сек, то обнуляем
      then
          32@ = 0
      end
      if
          32@ < 500
      then
          // рисовать текстуру 1
      end
      if and
          32@ >= 500
          32@ < 1000
      then
          // рисовать текстуру 2
      end
      if
          32@ >= 1000
      then
          // рисовать текстуру 3
      end
end
 
DK22PacДата: Суббота, 06.03.2010, 22:35 | Сообщение # 119
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
Ты видимо wait используешь, а он здесь не подходит, т.к. останавливать работу скрипта нельзя - текстуры должны выводиться постоянно. Для решения задачи надо воспользоваться одним из двух таймеров (переменная 32@ или 33@):

Экран тупо заполняется текстурами, пока их станет очень миого и игра вылетает
 
Den_spbДата: Суббота, 06.03.2010, 23:08 | Сообщение # 120
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Ищи ошибку. У меня ничего не заполняется и не вылетает. Делал так:
Code
{$CLEO}
0390: load_txd_dictionary "OLDAIR"  
038F: load_texture "ASDDIAL" as 16 // Load dictionary with 0390 first  
038F: load_texture "ALDDIAL" as 19 // Load dictionary with 0390 first  
038F: load_texture "RADDIAL" as 20 // Load dictionary with 0390 first  
32@ = 0
while true
     wait 0
     if
         32@ > 1500
     then
         32@ = 0
     end
     if
         32@ < 500
     then
         03F0: enable_text_draw 1  
         038D: draw_texture 19 position 436.25 381.5 size 83.792 93.71 RGBA 255 255 255 255  
     end
     if and
         32@ >= 500
         32@ < 1000
     then
         03F0: enable_text_draw 1  
         038D: draw_texture 20 position 320.0 392.5 size 62.84 70.28 RGBA 255 255 255 255
     end
     if
         32@ > 1000
     then
         03F0: enable_text_draw 1   
         038D: draw_texture 16 position 203.75 381.5 size 83.792 93.71 RGBA 255 255 255 255  
     end
end
 
Форум » Игры серии ГТА » Скриптинг » Вопросы по созданию КЛЕО-скриптов (Вопросы по опкодам, кодингу и др.)
Поиск: