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
Sign in to follow this  
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 например.

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

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

    return защита

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

ка кто так

Share this post


Link to post
Share on other sites



  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0
21 минуту назад, w1ck сказал:

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

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

Share this post


Link to post
Share on other sites
  • 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"Защита от воды вещи: {защита_от_воды_вещи}")

ка кто так

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

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
Sign in to follow this  

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