[Ajuda] Como Fazer Org Com Patente
#1

Por Exemplo assim /btp
q significa batalhão tatico policial, ai tipo queria q fosse com patente, assim
quando a pessoa botasse /btp aparecesse isso

Nick (ID) [Patente]
ex :
yNexus (0) [Coronel]

e tbm qeria aprender como fazer a org com as patente se puderem me ajudar ai agradeço
ou passar algum link ensinando melhor ainda
são 6 patentes .
Reply
#2

What, й mais ou menos isto ?

-Topo da GM:
pawn Код:
#include <zcmd>

#define CIVIL 0
#define Batalhгo Tatico Policial 1

enum PlayerDados
{
    Organizacao,
    Patente
}
new pDados[MAX_PLAYERS][PlayerDados];
Comando /btp:
pawn Код:
CMD:btp(playerid)
{
    new playername[MAX_PLAYER_NAME], string[128];
    if(pDados[playerid][Organizacao] >= 1)
    {
        SendClientMessage(playerid, 0xBFC0C2FF, "Membros Online");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(pDados[i][Organizacao] == pDados[playerid][Organizacao])
                {
                    GetPlayerName(i, playername, sizeof(playername));
                    if(pDados[i][Patente] <= 4)
                    {
                        format(string, sizeof(string), "Membro: %s, Patente: %d", playername, pDados[i][Patente]);
                        SendClientMessage(playerid, GetPlayerColor(playerid), string);
                    }
                    else
                    {
                        if(pDados[i][Patente] == 6)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: Coronel", playername);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                        else if(pDados[i][Patente] == 5)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: outrapatente", playername);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                    }
                }
            }
        }
    }
    else
    {
        SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
    }
    return 1;
}
Comando /darlider - por admin logado na rcon, /rcon login <senha>

pawn Код:
CMD:darlider(playerid, params[])
{
    new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME];
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando.");
    if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo.");
    GetPlayerName(id, quemganhou, sizeof(quemganhou));
    GetPlayerName(playerid, quemdeu, sizeof(quemdeu));
    format(string, sizeof(string), "Vocк  deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id);
    SendClientMessage(playerid, 0x00F6F6AA, string);
    format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org));
    SendClientMessage(id, 0x00F6F6AA, string);
    format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org));
    SendClientMessageToAll(0x00F6F6AA, string);
    pDados[id][Organizacao] = org;
    pDados[id][Patente] = 6;
    SpawnPlayer(id);
    return 1;
}
e no final da GM
pawn Код:
stock GetOrgName(orgid)
{
    new str[30];
    if(orgid == 0)
    {
        str = "CIVIL";
    }
    else if(orgid == 1)
    {
        str = "Batalhгo Tatico Policial";
    }
    return str;
}
Reply
#3

Quote:
Originally Posted by HatedS
Посмотреть сообщение
What, й mais ou menos isto ?

-Topo da GM:
pawn Код:
#include <zcmd>

#define CIVIL 0
#define Batalhгo Tatico Policial 1

enum PlayerDados
{
    Organizacao,
    Patente
}
new pDados[MAX_PLAYERS][PlayerDados];
Comando /btp:
pawn Код:
CMD:btp(playerid)
{
    new playername[MAX_PLAYER_NAME], string[128];
    if(pDados[playerid][Organizacao] >= 1)
    {
        SendClientMessage(playerid, 0xBFC0C2FF, "Membros Online");
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(pDados[i][Organizacao] == pDados[playerid][Organizacao])
                {
                    GetPlayerName(i, playername, sizeof(playername));
                    if(pDados[i][Patente] <= 4)
                    {
                        format(string, sizeof(string), "Membro: %s, Patente: %d", playername, pDados[i][Patente]);
                        SendClientMessage(playerid, GetPlayerColor(playerid), string);
                    }
                    else
                    {
                        if(pDados[i][Patente] == 6)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: Coronel", playername);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                        else if(pDados[i][Patente] == 5)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: outrapatente", playername);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                    }
                }
            }
        }
    }
    else
    {
        SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
    }
    return 1;
}
Comando /darlider - por admin logado na rcon, /rcon login <senha>

pawn Код:
CMD:darlider(playerid, params[])
{
    new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME];
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando.");
    if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo.");
    GetPlayerName(id, quemganhou, sizeof(quemganhou));
    GetPlayerName(playerid, quemdeu, sizeof(quemdeu));
    format(string, sizeof(string), "Vocк  deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id);
    SendClientMessage(playerid, 0x00F6F6AA, string);
    format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org));
    SendClientMessage(id, 0x00F6F6AA, string);
    format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org));
    SendClientMessageToAll(0x00F6F6AA, string);
    pDados[id][Organizacao] = org;
    pDados[id][Patente] = 6;
    SpawnPlayer(id);
    return 1;
}
e no final da GM
pawn Код:
stock GetOrgName(orgid)
{
    new str[30];
    if(orgid == 0)
    {
        str = "CIVIL";
    }
    else if(orgid == 1)
    {
        str = "Batalhгo Tatico Policial";
    }
    return str;
}
Lek Deu Esses 3 Erros Aki
Код:
C:\Users\yNexus\Desktop\GM.pwn(6295) : error 029: invalid expression, assumed zero
C:\Users\yNexus\Desktop\GM.pwn(6295) : error 017: undefined symbol "cmd_btp"
C:\Users\yNexus\Desktop\GM.pwn(6295) : error 029: invalid expression, assumed zero
Reply
#4

Vocк boto um comando em ZCMD em,
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
}
'o'
Reply
#5

Quote:
Originally Posted by HatedS
Посмотреть сообщение
Vocк boto um comando em ZCMD em,
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
}
'o'
Agr Deu Isso
Код:
C:\Users\Velidiane\Desktop\GM.pwn(6267) : error 017: undefined symbol "dcmd_btp"
C:\Users\Velidiane\Desktop\GM.pwn(6279) : error 029: invalid expression, assumed zero
C:\Users\Velidiane\Desktop\GM.pwn(6279) : error 017: undefined symbol "cmd_btp"
C:\Users\Velidiane\Desktop\GM.pwn(6279) : error 029: invalid expression, assumed zero
não tem como fazer o cmd em strcmp ?
Reply
#6

Faz assim, mudei para StrCmp..
/btp
pawn Код:
if (strcmp("/btp", cmdtext, true, 10) == 0)
    {
        new playername[MAX_PLAYER_NAME], string[128];
        if(pDados[playerid][Organizacao] >= 1)
        {
            SendClientMessage(playerid, 0xBFC0C2FF, "Membros Online");
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(pDados[i][Organizacao] == pDados[playerid][Organizacao])
                    {
                        GetPlayerName(i, playername, sizeof(playername));
                        if(pDados[i][Patente] <= 4)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: %d", playername, pDados[i][Patente]);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                        else
                        {
                            if(pDados[i][Patente] == 6)
                            {
                                format(string, sizeof(string), "Membro: %s, Patente: Coronel", playername);
                                SendClientMessage(playerid, GetPlayerColor(playerid), string);
                            }
                            else if(pDados[i][Patente] == 5)
                            {
                                format(string, sizeof(string), "Membro: %s, Patente: outrapatente", playername);
                                SendClientMessage(playerid, GetPlayerColor(playerid), string);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
        }
        return 1;
    }
Agora /darlider
pawn Код:
if (strcmp("/darlider", cmdtext, true, 10) == 0)
    {
        new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME];
        if(!IsPlayerAdmin(playerid))
        {
            SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando.");
        }
        if(sscanf(cmdtext, "i", id)) return 1;
        {
            SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]");
        }
        if(!IsPlayerConnected(id))
        {
            SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
        }
        if(playerid == id)
        {
            SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo.");
        }
        GetPlayerName(id, quemganhou, sizeof(quemganhou));
        GetPlayerName(playerid, quemdeu, sizeof(quemdeu));
        format(string, sizeof(string), "Vocк  deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id);
        SendClientMessage(playerid, 0x00F6F6AA, string);
        format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org));
        SendClientMessage(id, 0x00F6F6AA, string);
        format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org));
        SendClientMessageToAll(0x00F6F6AA, string);
        pDados[id][Organizacao] = org;
        pDados[id][Patente] = 6;
        SpawnPlayer(id);
        return 1;
    }
