Jump to content
Knightlore

Trying to reduce skinning time

Recommended Posts

Hi, 

I am fairly new to modding, just a coup,le of bog standard override to my name, however this time i am venturing into the actual coding override, I am trying to write an override to reduce skinning time when using a certain knife, However I am struggling to get it to reduce the skinning time, the knife works and i can spawn it so i know the CPP is being read however I cant seem to get the skinning time down, I was originally trying to pull a duration speed from the config.cpp but going down a simpler route, just cant get theover ride to work on the code, Any help apprieciated.

so I have a config set up with

class CfgPatches
{
	class WLD_Kitchen_Knife
	{
		units[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]={"DZ_Data","DZ_Scripts"};
	};
};
class CfgMods
{
	class WLD_Kitchen_Knife
	{
		dir="WLD_Kitchen_Knife";
		hideName=1;
		hidePicture=1;
		name="WLD_Kitchen_Knife";
		credits="Knightlore";
		author="Knightlore";
		authorID="0";
		version="1.0";
		extra=0;
		type="mod";
		dependencies[]={"World"};
		class defs
		{
			class worldScriptModule
			{
				value="";
				files[]={"WLD_Kitchen_Knife/4_world"};
			};
		};
	};
};

Pointing to scripts folder - WLD_Kitchen_Knife\Addons\4_world\Classes\UserActionsComponent\Actions\Continuous\ActionSkinningCB.c

This has 

modded class ActionSkinningCB : ActionContinuousBaseCB

{
	override void CreateActionComponent()
	{
		float time_spent;
		time_spent = UATimeSpent.SKIN;
		time_spent = time_spent / 4;
		m_ActionData.m_ActionComponent = new CAContinuousTime(time_spent);
	}
};

This should reduce UATimeSpent.Skin by a factor of 4 (I think). UTimeSpent.Skin is set as a constant 10 in the dayz main config

As a reference the first part of the actual dayz file is 

class ActionSkinningCB : ActionContinuousBaseCB
{
	override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.SKIN);
	}
}

Anyone see why this doesnt work,

TIA

Edited by Knightlore
spelling

Share this post


Link to post
Share on other sites
4 hours ago, Knightlore said:

Hi, 

I am fairly new to modding, just a coup,le of bog standard override to my name, however this time i am venturing into the actual coding override, I am trying to write an override to reduce skinning time when using a certain knife, However I am struggling to get it to reduce the skinning time, the knife works and i can spawn it so i know the CPP is being read however I cant seem to get the skinning time down, I was originally trying to pull a duration speed from the config.cpp but going down a simpler route, just cant get theover ride to work on the code, Any help apprieciated.

so I have a config set up with


class CfgPatches
{
	class WLD_Kitchen_Knife
	{
		units[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]={"DZ_Data","DZ_Scripts"};
	};
};
class CfgMods
{
	class WLD_Kitchen_Knife
	{
		dir="WLD_Kitchen_Knife";
		hideName=1;
		hidePicture=1;
		name="WLD_Kitchen_Knife";
		credits="Knightlore";
		author="Knightlore";
		authorID="0";
		version="1.0";
		extra=0;
		type="mod";
		dependencies[]={"World"};
		class defs
		{
			class worldScriptModule
			{
				value="";
				files[]={"WLD_Kitchen_Knife/4_world"};
			};
		};
	};
};

Pointing to scripts folder - WLD_Kitchen_Knife\Addons\4_world\Classes\UserActionsComponent\Actions\Continuous\ActionSkinningCB.c

This has 


modded class ActionSkinningCB : ActionContinuousBaseCB

{
	override void CreateActionComponent()
	{
		float time_spent;
		time_spent = UATimeSpent.SKIN;
		time_spent = time_spent / 4;
		m_ActionData.m_ActionComponent = new CAContinuousTime(time_spent);
	}
};

This should reduce UATimeSpent.Skin by a factor of 4 (I think). UTimeSpent.Skin is set as a constant 10 in the dayz main config

As a reference the first part of the actual dayz file is 


class ActionSkinningCB : ActionContinuousBaseCB
{
	override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.SKIN);
	}
}

Anyone see why this doesnt work,

TIA

So instead of blah-blah-blah what's your problem?

No need to write a poem how you wanted your summer, just the question, facts and code it's not so hard.

Share this post


Link to post
Share on other sites
Spoiler

 

4 hours ago, Knightlore said:

Hi, 

I am fairly new to modding, just a coup,le of bog standard override to my name, however this time i am venturing into the actual coding override, I am trying to write an override to reduce skinning time when using a certain knife, However I am struggling to get it to reduce the skinning time, the knife works and i can spawn it so i know the CPP is being read however I cant seem to get the skinning time down, I was originally trying to pull a duration speed from the config.cpp but going down a simpler route, just cant get theover ride to work on the code, Any help apprieciated.

so I have a config set up with



class CfgPatches
{
	class WLD_Kitchen_Knife
	{
		units[]={};
		weapons[]={};
		requiredVersion=0.1;
		requiredAddons[]={"DZ_Data","DZ_Scripts"};
	};
};
class CfgMods
{
	class WLD_Kitchen_Knife
	{
		dir="WLD_Kitchen_Knife";
		hideName=1;
		hidePicture=1;
		name="WLD_Kitchen_Knife";
		credits="Knightlore";
		author="Knightlore";
		authorID="0";
		version="1.0";
		extra=0;
		type="mod";
		dependencies[]={"World"};
		class defs
		{
			class worldScriptModule
			{
				value="";
				files[]={"WLD_Kitchen_Knife/4_world"};
			};
		};
	};
};

Pointing to scripts folder - WLD_Kitchen_Knife\Addons\4_world\Classes\UserActionsComponent\Actions\Continuous\ActionSkinningCB.c

This has 



modded class ActionSkinningCB : ActionContinuousBaseCB

{
	override void CreateActionComponent()
	{
		float time_spent;
		time_spent = UATimeSpent.SKIN;
		time_spent = time_spent / 4;
		m_ActionData.m_ActionComponent = new CAContinuousTime(time_spent);
	}
};

This should reduce UATimeSpent.Skin by a factor of 4 (I think). UTimeSpent.Skin is set as a constant 10 in the dayz main config

As a reference the first part of the actual dayz file is 



class ActionSkinningCB : ActionContinuousBaseCB
{
	override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.SKIN);
	}
}

Anyone see why this doesnt work,

TIA

I was able to reduce amount of your blah-blah blah to get the idea of the question.
Here the solution:
1. If you wish make something faster - no need create clocks, need to redefine timeouts!
So for that case you have 2 way for resolving:
Case 1: Global reduce time by modify the Constant:
DayZ\dta\scripts\4_World\Classes\UserActionsComponent\Actions\ActionConstants.c

/**@class	Constants for Time spent while doing action*/
modded class UATimeSpent {
    /* Another constants that's I don't cares, but you better safe them for something */
	const float SKIN = 10; // <- in 1.26 default value is 10, set 4 or idk how many you prefer and IT DEFINED AS CONST, so you can't redefine it in runtime by assign.
}

Case 2: If you don't want to create duplicate of class - redefine the timeout on action (your code is almost right, but wrong overriding, try this way):

modded class ActionSkinningCB {	// You're only modifing the existing callback class, when you define parent - you're redefiend the class and that can mess up the game
	override void CreateActionComponent() {
		float time_spent = UATimeSpent.SKIN;
		time_spent = time_spent / 4;
		m_ActionData.m_ActionComponent = new CAContinuousTime(time_spent);
	}
};

Let me know about results 🙂

Share this post


Link to post
Share on other sites

Thanks for the help. But no joy, still not working, 🙁 I used case 2

Edited by Knightlore

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×