Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Замена оружия на другое (Doom in Hexen)
   Список разделов - Местечко мапперов и моддеров - Замена оружия на другое (Doom in Hexen)Ответить
АвторСообщение
psychomachine
- Master Corporal -
Next rank: = Master Corporal = after 38 points
202

Doom Rate: 1.91

Posts quality: +37
Ссылка на пост №1 Отправлено: 06.11.18 01:15:01
Всем здарова гибельные парни!

Делаю карту doom in hexen формате. Возникло желание засунуть туда более интересных монстряков с realm667. Ну и так же более интересное оружие. Как засунуть в вад спрайты, декорэйт, звуки и прочее я знаю. Всё это появляется в ваде и готово к использованию. Но есть одно но!
Первый уровень начинается со стандартного пистолетика. Как его убрать нафиг?

вижу два варианта

1) Что б он по дефолту был подменён на другой. Например Colt 45.



2) Либо что бы уровень начинался вообще с пустыми руками, а оружие я сам там положу какое надо и где надо.


А стандартного пистолетика что б не было вообще. Что бы он не занимал слот и кнопку.

Как реализовать первый и второй варианты?
(второй пожалуй даже интереснее)


Так же вопрос, как сделать так, что бы следующий уровень снова начинался с пустыми руками, или только с одним заменённым пистолетиком (в зависимости от того какой из вариантов начала я предпочту)?
Как после каждого уровня скидывать оружие?






:rules:
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 12 points
928

Doom Rate: 2

Posts quality: +223
Ссылка на пост №2 Отправлено: 06.11.18 06:27:15
psychomachine :
Что б он по дефолту был подменён на другой. Например Colt 45.
Как вариант:
ACTOR MyDoomguy: DoomPlayer //Прописываешь в DECORATE (или структурном тхтшнике) кастомного игрока
{
Player.StartItem "Fist"
Player.StartItem "Colt 45" //указываешь ему стартовый итем
Player.StartItem "Clip", 50
}

ACTOR "Colt 45"
{
Weapon.SlotNumber 2 //Прописываешь слот и
Weapon.SlotPriority 1 //очерёдность в слоте
}

psychomachine :
Либо что бы уровень начинался вообще с пустыми руками
Смотришь пример\ссылку выше и удаляешь соответствующие Player.StartItem (в твоём случае "Pistol"), в этом случае также не забудь отредачить Player.WeaponSlot 2, Pistol

Аналогично можно задать стартовые условия в MAPINFO/GameInfo_definition по шаблону weaponslot = <slot>, "<weapon>", ...

Ещё можно написать ACS-скрипт c ClearInventory либо TakeInventory функциями, это кстати ответ и на следующие вопросы
psychomachine :
что бы следующий уровень снова начинался с пустыми руками, или только с одним заменённым пистолетиком


Возможно я неправ, но не лучше ли задавать подобные вопросы в этой теме? Или в этой, если вопрос касается зскрипта. Тем более что они уже неоднократно разбирались.

Рейтинг сообщения: +2, отметил(и): JSO x, psychomachine
5 1
psychomachine
- Master Corporal -
Next rank: = Master Corporal = after 38 points
202

Doom Rate: 1.91

Posts quality: +37
Ссылка на пост №3 Отправлено: 08.11.18 05:19:49
Void Weaver

У меня ничего не получилось сделать.

Ребят, не злитесь на мою тупость. Я вообще не программер, просто любитель. Сижу ковыряю карты в дум билдере иногда ради хобби.

Короче я скопировал этот код в DECORATE предварительно вставив в wad все ресурсы Colt 45. Он появился в ваде и его можно было разместить на карте.
Потом написал этот вот код. Ничего не появилось и вообще куча ошибок при запуске и ничего не пашет. Что я делаю неправильно?


Вот этот код:

Скрытый текст:

ACTOR DoomPlayer : PlayerPawn
{
Speed 1
Health 100
Radius 16
Height 56
Mass 100
PainChance 255
Player.DisplayName "Marine"
Player.CrouchSprite "PLYC"
Player.StartItem "Pistol"
Player.StartItem "Fist"
Player.StartItem "Clip", 50
Player.WeaponSlot 1, Fist, Chainsaw
Player.WeaponSlot 2, Pistol
Player.WeaponSlot 3, Shotgun, SuperShotgun
Player.WeaponSlot 4, Chaingun
Player.WeaponSlot 5, RocketLauncher
Player.WeaponSlot 6, PlasmaRifle
Player.WeaponSlot 7, BFG9000
Player.ColorRange 112, 127
Player.ColorSet 0, "Green", 0x70, 0x7F, 0x72
Player.ColorSet 1, "Gray", 0x60, 0x6F, 0x62 // Called "Indigo" originally so as to have a unique initial
Player.ColorSet 2, "Brown", 0x40, 0x4F, 0x42
Player.ColorSet 3, "Red", 0x20, 0x2F, 0x22
// Doom Legacy additions
Player.ColorSet 4, "Light Gray", 0x58, 0x67, 0x5A
Player.ColorSet 5, "Light Brown", 0x38, 0x47, 0x3A
Player.ColorSet 6, "Light Red", 0xB0, 0xBF, 0xB2
Player.ColorSet 7, "Light Blue", 0xC0, 0xCF, 0xC2

States
{
Spawn:
PLAY A -1
Loop
See:
PLAY ABCD 4
Loop
Missile:
PLAY E 12
Goto Spawn
Melee:
PLAY F 6 BRIGHT
Goto Missile
Pain:
PLAY G 4
PLAY G 4 A_Pain
Goto Spawn
Death:
PLAY H 0 A_PlayerSkinCheck("AltSkinDeath")
Death1:
PLAY H 10
PLAY I 10 A_PlayerScream
PLAY J 10 A_NoBlocking
PLAY KLM 10
PLAY N -1
Stop
XDeath:
PLAY O 0 A_PlayerSkinCheck("AltSkinXDeath")
XDeath1:
PLAY O 5
PLAY P 5 A_XScream
PLAY Q 5 A_NoBlocking
PLAY RSTUV 5
PLAY W -1
Stop
AltSkinDeath:
PLAY H 6
PLAY I 6 A_PlayerScream
PLAY JK 6
PLAY L 6 A_NoBlocking
PLAY MNO 6
PLAY P -1
Stop
AltSkinXDeath:
PLAY Q 5 A_PlayerScream
PLAY R 0 A_NoBlocking
PLAY R 5 A_SkullPop
PLAY STUVWX 5
PLAY Y -1
Stop
}
}




вот отсюда
https://zdoom.org/wiki/Classes:DoomPlayer


тоже надо было писать в декорэйт? Его можно просто скопировать по этой ссылке?

В общем копирую тот код. Вставляю в него твой код... (Ну не совсем прям копирую точнее. Не целиком конечно. Просто меняю строки в том коде ибо они там есть уже.)
в общем не работает ничего.



:bitsa:
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 12 points
928

Doom Rate: 2

Posts quality: +223
Ссылка на пост №4 Отправлено: 08.11.18 08:46:06
Тебе НЕ НУЖНО копировать весь код игрока, пиши как выше. А в твоё оружие добавляешь те 2 строки.

Ты походу не догоняешь что такое inheritance, если разберёшься то всё остальное по твоим вопросам станет понятно.

Рейтинг сообщения: +1, отметил(и): psychomachine
5 1
psychomachine
- Master Corporal -
Next rank: = Master Corporal = after 38 points
202

Doom Rate: 1.91

Posts quality: +37
Ссылка на пост №5 Отправлено: 09.11.18 17:45:29
Void Weaver

Не получается у меня что-то ничего.

Вот такой код написал.

Скрытый текст:


actor DoomPlayer : PlayerPawn
{
Player.StartItem "Fist"
Player.StartItem "Colt45"
Player.StartItem "Clip", 50
}




и вот так пробовал

Скрытый текст:


actor MyDoomguy : DoomPlayer
{
Player.StartItem "Fist"
Player.StartItem "Colt45"
Player.StartItem "Clip", 50
}




Ну код кольта я не пишу. Он с realm667 плюс вписал в него строки слота и очерёдности в слоте.

(Что такое "наследование" в программировании я теоретически понимаю. Просто пользоваться этим не умею. И код написать сам не умею.
Скопипастить я могу. Ну даже кое какие ошибки сам вижу.
Ну то есть мне конечно понятно что если допустим что-то в коде определено как Colt45, а потом в коде будет Colt 45 (с пробелом) то это неправильно. Ну с чем то ещё я разбирался. Делал цветное освещение, цвета определял через список в коде. Или скорость движения монстров и количество здоровья конечно я могу поменять. Но значения и смысла всех строк я не знаю ещё пока.)

Сейчас я вообще не догоняю как создать этого кастомного игрока со своими установками всякими. А это вот очень интересно. Что б например прописывать ему всякие параметры самому. Я бы там потом разобрался что у него где и здоровье ему можно было бы менять, и вообще сразу оружие любое. Всякое разное. Это я вот понимаю что так можно. И это интересно да.
Но блин у меня пока вообще ничего не меняется у игрока. Не стартует он с кольтом этим. Тупо со своим пистолетиком стандартным.
Ну что неправильно?
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 12 points
928

Doom Rate: 2

Posts quality: +223
Ссылка на пост №6 Отправлено: 09.11.18 19:48:33
Такое впечатление будто ты забыл задать игрока в MAPINFO:

gameinfo
{
playerclasses = "MyDoomguy"
}

Рейтинг сообщения: +1, отметил(и): psychomachine
5 1
Артём
- Master Sergeant -
Next rank: = Master Sergeant = after 33 points
427

Doom Rate: 1.69

Posts quality: +90
Ссылка на пост №7 Отправлено: 09.11.18 21:21:13
Можно ещё написать в декорейте: "actor Colt45 : Weapon replaces Pistol".

Рейтинг сообщения: +2, отметил(и): Void Weaver, psychomachine
1
psychomachine
- Master Corporal -
Next rank: = Master Corporal = after 38 points
202

Doom Rate: 1.91

Posts quality: +37
Ссылка на пост №8 Отправлено: 10.11.18 02:30:47
Void Weaver

О да! Я вообще не делал mapinfo. Сейчас вот сделал mapinfo, в нём написал твой код

Скрытый текст:


gameinfo
{
playerclasses = "MyDoomguy"
}



потом написал в декорейт всё то что было обговорено выше и оно заработало! Стандартного пистолетика нет, вместо него кольт. Правда есть один нюанс - при старте пистолетик не выбран. Ну то есть игрок с голыми руками включается, хотя кольт уже присутствует на 2 кнопке. Нужно переключится только.
А почему так кстати?


Артём
Про такой способ замены я уже где то видел. Так вроде можно даже монстров автоматически заменить на карте. Но у меня вот сейчас такой способ замены пистолета на кольт тоже не заработал.
Как именно правильно написать что б просто подменить пистолет таким способом?



:rules:
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Замена оружия на другое (Doom in Hexen)