-
Sziasztok. Van egy haverom, akivel egy /antitk parancsot akarunk csinálni (vagyis inkább ő akar, csak ő épp fürdik és ezért én írom ki), de hiába kapcsoljuk be valamiért ugyanúgy megtudjuk ölni a csapattársunkat. Mi lehet a kódban a hiba?
if(ServerInfo[antiTK] == 1) {
new Float:HP;
if(GetPlayerTeam(playerid) == GetPlayerTeam(issuerid))
{
GetPlayerHealth(issuerid, HP);
SetPlayerHealth(issuerid, HP-0);
}
}
-
melyik callback alatt van?
-
OnPlayerTakeDamage
-
Mert a sebzést kiosztó személy életét kéred le, valamint változtatod, ez pedig sebzést szenvedéskor hívódik meg, ezért playerid életerejét kéne lekérned, valamint az ő életerejét kéne állítanod, ugyanis ő szenvedi el a sebzést.
-
Nem megy, ugyan úgy meg tudom ölni a csapattársam! Valami más ötlet?
Na egy kicsit tesztelgetve, most az van, hogy mi ugye 10 hp-val toljuk, de most first killezni akartam, akkor meg működik, leugrik 3 hp-ra de utána meg vissza teszi tízre. Valakinek van valami ötlete erre?
Na még egy kis szerkesztés: Ha öljük folyamatosan 100 hp-val egymást, el kezd lefele menni, néha visszatölt, de egy idő után meg tudjuk ölni egymást.
-
Hogy érthetőbb legyen ugye az ököl kevesebb hp-t vesz le, így van ideje visszatölteni a hp-t, de ha m4-el lövünk pl akkor az ugye nagyobbat sebez, ezáltal nem tudja visszatölteni időben és meghal
-
#include <a_samp>
new TK;
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
new Team1 = GetPlayerTeam(playerid);
new Team2 = GetPlayerTeam(issuerid);
if(TK == 1 && Team1 == Team2 && weaponid >= 0)
{
amount = 0;
}
return 1;
}
Ilyen formában?
-
Már annyira sem megy, mint eddig. :(
-
Biztos hogy egy csapatban van a két játékos?
Players can not damage/kill players on the same team unless they use a knife to slit their throat.
[/quote]
-
Biztos!
-
Mególdódott a probléma! :) Köszönöm a segítséged, de így sikerült:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(hittype==BULLET_HIT_TYPE_PLAYER)
if(GetPlayerTeam(playerid)==GetPlayerTeam(hitid))
return 0;
return 1;
}
Még egyszer, köszönöm, hogy próbáltál segíteni! :) Jó éjt!