Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CoD Nowy

Nowa statystyka Regeneracja Hp

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
75 odpowiedzi w tym temacie

#1 jadamciwszystko

    Życzliwy

  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 06.02.2012 20:04

*
Popularny

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ć:
#include <codmod>
Pod:
#define ZADANIE_USTAW_SZYBKOSC 832
dodajemy:
#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], 31
po tym dodajemy:
, danegracza[7], 31
pod 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


  • +
  • -
  • 6

#2 kwieciak

    Pomocny

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:56
  • GG:
  • Lokalizacja:Łwc
Offline

Napisano 06.02.2012 20:26

ciekawe, jak wyprobuje to napisze
  • +
  • -
  • 1

#3 System'ek

    Banned

  • Zbanowany

Reputacja: 21
Życzliwy

  • Postów:119
  • GG:
  • Steam:steam
  • Imię:Przemek
  • Lokalizacja:Biłgoraj
Offline

Napisano 06.02.2012 20:30

Jaki jest przelicznik? 1 pkt = 1 hp?

#4 jadamciwszystko

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 06.02.2012 20:36

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ł.
  • +
  • -
  • 1

#5 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 07.02.2012 09:14

damage * (regeneracjap_gracza[idattacker]/100.0)


#6 jadamciwszystko

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 07.02.2012 09:55

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
  • +
  • -
  • 1

#7 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 07.02.2012 10:20

damage * (regeneracjap_gracza[idattacker]/100.0)

Czyli:
100dmg * (20/100) = 20


#8 paczem

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:38
  • Lokalizacja:nie pamiętam
Offline

Napisano 07.02.2012 11:58

powie mi ktoś jakoś po ludzku w końcu jak to działa?
  • +
  • -
  • 1

#9 adek209

    Profesjonalista

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:150
  • Imię:Adrian
  • Lokalizacja:Częstochowa
Offline

Napisano 07.02.2012 12:06

A czy dodałby ktoś kod ze obok np kondycja i masz 1000 pkt dodane to obok pisze że biegasz o 90% szybciej
  • +
  • -
  • 0

#10 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 07.02.2012 13:32

A czy dodałby ktoś kod ze obok np kondycja i masz 1000 pkt dodane to obok pisze że biegasz o 90% szybciej

Szukaj.


powie mi ktoś jakoś po ludzku w końcu jak to działa?

damage * (regeneracjap_gracza[idattacker]/100.0)

Czyli:
100dmg * (20/100) = 20



#11 Intex

    Wszechwiedzący

  • Power User

Reputacja: 59
Pomocny

  • Postów:525
  • GG:
  • Imię:Piotr
  • Lokalizacja:Waszawa
Offline

Napisano 08.02.2012 12:28

Ja to wgrałem do siebie, i jak dodamy w to punkty, to się resetują co rundę xD i muszę od nowa dodawać.
  • +
  • -
  • 0
Dołączona grafika

#12 fbang

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:237
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 08.02.2012 15:25

Ja to wgrałem do siebie, i jak dodamy w to punkty, to się resetują co rundę xD i muszę od nowa dodawać.

sprawdz dokladnie wczytajdane i zapiszdane :)
  • +
  • -
  • 0

#13 PAKOV9

    Zaawansowany

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:131
  • Imię:Salamaneiko
  • Lokalizacja:Madagaskar
Offline

Napisano 08.02.2012 17:08

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?

#14 adek209

    Profesjonalista

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:150
  • Imię:Adrian
  • Lokalizacja:Częstochowa
Offline

Napisano 08.02.2012 18:24

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
  • +
  • -
  • 0

#15 jadamciwszystko

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 08.02.2012 21:40

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:
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;
}

  • +
  • -
  • 0

#16 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 08.02.2012 21:44

Do autora tematu, wiesz że teraz nie będzie miał klas na serwerze ... ?

#17 jadamciwszystko

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 08.02.2012 22:52

Kolar`. a dokładniej o co ci chodzi ?

jest ta statystyka na jednym serwerze i wszystko działa dobrze...
  • +
  • -
  • 0

#18 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 09.02.2012 10:11

codmod.inc jest potrzebny do skompilowania klas.

#19 jadamciwszystko

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:28
  • Lokalizacja:dddd
Offline

Napisano 09.02.2012 10:16

tutaj nie trzeba nic zmieniać w codmod.inc
  • +
  • -
  • 0

#20 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 09.02.2012 10:43

o.0 To jak klasie dodasz tę statystykę ? Jak jej nie dodasz to klasa nie powinna się wyświetlić na serwerze.





Również z jednym lub większą ilością słów kluczowych: cod nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych