
Regeneracja HP - co x sekund dostajesz (punkty tej statystyki/y = HP)
	Spoiler 
	
Do public plugin_init() :
Na dół sma :
ZMIENNA_TEJ_STATYSTYKI[id] - myślę że logiczne...przykładowo może być:
X - co ile sekund.
Do public plugin_init() :
register_think("Regeneracja", "RegeneracjaThink");
	LeczacyBot();Na dół sma :
LeczacyBot()
{
	new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
	if (Bot)
	{
		set_pev(Bot, pev_classname, "Regeneracja");
		dllfunc(DLLFunc_Spawn, Bot);
		set_pev(Bot, pev_nextthink, get_gametime() + 5.0);
	}
}
public RegeneracjaThink(Bot)
{
	new iPlayers[32], iNum, id;
	get_players(iPlayers, iNum);
	for(new i; i<inum; i++)="" {="" id="iPlayers[i];" if="" (!is_user_alive(id))="" continue;="" (zmienna_tej_statystyki[id]="">0)
		
		change_health(id,ZMIENNA_TEJ_STATYSTYKI[id]/Y,0,"");
	}
	set_pev(Bot, pev_nextthink, get_gametime() + X.0);
}ZMIENNA_TEJ_STATYSTYKI[id] - myślę że logiczne...przykładowo może być:
player_regeneracja[id]Y - co ile punktów ZMIENNA_TEJ_STATYSTYKI[id] ma dodawać HP...przykładowo gdy wpiszemy tam 5 to gdy będziemy mieć 5 punktów danych w tą statystyką będzie dodawało nam co Y sekund 1 HP , 10 punktów - 2 HP co Y sekund itd...
X - co ile sekund.
EXP
	Spoiler 
	
Znajdujemy funkcję public Give_Xp(id,amount) a w niej:
I w tym momencie zmieniamy na :
Co 1 punkt w tą statykę dodaję nam dodatkowo 1 punkt XP(oczywiście można np. co 5 punktów w tą statykę...tak jak w funkcji wyżej).
Znajdujemy funkcję public Give_Xp(id,amount) a w niej:
player_xp[id]+=amount
I w tym momencie zmieniamy na :
if (ZMIENNA_TEJ_STATYSTYKI[id]>0) player_xp[id]+=amount+ZMIENNA_TEJ_STATYSTYKI[id] else player_xp[id]+=amount
Co 1 punkt w tą statykę dodaję nam dodatkowo 1 punkt XP(oczywiście można np. co 5 punktów w tą statykę...tak jak w funkcji wyżej).
Grawitacja
	Spoiler 
	
Znajdujemy :
Gdy będziemy mieć w nią dane 100 punktów - 100:25 = 4 i teraz 1.0 dzielone przez 4 da nam 0.25 czyli 800 (grawitacja standardowa) dzielona przez 0.25 (4) da nam 200.

Ostrzeżenie:
Nie sprawdzałem jak się to ma z Ninją i innymi klasami z niewidzialnością.
public set_gravitychange(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		if(player_class[id] == Ninja)
		{
			if(player_b_gravity[id]>6) set_user_gravity(id, 0.17)
			else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2)
			else set_user_gravity(id, 0.25)
		}
		else
		{
			set_user_gravity(id,1.0*(1.0-player_b_gravity[id]/12.0))
		}
	}
}I zmieniamy na:public set_gravitychange(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		if(player_class[id] == Ninja)
		{
			if(player_b_gravity[id]>6) set_user_gravity(id, 0.17)
			else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2)
			else set_user_gravity(id, 0.25)
		}
		else if(ZMIENNA_TEJ_STATYSTYKI[id]>0)
		{
			set_user_gravity(id,1.0:(ZMIENNA_TEJ_STATYSTYKI[id]/25))
		}
		else
		{
			set_user_gravity(id,1.0*(1.0-player_b_gravity[id]/12.0))
		}
	}
}Przykładowo jeżeli ta statystyka wynosi maximum 100 zadziała to tak:Gdy będziemy mieć w nią dane 100 punktów - 100:25 = 4 i teraz 1.0 dzielone przez 4 da nam 0.25 czyli 800 (grawitacja standardowa) dzielona przez 0.25 (4) da nam 200.
100:25=4 1.0:4=0.25 800:0.25(4)=200Nie jestem pewien na 100 % czy dobrze z tym myślę więc jakby jednak nie proszę o poprawę

Ostrzeżenie:
Nie sprawdzałem jak się to ma z Ninją i innymi klasami z niewidzialnością.
Niewidzialność
	Spoiler 
	
W public set_renderchange(id) znajdujemy :
Oczywiście możemy też zrobić tak:
Ostrzeżenie:
Nie sprawdzałem jak się to ma z Ninją i innymi klasami z niewidzialnością.
W public set_renderchange(id) znajdujemy :
new render=255Dodajemy pod:
new renderX=255Potem:
else if(invisible_cast[id]==1)
			{
				if(player_b_inv[id]>0) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, floatround((10.0/255.0)*(255-player_b_inv[id])))
				else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10)
			}Dodajemy pod:else if(ZMIENNA_TEJ_STATYSTYKI[id]>0)
			{
				renderX = 255-ZMIENNA_TEJ_STATYSTYKI[id]
				set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha,renderX)
			}W momencie gdy nasza zmienna będzie równa 100 = niewidzialność będzie równa 155.Oczywiście możemy też zrobić tak:
renderX = 255-(ZMIENNA_TEJ_STATYSTYKI[id]*2)Wtedy każdy punkt dany w tą statystykę będzie odejmował dwa punkty od niewidzialności.
Ostrzeżenie:
Nie sprawdzałem jak się to ma z Ninją i innymi klasami z niewidzialnością.
Wszelkie błędy/niedogodności proszę zgłaszać w temacie.
Tego dodatku zabrania się kopiowania na inne fora itp. bez zgody autora.


 Forum
 
Forum
 Użytkownicy
 
Użytkownicy
 Kalendarz
 
Kalendarz
 Dodatki SourceMod
 
Dodatki SourceMod



 
	 
					


 
				
				 
				
				
 
				
				
 
				
				 
				
				

 
				
				 
				
				







 
  
		 
		 
		 
		