Главная Мой профиль Регистрация Выход Вход
[MOD] Modificators of DooM
Четверг
21.9.2017
07:58
Приветствую Вас Гражданский | RSS ВходРегистрацияГлавная
Меню сайта
Категории раздела
Мои статьи [3]
Мини-чат
Опросик =)
Оцените сайт
Всего ответов: 17
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
ВХОД
Главная » Статьи » Мои статьи

Про вызов скриптов в декорейте
Итак, ковыряясь в своем моде, я обнаружил интересную вещь.
Допустим, у нас есть такой актор:
Code
actor somebody : ZombieMan replaces ZombieMan //вместо зомбимена
{
states
{
spawn:
  TNT1 A 0  
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(2) == 123,"xdeath") //если скрипт 2 вернул "1", то зомби "разрывается"...
  goto death //...иначе - просто подыхает
}
}

И, соответственно, скрипт:

Code
int a;
script 1 ENTER //при входе игрока на уровень
{
a = 123;
}
script 2 (void) //наш скрипт
{
SetResultValue(a); //возвращаем a
}

По идее, зомби должен "сделать мясо". :d Но вместо этого он дохнет, как обычно.
А теперь модифицируем актора:
Code

...
states
{
spawn:
  TNT1 A 0
  TNT1 A 1 //добавили кадр ненулевой длинны
  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(2) == 123,"xdeath")
  goto death
}

Вот теперь все в порядке.
Фишка в том, что (G)Zdoom обрабатывает акторов в начале уровня, пока не остановится на кадре ненулевой длинны. Потом он будет ждать обработки остальных акторов и скрипта ENTER, и только потом продолжит "хождение по акторам".
Только имейте в виду, что, используя такой способ, могут быть проблемы со статистикой по уровню (количество монстров).
Категория: Мои статьи | Добавил: [MOD]bed_intruder (19.10.2010)
Просмотров: 317 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
1  
Интересная инфа, только мало.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
Наш банер

Copyright [MOD]© 2017
Создать бесплатный сайт с uCoz