Reply
#7

Quote:
Originally Posted by HatedS
Посмотреть сообщение
Faz assim, mudei para StrCmp..
/btp
pawn Код:
if (strcmp("/btp", cmdtext, true, 10) == 0)
    {
        new playername[MAX_PLAYER_NAME], string[128];
        if(pDados[playerid][Organizacao] >= 1)
        {
            SendClientMessage(playerid, 0xBFC0C2FF, "Membros Online");
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(pDados[i][Organizacao] == pDados[playerid][Organizacao])
                    {
                        GetPlayerName(i, playername, sizeof(playername));
                        if(pDados[i][Patente] <= 4)
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: %d", playername, pDados[i][Patente]);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                        else
                        {
                            if(pDados[i][Patente] == 6)
                            {
                                format(string, sizeof(string), "Membro: %s, Patente: Coronel", playername);
                                SendClientMessage(playerid, GetPlayerColor(playerid), string);
                            }
                            else if(pDados[i][Patente] == 5)
                            {
                                format(string, sizeof(string), "Membro: %s, Patente: outrapatente", playername);
                                SendClientMessage(playerid, GetPlayerColor(playerid), string);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
        }
        return 1;
    }
Agora /darlider
pawn Код:
if (strcmp("/darlider", cmdtext, true, 10) == 0)
    {
        new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME];
        if(!IsPlayerAdmin(playerid))
        {
            SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando.");
        }
        if(sscanf(cmdtext, "i", id)) return 1;
        {
            SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]");
        }
        if(!IsPlayerConnected(id))
        {
            SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
        }
        if(playerid == id)
        {
            SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo.");
        }
        GetPlayerName(id, quemganhou, sizeof(quemganhou));
        GetPlayerName(playerid, quemdeu, sizeof(quemdeu));
        format(string, sizeof(string), "Vocк  deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id);
        SendClientMessage(playerid, 0x00F6F6AA, string);
        format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org));
        SendClientMessage(id, 0x00F6F6AA, string);
        format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org));
        SendClientMessageToAll(0x00F6F6AA, string);
        pDados[id][Organizacao] = org;
        pDados[id][Patente] = 6;
        SpawnPlayer(id);
        return 1;
    }
ow agr tudo q eu escreve aparece "SERVER: Unknown Command"
Reply
#8

Todos os seus comandos sгo em StrCmp ??
Reply
#9

Quote:
Originally Posted by HatedS
Посмотреть сообщение
Todos os seus comandos sгo em StrCmp ??
Alguns São StrCmp e outros São cmd exemplo :
/admins
Код:
if(!strcmp(cmdtext, "/admins", true))
	{
	SendClientMessage(playerid,0x00FF40AA, ".:: {0000FF}B {009D00}R {F6F65F}V {E31919}- Administradores Online - {0000FF}B {009D00}R {F6F65F}V ::.");
	new count=0;
	foreach(Player, i)
	{
	if(admin[i]){
	if(pAdmin[i] == 1){
	format(STRX,sizeof(STRX),"%s (%d) ",PlayerName(i) ,i);
	}
	if(pAdmin[i] == 2){
	format(STRX,sizeof(STRX),"%s (%d) ", PlayerName(i),i);
	}
	if(pAdmin[i] == 3){
	format(STRX,sizeof(STRX),"%s (%d) ", PlayerName(i),i);
	}
	if(pAdmin[i] == 4){
	format(STRX,sizeof(STRX),"%s (%d) ", PlayerName(i),i);
	}
	if(pAdmin[i] == 5){
	format(STRX,sizeof(STRX),"%s (%d) ", PlayerName(i),i);
	}
	SendClientMessage(playerid, 0x0080FFAA, STRX);
	count++;
	}
	}
	if(count == 0)
	{
	SendClientMessage(playerid, Vermelho, " | ERRO | Não há Administradores online no momento");
	}
	return 1;
	}
