У меня вопросы никогда не закончатся На этот раз вопрос вообще такой. Когда я учил Decorate, у меня был отличный туториал (да ещё и на русским, хотя я и на английском могу читать). Но вот где туториал взять под ACS, не знаю. Нашёл на здум вики, но он маленький, базовый. Хоть какой то туториал, хотя бы на английском.
Прямо тут в разделе для мапперов Ссылка руководство. И да, если можешь на англ.. то лучше чем zdoomwiki ничего нет и не будет
Даже не собирался такой вопрос задавать, но я просто уже все перепробовал. У меня есть свой класс, который основан на PlayerPawn. И есть параметры звука - есть DeathSound который прекрасно работает. Но вот PainSound работать не хочет - играется стандартный думовский звук боли. Что делать с этим? EDIT: решено.
у меня тоже есть вопрос по классам. ну, почти вопрос по MorphActor.
если класс 13-тый, то даю игроку будду, при единице здоровья морфлю его в другой класс. что-т не работает, потому что у исходного класса 500 хп, у требуемого - 100, а после морфа можно обратно аптечками набрать 500, чего не хотелось бы
что тут не так - не знаю :/
Скрытый текст:
script 9063 ENTER
{
if(GetUserVariable(0,"user_Class") == 13)
{
setPlayerProperty(0, TRUE, PROP_BUDDHA);
while(true)
{delay(1);
if(GetActorProperty (0,APROP_Health) == 1)
{
GiveActorInventory(0,"NotInMeka",1);
Spawn ("MekaSafe",GetActorX (0),GetActorY (0),GetActorZ (0), 99908); //при первой смерти спавню штуку.
ClearInventory();// это тут неважно.
SetActorProperty(0, APROP_HEALTH, 100);
SetActorProperty(0,APROP_Invulnerable,1);
setPlayerProperty(0, FALSE, PROP_BUDDHA);
SetActorProperty(0, APROP_SPEED, 0.0); // да, тут надо, чтобы игрок постоял чуток
delay(20);
MorphActor(0,"DiV","",1048576, 0, "", "");//цифру попробовал взять с здум вики, вдруг лучше станет.
GiveInventory("LightGun",1);// не стало. ну я так и думал.
SetActorProperty(0, APROP_SPEED, 1.0);
Delay(20);
SetActorProperty(0,APROP_Invulnerable,0);
terminate;
}
}
}
}
Скрытый текст:
actor DiVMeka : DoomPlayer
{
Player.MorphWeapon "MekaGuns"
Health 500
Player.MaxHealth 500
Player.ViewHeight 50.0
Player.DisplayName "DiV"
Player.StartItem "MekaGuns" 1
Player.ForwardMove 0.70,0.70
var int user_Class;
}
actor DiV : DoomPlayer
{
Player.MorphWeapon "LightGun"
Health 100
Player.MaxHealth 100
Player.StartItem "LightGun" 1
Player.ForwardMove 1,1
var int user_Class;
}
MyNameIs не очень понятно.. твой основной игрок когда у него 1 хп, морфается в другого и у другого 100 хп, но можно пополнить до 500 как у первого.. А вот ты в курсе что он у тебя морфается обратно спустя 1048576 чего-то там, но это не много видимо по меркам морфа. Попробуй прописать duration 0x7fffffff Может в этом проблема?
Есть у меня 2 вида бишепов + стандартный(http://zdoom.org/wiki/Classes:Bishop). Эти два новых бишипа перекрашены транслейшеном. Если использовать стандартные функции(A_BishopDoBlur, A_BishopSpawnBlur) бишипа для стрейфа то спавнится BishopBlur стандартного бишипа обычного цвета. Мне нужно чтобы у каждого бишипа был BishopBlur своего цвета. Как это сделать?
И данного конкретного флага там нет (1048...чётотам это 0x10000, а список заканчивается на 0x2000).
MORPH_OLDEFFECTS = 0x00000000, // Default to old Heretic/HeXen behaviour unless flags given
MORPH_ADDSTAMINA = 0x00000001, // Player has a "power" instead of a "curse" (add stamina instead of limiting to health)
MORPH_FULLHEALTH = 0x00000002, // Player uses new health semantics (!POWER => MaxHealth of animal, POWER => Normal health behaviour)
MORPH_UNDOBYTOMEOFPOWER = 0x00000004, // Player unmorphs upon activating a Tome of Power
MORPH_UNDOBYCHAOSDEVICE = 0x00000008, // Player unmorphs upon activating a Chaos Device
MORPH_FAILNOTELEFRAG = 0x00000010, // Player stays morphed if unmorph by Tome of Power fails
MORPH_FAILNOLAUGH = 0x00000020, // Player doesn't laugh if unmorph by Chaos Device fails
MORPH_WHENINVULNERABLE = 0x00000040, // Player can morph when invulnerable but ONLY if doing it to themselves
MORPH_LOSEACTUALWEAPON = 0x00000080, // Player loses specified morph weapon only (not "whichever they have when unmorphing")
MORPH_NEWTIDBEHAVIOUR = 0x00000100, // Actor TID is by default transferred from the old actor to the new actor
MORPH_UNDOBYDEATH = 0x00000200, // Actor unmorphs when killed and (unless MORPH_UNDOBYDEATHSAVES) stays dead
MORPH_UNDOBYDEATHFORCED = 0x00000400, // Actor (if unmorphed when killed) forces unmorph (not very useful with UNDOBYDEATHSAVES)
MORPH_UNDOBYDEATHSAVES = 0x00000800, // Actor (if unmorphed when killed) regains their health and doesn't die
MORPH_UNDOBYTIMEOUT = 0x00001000, // Player unmorphs once countdown expires // он же MRF_UNDOALWAYS
MORPH_STANDARDUNDOING = MORPH_UNDOBYTOMEOFPOWER | MORPH_UNDOBYCHAOSDEVICE | MORPH_UNDOBYTIMEOUT,
Ещё есть MRF_TRANSFERTRANSLATION, который сюда не входит, и его флаг 0x2000. Но уж точно не та жуткая цифра.
Добавлено спустя 15 минут 27 секунд:
Вообще тут основная проблема в том, что Morph предназначен для узкого спектра итемов в хексене/херетике, причём в оригинале он превращает игрока в цыплёнка или свинью. И функционал не очень повысился над этим использованием.
У меня в игре морф используется в трех случаях.. 1 из, когда игрок нажал кнопку присесть, обычный плеер с высотой хитбокса 57 морфается в плеера с высотой хитбокса 12 кажется.. и все работает, т.е. он успешно морфается в другой класс, а duration если не прописать 0x7fffffff то спустя несколько сек он автоматически унморфается в оригинального плеера. Вот строка которая морфает
MorphActor(0,"AlexCrouch","",0x7fffffff,0,"","");
Здоровье при морфе я не проверял т.к. оно мне в принципе не надо.. В твоем случае думал что с оз проблема возможно потому что плеер морфался обратно т.к. не было прописано 0x7fffffff Но если проблема только в оз SetActorProperty(0, APROP_HEALTH, 100);
Оно меняет обычное количество здоровья. У меня класс с максимумом в 500 хп, если поменять здоровье таким образом, аптечками можно будет добрать обратно все 500. Нужно как-то установить новое максимальное значение.
Оно меняет обычное количество здоровья. У меня класс с максимумом в 500 хп, если поменять здоровье таким образом, аптечками можно будет добрать обратно все 500. Нужно как-то установить новое максимальное значение.
Ну как вариант сделай проверку в аптечке, если аптечку поднимает класс с 100 оз.. то сделай так что бы та не лечила больше 100.. иначе, лечит.
Наверное не в тему,но я тута добавил через Slade текстурки с Сергеем Пахомовым но что то пошло не так и при тесте карты написано MAP01 не найдена,как исправить то?
Есть вопросы касательно маппинга\модинга и т.д. пишем тут, не стоит плодить темы в духе "помогите с вадом". Alekv
Мне надо при респавне игрока функция типа FadeOut т.е. из черного экрана в обычный, у acs есть FadeTo функция, но нет FadeOut, как быть? Через hudmessage вешать черную картинку и высветлять ее.. не знаю нормальный ли вариант с учетом что у всех мониторы разные, а вешать картинку 5к х 5к что бы подошло всем тоже не вариант), мб есть что получше?