Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
NEMESIS-TLM

DAYZ-Expansion - как заменить NPC на модовых?

Доброго времени суток!

Подскажите, как заменить NPC из экспеншиона на модовых (типа Сидора)?

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 1
Posted (edited)

Итак, решение для тех, кто хочет заменить дефолтных квестовых NPC на своих из любого мода. На примере NPC из мода TalkingNPC.

 

1. Создаем папку своего мода. К примеру, MyNPC. 

2. В папке мода создаем файл config.cpp:

class CfgPatches
{
	class NPC_Quests_NPCEntities
	{
		units[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DayZExpansion_Quests_Dta_Core"
		};
	};
};
class CfgMods
{
	class NPC_Quests_NPCEntities
	{
		dir="MyNPC";
		picture="";
		action="";
		hideName=1;
		hidePicture=1;
		name="NPC_Quest";
		credits="";
		author="";
		authorID="0";
		version="1.0";
		extra=0;
		type="mod";
		dependencies[]=
		{
			"World"
		};
		class defs
		{
			class worldScriptModule
			{
				value="";
				files[]=
				{
					"MyNPC/scripts/4_World"
				};
			};

		};
	};
};
class CfgVehicles
{
	class TNPC_Doctor;
    
	class ExpansionQuestNPCDoktor: TNPC_Doctor
    {
		displayName = "Doctor";
		vehicleClass = "Expansion_Trader";
    };
}

3. Далее создаем в корне папки мода папку Scripts и в ней папку 4_World.

4. В папке 4_World создаем файл ExpansionQuestNPC.c:

class ExpansionQuestNPCDoktor: ExpansionQuestNPCBase {};

5. Запаковываем наш мод в .pbo и через настройку квестовых NPC добавляем новый созданный нами класс ExpansionQuestNPCDoktor:

"ClassName": "ExpansionQuestNPCDoktor"

6. После чего проверяем в игре.

 

P.S. На данном примере мы добавляем анимированных NPC. Но иногда могут попасться в модах статичные NPC. В этом случае в ExpansionQuestNPC.c добавляем класс статичного NPC:

class ExpansionQuestNPCLesnik: ExpansionQuestStaticObject  {};

P.P.S. Анимацию с жестами я еще не проверял, да оно и не к чему особо. Меньше будет нагрузки на сервер.

 

Отдельное спасибо за помощь в решении выражаю dchuba#5378.

Edited by NEMESIS-TLM (see edit history)

Share this post


Link to post
Share on other sites



  • 0

Если речь идёт о НПС от Фидова то тебе нужно скриптово обозначать их для экспеншена как статичный объект. Типа того:
 

class CfgPatches
{
	class testonemore
	{
		units[]=
		{
			"Land_SeaConteinerRed",
			"StaticObj_Furniture_tac_board"
		};
		magazines[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Characters_Vests",
			"DZ_Structures",
			"DZ_Characters_Backpacks",
			"DZ_Structures_Wrecks",
			"DZ_Gear_Drinks",
			"DZ_Gear_Medical",
			"DZ_Gear_Consumables",
			"DZ_Gear_Tools",
			"DZ_Gear_Containers",
			"DZ_Weapons_Magazines",
			"DZ_Weapons_Muzzles",
			"DZ_Weapons_Firearms",
			"DZ_Scripts",
			"JM_CF_Scripts",
			"RPC_Scripts",
			"DayZExpansion_Core_Scripts",
			"DayZExpansion_Quests_Scripts",
		};
	};
};
class CfgVehicles
{
	class HouseNoDestruct;
	
		class GMSidor_Static: HouseNoDestruct
	{
		scope = public;
		model = "\SFP2\1_AI\sidor\sidor_completed.p3d";
		forceFarBubble="true";
	};

 

Share this post


Link to post
Share on other sites
  • 0
3 часа назад, FreonFIve сказал:

Если речь идёт о НПС от Фидова то тебе нужно скриптово обозначать их для экспеншена как статичный объект. Типа того:
 

class CfgPatches { class testonemore { units[]= { "Land_SeaConteinerRed", "StaticObj_Furniture_tac_board" }; magazines[]={}; weapons[]={}; requiredVersion=0.1; requiredAddons[]= { "DZ_Data", "DZ_Characters_Vests", "DZ_Structures", "DZ_Characters_Backpacks", "DZ_Structures_Wrecks", "DZ_Gear_Drinks", "DZ_Gear_Medical", "DZ_Gear_Consumables", "DZ_Gear_Tools", "DZ_Gear_Containers", "DZ_Weapons_Magazines", "DZ_Weapons_Muzzles", "DZ_Weapons_Firearms", "DZ_Scripts", "JM_CF_Scripts", "RPC_Scripts", "DayZExpansion_Core_Scripts", "DayZExpansion_Quests_Scripts", }; }; }; class CfgVehicles { class HouseNoDestruct; class GMSidor_Static: HouseNoDestruct { scope = public; model = "\SFP2\1_AI\sidor\sidor_completed.p3d"; forceFarBubble="true"; };


class CfgPatches
{
	class testonemore
	{
		units[]=
		{
			"Land_SeaConteinerRed",
			"StaticObj_Furniture_tac_board"
		};
		magazines[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Characters_Vests",
			"DZ_Structures",
			"DZ_Characters_Backpacks",
			"DZ_Structures_Wrecks",
			"DZ_Gear_Drinks",
			"DZ_Gear_Medical",
			"DZ_Gear_Consumables",
			"DZ_Gear_Tools",
			"DZ_Gear_Containers",
			"DZ_Weapons_Magazines",
			"DZ_Weapons_Muzzles",
			"DZ_Weapons_Firearms",
			"DZ_Scripts",
			"JM_CF_Scripts",
			"RPC_Scripts",
			"DayZExpansion_Core_Scripts",
			"DayZExpansion_Quests_Scripts",
		};
	};
};
class CfgVehicles
{
	class HouseNoDestruct;
	
		class GMSidor_Static: HouseNoDestruct
	{
		scope = public;
		model = "\SFP2\1_AI\sidor\sidor_completed.p3d";
		forceFarBubble="true";
	};

 

 

Не получилось.

 

ExpansionQuestNPCDataBase::SpawnNPC - Used unsupported object GMSidor_Static as quest NPC in config. Only objects based on ExpansionQuestNPCBase class are allowed!
Class:      'ExpansionQuestNPCData'
Function: 'Error'

 

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, NEMESIS-TLM сказал:

 

Не получилось.

 

ExpansionQuestNPCDataBase::SpawnNPC - Used unsupported object GMSidor_Static as quest NPC in config. Only objects based on ExpansionQuestNPCBase class are allowed! Class:      'ExpansionQuestNPCData' Function: 'Error'


ExpansionQuestNPCDataBase::SpawnNPC - Used unsupported object GMSidor_Static as quest NPC in config. Only objects based on ExpansionQuestNPCBase class are allowed!
Class:      'ExpansionQuestNPCData'
Function: 'Error'

 

скинь кфг

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

В общем я сделал скрипт на добавление модового NPC. Скрипт работает без ошибок. Но он добавляется только в виде eAI (бегает и дерется зараза 😁).

 

class CfgPatches
{
	class TLM_NPC
	{
		units[]={};
		magazines[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]=
		{
			"DZ_Data",
			"DZ_Structures",
			"DZ_Sounds_Effects",
			"DZ_Scripts",
			"JM_CF_Scripts",
			"TalkingNPC",
			"RPC_Scripts",
			"DayZExpansion_Quests_Dta_Core",
			"DayZExpansion_Market_Objects",
            "DayZExpansion_Market_Scripts",
			"DayZExpansion_Core_Scripts",
			"DayZExpansion_Quests_Scripts"
		};
	};
};
class CfgVehicles
{
	class SurvivorF_Eva;
	class ExpansionTraderDenis;
	class ExpansionQuestNPCBase;
	class ExpansionTraderStaticBase;
	class HouseNoDestruct;
	class SurvivorM_Mirek; //! Normal NPC
    class eAI_SurvivorM_Mirek: SurvivorM_Mirek {}; //! AI NPC
			
	class ExpansionQuestNPCSidor: eAI_SurvivorM_Mirek
	{
		displayName = "Sidor";
		model = "\TalkingNPC\models\sidor.p3d";
		vehicleClass = "Expansion_Trader";
	};
	
	class ExpansionQuestNPCAISidor: eAI_SurvivorM_Mirek
	{
		displayName = "Sidor";
		model = "\TalkingNPC\models\sidor.p3d";
		vehicleClass = "Expansion_Trader";
	};
	
};	

 

А для того, чтобы добавить его в квесты, надо сделать следующее:

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

 

Script class example for a normal quest NPC in the 4_World script module of your mod:

class ExpansionQuestNPCMirek: ExpansionQuestNPCBase {};

Script class example for an Enfusion AI quest NPC in the 4_World script module of your mod:

class ExpansionQuestNPCAIMirek: ExpansionQuestNPCAIBase {};

 

 

Я так понял надо добавить новый класс своего NPC в 4_World. Вот и вопрос как правильно скрипт написать на добавление нового класса к существующим квестовым NPC?

Edited by NEMESIS-TLM (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Я делал НПС (типа Сидора который за столом сидит или лесника что на кровати) через вышескинутый скрипт ставя им HouseNoDestruct и обозначая их для экспеншена как статичный объект.

Share this post


Link to post
Share on other sites
  • 0
7 минут назад, FreonFIve сказал:

Я делал НПС (типа Сидора который за столом сидит или лесника что на кровати) через вышескинутый скрипт ставя им HouseNoDestruct и обозначая их для экспеншена как статичный объект.

Если не сложно, сбрось пожалуйста твой полный скрипт и настройку НПС для квестов? Если удобно, то пообщались бы в дискорде...

Я уже сделал даже так, что Сидор у меня в виде eAI, в виде торговца, а вот квестовым НПС ну никак не получается. Постоянная ошибка в краш логе.

Share this post


Link to post
Share on other sites
  • 0

осталось поделиться им с окружающими, чтобы потом еще 10 человек то же самое не спросили 😄

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.