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

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

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

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

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

Изменение значений

Такой вопрос.

Есть вот такие константы 

	const float ENVIRO_ABSORBENCY_HEALTHFACTOR_PRISTINE  = 1.0;
	const float ENVIRO_ABSORBENCY_HEALTHFACTOR_WORN		 = 0.75;
	const float ENVIRO_ABSORBENCY_HEALTHFACTOR_DAMAGED	 = 0.55;
	const float ENVIRO_ABSORBENCY_HEALTHFACTOR_B_DAMAGED = 0.25;
	const float ENVIRO_ABSORBENCY_HEALTHFACTOR_RUINED  	 = 0.0;	
static float GetCurrentItemAbsorbency( ItemBase pItem )
	{
		float healthFactor;

		float absorb = pItem.ConfigGetFloat("varWetMax");
		float itemHealthLabel = pItem.GetHealthLevel();	
				
		switch (itemHealthLabel)
		{
			case GameConstants.STATE_PRISTINE:
				healthFactor = GameConstants.ENVIRO_ABSORBENCY_HEALTHFACTOR_PRISTINE;
			break;
			
			case GameConstants.STATE_WORN:
				healthFactor = GameConstants.ENVIRO_ABSORBENCY_HEALTHFACTOR_WORN;
			break;
			
			case GameConstants.STATE_DAMAGED:
				healthFactor = GameConstants.ENVIRO_ABSORBENCY_HEALTHFACTOR_DAMAGED;
			break;
			
			case GameConstants.STATE_BADLY_DAMAGED:
				healthFactor = GameConstants.ENVIRO_ABSORBENCY_HEALTHFACTOR_B_DAMAGED;
			break;
				
			case GameConstants.STATE_RUINED:
				healthFactor = 0.01;
			break;
		}
		if (absorb != 0)
			absorb /= healthFactor;
		
		return absorb;
	}

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

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


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

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

  • 0
def защита_от_воды(хп):
    if хп == 100:
        защита = 1.0
    elif хп == 0:
        защита = 0.0
    else:
        защита = хп / 100.0

    return защита

# Пример использования
хп_вещи = 75
защита_от_воды_вещи = защита_от_воды(хп_вещи)
print(f"Защита от воды вещи: {защита_от_воды_вещи}")

ка кто так

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


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

проверять ХП вещи и при изменении значения вызывать твою функцию?
писать текущее хп в переменную, при старте они равные, потом если хп вещи меньше твоей переменной вызывать твою финкцию, и твоей перменной присваивать новое значение хп, если не меньше то ничего не делать. наверное как то так

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


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

@Elk Получается данные не обновляются из-за того что сейчас функция принимает не текущий  уровень здоровья, а состояние вещи?

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


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

@Elk Получается данные не обновляются из-за того что сейчас функция принимает не текущий  уровень здоровья, а состояние вещи?

 у тебя же стоит изменить healthFactor в зависимости от состояния вещи (STATE_PRISTINE, STATE_WORN, STATE_DAMAGED, STATE_BADLY_DAMAGED, STATE_RUINED), не от ее хп.

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


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

def защита_от_воды(хп): if хп == 100: защита = 1.0 elif хп == 0: защита = 0.0 else: защита = хп / 100.0 return защита # Пример использования хп_вещи = 75 защита_от_воды_вещи = защита_от_воды(хп_вещи) print(f"Защита от воды вещи: {защита_от_воды_вещи}")


def защита_от_воды(хп):
    if хп == 100:
        защита = 1.0
    elif хп == 0:
        защита = 0.0
    else:
        защита = хп / 100.0

    return защита

# Пример использования
хп_вещи = 75
защита_от_воды_вещи = защита_от_воды(хп_вещи)
print(f"Защита от воды вещи: {защита_от_воды_вещи}")

ка кто так

Ну да, я кажется понял логику, попробую так реализовать

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка