Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной

Всем привет. В общем пишу ибо сам уже (Слово удалено системой) знает куда копать. Нужно отрегулировать рвоту, а то сейчас когда человек переедает или перепивает рвет но еда не уходит уходит только то что наел или напил. Так-же сейчас поставил мод вируса, и там тоже есть рвота но он рвет а еда не уходит. Так вот нужна помощь, можете подсказать где крутить? Если в Player Constans то что именно там крутить? Заранее спасибо вам большое молодые люди ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0
19.03.2021 в 18:25, CrazyBimbo сказал:

Эхх) буду рыскать тогда) может в самом медикале. 

SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT); //симптом рвоты

symptom.SetDuration(2); //это вроде как продолжительность
player.GetStatWater().Add( -твое число); 
player.GetStatEnergy().Add( -твое число);

//////////////////////////////////////////////////////// в качестве примера дефолтный mdf холеры дейза, будут вопросы пиши
class CholeraMdfr: ModifierBase
 {
  static const int AGENT_THRESHOLD_ACTIVATE = 100;
  static const int AGENT_THRESHOLD_DEACTIVATE = 0;
  
  static const int CHANCE_OF_VOMIT = 33;
  static const int WATER_DRAIN_FROM_VOMIT = 450;
  static const int ENERGY_DRAIN_FROM_VOMIT = 310;
  static const float WATER_LOSS_CHOLERA = 0.5;
  
  override void Init()
  {
  m_TrackActivatedTime = false;
  m_ID = eModifiers.MDF_CHOLERA;
  m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
  }
  
  override string GetDebugText()
  {
  return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE);
  }
  
  override protected bool ActivateCondition(PlayerBase player)
  {
  if(player.GetSingleAgentCount(eAgents.CHOLERA) >= AGENT_THRESHOLD_ACTIVATE) 
  {
  return true;
  }
  else 
  {
  return false;
  }
  }
  
  override protected void OnActivate(PlayerBase player)
  {
  player.IncreaseDiseaseCount();
  }
  
  override protected void OnDeactivate(PlayerBase player)
  {
  player.DecreaseDiseaseCount();
  }
  
  override protected bool DeactivateCondition(PlayerBase player)
  {
  if(player.GetSingleAgentCount(eAgents.CHOLERA) <= AGENT_THRESHOLD_DEACTIVATE) 
  {
  return true;
  }
  else 
  {
  return false;
  }
  }
  
  override protected void OnTick(PlayerBase player, float deltaT)
  {
  float water_loss = deltaT * WATER_LOSS_CHOLERA; // could be replaced by fever in future
  player.GetStatWater().Add(-water_loss);
  
  float stomach_volume = player.m_PlayerStomach.GetStomachVolume();
  if( stomach_volume > 200 )
  {
  int roll = Math.RandomInt(0, 100);
  if( roll < CHANCE_OF_VOMIT )
  {
  SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
  
  if( symptom )
  { 
  symptom.SetDuration(Math.RandomIntInclusive(4,8));
  
  // figure something more clever
  if (m_Player.GetStatWater().Get() > (WATER_DRAIN_FROM_VOMIT))
  m_Player.GetStatWater().Add(-1 * WATER_DRAIN_FROM_VOMIT);
  if (m_Player.GetStatEnergy().Get() > (ENERGY_DRAIN_FROM_VOMIT))
  m_Player.GetStatEnergy().Add(-1 * ENERGY_DRAIN_FROM_VOMIT);
  }
  }
  }
  }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

открываешь Player Constans из родного scripts

смотришь какие там параметры, благо описание авторы оставили

выбираешь параметры, какие тебе нужны из класса этого

берешь себе в мод, правишь их на нужные значения и тестируешь

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
15 часов назад, 123new сказал:

открываешь Player Constans из родного scripts

смотришь какие там параметры, благо описание авторы оставили

выбираешь параметры, какие тебе нужны из класса этого

берешь себе в мод, правишь их на нужные значения и тестируешь

 

Хмм, у меня стоит еще медикал аттенш, там этого нет? Ибо в Player Constans я крутил и ничего не получалось.

Изменено пользователем CrazyBimbo (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 минуты назад, CrazyBimbo сказал:

Хмм, у меня стоит еще медикал аттенш, там этого нет? Ибо в Player Constans я крутил и ничего не получалось.

понятия не имею. Возможно мод должен стоять на клиентской стороне. Если и так не работало - скорее всего был не верно собран он и не работал тупо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
4 часа назад, 123new сказал:

понятия не имею. Возможно мод должен стоять на клиентской стороне. Если и так не работало - скорее всего был не верно собран он и не работал тупо

Спасибо большое, буду лазить ковырять )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
8 часов назад, 123new сказал:

понятия не имею. Возможно мод должен стоять на клиентской стороне. Если и так не работало - скорее всего был не верно собран он и не работал тупо

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

В модах рвота в оснгвном просто эффект, изменением переменных в соответствующих классах никто как правило не морочится

Штатно, да, уходит что наел и напил,  если рвота от переедагия, а вот рвота от болячек как раз заставляет уходить сверх этого

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
6 часов назад, BorizzK сказал:

В модах рвота в оснгвном просто эффект, изменением переменных в соответствующих классах никто как правило не морочится

Штатно, да, уходит что наел и напил,  если рвота от переедагия, а вот рвота от болячек как раз заставляет уходить сверх этого

Странно но нефига не уходит. Куда копать? где можно свои переменные поставить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Смотреть код надо

Я к сож доступа к коду сейчас не ииею

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
18.03.2021 в 13:17, BorizzK сказал:

Смотреть код надо

Я к сож доступа к коду сейчас не ииею

Эхх) буду рыскать тогда) может в самом медикале. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
27 минут назад, aimlock сказал:

SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT); //симптом рвоты symptom.SetDuration(2); //это вроде как продолжительность player.GetStatWater().Add( -твое число);  player.GetStatEnergy().Add( -твое число); //////////////////////////////////////////////////////// в качестве примера дефолтный mdf холеры дейза, будут вопросы пиши class CholeraMdfr: ModifierBase { static const int AGENT_THRESHOLD_ACTIVATE = 100; static const int AGENT_THRESHOLD_DEACTIVATE = 0; static const int CHANCE_OF_VOMIT = 33; static const int WATER_DRAIN_FROM_VOMIT = 450; static const int ENERGY_DRAIN_FROM_VOMIT = 310; static const float WATER_LOSS_CHOLERA = 0.5; override void Init() { m_TrackActivatedTime = false; m_ID = eModifiers.MDF_CHOLERA; m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE; m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE; } override string GetDebugText() { return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE); } override protected bool ActivateCondition(PlayerBase player) { if(player.GetSingleAgentCount(eAgents.CHOLERA) >= AGENT_THRESHOLD_ACTIVATE) { return true; } else { return false; } } override protected void OnActivate(PlayerBase player) { player.IncreaseDiseaseCount(); } override protected void OnDeactivate(PlayerBase player) { player.DecreaseDiseaseCount(); } override protected bool DeactivateCondition(PlayerBase player) { if(player.GetSingleAgentCount(eAgents.CHOLERA) <= AGENT_THRESHOLD_DEACTIVATE) { return true; } else { return false; } } override protected void OnTick(PlayerBase player, float deltaT) { float water_loss = deltaT * WATER_LOSS_CHOLERA; // could be replaced by fever in future player.GetStatWater().Add(-water_loss); float stomach_volume = player.m_PlayerStomach.GetStomachVolume(); if( stomach_volume > 200 ) { int roll = Math.RandomInt(0, 100); if( roll < CHANCE_OF_VOMIT ) { SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT); if( symptom ) { symptom.SetDuration(Math.RandomIntInclusive(4,8)); // figure something more clever if (m_Player.GetStatWater().Get() > (WATER_DRAIN_FROM_VOMIT)) m_Player.GetStatWater().Add(-1 * WATER_DRAIN_FROM_VOMIT); if (m_Player.GetStatEnergy().Get() > (ENERGY_DRAIN_FROM_VOMIT)) m_Player.GetStatEnergy().Add(-1 * ENERGY_DRAIN_FROM_VOMIT); } } } }


SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT); //симптом рвоты

symptom.SetDuration(2); //это вроде как продолжительность
player.GetStatWater().Add( -твое число); 
player.GetStatEnergy().Add( -твое число);

//////////////////////////////////////////////////////// в качестве примера дефолтный mdf холеры дейза, будут вопросы пиши
class CholeraMdfr: ModifierBase
 {
  static const int AGENT_THRESHOLD_ACTIVATE = 100;
  static const int AGENT_THRESHOLD_DEACTIVATE = 0;
  
  static const int CHANCE_OF_VOMIT = 33;
  static const int WATER_DRAIN_FROM_VOMIT = 450;
  static const int ENERGY_DRAIN_FROM_VOMIT = 310;
  static const float WATER_LOSS_CHOLERA = 0.5;
  
  override void Init()
  {
  m_TrackActivatedTime = false;
  m_ID = eModifiers.MDF_CHOLERA;
  m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
  m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
  }
  
  override string GetDebugText()
  {
  return ("Activate threshold: "+AGENT_THRESHOLD_ACTIVATE + "| " +"Deativate threshold: "+AGENT_THRESHOLD_DEACTIVATE);
  }
  
  override protected bool ActivateCondition(PlayerBase player)
  {
  if(player.GetSingleAgentCount(eAgents.CHOLERA) >= AGENT_THRESHOLD_ACTIVATE) 
  {
  return true;
  }
  else 
  {
  return false;
  }
  }
  
  override protected void OnActivate(PlayerBase player)
  {
  player.IncreaseDiseaseCount();
  }
  
  override protected void OnDeactivate(PlayerBase player)
  {
  player.DecreaseDiseaseCount();
  }
  
  override protected bool DeactivateCondition(PlayerBase player)
  {
  if(player.GetSingleAgentCount(eAgents.CHOLERA) <= AGENT_THRESHOLD_DEACTIVATE) 
  {
  return true;
  }
  else 
  {
  return false;
  }
  }
  
  override protected void OnTick(PlayerBase player, float deltaT)
  {
  float water_loss = deltaT * WATER_LOSS_CHOLERA; // could be replaced by fever in future
  player.GetStatWater().Add(-water_loss);
  
  float stomach_volume = player.m_PlayerStomach.GetStomachVolume();
  if( stomach_volume > 200 )
  {
  int roll = Math.RandomInt(0, 100);
  if( roll < CHANCE_OF_VOMIT )
  {
  SymptomBase symptom = player.GetSymptomManager().QueueUpPrimarySymptom(SymptomIDs.SYMPTOM_VOMIT);
  
  if( symptom )
  { 
  symptom.SetDuration(Math.RandomIntInclusive(4,8));
  
  // figure something more clever
  if (m_Player.GetStatWater().Get() > (WATER_DRAIN_FROM_VOMIT))
  m_Player.GetStatWater().Add(-1 * WATER_DRAIN_FROM_VOMIT);
  if (m_Player.GetStatEnergy().Get() > (ENERGY_DRAIN_FROM_VOMIT))
  m_Player.GetStatEnergy().Add(-1 * ENERGY_DRAIN_FROM_VOMIT);
  }
  }
  }
  }

 

Спасибо тебе мил человек!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка