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
alex_good_kaban

Как сбросить таймер у еды Edible_base

Пытаюсь изменить состояние еды из состояние ROTTEN (Гнилого) в состояние RAW (Сырое).
Использую команду 
 

Edible_Base food = Edible_Base.Cast(ingredients);
food.ChangeFoodStage( FoodStageType.RAW );

Состояние изменяется на RAW секунд на 20, после опять возвращается в состояние ROTTEN. 
Как зафиксировать данное состояние у еды, я так понимаю есть определенный таймер у еды который тоже нужно сбросить. Подскажите как?

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Как я и предполагал за это отвечает таймер 

m_DecayTimer 

который нужно сбросить в 0 в Edible_Base. Но так как это защищенная переменная, нужно будет создать свою собственную функцию для ее сброса.
Вопрос: Как ее создать? Может кто образец хотя бы подсказать.

Share this post


Link to post
Share on other sites



  • 0
11 часов назад, alex_good_kaban сказал:

Как я и предполагал за это отвечает таймер 

m_DecayTimer


m_DecayTimer 

который нужно сбросить в 0 в Edible_Base. Но так как это защищенная переменная, нужно будет создать свою собственную функцию для ее сброса.
Вопрос: Как ее создать? Может кто образец хотя бы подсказать.

модди класс, где нужная тебе переменная, и добавляй в нег освою функцию с нужными тебе действиями, разве что так.

Share this post


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

@alex_good_kaban примерно так, специалисты, если что поправят.
Модим:

modded class Edible_Base
{
	public void SetDecayTimer(double value)
	{
		m_DecayTimer = value;
	}
}

Ну а дальше уже используешь:
 

Edible_Base food = Edible_Base.Cast(ingredients);
food.SetDecayTimer(0);
food.ChangeFoodStage( FoodStageType.RAW );

 

Edited by glebasterbajo (see edit history)

Share this post


Link to post
Share on other sites
  • 0

@glebasterbajo @123new 
К сожалению не отрабатывает (public и double не вызываются в Enscript)

modded class Edible_Base
{
	void SetDecayTimer (int value)
	{
		m_DecayTimer = value;
	}
}

 

void Do(ItemBase ingredients[], PlayerBase player,array<ItemBase> results, float specialty_weight)
	{
			Edible_Base food = Edible_Base.Cast(ingredients[0]);
  			food.ChangeFoodStage( FoodStageType.RAW );
			food.SetDecayTimer(0);
  	}

 

Share this post


Link to post
Share on other sites
  • 0

Причем странно, на некоторой гнилой еде скрипт отрабатывает и сохраняет результат.

Share this post


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

Причем странно, на некоторой гнилой еде скрипт отрабатывает и сохраняет результат.

значит у каких-то классов доп вычисления есть, мб свои таймеры

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

  • Similar Content

    • By aimlock
      Можно ли изменить global armor предмета через скрипт, игнорирую config предмета?
    • By aimlock
      Нужно что бы объект двигался от лица игрока по прямой.
      Использовал функцию 
       
      SetVelocity(this, Vector(1, 0.1, 0)); где this это сам объект (extended class house)
      но вектор движения задается по кордам карты x, y, z
       
    • By aimlock
      Всем привет, я заметил что некоторые люди не до конца понимают что такое регистрация анимаций для предметов в руках, как ее правильно делать и для чего она нужна?

      Для чего это нужно? Допустим вы добавляете предмет в игру и не привязываете его ни к какому объекту (создаете полностью с нуля, задаете свойства) и сталкиваетесь с тем что ваш объект без привязки не имеет должной анимации. А имеет стандартную анимацию банки консервы (в том числе и для предметов которые должны держаться в 2 руках), ну или вовсе предмет находиться в ногах у персонажа (примеры прикрепил скриншоты). Именно для этого и нужно привязывать анимацию положения объекта в руках через скрипт.

      На момент написания этого поста я знаю 3 вида регистрации анимаций для предметов в руках:
      1. PlayerBase
      2. JMAnimRegister
      3. ModItemRegisterCallbacks

      До создания последних 2 способов все использовали PlayerBase :
       
      modded class PlayerBase { override void Init() { DayzPlayerItemBehaviorCfg fireArmsItemBehaviour = new DayzPlayerItemBehaviorCfg; fireArmsItemBehaviour.SetFirearms(); GetDayZPlayerType().AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", fireArmsItemBehaviour, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); super.Init(); } } Но у этого способа есть очень большой минус, это очень нестабильная штука. Нередко крашила сервера и имела ограничения на кол-во регистрации анимаций.
      С такими большими минусами, мододеллы начали искать решения как можно сделать это более стабильно и оптимизированно. И такой способ нашли.

      DayZPlayerTypeRegisterItems(DayZPlayerType Type) вот наше спасение, но тут тоже не все так просто, полумолчание это функция внутри класса, а для поставленной задачи (иметь возможность безопасно  и стабильно вносить новую регистрацию предметов) это не подходит. Тогда разработчики мода CF создали кастомный класс с использованием схожих функций для регистрации анимаций положений предметов в руках. Этим классом является JMAnimRegister. Стабильная и оптимизированная функция, которой очень просто пользоваться. Разумеется использовать вы сможете этот класс только при наличии в своей сборке CF . Как им пользоваться?
       
      modded class JMAnimRegister { override void OnRegisterFireArms( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) { super.OnRegisterFireArms( pType, pBehavior ); pType..AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); } }; Как самый простой пример. И так можно задавать любому количеству предметов положение в руках :
       
      modded class JMAnimRegister { override void OnRegisterFireArms( DayZPlayerType pType, DayzPlayerItemBehaviorCfg pBehavior ) { super.OnRegisterFireArms( pType, pBehavior ); pType..AddItemInHandsProfileIK("MyModdedWeapon", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); pType..AddItemInHandsProfileIK("MyModdedWeapon2", "dz/anims/workspaces/player/player_main/weapons/player_main_cz527.asi", pBehavior, "dz/anims/anm/player/ik/weapons/cz527.anm", "dz/anims/anm/player/reloads/cz527/w_CZ527_states.anm"); } }; Прошу обратить внимание, что мы используем modded, мы модифицируем уже существующий класс внутри
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By Drummer
      Скачал с вашего сайта данный скрипт http://s-platoon.ru/index.php?/topic/122-elevator-script-for-players-and-vehicles/
       
      В РПТ мне выдаёт такую ошибку
      21:17:05 "Error: Elevator script should NOT be started on the server" Как быть,и возможно ли это исправить.
      Заранее спасибо за помощь
  • Our picks

×
×
  • 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.