Автор |
Сообщение |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 10.10.07 19:54:52 |
|
|
Ничего в MAPINFO писать не нужно, можно вставить в конец DEATH-стейта строчку вида:
WBO3 K 1 Exit_Normal(0)
Или этот самый Exit засунуть внутрь скрипта 4. |
|
|
| |
StasBFG[iddqd] -= DoomGod =-
| | 898 |
|
Отправлено: 10.10.07 20:34:40 |
|
|
Спасибо, работает! |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 27.10.07 13:10:31 |
|
|
Люди, что нужно сделать в декорейте, чтобы вместо какого-то одного типа предметов появлялся один из набора других? Ну типа как во многих модах один вид монстров случайным образом заменяется одним из нескольких новых. Мне такая штука нужна для патронов, типа чтобы 50% шанс на этом месте лежит один вид патронов, а 50% другой. Что-то я не могу додуматься. |
|
|
| |
StasBFG[iddqd] -= DoomGod =-
| | 898 |
|
Отправлено: 27.10.07 13:13:07 |
|
|
Вот простой пример из AEoD:
Actor ZombieManSpawner
{
+IsMonster
Radius 20
States
{
Spawn:
NULL A 0
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FZombieMan",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FatMinion",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FInvisibleGuy",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FQ2Soldier1",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("MSkeleton",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("SWNinja",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FFistMarine",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FQuakeDog",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FQuakeZombie",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FCultist2",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FArmoredGuy",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FPistolMarine",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FGrunt",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FBombRocketZombie",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FPlasmaZombie",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("OldCoot",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FGrenadeZombie",1)
Goto Death
NULL A 0 A_Jump(250,2)
NULL A 1 A_SpawnItem("FInvisibleGuy2",1)
Stop
NULL A 0
Goto Spawn
Death:
NULL A 0
Stop
}
}
actor ZombieManReplacer replaces ZombieMan
{
states {
Spawn:
TNT1 A 0
TNT1 A 0 A_UnsetSolid
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(778, 0, 0, 0), 5)
TNT1 A 0 A_Jump(128, 2)
TNT1 A 0 A_SpawnItem("ZombieManSpawner", 0, 0, 0, 0)
stop
TNT1 A 0 A_SpawnItem("ZombieManSpawner", 0, 0, 0, 0)
stop
TNT1 A 0 A_Jump(128, 2)
TNT1 A 0 A_SpawnItem("DeafZombieManSpawner", 0, 0, 0, 0)
stop
TNT1 A 0 A_SpawnItem("DeafZombieManSpawner", 0, 0, 0, 0)
stop
}
} |
Подробнее про A_Jump |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 27.10.07 13:18:07 |
|
|
StasBFG[iddqd]
Не, есть более простая версия, без АКС:
Actor ShellSpawner Replaces Shell
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(160,2)
TNT1 A 1 A_SpawnItem("NewShell",1,8)
Goto Death
TNT1 A 0 A_Jump(160,2)
TNT1 A 1 A_SpawnItem("MegaShell",1,8)
Goto Death
TNT1 A 0 A_Jump(160,2)
TNT1 A 1 A_SpawnItem("ClusterShell",1,8)
Goto Death
TNT1 A 1 A_SpawnItem("SilverShell",1,8)
Stop
Death:
TNT1 A 0
Stop
}
} |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 27.10.07 13:34:30 |
|
|
dukenator : | Не, есть более простая версия, без АКС |
ACS там вставлен совсем по другому поводу, поэтому между твоим вариантом и вариантом Стаса разницы нет никакой. |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 27.10.07 13:43:21 |
|
|
Guest
Ну дык я это и пишу для того, чтобы было ясно, что АКС тут ни при чем! |
|
|
| |
StasBFG[iddqd] -= DoomGod =-
| | 898 |
|
Отправлено: 27.10.07 14:18:24 |
|
|
ACS скрипт там лишний, его можно убрать |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 16:12:32 |
|
|
У меня есть АЕОД, и я это видел и понял, что скрипт ни при чем. Но не все смог понять. Впрочем, в данный момент как раз это мне не сильно важно.
Я заинтересовался particle-эффектами. Давно уже заинтересовался, но не знаю, как вообще их создавать? Как делать какие-нибудь лучевые атаки с партиклами не прибегая к обычному рейлгану?
Вопрос!
Какой-то странный косяк. Создал обычное оружие (последнее для мода, который я заканчиваю), а у него непонятный глюк - оно не атакует. То есть совсем. И еще, когда его выбираешь, больше сменить оружие нельзя. Никто не знает, в чем может быть ошибка? |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 29.10.07 19:20:32 |
|
|
zer0 : | Никто не знает, в чем может быть ошибка? |
В таких случаях надо вывешивать код своей пушки, чтобы народ смог определить - что там у тебя не так. |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 19:27:32 |
|
|
Shadowman
да я подумал, что, может, такое бывает из-за какой-то стандартной ошибки, может кто так знает... что ж, вот код:
| Actor BloodMagic : weapon
{
Inventory.PickupMessage "Learnt ancient blood magic... careful with this!"
Radius 12
Height 12
+AMMO_OPTIONAL
+ALT_AMMO_OPTIONAL
+NOAUTOFIRE
+BFG
States
{
Spawn:
MAGI C -1
stop
Ready:
FRMN ABC 5
loop
Select:
FRMN ABC 2 A_raise
loop
Deselect:
FRMN ABC 2 A_lower
loop
Fire:
FRMS B 5
FRMS B 0 DamageThing(30)
FRMS B 0 A_playsound("magic/fire")
FRMS C 5 bright A_firecustommissile("MagicBall",0,0,0,0)
FRMS D 5 bright
FRMS E 5
goto ready
AltFire:
FRMF B 5
FRMF B 0 DamageThing(50)
FRMF B 0 A_playsound("magic/summon")
FRMF C 5 bright A_spawnitem("Afrit",1)
FRMF D 5 bright
FRMF E 5
goto ready
}
} |
В общем, эта штука либо стреляет либо спаунит помощника, а вместо патронов отжирает хелсы. Возможно, что-то я еще поменяю, но в данный момент мне не понятно, в чем глюк... |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 29.10.07 19:35:34 |
|
|
zer0
подозреваю, что глюк возникает из-за того, что ты не все спецификации оружия указал.
Не указано, например weapom.selectionorder (отвечает за приоритетность сменяемости оружий, когда патроны заканчиваются, чем ниже число - тем приоритетней, так как у тебя не указано, то очевидно стоит 0, то есть оружие не сменится, хотя хз...) |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 19:46:03 |
|
|
Shadowman
нет, это не то. У меня в "Терминаторе" вообще почти не было selectionorder'а ни у чего, да и в этом моде у половины стволов я его еще не проставил, но все работает. Я пробовал на всякий случай указать патроны, выставив нулевой расход, но это тоже не помогло. Стирал всякие отдельные вещи, даже на всякий случай менял название актора - не помогает. |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 29.10.07 19:52:45 |
|
|
zer0
Оно у тебя в начале дается? Иначе где там порядковый номер вещи?
Может, ты еще напутал что-то с KeyConf'ом, не так указал там оружие... |
|
|
| |
StasBFG[iddqd] -= DoomGod =-
| | 898 |
|
Отправлено: 29.10.07 20:00:37 |
|
|
zer0
в keyconf пропиши оружие
weaponsection somename
setslot 9 BloodMagic | |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 20:08:57 |
|
|
Ребята, повторяю. Оружие есть, дается, я все-таки не такой ламо, чтобы по киконф забыть. Косяк в том, что оно просто не стреляет, ни основной атакой, ни альтернативной. Кроме того, после того, как его выбираешь, отрубается смена оружия - его уже нельзя убрать. И я заметил новый глюк, уже совсем необъяснимый: спрайты оружия не качаются при ходьбе, хотя я вовсе не ставил dontbob... о.О |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 29.10.07 20:12:02 |
|
|
zer0
Да уж, какой-то глюк (с этим оружием всегда возни больше чем с монстрами), теперь подозреваю, что +BFG просто так не работает... попробуй убрать этот флаг.
Придется звать Guest'а. |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 20:31:37 |
|
|
Shadowman
я вообще постирал все лишнее. Пробовал убирать все. Проверил, нет ли глюков со спрайтами. Не знаю, должно все работать... С запускаемым снарядом проблем точно нет - я его вначале приписывал вместо бфгболла к бфг, и он запускался нормально. Черт его знает в чем дело. |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 29.10.07 21:16:29 |
|
|
Блин! Народ я тупо забыл вписать A_WeaponReady )
Теперь расскажите мне кто-нибудь, как создавать particle-эффекты... |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 29.10.07 23:33:05 |
|
|
zer0 : | я тупо забыл вписать A_WeaponReady |
Мда... если появляется такой глюк, то проблема скорее всего как раз в том, что ты где-то что-то упустил...
Кстати, мы со Сасом тоже упустили, так как начали строить догадки, не посмотрев как следует твой декорэйт.
zer0 : | расскажите мне кто-нибудь, как создавать particle-эффекты... |
сначала вопрос - для чего? Может быть, то, что ты хочешь имитировать с их помощью, можно сделать другим способом и более красиво (как огонь в ТА например, там без всяких партиклей обошлось). |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 30.10.07 10:41:54 |
|
|
zer0
Партиклей в других видах кроме луча в Думе не бывает...
Если тебе нужно, чтобы снаряд при полете разбрасывал в стороны партикли,
то просто вставь себе в вад спрайт цветной точки, сделай маленький объект с этим спрайтом,
и потом сделай чтобы снаряд разбрасывал при полете это объекты. |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 30.10.07 15:28:10 |
|
|
dukenator
однако стандартный рокетсмоуктрейл сделан не со спрайтом точки, с партиклами. А я сам хотел попробовать сделать эффект лазерного прицела для оружия. Облом в том, что, даже имя damage 0, луч рейлгана бьет врага, заставляя его переходить на сиквенс pain. А редактировать луч рейлгана, насколько я знаю, невозможно... |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 30.10.07 19:51:04 |
|
|
zer0 : | А я сам хотел попробовать сделать эффект лазерного прицела для оружия. Облом в том, что, даже имя damage 0, луч рейлгана бьет врага, заставляя его переходить на сиквенс pain. |
Можно попытаться использовать damagefactor. Присвоить лучу уникальный damadetype, а всем монстрам иммунитет от него (коэффициент 0) |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 31.10.07 09:08:53 |
|
|
Guest : | Присвоить лучу уникальный damadetype |
Как? |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 31.10.07 10:02:24 |
|
|
И еще вот вопрос:
Никто не знает, где мона надыбать DECORATE-коды монстров Скуллтага? |
|
|
| |
Memfis = Sergeant Major =
| 637 |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 07.11.07 20:48:54 |
|
|
Народ, как сделать такой объект, на который монстры будут отвлекаться и пытаться его убить? аналогично итему HoloDuke из Duke3D. При этом, чтобы его можно было подобрать обратно. |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 08.11.07 11:05:44 |
|
|
zer0
Сделай итем, чтобы ставил себе какой-нибудь таг, а всем монстрам(их код придется переписывать) сделай
в See стате Thing_Hate(и здесь номер тага итема), и сделай этому объекту наследие класса Inventory,
и в стате Pickup сделай чтобы игроку давался итем. |
|
|
| |
zer0 - Lance Corporal -
| 189 |
|
Отправлено: 08.11.07 12:05:24 |
|
|
dukenator
я не совсем понял пару моментов. Как прописать предмету таг через декорейт? Thing_hate можно просто приписать к первому кадру в See? Про то, как поднимать его обратно я уже понял. |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 08.11.07 12:32:19 |
|
|
zer0
Таг через декорейт прописывается так thing_ChangeTID(например, 1999)
А Thing_Hate приписывается, например, так:
See:
TROO A 0 Thing_Hate(1999)
TROO ABCD 3 A_Chase
Loop
Если есть голограма, он будет мочить ее, нету - будет мочить игрока. |
|
|
| |