Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!-2 Пред.  1, 2, 3 ... 12, 13, 14 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Ответить
АвторСообщение
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №241 Отправлено: 26.08.19 02:32:30
Liaslia пишет:
Что хотелось бы? Вырезать этот зум вместе с прицелом так,чтобы было возможно использовать его отдельно и с любым оружием,назначив активацию на произвольную кнопку ( не альтернативной атаки) Пробовал по разному- не хочет работать.Кто нибудь может помочь?Буду вам благодарен.
А в чём проблема-то? Открой вад, скопируй код и всех делов.
И если уже пробовал то почему не выложил код ружжа?
1 9 1
Romeo7662
Recruit
Next rank: Recruit after 4 points
6

Doom Rate: 2

Posts quality: +3
Ссылка на пост №242 Отправлено: 26.08.19 13:29:19
Доброго времени суток, прошу прощение если подобный вопрос задавали ранние, предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА? А главный вопрос как заставить монстров идти по отведённому пути и сражаться друг с другом? Возможно ли это технически?
Mostcus
= Commissar =
Next rank: - UAC Commissar - after 53 pointsМодератор форумаАдмин сайта
5747

Doom Rate: 2.47

Posts quality: +1371
Ссылка на пост №243 Отправлено: 26.08.19 13:48:19
Romeo7662 пишет:
Возможно ли это технически?

Мне кажется, что если у тебя возникают настолько простые вопросы на уровне проектирования, то и от уровня реализации ничего хорошего ждать не стоит.

Рейтинг сообщения: -1, отметил(и): YURA_111, alekv, JSO x, Void Weaver, Romeo7662
1 2 1
Romeo7662
Recruit
Next rank: Recruit after 4 points
6

Doom Rate: 2

Posts quality: +3
Ссылка на пост №244 Отправлено: 26.08.19 13:52:41
Mostcus пишет:
Мне кажется, что если у тебя возникают настолько простые вопросы на уровне проектирования, то и от уровня реализации ничего хорошего ждать не стоит.
Лол, название темы прочитай пожалуйста внимательно. Это пустое сообщение не дающие ответ на мой вопрос.

Рейтинг сообщения: +2, отметил(и): Mostcus, YURA_111, JSO x, Void Weaver
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №245 Отправлено: 26.08.19 14:18:19
Romeo7662 пишет:
предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА?
Да.

Romeo7662 пишет:
А главный вопрос как заставить монстров идти по отведённому пути и сражаться друг с другом?
Это два разных вопроса и далеко не самых важных.
1. Тащить монстров по заданному маршруту можно через маппинг-скриптовую конфигурацию PatrolPoint + Thing_SetGoal Подробнее здесь и по ссылкам оттуда.
2. По умолчанию монстры разных типов и так могут участвовать в инфайтинге, так что тебе стоит обрисовать задачу более конкретно.

Рейтинг сообщения: +2, отметил(и): JSO x, Romeo7662
1 9 1
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +367
Ссылка на пост №246 Отправлено: 26.08.19 14:24:17
Romeo7662 пишет:
предоставляется ли возможным сделать модификацию для дума превращающую игру в МОБА?


Конечно, могу привести пример такой как - вад показанный на одном ютуб видео :) Помню вроде было больше информации про такой вад.
Можешь посмотреть, что находится внутри этого вада, его возможно скачать на форуме здума.
Работает это так - каждый монстр это новый PlayerClass, в пример игрока импа:

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


actor ImpPlayer : MorphedPlayer
{
player.morphweapon "ImpFire"
player.startitem "ImpFire"
player.displayname "Imp"
player.viewheight 48
obituary "%o was burned by %k."
hitobituary "%o was clawed open by %k."
health 60
radius 20
height 56
mass 100
speed 0.25
painchance 200
seesound "imp/sight"
painsound "imp/pain"
deathsound "imp/death"
activesound "imp/active"
+FLOORCLIP
states
{
Spawn:
TROO AB 10
loop
See:
TROO AABBCCDD 3
loop
Melee:
Missile:
TROO EF 8
TROO G 6
goto Spawn
Pain:
TROO H 2
TROO H 2 A_Pain
goto Spawn
Death:
TROO I 8
TROO J 8 A_Scream
TROO K 6
TROO L 6 A_NoBlocking
TROO M -1
stop
XDeath:
TROO N 5
TROO O 5 A_XScream
TROO P 5
TROO Q 5 A_NoBlocking
TROO RST 5
TROO U -1
stop
Raise:
TROO ML 8
TROO KJI 6
goto Spawn
}
}



То-есть каждый монстр-игрок это просто тот-же игрок, но со своими параметрами, атаками и спрайтами, про это можно прочитать на здум вики :o


Только сейчас заметил что написано не - "превратить игрока в моба", а "превратить игру в мобу" :x


как заставить монстров идти по отведённому пути


При помощи Patrol Point актора. Проведи этими акторами дорогу до куда пойдёт монстр и внутри их (в параметрах, в редакторе карт) проставить всем нужные им параметры. Чтобы монстр пошёл по сделанной дороге, нужно это уложить в ACS скрипт. Примерно так:


script "название скрипта" (void)
{
Thing_Activate(тид монстра);
Thing_SetGoal(тид монстра,финальная точка дороги для монстра,0,1);
}


Не помню, обязателен ли Thing_Activate, но можешь ещё попробовать без него :D

Thing_SetGoal - говорит монстру, что ему нужно идти по дороге

Чтобы этот скрипт работал - нужно его вызвать, если нужно чтобы он активировался после прохождения определённого лайндефа на карте, то установи лайндефу экшн с названием - Script Execute. Лайндефу установи нужные экшну параметры и галочку на When Player walks over (всё расписано внутри редактора карт, что делает каждый параметр).

После этого всё должно работать :pc:


и сражаться друг с другом?


Да, тоже можно, при помощи - Thing_Hate (им устанавливается цель для убийства монстру)

Рейтинг сообщения: +2, отметил(и): JSO x, Romeo7662
1 1 1
Romeo7662
Recruit
Next rank: Recruit after 4 points
6

Doom Rate: 2

Posts quality: +3
Ссылка на пост №247 Отправлено: 26.08.19 14:25:16
Void Weaver
Благодарю, тогда как заставить сражаться монстров одного типа? И какие главные трудности по вашему мнению могут возник при реализации подобного мода?

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

FoxPlays
:ogo: Спасибо)

Рейтинг сообщения: +1, отметил(и): FoxPlays
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №248 Отправлено: 26.08.19 14:37:11
Способов масса: скриптом по Thing_Hate, на декоре через A_CheckProximity, или на декоре же по применению снарядов с +HITTARGET.
----
Сам выбор сего жанра как такового это одна сплошная трудность от и до.

Рейтинг сообщения: +1, отметил(и): Romeo7662
1 9 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №249 Отправлено: 26.08.19 14:46:12
Liaslia
Void Weaver

Если я правильно понял, товарищ Liaslia требует сделать примерно такую же активацию, как бросок гранаты в брутале, а не просто добавить стейты конкретному оружию (например, снайперке). Я попробовал накодить сырую версию.
Вот это нужно поместить в wad в ламп ZSCRIPT или в pk3 в файл zscript.txt, при этом выдрать в этот же архив спрайты ZOOMA0 и ZOOMB0 из этого вашего "DUMP-3-weapons.pk3":
Скрытый текст:

version "4.0.0"

//modified kodi's code from https://forum.zdoom.org/viewtopic.php?p=969747

class RequestedScope : custominventory
{
	double currzoom;
	bool dir, stop_, restoresprite;
	statelabel currstate;
	PSprite ReadySprite;
   default
   {
      Inventory.Amount 1;
      inventory.maxamount 1;
      +INVENTORY.ALWAYSPICKUP;
      +INVENTORY.AUTOACTIVATE;
   }
   
   states
   {   
      use:
         TNT1 A 0
         {
            statelabel nextstate = "remove";
            let ownr = doomplayer(invoker.owner);
            if (ownr)                           
            {
               nextstate = "startoverlay";
            }
         return resolvestate(nextstate);
         }
         stop;
      
      remove:
         stop;
      
      startoverlay:
         TNT1 A 0
         {
            A_Overlay(2,"noscope");
			invoker.currstate = "noscope";
         }
         wait;
		 
      noscope:
	  TNT1 A 1;
	  goto decide;
	  
	  scopeready:
	  ZOOM A 1;
	  goto decide;
	  
	  shoot:
      ZOOM B 1 bright;
      goto decide;
	  
	  decide:
	  TNT1 A 0 {
		statelabel nextstate = invoker.currstate;
		let player = self.player;
		if (!player || !player.ReadyWeapon /*|| ...*/) {
			return ResolveState("noscope");
		}
		//player.ReadyWeapon.FOVScale = 1 / zoom;
		if (getplayerinput(INPUT_BUTTONS) & BT_ZOOM) {
			double currzoom = 1.0 / player.ReadyWeapon.FOVScale;
			if (invoker.dir) currzoom *= 1.05;
			else currzoom /= 1.05;
			if (currzoom > 12.0) { currzoom = 12.0; invoker.stop_ = 1; }
			else if (currzoom < 1.0) { currzoom = 1.0; invoker.stop_ = 1; }
			player.ReadyWeapon.FOVScale = 1.0 / currzoom;
		} else {
			if (invoker.stop_) {
				invoker.stop_ = 0;
				invoker.dir = !invoker.dir;
			}
		}
		//find a way to 
		if (!invoker.stop_ && (player.ReadyWeapon.FOVScale == 1.0 || player.ReadyWeapon.FOVScale == 0.0)) {
			nextstate = "noscope";
		} else {
			nextstate = "scopeready";
			if (getplayerinput(INPUT_BUTTONS) & BT_ATTACK) {
				nextstate = "shoot";
			}
		}
		
		invoker.currstate = nextstate;
		return ResolveState(nextstate);
	  }
      //never reaches this line
      Spawn:
         TNT1 A -1;
         Stop;
   }
   
   override void PostBeginPlay() {
		dir = 1;
		stop_ = 0;
		restoresprite = 0;
		ReadySprite = null;
   }
}



Для теста набрать в консоли "give requestedscope". Использует стандартный бинд кнопки zoom (если честно, не вспомню ни одного серьёзного мода (Complex Doom разве что?), где биндился бы Zoom, а не Altfire). Увеличение плавное от 1.0 до 12.0, при этом экспоненциальное, а не линейное, как в моде. Оружие запоминает уровень зума.
Текущие проблемы:
1. Из бензопилы и кулака также можно прицеливаться (исправляется легко проверками класса оружия).
2. При прицеливании не убирается спрайт пушки (возился с этими psprite-ами, возился, костыли городил --- не получилось, может, другой кто подсобит).
3. Поведение не совсем такое, как в моде (там красный прицел, когда винтовка перезаряжается, а у меня --- когда нажата кнопка выстрела; это косметический эффект, его можно при желании исправить проверкой стейта пушки).
4. Спрайты некрасивые, и их неплохо было бы подвинуть вниз.
Наиболее важная --- вторая.

Romeo7662
Пока писал пост, другие ответили. Ничего нового не прибавлю. Удачи! :o

---
Покойся с миром, старая тема. Да будет HDD на сервере тебе пухом.

Рейтинг сообщения: +3, отметил(и): JSO x, Void Weaver, Romeo7662
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №250 Отправлено: 26.08.19 14:57:39
Гуд.
Я кстати недавно выкладывал тут аналогичную целиковую снайперку но на декоре. :) Правда там через пару постов прикручена возможность вызова оверлэя удара с ноги, а не самой снайперки как таковой.

ВТФ из psprite? Это какой-то зскриптовый термин? Я всё чаще и чаще вижу упоминание сабжа.
1 9 1
Liaslia
Marine
Next rank: Marine 1st class after 4 points
26

Doom Rate: 2

Ссылка на пост №251 Отправлено: 26.08.19 20:59:20
Void Weaver
N00b2015
Приветствую,уважаемые!Спасибо за ответы.
Дело в том,что само ружьё мне не нужно.А нужна именно оптика от него. Для использования зума с любым оружием.Можно конечно использовать обычный алиас зума.Но хотелось бы сделать красиво.А знаний по написанию кода увы,маловато.

N00b2015 Вы верно поняли.( только не "требую" а прошу,кто я нафиг такой чтобы требовать то?))))
Спасибо за труд.Всё сделал,как сказали,но вот что получилось.
Скрытый текст:



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

Вообще идея то в чём?Когда играешь в Думец на мобильном устройстве, дисплей явно маловат.И попасть в какого-нибудь импа или ревенанта засевшего чёрт знает где,уже нелегко.Не во всех модах есть оружие с оптикой,да и часто находишь его под конец прохождения,когда уже не особо и нужно оно.Хотел сделать именно оптику.Скажем,вроде монокуляра.А та пушка из Dump привлекла интересной реализацией зума.
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №252 Отправлено: 27.08.19 17:18:53
Liaslia
УМВР на gz3.8.2_legacy. Может, что-то не так пошло. Вот готовый архив, я там спрайты поменял (на поле советского бинокля вместо прицела крестом), костылём заставил спрайты убираться и назначил выдачу этого предмета с помощью ACS при заходе игрока. Теперь всё должно работать.
Это штука, которая будет работать с любым оружием (если запустится :oops:)
Бинд Zoom я выбрал руководствуясь тем, что он почти нигде не используется. Если это неудобно, замени в 65 строчке BT_ZOOM на нужную клавишу, напр. BT_USER1 (см. таблицу в разделе статьи про GetPlayerInput для списка биндов по умолчанию, а если они все использованы, скажи, и я могу написать keyconf).
Ах да, максимальное увеличение 12.0 в строчке №69 тоже можно менять (там два вхождения!), но только до 50.0, как с помощью A_ZoomFactor (видимо, где-то в коде ещё ограничение стоит).
Void Weaver
Вот что-то об этом говорят. Граф пишет, что PSprite есть один слой изображения оружия на HUD.
---
Edit. Пофиксил малость (первая версия не работала с некоторыми модами, меняющими класс игрока), заменил zoom на user1, заменил увеличение на 20.0.

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 2
Liaslia
Marine
Next rank: Marine 1st class after 4 points
26

Doom Rate: 2

Ссылка на пост №253 Отправлено: 27.08.19 22:35:27
N00b2015
Спасибо вам и извините уж за хлопоты,однако,увы...Ни первый ни второй вариант не заработали.Division by zero.
Вот.
Скрытый текст:

Насчёт назначения кнопок,хотя не в этом загвоздка,конечно,может просто прописать дополнительное значение в кейконфиг? Проще,наверное.И забиндить можно любую кнопку.

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

Скрин второй.
Скрытый текст:

N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №254 Отправлено: 28.08.19 09:49:25
Liaslia
Так пока не за что "спасибо" говорить, раз не работает! :o
Попробуй вот так. Понял, где /0. Очень странно, что на той же версии у меня (правда, я на компе, а ещё gzdoom чистый) эта ошибка не вылезала. Наверное, дело в настройках.
Liaslia пишет:
прописать дополнительное значение в кейконфиг

Это было бы проще, если бы у меня какой-то ACS-ный скрипт вызывался по этой кнопке. У меня сделано по-другому. Если тебе неудобно биндить user1, я могу попробовать это переписать.

Edit. Новая версия (фиксы совместимости, user3).

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 2
Liaslia
Marine
Next rank: Marine 1st class after 4 points
26

Doom Rate: 2

Ссылка на пост №255 Отправлено: 28.08.19 10:49:40
N00b2015
Благодарность в первую очередь за внимание и желание помочь.Оно сейчас редкость так то...Но теперь уже и за результат не грех сказать спасибо!) С оригинальным Doom 2 всё отменно заработало!
Скрытый текст:

А вот при попытке запустить с модами в консоли сообщение о неизвестном типе
айтема.
Скрытый текст:

По поводу запуска,наверно всё же есть отличия гоззы в Delta Touch и чистой на ПК.Встречал пару модов которые не желали работать в Дельте,но на компе у людей работали нормально. По назначению кнопок, User1 используется в одном моде.Если нетрудно,поменяй на User3.

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

N00b2015
Супер!Громадное спасибо и низкий поклон,Мастер! :cool2:
Doomgay1999
- Corporal -
Next rank: = Corporal = after 6 points
94

Doom Rate: 2

