c4tnt
Это можно проверить, используя большой цикл и замеры времени с помощью Timer()
Кто знает, как в скрипте можно проверить наличие у игрока таких паверапов:
- Partial Invisibility
- Light Amplification Visor
- Radiation Suit
- Invulnerability
В документации zdoom как-то мутно сказано про это...
int CheckInventory(str inventory_item);
Checks the inventory of the actor who activated the script for the item specified by inventory_item. The function will return the number of items the actor carries.
Keep in mind that for active powerups, you cannot check for the pickup item. You have to check for the internal Powerup item.
Какой нафиг "internal Powerup item"? Это что такое? Встроенная переменная?
c4tnt, очень сильно сомневаюсь, если не лень, засунь в циклс с print(i:i++) и посмотри, какой из вариантов быстрее заглохнет. Хотя, возможно, придётся метод похитрее придумать.
c4tnt
Можно использовать развёрнутый цикл, чтобы уменьшить кол-во прогонов цикла (записав скажем, не 65536, а всего 6553):
Развертка цикла - это когда ты внутри него записываешь много одинаковых операторов подряд:
У тебя есть вариант с умножением и вариант со сдвигом.
Правда, нет способа узнать счетчик цикла после того, как сработал runaway... но если счетчик - это глобальная переменная... (!)
быстрее глохнет вариант со сдвигами, там опкодов очевидно больше. Видимо такая оптимизация в скриптах всё же не имеет смысла, только ранэвей раньше наступает. А теперь более интересный вопрос - по какому принципу в скриптовых библиотеках перемаркируются строки. Суть в том, что
str cursorsprite = "SKULLA0" у меня не скартировался и курсор отвалился как только на карте появился свой ACS кроме библиотеки. Зато скартировался массив с числами, это было ещё веселее.
Спасибо конечно, но я это все видел и собственно об этом и писал... Я все уже создал - я только не могу направить новый куб в нужную мне точку (при этом оригинальный куб должен быть на месте и лететь как всегда).
VladGuardian :
класс BossTarget D2-вский (не zdoom)
Вот это я вообще не понял... Т.е. в Zdoom я не могу этого сделать не меняя оригинал из DOOM2 ?
YURA_111
Сделай свой кубик монстром и сделай монстра-невидимку, не наносящего урона и не имеющего скорости. Монстра невидимку поставь туда, куда должен лететь кубик. Кубик сделай дружелюбным к тебе и с помощью Thing_Hate заставь его лететь к монстру-невидимке. Нужно сделать чтоб монстр-невидимка умирал только от атаки монстра-кубика и если он умрет, то выполнялся скрипт, который тебе нужен(и который будет убивать монстра-кубика). После смерти монстр-невидимка должен спавнить такого же монстра-невидимку. Монстру-кубику нужно в декоре сразу задать A_Wander.
Скрытый текст:
Spawn:
CUBE AB 10 A_Wander
loop
Спавнить кубомонстра через Thing_Spawn и обязательно с уникальным тагом. Короче я примерную схему объяснил - нюансы и прочую лабуду сам додумаешь.
c4tnt
Здесь больше вопрос что компилятор даст на выходе. декомпилировать и посмотреть. В целом да, чем больше опкодов тем медленее, однако если количество вдруг окажется одинаковым, будет играть роль и то, какие именно команды создались. В целом ACC как и любой другой компилятор что-то там внутри себя оптимизирует, получается не совсем то, что можно было-бы ожидать при варианте трансляции "в лоб".
Я сомневаюсь только потому, что ACC написан очень грязно (именно поэтому был начат проект doomscript, потому как доработать ACC практически невозможно, только заново переписать), поэтому что он сотворит, заранее неизвестно.
Берёшь любой редактор вадов. Кликаешь на ламп TEXTURE1. Ну и смотришь, что там да как. Можно создать текстуру, задать ей имя, добавить патч, подвигать патч, удалить патч.
Но гораздо проще работать с текстурами, состоящими из одного патча. Не надо возиться с номерами патчей, всегда можно что-то удалить без последствий.
Народ есть вопрос. Можно ли заставить звук выстрела крутиться по кругу? Так же второй вопрос - возможно ли заставить игрока выговаривать фразы в процессе стрельбы с этого оружия? Т.е. пока нажата клавиша стрельбы, игрок что то изредка выговаривает. При этом оружие должно ещё и стрелять. Кстати говоря эти обе фишки нужны в одном оружии мне. Если чё оружие - огнемёт.
Можно ли заставить звук выстрела крутиться по кругу?
Можно (http://zdoom.org/wiki/A_PlaySound) - существует A_PlaySound (string soundname[, int slot[, float volume[, bool looping[, float attenuation]]]]) здесь именно --bool looping-- отвечает за прокрутку звука по кругу. НО нужно будет и останавливать звук в нужное время - тут тебе понадобится A_StopSound (http://zdoom.org/wiki/A_StopSound)
LEX SAFONOV :
Так же второй вопрос - возможно ли заставить игрока выговаривать фразы в процессе стрельбы с этого оружия?
Можно и опять же - A_PlaySound
LEX SAFONOV :
Т.е. пока нажата клавиша стрельбы, игрок что то изредка выговаривает.
Если изредка, то нужно пользоваться A_Jump (http://zdoom.org/wiki/A_Jump) и создавать стэйт на который изредка будет перепрыгивать (ну ты понял)