Nowa statystyka Regeneracja Hp
jadamciwszystko
06.02.2012
Siemka, zamieszczam wam kod który pozwoli na regeneracje hp za obrażenia zadane z broni.
Jeśli są jakieś problemy, lub jakaś literka przeoczona w kodzie proszę pisać.
do modułów należy dodać:
Jeśli są jakieś problemy, lub jakaś literka przeoczona w kodzie proszę pisać.
do modułów należy dodać:
#include <codmod>Pod:
#define ZADANIE_USTAW_SZYBKOSC 832dodajemy:
#define DMG_BULLET (1<<1)Pod:
kondycja_gracza[33],dodajmy:
regeneracjap_gracza[33];do plugin_init na końcu:
RegisterHam(Ham_TakeDamage, "player", "Regeneracja", 1);do public usunumiejetnosc po:
kondycja_gracza[id] = 0;dodajemy:
regeneracjap_gracza[id] = 0;w public przydzielpunkty pod:
new kondycja[60];dodajemy:
new regeneracjap[60];w tej samej funkcji pod:
format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));dodajemy:
format(regeneracjap, charsmax(regeneracjap), "Regeneracja: \r[%i - 50] \y(Zwieksza regeneracje hp)", regeneracjap_gracza[id]);w tej samej funkcji pod:
menu_additem(menu, kondycja);dodajemy:
menu_additem(menu, regeneracjap);Szukamy:
case 3:
{
if(kondycja_gracza[id] < 100)
{
kondycja_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maksymalny poziom kondycji osiagniety");
}pod tym dodajemy:case 4:
{
if(regeneracjap_gracza[id] < 50)
{
regeneracjap_gracza[id]++;
punkty_gracza[id]--;
}
else
client_print(id, print_chat, "[COD:MW] Maksymalny poziom regeneracji osiagniety");
}w public resetujpunkty pod:kondycja_gracza[id] = 0;dodajemy:
regeneracjap_gracza[id] = 0;w public zapiszdane zamieniamy to:
format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);na to:
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], regeneracjap_gracza[id]);w public wczytajdane szukamy:
new danegracza[6][32];zamieniamy na:
new danegracza[7][32];szukamy:
danegracza[6], 31po tym dodajemy:
, danegracza[7], 31pod tym:
kondycja_gracza[id] = str_to_num(danegracza[5]);dodajemy:
regeneracjap_gracza[id] = str_to_num(danegracza[6]);zamieniamy:
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];na to:
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-regeneracjap_gracza[id];w public sprawdzpoziom dwa razy dodajemy po:
-kondycja_gracza[id]to:
-regeneracjap_gracza[id]na koncu .sma dodajemy:
public Regeneracja(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(idattacker))
return HAM_IGNORED;
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (regeneracjap_gracza[idattacker]/100.0) + pev(idattacker, pev_health);
set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
return HAM_IGNORED;
}
Załączone pliki
jadamciwszystko
06.02.2012
szczerze to nie umiem przeliczać tego właśnie, ale wydaje mi się że jesli damy 100 punktów to za 100dmg będzie 100hp
dobrze by było jakby ktoś to ładnie wytłumaczył.
dobrze by było jakby ktoś to ładnie wytłumaczył.
jadamciwszystko
07.02.2012
to wiem, ale jak to liczyć?
ja myślę że tak: 100.0*(ilość punktów ile damy, np: 50)/100.0=50 czyli wychodzi na to że za 100 dmg dostaniemy 50hp
ja myślę że tak: 100.0*(ilość punktów ile damy, np: 50)/100.0=50 czyli wychodzi na to że za 100 dmg dostaniemy 50hp
Kolar`.
07.02.2012
Czyli:damage * (regeneracjap_gracza[idattacker]/100.0)
100dmg * (20/100) = 20
adek209
07.02.2012
A czy dodałby ktoś kod ze obok np kondycja i masz 1000 pkt dodane to obok pisze że biegasz o 90% szybciej
Kolar`.
07.02.2012
Szukaj.A czy dodałby ktoś kod ze obok np kondycja i masz 1000 pkt dodane to obok pisze że biegasz o 90% szybciej
powie mi ktoś jakoś po ludzku w końcu jak to działa?
Czyli:damage * (regeneracjap_gracza[idattacker]/100.0)100dmg * (20/100) = 20
Intex
08.02.2012
Ja to wgrałem do siebie, i jak dodamy w to punkty, to się resetują co rundę
i muszę od nowa dodawać.
fbang
08.02.2012
sprawdz dokladnie wczytajdane i zapiszdaneJa to wgrałem do siebie, i jak dodamy w to punkty, to się resetują co rundę
i muszę od nowa dodawać.
PAKOV9
08.02.2012
W tym chodzi ,że jak będę dawać w to punkty to kiedy ktoś mnie trafi za 20DMG to automatycznie doda mi tyle hp ile mam w to przydzielont czy chodzi o to ,że jak ja kogoś trafie to mi doda HP?
adek209
08.02.2012
To chodzi o to że jak trafisz 100 dmg to jak masz 100 pkt to wzraca Ci 50hp o ile się nie myle ale cvary do tego każdy ma inne ja akurat mam ustawione na 50 hp
jadamciwszystko
08.02.2012
ktos napisał że mu się punkty resetują to jest spowodowane w public SmiercGraczaPost(id, attacker, shouldgib)
spróbuj podmienić od nowa
dla tych którzy chcą mieć Regeneracje pod innymi statystykami, zamieniamy tylko public pokazinformacje:
spróbuj podmienić od nowa
dla tych którzy chcą mieć Regeneracje pod innymi statystykami, zamieniamy tylko public pokazinformacje:
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nRegeneracja : %i", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], regeneracjap_gracza[target]);
return PLUGIN_CONTINUE;
}
set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Regeneracja : %i]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], regeneracjap_gracza[id]);
return PLUGIN_CONTINUE;
}
Kolar`.
08.02.2012
Do autora tematu, wiesz że teraz nie będzie miał klas na serwerze ... ?
jadamciwszystko
08.02.2012
Kolar`. a dokładniej o co ci chodzi ?
jest ta statystyka na jednym serwerze i wszystko działa dobrze...
jest ta statystyka na jednym serwerze i wszystko działa dobrze...
Kolar`.
09.02.2012
o.0 To jak klasie dodasz tę statystykę ? Jak jej nie dodasz to klasa nie powinna się wyświetlić na serwerze.






