GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: AweFM - 2016. december 17. - 20:56:20

Cím: Csapattárs ölés tiltása
Írta: AweFM - 2016. december 17. - 20:56:20
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);
    }
}

 
 
Cím: Csapattárs ölés tiltása
Írta: TwisT3R - 2016. december 17. - 21:13:31
melyik callback alatt van?
Cím: Csapattárs ölés tiltása
Írta: folnoraa - 2016. december 17. - 21:17:44
OnPlayerTakeDamage
 
 
Cím: Csapattárs ölés tiltása
Írta: wRt - 2016. december 17. - 21:26:21
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.
Cím: Csapattárs ölés tiltása
Írta: folnoraa - 2016. december 17. - 21:52:09
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.
Cím: Csapattárs ölés tiltása
Írta: AweFM - 2016. december 17. - 22:06:22
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
Cím: Csapattárs ölés tiltása
Írta: wRt - 2016. december 17. - 22:52:55

#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?
Cím: Csapattárs ölés tiltása
Írta: AweFM - 2016. december 17. - 23:14:51
Már annyira sem megy, mint eddig. :(
Cím: Csapattárs ölés tiltása
Írta: wRt - 2016. december 17. - 23:19:53
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]
 
 
Cím: Csapattárs ölés tiltása
Írta: folnoraa - 2016. december 17. - 23:23:16
Biztos!
Cím: Csapattárs ölés tiltása
Írta: folnoraa - 2016. december 17. - 23:41:06
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!