Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
(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 16 points
384

Doom Rate: 2.09

Posts quality: +85
Ссылка на пост №122 Отправлено: 07.09.09 13:01:28
Нет. Да и зачем использовать дум ин дум формат в гоззе?
3
Гость


Ссылка на пост №123 Отправлено: 07.09.09 13:53:34
А я не для гоззы делаю а для Z doom

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

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

Doom Rate: 2.09

Posts quality: +85
Ссылка на пост №124 Отправлено: 07.09.09 14:23:39

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


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

Ты прав

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

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

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
UAC Sergeant Major
Next rank: Chief Petty Officer after 54 points
796

Doom Rate: 1.92

Posts quality: +5
Ссылка на пост №127 Отправлено: 26.09.09 13:41:50
Забавный вопрос - а разве скрипт не выполнит следующий иф сразу же?



Glass = 2;
if (Glass == 2)
{
1 1
Manul12
- Warrant Officer -
Next rank: = Warrant Officer = after 40 points
1100

Doom Rate: 0.95

Posts quality: +428
Ссылка на пост №128 Отправлено: 26.09.09 13:55:12
Да, по-моему тут нужен else if.
2 5 1
Cherepoc
= Sergeant =
Next rank: - Master Sergeant - after 16 points
384

Doom Rate: 2.09

Posts quality: +85
Ссылка на пост №129 Отправлено: 26.09.09 15:22:19
тут нужен switch
3
Dragon
= Sergeant Major =
Next rank: UAC Sergeant Major after 14 points
666

Doom Rate: 2.12

Posts quality: +4
Ссылка на пост №130 Отправлено: 26.09.09 17:13:55
nprotect:
можно еще спавн осколков прописать Smile

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

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

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

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

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

Ссылка на пост №131 Отправлено: 26.09.09 17:17:02
Cherepoc:
оффтоп: это только у меня исчезли смайлы? или у других тоже?

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

Doom Rate: 0.95

Posts quality: +428
Ссылка на пост №132 Отправлено: 26.09.09 17:17:29

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

А ты попробуй свой скрипт, с одного получится - иф неправильно прописан.
2 5 1
Герр Смертоносец
Chief Petty Officer
Next rank: Chief Petty Officer after 63 points
877

Doom Rate: 1.29

Posts quality: +785
Ссылка на пост №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")
2
Nil
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 127 points
1513

Doom Rate: 2.31

Posts quality: +63
Ссылка на пост №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
Герр Смертоносец
Chief Petty Officer
Next rank: Chief Petty Officer after 63 points
877

Doom Rate: 1.29

Posts quality: +785
Ссылка на пост №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. При активации скрипта пишет, что скрипт не найден. ЧЯДНТ?
2
nprotect
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 97 points
1343

Doom Rate: 2.45

Ссылка на пост №136 Отправлено: 29.09.09 18:31:46
Герр Смертоносец:
Хмм. Поставил между маркерами A_START и A_END файл "meinlib", в котором напейсал для теста

откомпили его через SlumpEd например. назови meinlib (будет байтовая матрица). а сам текст - например meinacs. и оба их между маркерами засунь. в ЛОАДАКС менять ничего не надо
1 2 1
Герр Смертоносец
Chief Petty Officer
Next rank: Chief Petty Officer after 63 points
877

Doom Rate: 1.29

Posts quality: +785
Ссылка на пост №137 Отправлено: 29.09.09 19:50:32
nprotect
Лол, а чем его еще можно скомпилить? Добрый SlumpEd запросил acc.exe, а потом выдал синий экран смерти. х)

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

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 34 points
256

Doom Rate: 1.82

Posts quality: +5
Ссылка на пост №139 Отправлено: 26.10.09 10:54:03
Скажите, пожалуйста. Можно в Гоззе сделать так,чтобы над монстрами были видны их оставшиеся жизни? И можно ли сделать так,чтобы игрок видел, сколько воздуха осталось, когда он находится под водой?
Arsenikum
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 14 points
1276

Doom Rate: 1.54

Posts quality: +29
Ссылка на пост №140 Отправлено: 26.10.09 12:26:58
HellDoomer 666

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