Szerző Téma: OnPlayerTakeDamage gond!  (Megtekintve 826 alkalommal)

OnPlayerTakeDamage gond!
« Dátum: 2012. április 27. - 19:09:59 »
0 Show voters
Hello.
Hogy lehet azt meg oldani hogy ha en valakire utok egy adott damage et,hogy az ossze adodjon.
De csak ha ugyanannak az embernek utok.El magyarazom reszletesebben peldaval.
Tegyuk fel hogy egy jatekosnak van 500HP(elete).En ha az eletebol le utok 200 at kapjak egy + pontot,azaz minden 200 dmg utan kapjak egy +pontot,viszont ne ugy legyen hogy player1 nek leutok 150 et,player2nek 50 et es ha igy gyul ossze, akkor ne kapjak + pontot csak is ha egy embernek utom le.Annyi a gond hogy ugy lenne jo,hogy ha tegyuk fel player1 nek leutok 100 at,utana player2 nek 150 et,es ismet player1 nek utok 100 at, akkor kapjak pontot azert mert a player1 nek leutottem a 200 dmg et.Remelem ertitek.Ha nem akkor meg meg probalom maskeppen el magyarazni,viszont most nem nagyon tudom hogy lehetne ezt erthetoen el mondani.
Elore is koszonom.
Amugy egy zombie mod ot csinalok,amit majd ide is fel teszek.

OnPlayerTakeDamage gond!
« Válasz #1 Dátum: 2012. április 27. - 20:07:11 »
+1 Show voters
az OnPlayerGiveDamage, és OnPlayerTakeDamage között van egy nagyon nagy laggbeni különbség, ami miatt néha csak az egyik hívódik elõ, azaz a szerver, és a kliens nem érzékeli, hogy lõttél valakire, nálad hiába találtad el.
Erre valaki a hiv. fórumon csinált egy INC-et, azt ajánlom neked.
Anti-Lagg Sync Shot a neve asszem


Hogy a témához szóljak, létrehozol egy Float változót, és OnPlayerTakeDamage-nél hozzáadod az \'amount\' változóját.. Ha ez eléri a 200at akkor adsz neki 1 pontot.

OnPlayerTakeDamage gond!
« Válasz #2 Dátum: 2012. április 27. - 20:13:18 »
0 Show voters
Tudom.erre gondoltam.
Viszont nem tudom hogy hogy adjam hozza.Mert hogy biztos nem igy:
 

new Float:ketszazdamage
ketszazdamage = amount;

 
mert akkor teljesen le cserelodik a ketszazdamage valtozo.
es akkor nem kell hozza valami lastdamage vagy valami?
Am koszi az %.inc et :P

OnPlayerTakeDamage gond!
« Válasz #3 Dátum: 2012. április 27. - 21:04:16 »
+1 Show voters
GM elejére:
 
new Float:ketszazdamage[MAX_PLAYERS];

 
OnPlayerTakeDamage-hoz,vagy OnPlayerGiveDamage-hez:
 
ketszazdamage[playerid] + amount;
if(ketszazdamage[playerid] >= 200)//ha nagyobb mint 200
{
//ide a kód
ketszazdamage[playerid] = 0;//lenullázzuk,hogy újra el tudja érni,persze,csak ha kell
return 1;
}

OnPlayerTakeDamage gond!
« Válasz #4 Dátum: 2012. április 27. - 21:23:18 »
+1 Show voters
Idézetet írta: kadaradam date=1335553456\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20694\" data-ipsquote-contentclass=\"forums_Topic
OnPlayerTakeDamage-hoz,vagy OnPlayerGiveDamage-hez:
 
ketszazdamage[playerid] + amount;
if(ketszazdamage[playerid] >= 200)//ha nagyobb mint 200
{
//ide a kód
ketszazdamage[playerid] = 0;//lenullázzuk,hogy újra el tudja érni,persze,csak ha kell
return 1;
}

 

Ez így nem teljesen helyes.
Így jó.
OnPlayerTakeDamage-hoz,vagy OnPlayerGiveDamage-hez:
 
ketszazdamage[playerid] += amount;
if(ketszazdamage[playerid] >= 200)//ha nagyobb mint 200
{
//ide a kód
ketszazdamage[playerid] = 0;//lenullázzuk,hogy újra el tudja érni,persze,csak ha kell
return 1;
}

 
én inkább floatadd funkciót használok :D
« Utoljára szerkesztve: 2012. április 27. - 21:24:13 írta TengeriMalac »

OnPlayerTakeDamage gond!
« Válasz #5 Dátum: 2012. április 27. - 21:27:50 »
0 Show voters
Koszonom.
Eloszor meg csinalom ezt a dini-s cuccot hamar es utana meg nezem.
Kossz szepen.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal