Дата: Четверг, 24.11.2011, 00:08 | Сообщение # 886
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (M@C$1MU$)
2. Как убрать корону или сделать её невидимой?
Корона существует в течение одного повтора игрового цикла. Поэтому для того, чтобы корона постоянно была видимой, её нужно создавать всё время (в цикле). А для того, чтобы корона больше не появлялась, нужно просто прекратить повторение выполнения команды создания короны.
Quote (M@C$1MU$)
1. Как поменять координаты короны? (мне нужно, чтобы она была в подвижном состоянии, а если точнее, то на определённом расстоянии по отношению к камере)
Как уже сказано, корона создаётся постоянно (в цикле). Надо каждый раз получать координаты камеры, затем производить необходимые вычисления для определения координат короны. Обновлённые координаты передаются в опкод создания короны при очередном её создании.
Дата: Четверг, 24.11.2011, 09:37 | Сообщение # 887
Группа: Пользователи
Сообщений: 2
Статус: Offline
Quote (Den_spb)
Корона существует в течение одного повтора игрового цикла. Поэтому для того, чтобы корона постоянно была видимой, её нужно создавать всё время (в цикле). А для того, чтобы корона больше не появлялась, нужно просто прекратить повторение выполнения команды создания короны. Как уже сказано, корона создаётся постоянно (в цикле). Надо каждый раз получать координаты камеры, затем производить необходимые вычисления для определения координат короны. Обновлённые координаты передаются в опкод создания короны при очередном её создании.
Большое спасибо за помощь и оперативность А, вот ещё один вопрос, почему я спрашивал про корону. Я пытаюсь сделать эффект солнечного блика как в GTA San Andreas на PS2. Всё запускается, игра работает, но проблема в том, что самого "блика" то нет:
Code
:PS2_SUNHAZE_117 wait 1 0454: useless_store_debug_camera_position_to 1@ 2@ 3@ (Запись координат для самого эффекта) 0454: useless_store_debug_camera_position_to 4@ 5@ 6@ (Запись координат для проверки на существование препятствий) 077E: get_active_interior_to 7@ 00BF: 8@ = current_time_hours, 9@ = current_time_minutes 0A8D: 10@ = read_memory 0xC81320 size 4 virtual_protect 0 (Чтение текущего ID'а погоды) jump @PS2_SUNHAZE_177
:PS2_SUNHAZE_177 wait 0 if and 8@ > 5 not 8@ > 6 else_jump @PS2_SUNHAZE_256 11@ = 1 jump @PS2_SUNHAZE_335
:PS2_SUNHAZE_256 wait 0 if and 8@ > 17 not 8@ > 18 else_jump @PS2_SUNHAZE_514 11@ = 2 jump @PS2_SUNHAZE_335
Дата: Четверг, 24.11.2011, 23:47 | Сообщение # 888
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Назначение команды wait - приостановка выполнения скрипта для возможности отработки остальных скриптов и нескриптовых процессов. Поэтому чем больше в коде wait-ов, тем медленнее будет работать скрипт. Это особенно критично при создании одноразовых объектов (короны и т.д.), которые могут просто перестать быть видимыми. В идеале в скрипте должен быть один wait.
Дата: Понедельник, 28.11.2011, 04:20 | Сообщение # 892
Группа: Пользователи
Сообщений: 8
Статус: Offline
привет всем!подскажите пожалуйста,как сделать,чтобы в определенной точке карты скрипт проигривал музыку и чтоб ее было слышно,скажем,в радиусе 50 метров от етой точки?Надо для скрипта типа Гулянка...Заранее спасибо...
Добавлено (28.11.2011, 04:20) --------------------------------------------- привет всем!подскажите пожалуйста,как сделать,чтобы в определенной точке карты скрипт проигривал музыку и чтоб ее было слышно,скажем,в радиусе 50 метров от етой точки?Надо для скрипта типа Гулянка...Заранее спасибо...
т.е. 11@ отвечает за перемещение по координате х, при том, сразу по двум сторонам и -, и +. Как сделать, чтобы она только по минусу перемещалась (только в левую сторону)? Как я понимаю, нужно отнимать от позиции 60.0 по Х значение которое отнялось от 11@, но как это подсчитать, если у меня полоска отвечает за здоровье педа и здоровье педа равно 1000?
Дата: Вторник, 29.11.2011, 17:22 | Сообщение # 900
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
11@ - это не перемещение, а размер текстуры по x (на рисунке - scale X). Чтобы положение левого края текстуры было неизменным, должно выполняться условие: Xposition = Xleft + Xscale/2.0, где Xscale - текущая длина полоски (здоровье педа, умноженное на определённое постоянное число). П.С. Полоска - это стандартная текстура игры, имеющая номер 0xFFFF. Т.е. выводить можно так: