SA-MP Forums Archive
[Ayuda] Poner un AntiTeamKill .-. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Poner un AntiTeamKill .-. (/showthread.php?tid=427727)



[Ayuda] Poner un AntiTeamKill .-. - dannypanda05 - 02.04.2013

Hice un pequeсo sistema de minijuego TDM tipo OP7, el sistema funciona perfecto y todo eso, pero quisiera agregarle un antiteamkill para que no se maten entre un mismo equipo, intentй de todo con el SetPlayerTeam, pero no entiendo bien como funciona ps no me sale, a veces se no se podнan matar entre un mismo equipo y al equipo contrario (o sea a nadie), como mismo hay que hacerlo o definirlo? les dejo una parte del sistema, el cmd:


Код:
if(strcmp(cmdtext, "/op7", true) == 0)
	{
        if(SOP7 == 0) return SendClientMessage(playerid,red, "[ERROR]: El evento no estб Activado!");
        if(SinComandoVuelo[playerid]==1)
	    {
	    SendClientMessage(playerid,red,"[ERROR]: El Vuelo estб activado, desactivalo con /svuelo!");
	    return 1;
	    }
        if(Minijuego[playerid] == 1 || InformacionL[playerid][PAR] == 1)
	    {
	    SendClientMessage(playerid, red, "[ERROR]: No puedes usar comandos en Minijuegos o Parkour, usa /kill");
	    return 1;
	    }
	    if(tdmplaying == 1)
	    {
	        SendClientMessage(playerid, red, "[ERROR]: Ya comenzу el Minijuego!");
	        return 1;
	    }
	    if(playerinminigame[playerid] == 1)
	    {
	        SendClientMessage(playerid, red, "[ERROR]: Ya estбs en el Minijuego!");
	        return 1;
	    }
	    if(tdmon == 0)
	    {
	        tdmon = 1;
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank = 1;
	        TogglePlayerControllable(playerid, 0);
            SetPlayerVirtualWorld(playerid,7);
            if (RushChallenge==1) { new r = random(sizeof(RUSHBLUE)); SetPlayerPos(playerid, RUSHBLUE[r][0], RUSHBLUE[r][1], RUSHBLUE[r][2]); SetPlayerFacingAngle(playerid,0.0000); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Rush Challenge ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHBLUE)); SetPlayerPos(playerid, DEATHBLUE[r][0], DEATHBLUE[r][1], DEATHBLUE[r][2]); SetPlayerFacingAngle(playerid,88.1348); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Death Square ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
		    else if (Otro==1) { new r = random(sizeof(OTROBLUE)); SetPlayerPos(playerid, OTROBLUE[r][0], OTROBLUE[r][1], OTROBLUE[r][2]); SetPlayerFacingAngle(playerid,86.9673); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Terreno Gansters ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0x0000BBAA);// BLUE
	        GameTextForPlayer(playerid,"~b~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        blueplayers = 1;
	        redplayers = 0;
	        tdmcolor = 1;
	        startvar[1] = 1;
	        tdmtimer = SetTimer("Starttdm", 31000, 0);
	        format(string2, sizeof(string2), "[OP7]: {ffffff}%s ha comenzado el Minijuego OP7, tienes 30 segundos para entrar a {001EFF}/OP7", pName(playerid));
	        SendClientMessageToAll(0x33AA33AA,string2);
			TextDrawHideForPlayer(playerid,ByAnn);
			EnviarComandoRace2(playerid,"op7");
			return 1;
	        } else if(tdmon == 1 && tdmcolor == 1) {
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank++;
	        TogglePlayerControllable(playerid, 0);
	        SetPlayerVirtualWorld(playerid,7);
	        if (RushChallenge==1) { new r = random(sizeof(RUSHRED)); SetPlayerPos(playerid, RUSHRED[r][0], RUSHRED[r][1], RUSHRED[r][2]); SetPlayerFacingAngle(playerid,181.9021);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHRED)); SetPlayerPos(playerid, DEATHRED[r][0], DEATHRED[r][1], DEATHRED[r][2]); SetPlayerFacingAngle(playerid,271.0580);}
		    else if (Otro==1) { new r = random(sizeof(OTRORED)); SetPlayerPos(playerid, OTRORED[r][0], OTRORED[r][1], OTRORED[r][2]); SetPlayerFacingAngle(playerid,260.8271);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0xFF0000AA);// RED
	        GameTextForPlayer(playerid,"~r~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        redplayers++;
	        tdmcolor = 0;
	        format(string2, sizeof(string2), "[OP7]: {FFFFFF}%s ha entrado al OP7 del equipo {FF0C0C}Rojo!", pName(playerid));//
			SendClientMessageToAll(0x33AA33AA,string2);
			return 1;
	        } else if(tdmon == 1 && tdmcolor == 0) {
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank++;
	        TogglePlayerControllable(playerid, 0);
            SetPlayerVirtualWorld(playerid,7);
	        if (RushChallenge==1) { new r = random(sizeof(RUSHBLUE)); SetPlayerPos(playerid, RUSHBLUE[r][0], RUSHBLUE[r][1], RUSHBLUE[r][2]); SetPlayerFacingAngle(playerid,0.0000);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHBLUE)); SetPlayerPos(playerid, DEATHBLUE[r][0], DEATHBLUE[r][1], DEATHBLUE[r][2]); SetPlayerFacingAngle(playerid,88.1348);}
		    else if (Otro==1) { new r = random(sizeof(OTROBLUE)); SetPlayerPos(playerid, OTROBLUE[r][0], OTROBLUE[r][1], OTROBLUE[r][2]); SetPlayerFacingAngle(playerid,86.9673);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0x0000BBAA);// BLUE
	        GameTextForPlayer(playerid,"~b~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        blueplayers++;
	        tdmcolor = 1;
	        format(string2, sizeof(string2), "[OP7]: {FFFFFF}%s ha entrado al OP7 del equipo {001EFF}Azul!", pName(playerid));//
			SendClientMessageToAll(0x33AA33AA,string2);
			return 1;
	    }
	}
Definan como se hace, son 2 equipos, al disparar al mismo equipo este no le baje la vida, supongo q es en OnPlayerTakeDamage pero no se como se hace u.u
Si falta algo me dicen..


Respuesta: [Ayuda] Poner un AntiTeamKill .-. - [J]ulian - 02.04.2013

SetPlayerTeam. Si dos jugadores tienen el mismo team no se pueden quitar vida entre ellos.


Respuesta: [Ayuda] Poner un AntiTeamKill .-. - OTACON - 02.04.2013

EnableVehicleFriendlyFire

SetPlayerTeam


Respuesta: [Ayuda] Poner un AntiTeamKill .-. - dannypanda05 - 02.04.2013

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
SetPlayerTeam. Si dos jugadores tienen el mismo team no se pueden quitar vida entre ellos.
Digamos q al rojo le pongo SetPlayerTeam(playerid, 1); y al azul el SetPlayerTeam(playerid, 2); y al salir SetPlayerTeam(playerid, 255);
Solo eso? no hay q hacer o definir otra cosa? ._.


Respuesta: [Ayuda] Poner un AntiTeamKill .-. - Fluid016 - 02.04.2013

Quote:
Originally Posted by dannypanda05
Посмотреть сообщение
Digamos q al rojo le pongo SetPlayerTeam(playerid, 1); y al azul el SetPlayerTeam(playerid, 2); y al salir SetPlayerTeam(playerid, 255);
Solo eso? no hay q hacer o definir otra cosa? ._.
Solo eso. GetPlayerTeam para saber de que team es por si necesitas comprobarlo.


AW: [Ayuda] Poner un AntiTeamKill .-. - Blackazur - 02.04.2013

https://sampforum.blast.hk/showthread.php?tid=278006


Respuesta: [Ayuda] Poner un AntiTeamKill .-. - LiMPiTo - 02.04.2013

Puedes hacerlo como dice Blackazur, pero si quieres ahorrarte el include puedes usarlo asн:

pawn Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
    if(GetPlayerTeam(playerid) == GetPlayerTeam(damagedid))
    {
        new Float:P_Health;
        GetPlayerHealth(damagedid, P_Health);
        SetPlayerHealth(damagedid, P_Health + amount);
        SendClientMessage(playerid, -1, "No dispares a los de tu propio equipo!"); // Opcional
        return 1;
    }
    return 1;
}



Respuesta: [Ayuda] Poner un AntiTeamKill .-. - Matyaas - 04.04.2013

Код:
if(strcmp(cmdtext, "/op7", true) == 0)
	{
        if(SOP7 == 0) return SendClientMessage(playerid,red, "[ERROR]: El evento no estб Activado!");
        if(SinComandoVuelo[playerid]==1)
	    {
	    SendClientMessage(playerid,red,"[ERROR]: El Vuelo estб activado, desactivalo con /svuelo!");
	    return 1;
	    }
        if(Minijuego[playerid] == 1 || InformacionL[playerid][PAR] == 1)
	    {
	    SendClientMessage(playerid, red, "[ERROR]: No puedes usar comandos en Minijuegos o Parkour, usa /kill");
	    return 1;
	    }
	    if(tdmplaying == 1)
	    {
	        SendClientMessage(playerid, red, "[ERROR]: Ya comenzу el Minijuego!");
	        return 1;
	    }
	    if(playerinminigame[playerid] == 1)
	    {
	        SendClientMessage(playerid, red, "[ERROR]: Ya estбs en el Minijuego!");
	        return 1;
	    }
	    if(tdmon == 0)
	    {
	        tdmon = 1;
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank = 1;
	        TogglePlayerControllable(playerid, 0);
            SetPlayerVirtualWorld(playerid,7);
            if (RushChallenge==1) { new r = random(sizeof(RUSHBLUE)); SetPlayerPos(playerid, RUSHBLUE[r][0], RUSHBLUE[r][1], RUSHBLUE[r][2]); SetPlayerFacingAngle(playerid,0.0000); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Rush Challenge ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHBLUE)); SetPlayerPos(playerid, DEATHBLUE[r][0], DEATHBLUE[r][1], DEATHBLUE[r][2]); SetPlayerFacingAngle(playerid,88.1348); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Death Square ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
		    else if (Otro==1) { new r = random(sizeof(OTROBLUE)); SetPlayerPos(playerid, OTROBLUE[r][0], OTROBLUE[r][1], OTROBLUE[r][2]); SetPlayerFacingAngle(playerid,86.9673); GameTextForAll("~g~ha comenzado ~n~el Minijuego OP7 ~n~~y~Terreno Gansters ~n~~g~tienes 30 segundos ~n~para entrar a ~n~~b~/OP7",10000,3);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        
	        SetTimerEx("AntiTeamKILL",10,1,"d",playerid); ///////////////////////////////////////
	        SetPlayerTeam(playerid, AZULES);
	        
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0x0000BBAA);// BLUE
	        GameTextForPlayer(playerid,"~b~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        blueplayers = 1;
	        redplayers = 0;
	        tdmcolor = 1;
	        startvar[1] = 1;
	        tdmtimer = SetTimer("Starttdm", 31000, 0);
	        format(string2, sizeof(string2), "[OP7]: {ffffff}%s ha comenzado el Minijuego OP7, tienes 30 segundos para entrar a {001EFF}/OP7", pName(playerid));
	        SendClientMessageToAll(0x33AA33AA,string2);
			TextDrawHideForPlayer(playerid,ByAnn);
			EnviarComandoRace2(playerid,"op7");
			return 1;
	        } else if(tdmon == 1 && tdmcolor == 1) {
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank++;
	        TogglePlayerControllable(playerid, 0);
	        SetPlayerVirtualWorld(playerid,7);
	        if (RushChallenge==1) { new r = random(sizeof(RUSHRED)); SetPlayerPos(playerid, RUSHRED[r][0], RUSHRED[r][1], RUSHRED[r][2]); SetPlayerFacingAngle(playerid,181.9021);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHRED)); SetPlayerPos(playerid, DEATHRED[r][0], DEATHRED[r][1], DEATHRED[r][2]); SetPlayerFacingAngle(playerid,271.0580);}
		    else if (Otro==1) { new r = random(sizeof(OTRORED)); SetPlayerPos(playerid, OTRORED[r][0], OTRORED[r][1], OTRORED[r][2]); SetPlayerFacingAngle(playerid,260.8271);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        
	        SetTimerEx("AntiTeamKILL",10,1,"d",playerid); /////////////////////////////////////////
	        SetPlayerTeam(playerid, ROJOS);
	        
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0xFF0000AA);// RED
	        GameTextForPlayer(playerid,"~r~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        redplayers++;
	        tdmcolor = 0;
	        format(string2, sizeof(string2), "[OP7]: {FFFFFF}%s ha entrado al OP7 del equipo {FF0C0C}Rojo!", pName(playerid));//
			SendClientMessageToAll(0x33AA33AA,string2);
			return 1;
	        } else if(tdmon == 1 && tdmcolor == 0) {
	        PlayerinTdm[playerid] = 1;
	        playerinminigame[playerid] = 1;
	        tdmrank++;
	        TogglePlayerControllable(playerid, 0);
            SetPlayerVirtualWorld(playerid,7);
	        if (RushChallenge==1) { new r = random(sizeof(RUSHBLUE)); SetPlayerPos(playerid, RUSHBLUE[r][0], RUSHBLUE[r][1], RUSHBLUE[r][2]); SetPlayerFacingAngle(playerid,0.0000);}
		    else if (DeathSquare==1) { new r = random(sizeof(DEATHBLUE)); SetPlayerPos(playerid, DEATHBLUE[r][0], DEATHBLUE[r][1], DEATHBLUE[r][2]); SetPlayerFacingAngle(playerid,88.1348);}
		    else if (Otro==1) { new r = random(sizeof(OTROBLUE)); SetPlayerPos(playerid, OTROBLUE[r][0], OTROBLUE[r][1], OTROBLUE[r][2]); SetPlayerFacingAngle(playerid,86.9673);}
	        ResetPlayerWeapons(playerid);
	        GivePlayerWeapon(playerid,1,1);
	        GivePlayerWeapon(playerid,24,50000);
	        GivePlayerWeapon(playerid,31,50000);
	        GivePlayerWeapon(playerid,32,50000);
	        
	        SetTimerEx("AntiTeamKILL",10,1,"d",playerid); /////////////////////////////////
	        SetPlayerTeam(playerid, AZULES);
	        
	        SetPlayerHealth(playerid,100);
	        SetPlayerArmour(playerid,0);
	        SetPlayerColor(playerid,0x0000BBAA);// BLUE
	        GameTextForPlayer(playerid,"~b~Espera a que ~n~comienze!",4000,3);
	        TextDrawHideForPlayer(playerid,ByAnn);
	        blueplayers++;
	        tdmcolor = 1;
	        format(string2, sizeof(string2), "[OP7]: {FFFFFF}%s ha entrado al OP7 del equipo {001EFF}Azul!", pName(playerid));//
			SendClientMessageToAll(0x33AA33AA,string2);
			return 1;
	    }
	}
	
	forward AntiTeamKILL();
public AntiTeamKILL()
{
for(new playerid; playerid < 200; playerid++)
SetPlayerTeam(playerid, Equipo[playerid]); //El "Equipo" es la variable general de los 2 equipos (AZULES, ROJOS)... se define con un new:  -| new Equipo[MAX_PLAYERS]; |- EQUIPOS:
return 1;
}


// equipos: //

#define AZULES 0
#define ROJOS 1



Respuesta: [Ayuda] Poner un AntiTeamKill .-. - dannypanda05 - 05.04.2013

Sip, ya me funcionу bien tal como me dijo GROVE22 y gracias a todos x ayudarme :3