[Ajuda] Tapete de prego para policias.
#1

Eu tenho um tapete de prego aqui, e quero deixa apenas para policias.

Olhem o meu "TEAM":
Код:
#define TEAM_COP 1
#define TEAM_ARMY 2
#define TEAM_MEDIC 3
#define TEAM_CARFIX 4
#define TEAM_CIA 5
#define TEAM_DRIVER 6
#define TEAM_BISTRO 7
#define TEAM_JAILTK 8
#define TEAM_PVTMED 9
#define TEAM_CIVIL 10
#define TEAM_GASDEL 11
#define TEAM_DRGDEL 12
#define TEAM_HITMAN 13
#define TEAM_GUNDEL 14
#define TEAM_SNITCH 15
#define TEAM_RAPIST 16
#define TEAM_BOUNTY 17
#define TEAM_KIDNAP 18
#define TEAM_DJUNKIE 19
#define TEAM_THIEF 20
#define TEAM_PIMP 21
#define TEAM_PILOT 22
#define TEAM_SMUG 23
#define TEAM_TERRO 24
#define TEAM_CARJACK 25
#define TEAM_FIRE 26
#define TEAM_EGG 27
E o meu [FS] do tapete:

Код:
#include <a_samp>
#include <SpikeStrip>

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new idx;
	cmd = strtok(cmdtext, idx);

	if (strcmp(cmd,"/ctapete",true) == 0)
	{
	    new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
        GetPlayerPos(playerid, plocx, plocy, plocz);
        GetPlayerFacingAngle(playerid,ploca);
        CreateStrip(plocx,plocy,plocz,ploca);
	    return 1;
	}
	else if (strcmp(cmd,"/rtapete",true) == 0)
	{
        DeleteClosestStrip(playerid);
	    return 1;
	}
	else if (strcmp(cmd,"/removerall",true) == 0)
	{
        DeleteAllStrip();
	    return 1;
	}
	
	return 0;
}
Quem puder me ajudar agradeзo.
Reply
#2

Axo que seria isso:

pawn Код:
if (strcmp(cmd,"/ctapete",true) == 0)
    {
        if(GetPlayerTeam(playerid) != TEAM_COP && GetPlayerTeam(playerid) != TEAM_CIA) return SendClientMessage(playerid,-1, "Somente policiais podem usar este comando");
        new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
        GetPlayerPos(playerid, plocx, plocy, plocz);
        GetPlayerFacingAngle(playerid,ploca);
        CreateStrip(plocx,plocy,plocz,ploca);
        return 1;
    }

if (strcmp(cmd,"/rtapete",true) == 0)
    {
        if(GetPlayerTeam(playerid) != TEAM_COP && GetPlayerTeam(playerid) != TEAM_CIA) return SendClientMessage(playerid,-1, "Somente policiais podem usar este comando");
        DeleteClosestStrip(playerid);
        return 1;
    }

if (strcmp(cmd,"/removerall",true) == 0)
    {
        if(GetPlayerTeam(playerid) != TEAM_COP && GetPlayerTeam(playerid) != TEAM_CIA) return SendClientMessage(playerid,-1, "Somente policiais podem usar este comando");
        DeleteAllStrip();
        return 1;
    }
presumindo que vc use SetPlayerTeam, para definir as orgs..
Reply
#3

Topo..
pawn Код:
dcmd(ctapete,7,cmdtext); //7 letras
    dcmd(removerall,10,cmdtext);  //10 letras

Finale
pawn Код:
dcmd_ctapete(playerid,params[])
    {
        #pragma unused params //nгo necessita params, porem deixei e anulei.
        if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA) //defini a org que usara o cmd
        {
                SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo й um Policial."); //msg que vai enviar caso n for uma das orgs definidas
                return 1;
        }
        new Float:plocx,Float:plocy,Float:plocz,Float:ploca; (inc.)
        GetPlayerPos(playerid, plocx, plocy, plocz);  (include..)
        GetPlayerFacingAngle(playerid,ploca);  (angulo include)
        CreateStrip(plocx,plocy,plocz,ploca);  //criaзгo do tapete (feita na include)
        return 1;
    }
pawn Код:
dcmd_removerall(playerid,params[])
    {
        #pragma unused params
        if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA)
        {
                SendClientMessage(playerid, COLOR_WHITE, "Vocк nгo й um Policial.");
                return 1;
        }
        else
        {
        DeleteAllStrip();
        return 1;
        }
    }
Repare que em no primeiro fiz direto, no segundo usei Else por curiosidade, nao sei qual foi a diferenзa porem funcionou.

abrass
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)