Pod:
#include <nvault>
Dodajemy:
#include <fun>
Pod:
#define AUTHOR "QTM_Peyote"
Dodaj:
#define TASK_REGENERACJA 736
Pod:
Float:redukcja_obrazen_gracza[33]
Dodaj:
Float:wartosc_regeneracji_gracza[33];
Pod:
kondycja_gracza[33]
Dodaj:
regeneracja_gracza[33]
Pod:
bonusowa_kondycja_gracza[33]
Dodaj:
bonusowa_regeneracja_gracza[33]
Pod:
wytrzymalosc_klas[MAX_ILOSC_KLAS+1]
Dodaj:
regeneracja_klas[MAX_ILOSC_KLAS+1]
W public ZastosujAtrybuty(id) dodaj na końcu:
set_task(5.0, "Regeneracja", id+TASK_REGENERACJA);
Na końcu *.sma dodaj:
public Regeneracja(id)
{
id -= TASK_REGENERACJA;
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
if(is_user_alive(id))
{
set_task(5.0, "Regeneracja", id+TASK_REGENERACJA);
new cur_health = get_user_health(id);
new max_health = (PobierzZdrowie(id, 1, 1, 1))+100;
new new_health;
wartosc_regeneracji_gracza[id] = float(PobierzRegeneracje(id, 1, 1, 1))/10
//floatround(wartosc_regeneracji_gracza[id], floatround_floor)
if(cur_health+(floatround(wartosc_regeneracji_gracza[id], floatround_floor)) < max_health)
{
new_health = cur_health+floatround(wartosc_regeneracji_gracza[id], floatround_floor);
}
else
{
new_health = max_health;
}
set_user_health(id, new_health);
}
return PLUGIN_CONTINUE;
}
W public UsunUmiejetnosci(id) wpisz na końcu:
regeneracja_gracza[id] = 0;
bonusowa_niewidzialnosc_gracza[id] = 0;
W public ResetujPunkty(id) przed:
if(punkty_gracza[id])
PrzydzielPunkty(id);
Dodaj:
regeneracja_gracza[id] = 0;
W ZapiszDane po:
#%i
Dodaj:
#%i
Oraz Po:
kondycja_gracza[id]
Dodaj:
regeneracja_gracza[id]
W public WczytajDane(id, klasa)
w tej linijce :
new danegracza[6][32];
6 zwiększamy o 1 czyli będzie :
new danegracza[7][32];
tu:
parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31);
dopisujemy :
danegracza[6], 31
czyli będzie tak:
parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31));
pod:
kondycja_gracza[id] = str_to_num(danegracza[5]);
Dodaj:
regeneracja_gracza[id] = str_to_num(danegracza[6]);
Cały public Wczytaj dane i zapisz będzie wyglądał tak :
public ZapiszDane(id)
{
if(!klasa_gracza[id])
return PLUGIN_CONTINUE;
new vaultkey[128],vaultdata[256], identyfikator[64];
format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], regeneracja_gracza[id]);
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
nvault_set(vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public WczytajDane(id, klasa)
{
new vaultkey[128],vaultdata[256], identyfikator[64];
new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
switch(typ_zapisu)
{
case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
}
format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa], typ_zapisu);
if(!nvault_get(vault,vaultkey,vaultdata,255)) // Jezeli nie ma danych gracza sprawdza stary zapis.
{
format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], klasa);
nvault_get(vault,vaultkey,vaultdata,255);
}
replace_all(vaultdata, 255, "#", " ");
new danegracza[7][32];
parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31);
doswiadczenie_gracza[id] = str_to_num(danegracza[0]);
poziom_gracza[id] = str_to_num(danegracza[1])>0?str_to_num(danegracza[1]):1;
inteligencja_gracza[id] = str_to_num(danegracza[2]);
zdrowie_gracza[id] = str_to_num(danegracza[3]);
wytrzymalosc_gracza[id] = str_to_num(danegracza[4]);
kondycja_gracza[id] = str_to_num(danegracza[5]);
regeneracja_gracza[id] = str_to_num(danegracza[6]);
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-regeneracja_gracza[id];
return PLUGIN_CONTINUE;
}
W public SprawdzPoziom(id):
W:
while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu)
Po:
-kondycja_gracza[id]
Dodaj:
-regeneracja_gracza[id]
Oraz:
W
else if(stracil_poziom)
Po:
-kondycja_gracza[id]
Dodaj:
-regeneracja_gracza[id]
Na koniec *.sma:
public UstawBonusowaRegeneracje(id, wartosc)
bonusowa_regeneracja_gracza[id] = wartosc;
public PrzydzielRegeneracje(id, wartosc)
{
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-regeneracja_gracza[id]);
punkty_gracza[id] -= wartosc;
regeneracja_gracza[id] += wartosc;
}
public PobierzRegeneracje(id, regeneracja_zdobyta, regeneracja_klasy, regeneracja_bonusowa)
{
new regeneracja;
if(regeneracja_zdobyta)
regeneracja += regeneracja_gracza[id];
if(regeneracja_bonusowa)
regeneracja += bonusowa_regeneracja_gracza[id];
if(regeneracja_klasy)
regeneracja += regeneracja_klas[klasa_gracza[id]];
return regeneracja;
}
public PobierzRegeneracjeKlasy(klasa)
{
if(klasa <= ilosc_klas)
return regeneracja_klas[klasa];
return -1;
}
To się rozpisałem No i do menu dodajecie Regenerację według innej statystyki, bo mi się nie chce przerabiać na noramlnego CODa, bo mam edytowane menu