Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
(G)ZDOOM - основы скриптинга Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
   Список разделов - Флуд и устаревшие темы - (G)ZDOOM - основы скриптингаОтветить
АвторСообщение
Гость


Ссылка на пост №121 Отправлено: 07.09.09 12:40:53

Можно ли в Doom in Doom format сделать в конце вада видеоролик? :book:
Cherepoc
= Sergeant =
Next rank: - Master Sergeant - after 32 points
468

Doom Rate: 1.92
Ссылка на пост №122 Отправлено: 07.09.09 13:01:28

Нет. Да и зачем использовать дум ин дум формат в гоззе?
Гость


Ссылка на пост №123 Отправлено: 07.09.09 13:53:34

А я не для гоззы делаю а для Z doom

Добавлено спустя 27 минут 5 секунд:

А как сделать так чтоб в начале уровня из оружия был только кулак?
Cherepoc
= Sergeant =
Next rank: - Master Sergeant - after 32 points
468

Doom Rate: 1.92
Ссылка на пост №124 Отправлено: 07.09.09 14:23:39


А я не для гоззы делаю а для Z doom
один фиг
Гость


Ссылка на пост №125 Отправлено: 07.09.09 14:26:38

Cherepoc :
один фиг

Ты прав

Добавлено спустя 1 час 17 минут 58 секунд:

Кто нибудь подскажите. Я заменил в своём ваде Кибердемона на танк (немецкий) и мне интересно, как сделать так чтобы из кибра не текла кровь?
nprotect
- Colonel -
Next rank: = Colonel = after 47 points
2413

Doom Rate: 2.45
Ссылка на пост №126 Отправлено: 07.09.09 16:55:50

Slavius :
Кто нибудь подскажите. Я заменил в своём ваде Кибердемона на танк (немецкий) и мне интересно, как сделать так чтобы из кибра не текла кровь?

+NOBLOOD


опережая вопросы "КУДА ЭТО ПИСАТЬ?" - читай темы про XWE и декорейт

http://i.iddqd.ru/viewtopic.php?t=130
http://i.iddqd.ru/viewtopic.php?t=154
http://i.iddqd.ru/viewtopic.php?t=1879
1 2 1
c4tnt
Chief Petty Officer
Next rank: Chief Petty Officer after 56 points
934

Doom Rate: 2.13
Ссылка на пост №127 Отправлено: 26.09.09 13:41:50

Забавный вопрос - а разве скрипт не выполнит следующий иф сразу же?



Glass = 2;
if (Glass == 2)
{
1
Grue13
- Warrant Officer -
Next rank: = Warrant Officer = after 62 points
1098

Doom Rate: 1.08
Ссылка на пост №128 Отправлено: 26.09.09 13:55:12

Да, по-моему тут нужен else if.
2 5 1
Cherepoc
= Sergeant =
Next rank: - Master Sergeant - after 32 points
468

Doom Rate: 1.92
Ссылка на пост №129 Отправлено: 26.09.09 15:22:19

тут нужен switch
Dragon
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 92 points
1348

Doom Rate: 2.32
Ссылка на пост №130 Отправлено: 26.09.09 17:13:55

nprotect :
можно еще спавн осколков прописать Smile

и кстати, во втором скрипте блокинг убирать разве не надо с линии?

1)я и так много чего написал. пусть сам думает)
2)упс, забыл
c4tnt :
Забавный вопрос - а разве скрипт не выполнит следующий иф сразу же?

там фича: стекло ломается не с одного выстрела. нужно несколько ко раз стрельнуть что бы оно разломалось.

Добавлено спустя 52 секунды:

оффтоп: это только у меня исчезли смайлы? или у других тоже?
1
Монолит
Гость

Ссылка на пост №131 Отправлено: 26.09.09 17:17:02

Cherepoc :
оффтоп: это только у меня исчезли смайлы? или у других тоже?

оффтоп: у меня есть смайлы
Grue13
- Warrant Officer -
Next rank: = Warrant Officer = after 62 points
1098

Doom Rate: 1.08
Ссылка на пост №132 Отправлено: 26.09.09 17:17:29


там фича: стекло ломается не с одного выстрела. нужно несколько ко раз стрельнуть что бы оно разломалось.

А ты попробуй свой скрипт, с одного получится - иф неправильно прописан.
2 5 1
Герр Смертоносец
Читатель

Doom Rate: 1
Ссылка на пост №133 Отправлено: 29.09.09 14:52:40

Господа, вопрос. В декорейте я уже более-менее извращаться наловчился, а вот со скриптами пока не очень.

Требуется сделать weapon, влияющий на поведение неограниченного количества определенных монстров. Работать это должно через независимую глобальную переменную. Т.е. у монстров в каждом стате двойной набор описания, разделяемых Jumpif-ом.
Например:

  See:
    FATT A 0 A_JumpIf(переменная == 1, 13)
    FATT AABBCCDDEEFF 4 A_Chase
    loop
    FATT AABBCCDDEEFF 4 A_FastChase
    loop


Соответственно, у оружия два варианта присвоения переменной значений. Как это делается с точки зрения синтаксиса, я не знаю (понятно, что в декорейте должен стоять только номер скрипта, сам скрипт прописывается отдельно), но суть примерно поймете:


  Fire:
    WEAP A 1 ACS_Execute("переменная:=0")
    Goto Ready
  Altfire:
    WEAP A 1 ACS_Execute("переменная:=1")
    Goto Ready


