Дата: Суббота, 20.02.2010, 23:21 | Сообщение # 107
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
А сработает ли такое? Если я создам обьект (доску или что-то такое), установлю её горизонтально, потом сделаю проверку находится ли СиДжей в том месте, заставлю обьект подниматься...
Дата: Четверг, 04.03.2010, 00:15 | Сообщение # 111
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
А так вылет
Цикл в данном случае выполнится только один раз, т.к. игрок существует. После этого выполнение кода перейдёт на команду end_thread и игра вылетит (в клео надо завершать код командой 0a93: , а не end_thread)
Дата: Пятница, 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
Дата: Пятница, 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@ и поверхностью?
Дата: Пятница, 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 с пулемётом" - там миниган прикрепляется к броневику в соответствии с позицией камеры.
Дата: Суббота, 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
Дата: Суббота, 06.03.2010, 20:42 | Сообщение # 117
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Понятно... Я просто ищу опкод чтобы делать зум... Но я так думаю, тут не опкод нужен, а изменение координат камеры (что-то типо $X += 50.0). И ещё один вопрос: Не мог бы ты сказать, как сделать, чтоб тектсуры постоянно плавно менялись... Например, есть у меня три текстуры и надо чтоб полсекунды показывалась первая, потом полс вторая, ... и третья, и потом опять первая (цикл). (Я пользуюсь опкодом 03F0, но в таком случае текстуры "мигают")
Сообщение отредактировал DK22Pac - Суббота, 06.03.2010, 21:07
Дата: Суббота, 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
Дата: Суббота, 06.03.2010, 22:35 | Сообщение # 119
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
Ты видимо wait используешь, а он здесь не подходит, т.к. останавливать работу скрипта нельзя - текстуры должны выводиться постоянно. Для решения задачи надо воспользоваться одним из двух таймеров (переменная 32@ или 33@):
Экран тупо заполняется текстурами, пока их станет очень миого и игра вылетает
Дата: Суббота, 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