Posts quality: -1
Ссылка на пост №256 Отправлено: 28.08.19 21:28:22
А я могу как-то вытащить из Sega Saturn уровни? Мне просто интересно.
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №257 Отправлено: 29.08.19 00:39:52
Doomgay1999 пишет:
А я могу как-то вытащить из Sega Saturn уровни? Мне просто интересно.
Да. Каждая мапа хранится в отдельном ваде в директории
All the maps are stored in the /MAPDIRXXX directory with the IWAD header included.
В самом JIMSDOOM.WAD, содержатся ресурсы и часть графики типа тайтлов, спрайтов кнопок и др. Детали по остальным ресурсам вада здесь.
1 9 1
Doomgay1999
- Corporal -
Next rank: = Corporal = after 6 points
94

Doom Rate: 2

Posts quality: -1
Ссылка на пост №258 Отправлено: 29.08.19 02:55:00
Void Weaver
Где мне скачать Jimsdoom.wad?
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +807
Ссылка на пост №259 Отправлено: 29.08.19 04:45:23
Очевидно там же где ты собирался брать Sega Saturn. Например можно с нашего сайта.

Добавлено спустя 1 день 19 часов 14 минут 8 секунд:

Актору без тида нужно получить Radius его TRACER'а. Написал следующий скрипт:
Script "GetTracerRadius" (void)
{
Thing_ChangeTID(0,UniqueTID());
Delay(1);
SetActivator(ActivatorTID(),AAPTR_TRACER);
SetResultValue(GetActorProperty(0,APROP_Radius));
}
Он работает, но имеется делэй, ибо без него текущий код вешает игру. Вопрос: можно ли как-то оптимизировать код, в частности избавиться от делэя?

Решено:
Script "GetTracerRadius" (void)
{
Thing_ChangeTID(0,UniqueTID());
SetActivator(ActivatorTID(),AAPTR_TRACER);
SetResultValue(GetActorProperty(0,APROP_Radius)>>16);
}
1 9 1
MelaDoZer
Recruit
Next rank: Marine after 6 points
14

Doom Rate: 2

Posts quality: +13
Ссылка на пост №260 Отправлено: 05.09.19 21:36:11
Всем здравствуйте! Долго был в рид-онли, но наконец-то решился зарегистрироваться.
Совсем недавно появилось несколько по ZScript'у. Я вообще с этим делом слабо дружу, но пытаюсь разобраться. Помогите, пожалуйста!
1. У меня есть следующий код, задача которого заключается в добавлении актёров на уровень. Однако, мне нужно и удалить одного монстра, прям как Thing_Remove в ACS, но по индексу, а не по Thing ID. Например, вот этого 101 шотган-гая. Мне кажется что это совсем простая задача, но добраться до решения всё не выходит. Не понимаю, как обратиться именно к этому актёру, такие дела.


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

class Doom_MapHashesChecker_Monsters play
{
	static void Doom_CheckMapHashes_Monsters()
	{																
		if(level.GetChecksum() == 'B49F7A6C519757D390D52667DB7D8793') // - Ultimate Doom E1M1: Hangar
		{
			UltimateDoomMonsters.UltimateDoomE1M1Monsters();
		}
	}
}


class UltimateDoomMonsters play
{
    static void UltimateDoomE1M1Monsters()	//B49F7A6C519757D390D52667DB7D8793 - Ultimate Doom E1M1: Hangar
    {
		int skill_level;
		skill_level = G_SkillPropertyInt(SKILLP_ACSReturn);
		
		if (skill_level >= 3)
		{
			actor Zombieman1;
			Zombieman1 = Actor.Spawn("Zombieman", (1368.0,-2520.0,0), ALLOW_REPLACE);
			Zombieman1.Angle = 225.0;
			Zombieman1.bAmbush = True;
		}
	}
}



2. Может, возможно заменить одного конкретного актёра на другого, как в первом вопросе? Того же сержанта с индексом 101 на импа, например.
3. Самый, наверное, специфический вопрос. Возможно ли ZScript'ом менять геометрию уровня до той же его загрузки, например? Не на уровне ACS'а, конечно, нужна возможность добавлять вертексы, рисовать новые сектора. Я сам подозреваю, что нет, но надежда у меня все ещё есть, так как на вики сказано о "Map data access (and partial control)".
Я не могу редактировать сами карты (и они в стандартном Думовском формате, не написал раньше), поэтому пытаюсь всё сделать скриптами, да и весь остальной код у меня написан ZScript'ом.
Страница 13 из 63Перейти наверх Пред.  1, 2, 3 ... 12, 13, 14 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2