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.