e alguns são desse tipo :
Код:
dcmd_vendercasa(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup[playerid] > 5000)
{
return 1;
}
new pname[24];
GetPlayerName(playerid, pname, 24);
GetPlayerName(playerid, pname, sizeof(pname));
format(file, sizeof(file), PASTA_CONTAS, pname);
format(pf, sizeof(pf), "Casas/Casaid%d", playericonhouse[playerid]);
format(gStr, sizeof(gStr), "Casas/Usuarios/%s", hInfo[playericonhouse[playerid]][aName]);
if (strcmp(hInfo[playericonhouse[playerid]][aName],pname,false)) return SendClientMessage(playerid, 0xFF0000AA, "(ERRO) Você não é dono dessa casa.");
dini_Remove(gStr);
new string[128];
format(string,sizeof(string),"(CASA) Você vendeu a casa número '%d'.", hInfo[playericonhouse[playerid]][Casaid]);
SendClientMessage(playerid,0x1E90FFAA,string);
dini_IntSet(file, "TemCasa", 0);
dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")+hInfo[playericonhouse[playerid]][Sell]);
dini_Set(pf, "Name", "Ninguem");
dini_Set(pf, "Renter", "Ninguem");
dini_Set(pf, "Des", "Nada");
dini_Set(pf, "Login", "(00/00/0000)");
dini_IntSet(pf, "TemDono", 0);
dini_IntSet(pf, "alarme", 0);
dini_IntSet(pf, "liberado", 0);
dini_IntSet(pf, "Carrof", 0);
PlayerInfo[playerid][pTcasa] = 0;
hInfo[playericonhouse[playerid]][Locked] = 0;
format(hInfo[playericonhouse[playerid]][aName],255,"Ninguem");
format(hInfo[playericonhouse[playerid]][Renter],255,"Ninguem");
format(hInfo[playericonhouse[playerid]][Des],255,"Nada");
format(hInfo[playericonhouse[playerid]][Login],255,"(0/0/0000)");
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(pf, sizeof(pf), "Casas/Usuarios/%s", nome);
dini_IntSet(pf, "Houseid", -255);
DestroyPickup(HousePickup[playericonhouse[playerid]]);
HousePickup[playericonhouse[playerid]] = CreatePickup(1273, 31, hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz]);
format(pf, sizeof(pf), "(CASA) O jogador %s, vendeu a sua casa número '%d'.",pname ,hInfo[playericonhouse[playerid]][Casaid]);
SendClientMessageToAll(0xFFFFFFAA,pf);
foreach(Player, i)
{
RemovePlayerMapIcon(i, housemapicon[i]);
housemapicon[playerid] = SetPlayerMapIcon(i,31,hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz],31,0xFF0000AA);
}
return 1;
}
Reply
#10

Mals.. sу uso zCMD, nгo gosto de StrCmp.. e nгo sei meche muito com ele, entгo cria as suas orgs ae, e passa para o StrCmp... ou dCMD.
pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>
#include <sscanf>
#include <DOF2>

#define CIVIL 0
#define BatalhгoTaticoPolicial 1
#define //Outra ORG 2
#define //Outra ORG 3

#define C_CIVIL 0x000000FF
#define C_BatalhгoTaticoPolicial 0x9999FFF6
#define C_//Outra ORG 0x00D900C8
#define C_//Outra ORG 0x9900CCF6

enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
{
    Organizacao,
    Patente
}
new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varнavel que amarzenarб os Dados do player

main()
{
    print("\n----------------------------------");
    print(" [GM] DESCRIЗГO DO GAMEMODE");
    print("----------------------------------\n");
}

public OnGameModeExit()
{
    // Don't use these lines if it's a filterscript
    DOF2_Exit(); //Sempre coloque isto aqui quando estiver a usar DOF2, ou irб dar um WARN, e mau funcionamento da include
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irб levar Spawn
    return 1;
}

public OnPlayerConnect(playerid)
{
    new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
    GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
    format(arquivo, sizeof(arquivo), "Players/%s", playername);
    pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organizaзгo"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo"
    pDados[playerid][Patente] = DOF2_GetInt(arquivo, "Patente"); //Setamos "pDados[playerid][Patente]" de acordo com a TAG getada do "arquivo"
    SpawnPlayer(playerid); //Dб SPAWN no player
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
    GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
    format(arquivo, sizeof(arquivo), "Players/%s", playername);
    if(DOF2_FileExists(arquivo)) //Se a Conta existir
    {
        DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
        DOF2_SetInt(arquivo, "Patente", pDados[playerid][Patente]); //Setamos o valor de "pDados[playerid][Patente]" no "arquivo", com a TAG "Patente"
    }
    else //Se a conta nгo esxitir
    {
        DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
        DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
        DOF2_SetInt(arquivo, "Patente", pDados[playerid][Patente]); //Setamos o valor de "pDados[playerid][Patente]" no "arquivo", com a TAG "Patente"
    }
    return 1;
}

public OnPlayerUpdate(playerid)
{
    new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as vбriaveos que irгo armazenar o arquivo e o nome do jogador
    GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
    format(arquivo, sizeof(arquivo), "Players/%s", playername);
    if(DOF2_FileExists(arquivo)) //Se a Conta existir
    {
        DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
        DOF2_SetInt(arquivo, "Patente", pDados[playerid][Patente]); //Setamos o valor de "pDados[playerid][Patente]" no "arquivo", com a TAG "Patente"
    }
    else //Se a conta nгo esxitir
    {
        DOF2_CreateFile(arquivo); //Cria o arquivo com os Dados do player
        DOF2_SetInt(arquivo, "Organizaзгo", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
        DOF2_SetInt(arquivo, "Patente", pDados[playerid][Patente]); //Setamos o valor de "pDados[playerid][Patente]" no "arquivo", com a TAG "Patente"
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(pDados[playerid][Organizacao] == BatalhгoTaticoPolicial)
    {
        SetPlayerPos(playerid, //Spawn da org aqui);
    }
    else if(pDados[playerid][Organizacao] == //Outra ORG)
    {
        SetPlayerPos(playerid, //Spawn da org aqui);
    }
    else if(pDados[playerid][Organizacao] == //Outra ORG)
    {
        SetPlayerPos(playerid, //Spawn da org aqui);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    SpawnPlayer(playerid); //Spawn no nego!
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 666)
{
        new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irб armazenar o nome e "string"
        GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog
        if(response) //Se ele clicar em SIM...
        {
            pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organizaзгo de acordo com a PVarInt do comando /convida
            pDados[playerid][Patente] = 1; //Seta o Patente a 1
            format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou
            SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensgaem a quem convidou
            format(string, sizeof(string), "%s й o mais novo membro da Organizaзгo.", playername); //Formata uma mensgaem com o nome do player que aceitou
            SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organizaзгo do player
            SendClientMessage(playerid, 0x00FF00FF, "Vocк aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P
            DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
            DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
            SpawnPlayer(playerid); //Spawn nele!
        }
        else //Se ele ciclar em NГO...
        {
            format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite
            SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), 0x00FF00FF, string); //Envia a mensagem a quem convidou o player
            SendClientMessage(playerid, 0x00FF00FF, "Vocк rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P
            DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
            DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
        }
    }
    return 1;
}

CMD:btp(playerid)
{
    new playername[MAX_PLAYER_NAME], string[128]; //Criamos variaveis que irгo armazenar o nome e mensganes formatadas
    if(pDados[playerid][Organizacao] >= 1)
    {
        SendClientMessage(playerid, 0xBFC0C2FF, "Membros Online");
        for(new i = 0; i < MAX_PLAYERS; i++) //Criamos um loop de acordo com o MAX_PLAYERS
        {
            if(IsPlayerConnected(i)) //Verifica se o "i" (player) do loop estб online
            {
                if(pDados[i][Organizacao] == pDados[playerid][Organizacao]) //Verifica se a organizaзгo do player (do loop) й igual a do player que digitou o comando
                {
                    GetPlayerName(i, playername, sizeof(playername)); //Geta o nome do player(loop)...
                    if(pDados[i][Patente] <= 4) //Verifica se o player do loop e Patente 4 ou menos
                    {
                        format(string, sizeof(string), "Membro: %s, Patente: %d", playername, pDados[i][Patente]); //Formata uma mensgaem com o nome e Patente do player (loop)
                        SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem do player que digitou o comando
                    }
                    else
                    {
                        if(pDados[i][Patente] == 6) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: Coronel", playername);
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                        else if(pDados[i][Patente] == 5) //Verifica se o player й Lнder e formata/envia uma mensagem diferente/destacada
                        {
                            format(string, sizeof(string), "Membro: %s, Patente: Tenente", playername); //Tenente, dps vc muda pra qual quiser ;D
                            SendClientMessage(playerid, GetPlayerColor(playerid), string);
                        }
                    }
                }
            }
        }
    }
    else
    {
        SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pertence a nenhuma Organizaзгo.");
    }
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:radio(playerid, params[])
{
    new text[128], string[128], playername[MAX_PLAYER_NAME]; //Criando variavйs...
    if(sscanf(params, "s", text)) return SendClientMessage(playerid, 0xAD0000AA, "Uso correto: /radio [MENSAGEM]"); //Aqui estб o triunfo do sscanf!
    if(pDados[playerid][Organizacao] == CIVIL) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo participa de nenhuma organizaзгo!");
    GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem usou o comando
    format(string, sizeof(string), "(Rбdio) %s [Patente: %d] diz: %s", playername, pDados[playerid][Patente], text); //Formata uma mensagem com o nome do player, Patente e a mensgem
    SendFamilyMessage(pDados[playerid][Organizacao], 0xAD0000AA, string); //Envia a mensagem a organizaзгo do player
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:convidar(playerid, params[])
{
    new id, playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME], string[128]; //Cria variaveis que irгo armazenar id, nome e string
    if(pDados[playerid][Patente] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Vк se quem digitou o comando й lнder, se nгo, returna a mensagem
    if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /convidar [ID]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o "id" estб online...
    if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador jб estб em uma Organizaзгo."); //Verifica se o player jб estб em alguma organizaзгo, se estiver, returna a mensagem
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode convidar a vocк mesmo."); //Verifica se o "id" = id de quem digitou (playerid)
    GetPlayerName(id, idname, sizeof(idname)); //Geta o nome do "id"
    format(string, sizeof(string), "Vocк convidou %s para sua Organizaзгo.", idname); //Formata a mensagem com que foi convidado
    SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem ao lнder
    GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem digitou o comando
    format(string, sizeof(string), "%s estб lhe Convidando para fazer parte da Organizaзгo: %s \nDeseja aceitar?", playername, GetOrgName(pDados[playerid][Organizacao])); //Formata um dialog com o nome de que convidou e o nome da organizaзгo
    ShowPlayerDialog(id, 666, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", string, "Sim", "Nгo"); //Cria o dialog de acordo com a "string" e a mostra para o "id"
    SetPVarInt(id, "OrgConvidado", pDados[playerid][Organizacao]); //Setando PVarInt que serб usar no OnDialogResponse
    SetPVarInt(id, "QuemConvidou", playerid); //Setando PVarInt que serб usar no OnDialogResponse
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:promover(playerid, params[])
{
    new id, Patente, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Cria as vбriveis...
    if(pDados[playerid][Patente] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lнder
    if(sscanf(params, "dd", id, Patente)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /promover [ID] [Patente]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que serб promovido estб online
    if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode promover a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
    if(Patente >= 1 || Patente <= 5) //Verifica se o Patente estб entre 1 a 5
    {
        pDados[id][Patente] = Patente; //Seta o Patente do player de acordo com o "Patente" que o lнder digitou
        GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que digitou o comando
        GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem recebeu a promoзгo
        format(string, sizeof(string), "%s promoveu o membro %s para o Patente %d.", playername, idname, Patente); //Formata a mesgaem com quem prommoveu, quem foi promovido e o Patente
        SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
        format(string, sizeof(string), "%s te promoveu para o Patente %d.", playername, Patente); //Formata a mensgame...
        SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mesngaem para quem foi promovido
    }
    else //Caso o Patente nгo esta de 1 a 5, envia a mensagem abaixo:
    {
        SendClientMessage(playerid, 0xAD0000AA, "Patentes de 1 a 5");
        return 1;
    }
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:demitir(playerid, params[])
{
    new id, motivo[128], string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Criando variaveis :P
    if(pDados[playerid][Patente] != 6) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo й lнder."); //Verifica se o player que digitou o comando й lider
    if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /demitir [ID] [MOTIVO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se quem serб demitido estб online
    if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк."); //Verifica se o "id" й da mesma organizaзгo do lнder
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode demitir a vocк mesmo."); //Verifica se o "id" й ele mesmo (playerid)
    pDados[id][Organizacao] = CIVIL;
    pDados[id][Patente] = 0; //Seta o Patente od player a 0
    GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem demitiu
    GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem foi demitido
    format(string, sizeof(string), "%s demitiu o membro %s da Organizaзгo.", playername, idname); //Formata uma mensagem com o nome de quem demitiu e quem foi demitido
    SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organizaзгo
    format(string, sizeof(string), "%s te demitiu da Organizaзгo. Motivo: %s.", playername, motivo); //Formata uma mensagem com o nome de quem demitiu e o motivo
    SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mensagem para quem foi demitido
    SpawnPlayer(id); //Spawn no nego!
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:darlider(playerid, params[])
{
    new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME]; //Cria vбriaveis que irб armazenar o id do lнder, a organizaзгo, o nome etc...
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xAD0000AA, "{00E5FF}Vocк nгo estб autorizado a usar este Comando."); //Verifica se o player estб logado na RCON, se nгo, returna a mensagem
    if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /darlider [ID] [ORGANIZAЗГO]"); //Aqui estб o triunfo do sscanf! Para saber mais informaзхes leia o Tуpico
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online."); //Verifica se o player que iria ser setado lнder estб online
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode dar lider a vocк mesmo."); //Verifica se o "id" й igual ao seu (playerid)
    GetPlayerName(id, quemganhou, sizeof(quemganhou)); //Geta o nome de quem ganhou a lideanзa
    GetPlayerName(playerid, quemdeu, sizeof(quemdeu)); //Geta o nome do admin que deu o lнder
    format(string, sizeof(string), "Vocк  deu lнder da Organizaзгo %s para %s(ID: %d)", GetOrgName(org), quemganhou, id); //Formata uma mensagem com o nome de quem ganhou a lideranзa, o nome da orgnizaзгo que foi setada e o "id"
    SendClientMessage(playerid, 0x00F6F6AA, string); //Manda a mensgem formatada para quem digitou o comando (quem deu o lнder)
    format(string, sizeof(string), "%s(ID: %d) te deu lнder da Organizaзгo %s.", quemdeu, playerid, GetOrgName(org)); //Formata uma mensgame com quem deu a lideranзa, o "playerid" e o nome organizaзгo setada
    SendClientMessage(id, 0x00F6F6AA, string); //Envia a mensgaem formatada para que recebeu a lideranзa
    format(string, sizeof(string), "%s(ID: %d) й o novo lнder da Organizaзгo %s.", quemganhou, id, GetOrgName(org)); //Formata a mensagem...
    SendClientMessageToAll(0x00F6F6AA, string); //Envia a mensagem para todos Online
    pDados[id][Organizacao] = org; //Seta a organizaзгo do "id"
    pDados[id][Patente] = 6; //Seta o Patente (lideranзa) do "id"
    SpawnPlayer(id); //Spawna o player que rebeu a lideranзa
    return 1; //Returnando a 1, nunca se esqueзa!
}

CMD:equipar(playerid)
{
    if(pDados[playerid][Organizacao] == CIVIL)
    {
        SendClientMessage(playerid, 0xAD0000AA, "Vocк й Civil e nгo pode equipar.");
    }
    else if(pDados[playerid][Organizacao] == BatalhгoTaticoPolicial)
    {
            if(!IsPlayerInRangeOfPoint(playerid, 5.0,//Local de equipar)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
            new Armas_BatalhгoTaticoPolicial = 50*pDados[playerid][Patente]; //Isto fбra que multiplique 50 pelo Patente do player, sendo assim, a muniзгo que o player terб
            GivePlayerWeapon(playerid, 24, Armas_BatalhгoTaticoPolicial);
            GivePlayerWeapon(playerid, 25, Armas_BatalhгoTaticoPolicial);
            GivePlayerWeapon(playerid, 29, Armas_BatalhгoTaticoPolicial);
            GivePlayerWeapon(playerid, 31, Armas_BatalhгoTaticoPolicial);
            GivePlayerWeapon(playerid, 32, Armas_BatalhгoTaticoPolicial);
            GivePlayerWeapon(playerid, 34, Armas_BatalhгoTaticoPolicial);
    }
    else if(pDados[playerid][Organizacao] == //Outra ORG)
    {
            if(!IsPlayerInRangeOfPoint(playerid, 5.0,//Local de equipar)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
            new Armas_//Outra ORG = 50*pDados[playerid][Patente]; //Isto fбra que multiplique 50 pelo Patente do player, sendo assim, a muniзгo que o player terб
            GivePlayerWeapon(playerid, 24, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 25, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 29, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 31, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 32, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 34, Armas_//Outra ORG);
    }
    else if(pDados[playerid][Organizacao] == //Outra ORG)
    {
            if(!IsPlayerInRangeOfPoint(playerid, 5.0,//Local de equipar)) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo estб no local para se equipar");
            new Armas_//Outra ORG = 50*pDados[playerid][Patente]; //Isto fбra que multiplique 50 pelo Patente do player, sendo assim, a muniзгo que o player terб
            GivePlayerWeapon(playerid, 24, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 25, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 29, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 31, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 32, Armas_//Outra ORG);
            GivePlayerWeapon(playerid, 34, Armas_//Outra ORG);
    }
    return 1; //Returnando a 1, nunca se esqueзa!
}

stock GetOrgName(orgid)
{
    new str[30];
    if(orgid == 0)
    {
        str = "CIVIL";
    }
    else if(orgid == 1)
    {
        str = "BatalhгoTaticoPolicial";
    }
    else if(orgid == 2)
    {
        str = "//Outra ORG";
    }
    else if(orgid == 3)
    {
        str = "//Outra ORG";
    }
    return str;
}

stock SendFamilyMessage(orgid, cor, mensagem[]) //stock que envia a mensagem para tal organizaзгo de acordo com "ogrid"
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(pDados[i][Organizacao] == orgid)
            {
                SendClientMessage(i, cor, mensagem);
            }
        }
    }
    return 0;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)