Возникла новая проблема уже с A_Warp. Возможно кто тоже знает решение:
Вообщем как я писал все сработало, сфера появляется на головой монстра и там и находиться. Но есть у меня некоторые Акторы, которые создают другого актора (при этом сами исчезают). В игре это визуально не видно. А в коде используется функция A_SpawnItemEx. Вообщем проблема сейчас такая: Когда "Актор1" спавнит "Actor2" (при этом исчезая) сфера остаётся висеть в том месте, где исчез "Актор1". Есть ли возможность заставить сферу поменять цель на "Актор2" ???
есть такая тема "абуз угла на 5-й сложности или при fastmonsters", когда монстр, стоящий за углом, тебя видит, но попасть по тебе не может, а ты по нему можешь, и легко его убиваешь не двигаясь. Собственно вопрос: какие у вас есть идеи, чтобы такой абуз угла отключить? Естественно имею в виду zdoom (decorate и т д)
Например можно монстрам спавнить не по одному проджектайлу, а по но несколько в ряд, соответственно те, которые по краям, долетят до игрока. Либо можно монстрам принудительно в стейте атаки дать несколько фреймов для передвижения (кстати - как это наиболее эффективно сделать? Через goto See2, где See2 это несколько фреймов без action-а?), в итоге частота стрельбы монстра пострадает не сильно, а из-за угла он постепенно будет выходить (+тут можно будет по рандому сделать, чтобы монстр иногда атаковал как при обычном fastmonsters, а иногда шагал далеко, но это уже детали).
Как это можно сделать еще проще и эффективнее, чем я описал выше?
Всем привет. Кто знает как зделать в гоззе так, чтобы после смерти игрока - его точка старта была уже в другом месте?
Тебе в сингл надо? Или мультиплеер? В сингл, там можно прописать в acs скрипте например Script "RandomSpawn" RESPAWN //Этот скрипт выполнится когда игрок умрет и возродится (так же есть еще DEATH, такой скрипт выполнится когда игрок умрет, там думаю тоже можно что-то сделать) {//На карте делаешь сектора в которых должен как бы спавнится игрок и ставишь там THING Teleport и с помощью этого скрипта рендом телепортировать в такие сектора, ну или можно спавнить, это надо пробовать(по моему игрока спавнить не получится). Teleport (0, Random(tagMin,tagMax), no);//tagmin tagmax это тег сектора в который будет телепортироваться игрок, то есть тагов 1 до 10 в какой-то 1 из 10 секторов телепортируется игрок. } Скрипт писал от балды, можешь проверить конечно мб будет как надо)
Добавлено спустя 3 минуты 45 секунд:
sanek_47:
Как изменить покачивание оружия в руках? Как например в этом моде:
1 двигать оффсеты оружия в декорейте, где-то даже функция такая была, надо вики копать.(по моему это она, сложно но можно Offset) 2 покрутить настройки Weapon.BobRangeX и все что с ним связанно, в проперти актора оружия. Мб еще как-то можно, я не в курсе. Некоторые флаги для оружия, так можно убрать покачивание вообще Weapon_flags
Всем привет. Кто знает как зделать в гоззе так, чтобы после смерти игрока - его точка старта была уже в другом месте?
Чекпоинты чтоли? В сингле смысла нет (юзай Autosave()). В мультиплеере ставишь несколько спавнов в недоступном месте, и пишешь ENTER+RESPAWN скрипт который будет SetActorPosition() игрока на текущие координаты чекпоинта.
int CheckX = 0; // сюда пишешь реальные координаты на которых должен стартовать игрок в первый раз без чекпоинтов. НЕ FIXED POINT!!!
int CheckY = 0;
int CheckZ = 0;
script "CP_SetTag" (int tag)
{
CheckX = GetActorX(tag)>>16;
CheckY = GetActorY(tag)>>16;
CheckZ = GetActorZ(tag)>>16;
}
script "CP_Set" (int x, int y, int z)
{
CheckX = x;
CheckY = y;
CheckZ = z;
}
// как SetActorPosition, но телефрагает
function void SetActorPositionForced(int tag, int x, int y, int z, bool fog)
{
int t = UniqueTID();
SpawnForced("MapSpot", x, y, z, t, 0);
int t2 = tag;
if (t2 == 0)
{
t2 = UniqueTID();
Thing_ChangeTID(0, t2);
}
TeleportOther(t2, t, fog);
if (t2 != tag)
Thing_ChangeTID(t2, tag);
Thing_ChangeTID(t, 0);
}
script "CP_Activate" RESPAWN
{
SetActorPositionForced(0, CheckX<<16, CheckY<<16, CheckZ<<16, true);
}
script "CP_Activate2" ENTER
{
SetActorPositionForced(0, CheckX<<16, CheckY<<16, CheckZ<<16, true);
}
Скрипт CP_Set (или CP_SetTag) вызывается вручную например при входе в определённый сектор. Чекпоинт лучше вешать в воздухе, чтобы не было такого что игроки друг на друге появляются и телефрагают.
1. Я делаю текстовую вставку в конце эпизода с помощью MAPINFO (порт - ZDoom). Как сделать перенос слов с одной строки на другую (т.е. поделить текст на несколько строк)?
2. Можно ли использовать одновременно лампы MAPINFO и DEHACKED, чтобы вад был играбельным как и ZDoom, так и в Vanilla Doom? Наверно в моём случае можно оставить только DEHACKED, но тогда я не знаю, как отключить прыжки и приседания в ZDoom.
Вообщем как я писал все сработало, сфера появляется на головой монстра и там и находиться. Но есть у меня некоторые Акторы, которые создают другого актора (при этом сами исчезают). В игре это визуально не видно. А в коде используется функция A_SpawnItemEx.
Вообщем проблема сейчас такая: Когда "Актор1" спавнит "Actor2" (при этом исчезая) сфера остаётся висеть в том месте, где исчез "Актор1". Есть ли возможность заставить сферу поменять цель на "Актор2" ???
Довольно интересный вопрос, вот честно признаюсь - не знаю, возможно ли менять цели у актора. Лучше вышли код, наглядно чтоб было понятно, что требуется)
1. Я делаю текстовую вставку в конце эпизода с помощью MAPINFO (порт - ZDoom). Как сделать перенос слов с одной строки на другую (т.е. поделить текст на несколько строк)?
2. Можно ли использовать одновременно лампы MAPINFO и DEHACKED, чтобы вад был играбельным как и ZDoom, так и в Vanilla Doom? Наверно в моём случае можно оставить только DEHACKED, но тогда я не знаю, как отключить прыжки и приседания в ZDoom.
1. Использовать перенос строки - символ \n 2. Можно.
Никак. Более старый способ с разделением сектора по контрольному сектору (если не ошибаюсь, Transfer_Heights) принципиально не предназначен для отображения более чем одной части этого сектора. То есть ты либо видишь то, что над водой, либо ты под водой и видишь только то, что под водой. Следовательно прозрачность невозможна.
Можно попробовать извратиться с порталом на полу и совместить с Transfer_Heights и экшнами "игрок прикоснулся к полу / потолку". Но я не понимаю нафига это делать. Чем тебя не устраивает прозрачный 3D-пол?
2 важных вопроса по поводу Decorate/ACS в G(Z)Doom:
1) Как наиболее простым способом завершить уровень, показав score screen и после него карту расположения миссий (ту самую где в думе 1 были надписи "you are here") ? Может есть какой-то чит? Или ACS-ом как-то можно начудить?
Цель именно "кратчайшим путем добраться до карты"
2) Есть актор в декорейте. Требуется, чтобы он по разному себя вел в зависимости от того, на какой карте он отспавнился.
Грубо говоря, мне нужно что-то типа "if (map == e2m3) then missile2 else missile3". Как простейшим и наиболее эффективным способом это реализовать?
подскажите плз, как сделать так чтобы на статус баре сработал собственный шрифт например сгенерированный на Font Generator, импортированный в lump. в скрипте работает (через SetFont("RUS")).
подскажите плз, как сделать так чтобы на статус баре сработал собственный шрифт например сгенерированный на Font Generator, импортированный в lump. в скрипте работает (через SetFont("RUS")).
В SBarInfo пиши : DrawNumber 7, RUS, White, NextLVL, 695, 278; //Вывод цифры с шрифтом RUS DrawString RUS, White, Time, 519, 341, 1;//Вывод строки с шрифтом RUS Если шрифт состоит из картинок, тогда его надо записать в FONTDEFS там же дать имя и тогда юзать где надо. Так же советую почитать вики по сбаринфо )