Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 196, 197, 198 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
Archi]ASTS[
UAC General
Next rank: Unavailable after 0 points
12719

Doom Rate: 1.87
Ссылка на пост №3921 Отправлено: 11.08.12 08:51:16
2 1 1
Ameba
- Major -
Next rank: = Major = after 103 points
2837

Doom Rate: 2.32
Ссылка на пост №3922 Отправлено: 11.08.12 09:42:51
Archi
Спасибо.
2 1 1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №3923 Отправлено: 11.08.12 10:52:52
Igror :
2. Как сделать перезарядку оружиям на кнопку (а не по истечению патронов)?


Выделяешь клавишу перезарядки в лампе KEYCONF.
А именно:

addkeysection "My Mod Section" My_Mod

addmenukey "Reload" +reload
alias +reload "use ReloadActive"
alias -reload "use ReloadDeactive"
defaultbind r +reload


Смысл:
Мы выделили отдельную секцию в меню клавиш (addkeysection "My Mod Section" My_Mod) и добавили в эту секцию свою собственную клавишу(addmenukey "Reload" +reload).

Вот эти две строки:
alias +reload "use ReloadActive"
alias -reload "use ReloadDeactive"

отвечают за поведение нашей клавиши при её нажатии и ненажатии, а именно - когда наша клавиша нажата, то выполняется alias +reload "use ReloadActive", а когда не нажата, то выполняется alias -reload "use ReloadDeactive.

Теперь по подробнее о этих двух строках.
use ReloadActive - активируется итем ReloadActive. В этом итеме у нас следующая конструкция:

Actor ReloadActive : CustomInventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
-INVBAR
States
{
Use:
TNT1 A 0 A_GiveInventory("Reload",1)
Fail
}
}
Как видно это кастомная инвентория, и при активации онной выдаётся у нас другая инвентория(Reload) , только простая ибо она только для проверки значения.

use ReloadDeactive - активируется тоже итем. Вот его конструкция:

Actor ReloadDeactive : CustomInventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
-INVBAR
States
{
Use:
TNT1 A 0 A_TakeInventory("Reload",1)
Fail
}
}

Тоже кастомная инвентория, только она отнимает у нас Reload.

Сам Reload наконец:

Actor Reload : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
-INVBAR
}

И так смысл всего этого текста:
Как я писал выше, когда мы жамкаем клавишу перезарядки, то выполняется alias +reload "use ReloadActive", а когда не жамкаем, то выполняется alias -reload "use ReloadDeactive".
В оружии в стейте Ready тебе нужно будет проверять значение инвентории Reload, через A_JumpIfInventory. Например A_JumpIfInventory("Reload", 1, "Reload")
Под самый конец - чтобы эта байда работала, нужно менять плеер класс, а именно выдать при старте игры 2 итема: ReloadActive и ReloadDeactive.
Player.StartItem ReloadActive
Player.StartItem ReloadDeactive

Вроде всё.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3924 Отправлено: 11.08.12 17:59:56
Как сделать звук, проигрывающийся по всему уровню на полной громкости, но только один раз?
AmbiendSound дает бесконечный луп.
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3925 Отправлено: 11.08.12 20:25:47
ActivatorSound?.. И даже по всему уровню не надо тогда. В любом случае услышишь.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3926 Отправлено: 11.08.12 21:07:39
Black Samurai
Надо чтобы все игроки слышали.
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3927 Отправлено: 11.08.12 21:37:45
http://zdoom.org/wiki/AmbientSound
Где ты там увидел бесконечный луп, не знаю. В статье написано, что приведенный пример даёт один звук.

Возможно у тебя в SNDINFO указан повтор.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3928 Отправлено: 11.08.12 22:27:54
Black Samurai :
Где ты там увидел бесконечный луп

Попробовал, блеать!
Black Samurai :
Возможно у тебя в SNDINFO указан повтор.

$random piano { piano1 piano2 piano3 }
piano1      dspiano1
piano2      dspiano2
piano3      dspiano3
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3929 Отправлено: 12.08.12 00:16:03
УМВР: http://rghost.ru/39732469
Ты что-то делаешь неправильно, Флобут.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3930 Отправлено: 12.08.12 01:01:46
Black Samurai
НР: http://rghost.ru/39732942
Я все делаю так же, Блок Сомураи.
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3931 Отправлено: 12.08.12 02:01:07
Нет, не так. Я проигрываю звук в внутреннем формате DooM, а ты проигрываешь WAV. Попробуй конвертнуть в другой формат, поможет (мне помогло).
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3932 Отправлено: 12.08.12 02:59:52
Black Samurai
Огромное спасибо, теперь все играет :)
Никогда бы не подумал, что формат файла имеет какую-то роль.

Добавлено спустя 18 часов 33 минуты 39 секунд:

Как сделать счетчик убийств одного игрока отдельно от остальных?
То есть чтобы скрипт сканировал, сколько убийств сделал один отдельный игрок (и показывал это число), а потом сканировал убийства всех остальных кроме него (и это тоже показывал)?
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3933 Отправлено: 12.08.12 23:48:17
Делаешь массив из 64(?, вроде максимум) int'ов, дальше по номеру игрока записываешь. При выходе игрока не забудь обнулять только. Или сделай два int'а и записывай убийства в первый или второй в зависимости от игрока, который умер.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3934 Отправлено: 13.08.12 00:38:34
Black Samurai :
массив

Аэыэ?!
Black Samurai :
сделай два int'а и записывай убийства в первый или второй в зависимости от игрока, который умер

Что-то я не понимаю ©, а как тогда игра узнает, убил один игрок или другой?
Igror
= Corporal =
Next rank: - Lance Corporal - after 22 points
108

Doom Rate: 1.89
Ссылка на пост №3935 Отправлено: 13.08.12 15:59:25
Возможно ли сделать такой предмет (из инвентаря), который будет работать на виду игрока при активации (достается, используется, убирается и меняется на предыдущее оружие).
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3936 Отправлено: 13.08.12 17:04:18
FLYBAT :
Аэыэ?!

http://zdoom.org/wiki/Arrays

FLYBAT :
Что-то я не понимаю ©, а как тогда игра узнает, убил один игрок или другой?

Ну вот смотри, если убит не этот другой игрок, значит он сам убил кого-то.

Igror :
Возможно ли сделать такой предмет (из инвентаря), который будет работать на виду игрока при активации (достается, используется, убирается и меняется на предыдущее оружие).

Syntax error at line 0 near "на виду игрока".
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3937 Отправлено: 13.08.12 17:36:31
Black Samurai :
Ну вот смотри, если убит не этот другой игрок, значит он сам убил кого-то.

Нихера не понял

Black Samurai :
Syntax error at line 0 near "на виду игрока".

XD

Script "Using na vidu igroka"
{
if (GetPlayerInput (use))
{
TakeInventory(%item%);
GiveInventory("Using%item%");
PlayUsingAnimation(once,tillend);
TakeInventory("Using%item%");
}
else
{
Delay(sekunda/4);
loop;
}
} :ha:

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

Короче я сделал так:


Death:
PLAY # # A_GiveToTarget("Kill",1)



Script 3 Death
{
if(CheckInventory("EliminatorToken") == 1)
{
AmbientSound("win", 127);
SetPlayerProperty(1,1,PROP_TOTALLYFROZEN);
SetFont("BIGFONT");
HUDMessageBold(n:randomplayervariable + 1, s:" LOST!"; HUDMSG_PLAIN, 0, CR_WHITE, 0.5, 0.1, 0);
Delay(35*3);
SetFont("CONSOLEFONT");
HUDMessageBold(s:"Total deaths:"; HUDMSG_PLAIN, 0, CR_RED, 0.5, 0.2, 0);
Delay(35);
HUDMessageBold(d:kills; HUDMSG_PLAIN, 0, CR_WHITE, 0.5, 0.225, 0);
Delay(70);
HUDMessageBold(s:"Eliminator kills:"; HUDMSG_PLAIN, 0, CR_RED, 0.5, 0.3, 0);
Delay(35);
HUDMessageBold(d:(CheckActorInventory(randomplayervariable,"Kill")), s: " out of ", d:kills; HUDMSG_PLAIN, 0, CR_WHITE, 0.5, 0.325, 0);
Delay(70);
SetPlayerProperty(1,0,PROP_TOTALLYFROZEN);
Exit_Normal(0);
}


Не работает! При выигрыше/проигрыше Eliminator'а показывает "0 out of #".
Что не так?
Black Samurai
Banned flooder
106

Doom Rate: 1.39
Ссылка на пост №3938 Отправлено: 13.08.12 23:40:01
FLYBAT :
Нихера не понял

Я забыл, что невинные между собой ещё дерутся.

http://zdoom.org/wiki/SetActivatorToTarget

If the tid referenced is something that has died, the new activator is its killer.
Jurijus
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 0.16
Ссылка на пост №3939 Отправлено: 14.08.12 00:54:39
Black Samurai
Спасибо. Похоже, эту функцию можно как-то использовать.

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

Все равно показывает 0 out of #.

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

HELL YEAH!
Все работает, спасибо :)
c4tnt
= 1st Lieutenant =
Next rank: - Captain - after 211 points
1879

Doom Rate: 1.92
Ссылка на пост №3940 Отправлено: 14.08.12 05:26:32

Похоже, эту функцию можно как-то использовать.


хм... ну я ж писал про это чуть выше. В общем вызываешь эту функцию в death скрипте и с этого момента у скрипта активатор больше не умерший игрок, а тот, кто его убил. После этого желательно сделать ещё это: http://zdoom.org/wiki/ClassifyActor чтобы убедиться, что активатор не стал картой (да, некоторые штуковины на карте тоже убивают плееров). После этого всё, что будет вызвано в скрипте с тидом 0 (для активатора), достанется уже не самому убитому плееру, а тому, кто его убил. В частности, можно проверить его тид, сравнить с тидом злодея и делать выводы.
1 1
Страница 197 из 352Перейти наверх Пред.  1, 2, 3 ... 196, 197, 198 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!