Итак, вопросы следующие:
1) Скрипты для каждой карты индивидуальные, это я понял. Возможно ли в принципе создание универсальных скриптов, не зависящих от карты, и как это делается?
2) Собственно, как скриптом создавать и изменять эту левую переменную? И сколько их вообще можно насоздавать, ибо в дремучем zdoom-wiki я что-то накопал, что не более трех.
3) Возможно ли повесить выполнение скриптов не на статы декорейтного оружия, а непосредственно на клавиатурные кнопки, прописав это в KEYCONF?
Наподобие:

addkeysection "Extrakeys" Extrakeys                   
addmenukey "Action1" Action1                   
alias Action1 ACS_Execute("переменная:=0")
addmenukey "Action2" Action2                   
alias Action1 ACS_Execute("переменная:=1")
Nil
= Commissar =
Next rank: - UAC Commissar - after 18 points
2842

Doom Rate: 2.34
Ссылка на пост №134 Отправлено: 29.09.09 16:05:09

Герр Смертоносец
http://zdoom.org/wiki/DECORATE_expressions - тебе нужны args[0] - args[4]. В новых версиях будет ещё и uservar[0] - uservar[9], но пока в стабильных релизах этого нет.
Глобальные скрипты делаются при помощи библиотек.
http://zdoom.org/wiki/Library
http://zdoom.org/wiki/LOADACS
изменять args можно при помоши A_setspecial (работает и на карте, и в acs и в Decorate) или SetThingSpecial (работает только в ACS). итак, доступ к args[] такой :
В декорейте можно читать с помощью args[], писать с помощью A_setspecial (вот тут есть ограничение, только первые 3 переменные можно изменить, т.е. args[0] - args[2], есть ещё A_SetArg, но не в стабильной версии
В ACS можно писать с помощью SetThingSpecial, А вот с чтением хуже. ЧИТАТЬ ПРЯМО НЕЛЬЗЯ. Можно получить args[] в качестве параметра функции из ACS_Execute(x,0,args[0],args[1],args[2],args[3],args[4]) - теперь в скрипте x мы получим доступ к значениям args[]. Однако если нам надо в ACS проверить значения args[], то этого мы никак сделать не сможем! куцый вариант - использовать http://zdoom.org/wiki/SetActorState, но прыгнув в стейт и вызвав в этом стейте ACS_Execute(), мы не сможем вернутся обратно в стейт, из которого мы выпрыгнули! можно конечно, например, в args[4] хранить переменную, показывающую, куда нужно вернутся, но это нудно и приведёт к падению производительности. GetThingSpecial не существует потому, что ренди не хочет, чтобы эта функция существовала. он бох, ему виднее.
1 2 1
Герр Смертоносец
Читатель

Doom Rate: 1
Ссылка на пост №135 Отправлено: 29.09.09 18:03:32

Nil
Хмм. Поставил между маркерами A_START и A_END файл "meinlib", в котором напейсал для теста:

#library "meinlib"
#include "zcommon.acs"

Script 300 open
{
      giveinventory("RocketAmmo", 2);
}

Вне маркеров поставил файл "loadacs", в котором напейсал meinlib. При активации скрипта пишет, что скрипт не найден. ЧЯДНТ?
nprotect
- Colonel -
Next rank: = Colonel = after 47 points
2413

Doom Rate: 2.45
Ссылка на пост №136 Отправлено: 29.09.09 18:31:46

Герр Смертоносец :
Хмм. Поставил между маркерами A_START и A_END файл "meinlib", в котором напейсал для теста

откомпили его через SlumpEd например. назови meinlib (будет байтовая матрица). а сам текст - например meinacs. и оба их между маркерами засунь. в ЛОАДАКС менять ничего не надо
1 2 1
Герр Смертоносец
Читатель

Doom Rate: 1
Ссылка на пост №137 Отправлено: 29.09.09 19:50:32

nprotect
Лол, а чем его еще можно скомпилить? Добрый SlumpEd запросил acc.exe, а потом выдал синий экран смерти. х)

Алсо, заморочки с переменными решил элегантным образом. Через A_Jumpifinventory и выдачу/отдачу в монстровый инвентарь левых итемов.
Теперь осталось понять, как обеспечить скриптовую выдачу итема через GiveActorInventory всем монстрам определенного типа.
nprotect
- Colonel -
Next rank: = Colonel = after 47 points
2413

Doom Rate: 2.45
Ссылка на пост №138 Отправлено: 29.09.09 19:55:14

Герр Смертоносец :
Лол, а чем его еще можно скомпилить? Добрый SlumpEd запросил acc.exe, а потом выдал синий экран смерти. х)

например тем же acc напрямую. я обычно так и делаю. и лолкать не надо, глупо уже выглядит
1 2 1
HellDoomer 666
= Master Corporal =
Next rank: - Sergeant - after 26 points
364

Doom Rate: 1.54
Ссылка на пост №139 Отправлено: 26.10.09 10:54:03

Скажите, пожалуйста. Можно в Гоззе сделать так,чтобы над монстрами были видны их оставшиеся жизни? И можно ли сделать так,чтобы игрок видел, сколько воздуха осталось, когда он находится под водой?
Arsenikum
= 1st Lieutenant =
Next rank: - Captain - after 56 points
1584

Doom Rate: 1.48
Ссылка на пост №140 Отправлено: 26.10.09 12:26:58

HellDoomer 666

Насчет запасов воздуха: функция GetAirSupply появится в поздних версиях здума.
Насчет оставшихся жизней - ищи мод Bittersweet by LilWhiteMouse. Там есть очень замороченные скрипты касательно полосок жизни, а также генерации "рандомного" уровня и проч.
3 1
Страница 7 из 8Перейти наверх Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
   Список разделов - Флуд и устаревшие темы - (G)ZDOOM - основы скриптинга

Игнор-лист
© iddqd.ru