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

@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 Troy1
      Всем привет. Помогите пожалуйста со скриптом.
      Суть. Я пытаюсь сделать синхранизацию сервера с клиентом передавая c конфига время разделки животного.
      В родных скриптах есть class UATimeSpent с константами и там есть константа SKIN.
      Мне нужно её перезаписать на своё значение и мне выдаёт ошибку: Trying to modify write protected variable 'SKIN' в переводе на Русский Попытка изменить защищенную от записи переменную «SKIN».
      Функция скрипта: Когда игрок запускает клиент, идёт запрос на серверную часть и получает в ответ время разделки.
      Задача: Нужно перезаписать константу SKIN на новое значение и всё.
      Сам скрипт.
      class timeToComplete extends UATimeSpent { protected ref UATimeSpent m_UATimeSpent; void timeToComplete() { GetDayZGame().Event_OnRPC.Insert(OnRPC); CheckUATimeSpent(); } void ~timeToComplete() { GetDayZGame().Event_OnRPC.Remove(OnRPC); } void CheckUATimeSpent() { GetGame().RPCSingleParam(NULL, SOC_TIME_RPCs.SOC_GT, NULL, true); } void OnRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx) { if (rpc_type == SOC_TIME_RPCs.SOC_RT) { Param1<float> soc_srt; if (ctx.Read(soc_srt)) { if (soc_srt.param1!= 0) { m_UATimeSpent.SKIN = soc_srt.param1; Print("Пришёл ответ от сервера в m_UATimeSpent.SKIN - " + m_UATimeSpent.SKIN) } } } } };  
    • By alex_good_kaban
      Пытаюсь создать Action который будет принимать данные из созданного JSON конфига на стороне сервера. 
      Пример:
      Создаем конфиг
       

      Json получается в таком формате:
       

      В Action добавляю просто для проверки void GetProxyBuilder() и проверяю его работоспособность

      На стороне клиента я получаю NULL (если добавляю исключение if !=NULL то функция вообще не отрабатывает.
      На стороне сервера значения из конфига получаются, но так как функция z_childNameRPC обрабатывается на стороне клиента то выполнения этого условия не происходит.

      Если не использовать JSON конфиг, а создать массив с данными внутри Action то все отрабатывает нормально.

      Вопрос как возможно использовать данные из конфига JSON
    • By alex_good_kaban
      Что вы узнаете в этом руководстве:

      - Установка и настройка Workbench с нуля
      - Установка инструментариев Dayz Tolls, Mikera tools
      - Создание своего первого мода
      - Отладка этого мода в игре
      - Изменение мода без перезагрузки

      Что нужно для начала работ:

      1. Установленная игра DayZ - https://store.steampowered.com/agecheck/app/221100/
      2. Установленный сервер DayZ - https://store.steampowered.com/agecheck/app/221100/
      3. Установленный DayZ Tools - https://store.steampowered.com/app/830640/DayZ_Tools/
      4. Установленный Visual Studio Code или Notepad ++(советую первый вариант, бонус в конце статьи)
      5. Установить пакет инструментов от Mikera (галочками отмечено в спойлере) - https://mikero.bytex.digital/Downloads

      Если все вышеперечисленные пункты выполнены приступим к настройке:

      1. Создание диска Р и распаковка файлов игры


      2. Создание первого мода


      3. Упаковка в PBO
      На данном этапе мы забываем окончательно о существовании Addon Builder встроенного в DayZ Tools.
      Используйте pboProject для запаковки модов - он показывает абсолютно все допущенные ошибки, кроме ошибок в скриптах.


      4. Подготовка к Filepatching


      5. Тестирование в одиночной игре/оффлайн режим. (DayZDiag_x64 - client)


      6. Тестирование в многопользовательском режиме. (DayZDiag_x64 - server + client)

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