[Ajuda] Familia autorizada
#1

Queria que esse sistema de familia , em vez de ser acessado por todos , os administradores tivessem que autorizar , /autorizarfamilia , e assim ele poderia acessar o painel
pawn Код:
#include <a_samp>
#include <Fini>

#define Painel (212)
#define OpcoesPainel (213)
#define Promocao (214)


new PlayerEquipe[MAX_PLAYERS][40];
new EquipeTag[MAX_PLAYERS][10];
new CorEquipe[MAX_PLAYERS];
new Float:Spawn[MAX_PLAYERS][3];
new SkinEquipe[MAX_PLAYERS][3];
new PlayerRecrutaDeOutroPlayer[MAX_PLAYERS][MAX_PLAYER_NAME];
new RankPlayer[MAX_PLAYERS];
new bool:PlayerTemEquipe[MAX_PLAYERS];
new bool:PlayerMembroEquipe[MAX_PLAYERS];
new PromocaoVar;
new bool:Spawned[MAX_PLAYERS];


enum InGameStatus
{
    Equipe[40],Tag[10],Cor,Float:SpawnGameX,Float:SpawnGameY,Float:SpawnGameZ,SkinEquipeGame1,SkinEquipeGame2,SkinEquipeGame3,
}
new InGame[MAX_PLAYERS][InGameStatus];



public OnFilterScriptInit()
{
    print(".•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•\n");
    print("[ ----- Sistema de Equipes ----- ]");
    print("Crйditos б [iPs]Ken ou rjjj");
    print("Agradecimentos: [iPs]Team\n");
    print(".•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•");
    return 1;
}

public OnPlayerConnect(playerid)
{
    new AtualNome[MAX_PLAYER_NAME];
    GetPlayerName(playerid,AtualNome,sizeof(AtualNome));
    SetPVarString(playerid,"Nome Original",AtualNome);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new AtualNome[MAX_PLAYER_NAME],NovoNome[40];
    if(!Spawned[playerid])
    {
        Spawned[playerid] = true;
        new NickName[MAX_PLAYER_NAME],text[100],string[100];
        GetPlayerName(playerid,NickName,sizeof(NickName));
        format(text,sizeof(text),"/Equipes/%s.txt",NickName);
        if(!Fini_Exists(text))
        {
            Fini_Create(text);
            Fini_OpenFile(text);
            Fini_SetStr("RecrutaDeOutroPlayer",PlayerRecrutaDeOutroPlayer[playerid]);
            Fini_SetStr("NomeEquipe",PlayerEquipe[playerid]);
            Fini_SetStr("Tag",EquipeTag[playerid]);
            Fini_SetVal("Cor",CorEquipe[playerid]);
            Fini_SetFloat("SpawnX",Spawn[playerid][0]);
            Fini_SetFloat("SpawnY",Spawn[playerid][1]);
            Fini_SetFloat("SpawnZ",Spawn[playerid][2]);
            Fini_SetVal("Skin1",SkinEquipe[playerid][0]);
            Fini_SetVal("Skin2",SkinEquipe[playerid][1]);
            Fini_SetVal("Skin3",SkinEquipe[playerid][2]);
            Fini_SetVal("Cargo",RankPlayer[playerid]);
            Fini_SetBool("PlayerTemEquipe",PlayerTemEquipe[playerid]);
            Fini_SetBool("PlayerMembroEquipe",PlayerMembroEquipe[playerid]);
            Fini_SaveFile();
            Fini_CloseFile();
        }
        else
        {
            Fini_OpenFile(text);
            strmid(PlayerRecrutaDeOutroPlayer[playerid],Fini_GetStr("RecrutaDeOutroPlayer"),false,strlen(Fini_GetStr("RecrutaDeOutroPlayer")),MAX_PLAYER_NAME);
            strdel(PlayerRecrutaDeOutroPlayer[playerid],(strlen(PlayerRecrutaDeOutroPlayer[playerid])-2),(strlen(PlayerRecrutaDeOutroPlayer[playerid])));
            format(string,sizeof(string),"/Equipes/%s.txt",PlayerRecrutaDeOutroPlayer[playerid]);
            RankPlayer[playerid] = Fini_GetValue("Cargo");
            PlayerTemEquipe[playerid] = (Fini_GetBool("PlayerTemEquipe") == 1) ? true : false;
            PlayerMembroEquipe[playerid] = (Fini_GetBool("PlayerMembroEquipe") == 1) ? true : false;
            Fini_SaveFile();
            Fini_CloseFile();
            if(strlen(PlayerRecrutaDeOutroPlayer[playerid]) > 2)
            {
                if(Fini_Exists(string))
                {
                    Fini_OpenFile(string);
                    strmid(InGame[playerid][Equipe],Fini_GetStr("NomeEquipe"),false,strlen(Fini_GetStr("NomeEquipe")),MAX_PLAYER_NAME);
                    strmid(InGame[playerid][Tag],Fini_GetStr("Tag"),false,strlen(Fini_GetStr("Tag")),10);
                    InGame[playerid][Cor] = Fini_GetValue("Cor");
                    InGame[playerid][SpawnGameX] = Fini_GetFloat("SpawnX");
                    InGame[playerid][SpawnGameY] = Fini_GetFloat("SpawnY");
                    InGame[playerid][SpawnGameZ] = Fini_GetFloat("SpawnZ");
                    InGame[playerid][SkinEquipeGame1] = Fini_GetValue("Skin1");
                    InGame[playerid][SkinEquipeGame2] = Fini_GetValue("Skin2");
                    InGame[playerid][SkinEquipeGame3] = Fini_GetValue("Skin3");
                    Fini_SaveFile();
                    Fini_CloseFile();
                    SetPlayerColor(playerid,InGame[playerid][Cor]);
                    SetPlayerPos(playerid,InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ]);
                    new Roll = random(2);
                    if(Roll == 0) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(Roll == 1) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(Roll == 2) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    GetPVarString(playerid, "Nome Original", AtualNome, sizeof(AtualNome));
                    format(NovoNome,40,"[%s]%s",InGame[playerid][Tag],AtualNome);
                    SetPlayerName(playerid,NovoNome);
                    SetSpawnInfo(playerid, GetPlayerTeam(playerid),GetPlayerSkin(playerid),InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ], 0, 0, 0, 0, 0, 0, 0);
                }
            }
        }
    }
    return true;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == Painel)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            if(listitem == 0)
            {
                if(GetPlayerMoney(playerid) < 200000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                "[ -- Equipes - Opзхes -- ]", "[ --- Server Info --- ]\n\nUma Equipe й um Grupo de jogadores com objetivos em comun.\n\n- Cada jogador sу pode criar 1 equipe.\n- Para selecionar a maioria das opзхes do Painel de Equipes vocк precisarб de Dinheiro\n- Um jogador sу serб recruta se ele nгo tiver em uma Equipe.\n\nVocк requisitou a criaзгo de uma Equipe, qual serб o Nome dela ?\n\n",
                 "OK", "Sair");
                SetPVarInt(playerid,"PainelValue",1);
                new ProprioMembro[MAX_PLAYER_NAME];
                GetPlayerName(playerid,ProprioMembro,MAX_PLAYER_NAME);
                strmid(PlayerRecrutaDeOutroPlayer[playerid],ProprioMembro,false,strlen(ProprioMembro),MAX_PLAYER_NAME);
                return 1;
            }
            if(PlayerTemEquipe[playerid])
            {
                if(listitem == 1)
                {
                    if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Spawn --- ]\n\nDigite as Coordenadas X,Y,Z do Local de Spawn da Sua Equipe no seguinte formato:\n\nX,Y,Z\n\nEm seguinda pressione OK.\nObs:Para que o Local de Spawn seja onde vocк estб no momento, digite no espaзo abaixo:  Local.\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",2);
                    return 1;
                }
                if(listitem == 2)
                {
                    if(GetPlayerMoney(playerid) < 8000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Tag --- ]\n\nDigite a TAG de sua equipe, que serб adicionada ao Nick dos Recrutas ao entrarem no jogo.\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",3);
                    return 1;
                }
                if(listitem == 3)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Cor --- ]\n\nDigite a Cor do Nick da Sua Equipe\nOpзхes:\n\n- Vermelho\n- Verde\n- Amarelo\n- Azul\n- Preto\n- Laranja\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",4);
                    return 1;
                }
                if(listitem == 4)
                {
                    if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Skins da Equipe --- ]\n\nDigite entre Vнrgulas, o ID das 3 Skins da Equipe.\nExemplo:\n\n250,251,252\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",5);
                    return 1;
                }
                if(listitem == 5)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Nome da Equipe --- ]\n\nDigite Um novo Nome para a sua Equipe:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",6);
                    return 1;
                }
                if(listitem == 6)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Criar Recruta --- ]\n\nDigite o ID do Novo Recruta:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",7);
                    return 1;
                }
                if(listitem == 7)
                {
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Retirar Recruta --- ]\n\nDigite o ID do Futuro Ex-Recruta:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",8);
                    return 1;
                }
                if(listitem == 8)
                {
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Promover Recruta --- ]\n\nDigite o ID do Recruta, e, em seguinda, seu Novo Cargo na Equipe:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",9);
                    return 1;
                }
                if(listitem == 9)
                {
                    strmid(PlayerRecrutaDeOutroPlayer[playerid],"",false,strlen(""),MAX_PLAYER_NAME);
                    PlayerMembroEquipe[playerid] = false;
                    PlayerTemEquipe[playerid] = false;
                    RankPlayer[playerid] = 0;
                    new NickAtual[25];
                    GetPVarString(playerid, "Nome Original", NickAtual, 25);
                    SetPlayerName(playerid,NickAtual);
                    SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк abandonou a sua Equipe !");
                    return SalvarTudo(playerid);
                }
            }
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem uma Equipe !");
        }
    }
    if(dialogid == OpcoesPainel)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            switch(GetPVarInt(playerid,"PainelValue"))
            {
                case 1:
                {
                    if(!PlayerTemEquipe[playerid] && !PlayerMembroEquipe[playerid])
                    {
                        strmid(PlayerEquipe[playerid],inputtext,false,strlen(inputtext),40);
                        PlayerTemEquipe[playerid] = true;
                        RankPlayer[playerid] = 100;
                        SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Parabйns, vocк Criou sua Equipe ! :D");
                    }
                }
                case 2:
                {
                    new space,space2,TextSide1[20],TextSide2[20],TextSide3[20],bool:done;
                    for(new vartxt; vartxt <= strlen(inputtext); vartxt++)
                    {
                        if(inputtext[vartxt] == ',' && !done)
                        {
                            done = true;
                            space = vartxt;
                            format(TextSide1,sizeof(TextSide1),inputtext);
                            strdel(TextSide1,space,strlen(inputtext));
                        }
                        if(inputtext[vartxt] == ',' && vartxt > space && done)
                        {
                            space2 = vartxt;
                            format(TextSide2,sizeof(TextSide2),inputtext);
                            strdel(TextSide2,0,(space+1));
                            for(new y;y<=strlen(TextSide2);++y)
                            {
                                if(TextSide2[y] == ',')
                                {
                                    strdel(TextSide2,y,strlen(TextSide2));
                                }
                            }
                            format(TextSide3,sizeof(TextSide3),inputtext);
                            strdel(TextSide3,0,(space2+1));
                        }
                    }
                    Spawn[playerid][0] = floatstr(TextSide1);
                    Spawn[playerid][1] = floatstr(TextSide2);
                    Spawn[playerid][2] = floatstr(TextSide3);
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Spawn da Equipe foi Redefinido !");
                }
                case 3:
                {
                    strmid(EquipeTag[playerid],inputtext,false,strlen(inputtext),10);
                    new AtualNome[(MAX_PLAYER_NAME)],NovoNome[40];
                    for(new r = 0; r != MAX_PLAYERS; r++)
                    {
                        if(strcmp(PlayerRecrutaDeOutroPlayer[r],PlayerEquipe[playerid],true)==0)
                        {
                            GetPVarString(r, "Nome Original", AtualNome, sizeof(AtualNome));
                            format(NovoNome,40,"[%s]%s",inputtext,AtualNome);
                            SetPlayerName(r,NovoNome);
                        }
                    }
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Tag Da Equipe Foi Redefinida ! :D");
                }
                case 4:
                {
                    if(!strcmp(inputtext,"Vermelho",true))  CorEquipe[playerid] = 0x9D000096;
                    else if(!strcmp(inputtext,"Verde",true)) CorEquipe[playerid] = 0x33AA33AA;
                    else if(!strcmp(inputtext,"Amarelo",true)) CorEquipe[playerid] = 0xFFFF00AA;
                    else if(!strcmp(inputtext,"Azul",true)) CorEquipe[playerid] = 0x2641FEAA;
                    else if(!strcmp(inputtext,"Preto",true)) CorEquipe[playerid] = 0x000000FF;
                    else if(!strcmp(inputtext,"Laranja",true)) CorEquipe[playerid] = 0xF6AD00AA;
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Cor Da Equipe Foi Redefinida ! :D");
                }
                case 5:
                {
                    new space,space2,TextSide1[20],TextSide2[20],TextSide3[20],bool:done;
                    for(new vartxt; vartxt <= strlen(inputtext); vartxt++)
                    {
                        if(inputtext[vartxt] == ',' && !done)
                        {
                            done = true;
                            space = vartxt;
                            format(TextSide1,sizeof(TextSide1),inputtext);
                            strdel(TextSide1,space,strlen(inputtext));
                        }
                        if(inputtext[vartxt] == ',' && vartxt > space && done)
                        {
                            space2 = vartxt;
                            format(TextSide2,sizeof(TextSide2),inputtext);
                            strdel(TextSide2,0,(space+1));
                            for(new y;y<=strlen(TextSide2);++y)
                            {
                                if(TextSide2[y] == ',')
                                {
                                    strdel(TextSide2,y,strlen(TextSide2));
                                }
                            }
                            format(TextSide3,sizeof(TextSide3),inputtext);
                            strdel(TextSide3,0,(space2+1));
                        }
                    }
                    SkinEquipe[playerid][0] = strval(TextSide1);
                    SkinEquipe[playerid][1] = strval(TextSide2);
                    SkinEquipe[playerid][2] = strval(TextSide3);
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Skins da Equipe foram Redefinidas !");
                }
                case 6:
                {
                    strmid(PlayerEquipe[playerid],inputtext,false,strlen(inputtext),40);
                    PlayerTemEquipe[playerid] = true;
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Nome da Equipe, redefinido ! :D");
                }
                case 7:
                {
                    if(IsPlayerConnected(strval(inputtext)) && !PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        if(strlen(PlayerRecrutaDeOutroPlayer[strval(inputtext)]) == 0)
                        {
                            new Name[MAX_PLAYER_NAME];
                            GetPlayerName(playerid,Name,sizeof(Name));
                            strmid(PlayerRecrutaDeOutroPlayer[strval(inputtext)],Name,false,strlen(Name),MAX_PLAYER_NAME);
                            PlayerMembroEquipe[strval(inputtext)] = true;
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador Recrutado !");
                            SendClientMessage(strval(inputtext),0xFFFF00AA,"[Server Info] Vocк foi recrutado por uma Equipe :D, use /equipe ou /e pra Falar com o resto dos Membros !");
                        }
                        else
                        {
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] O jogador jб й de uma Equipe !");
                        }
                    }
                }
                case 8:
                {
                    if(IsPlayerConnected(strval(inputtext)) && PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        new Nick[25];
                        GetPlayerName(playerid,Nick,25);
                        if(!strcmp(Nick,PlayerRecrutaDeOutroPlayer[strval(inputtext)],true))
                        {
                            strmid(PlayerRecrutaDeOutroPlayer[strval(inputtext)],"",false,strlen(""),MAX_PLAYER_NAME);
                            PlayerMembroEquipe[strval(inputtext)] = false;
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador Retirado!");
                            SendClientMessage(strval(inputtext),0xFFFF00AA,"[Server Info] Vocк foi Retirado da Sua Atual Equipe !");
                        }
                        else
                        {
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] O jogador jб й de uma Equipe !");
                        }
                    }
                }
                case 9:
                {
                    if(IsPlayerConnected(strval(inputtext)) && PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        new Nick[25];
                        GetPlayerName(playerid,Nick,25);
                        if(!strcmp(Nick,PlayerRecrutaDeOutroPlayer[strval(inputtext)],true))
                        {
                            PromocaoVar = strval(inputtext);
                            ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                            "[ -- Equipes - Opзхes -- ]", "[ --- Promover Recruta --- ]\n\nAgora digite o cargo:\n\n",
                            "OK", "Sair");
                        }
                    }
                }
            }
        }
        return SalvarTudo(playerid);
    }
    if(dialogid == Promocao)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            SetPVarInt(playerid,"PainelValue",false);
            RankPlayer[PromocaoVar] = strval(inputtext);
            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador promovido !");
            SendClientMessage(PromocaoVar,0xFFFF00AA,"[Server Info] Foi foi promovido de Cargo na sua Equipe !");
            return SalvarTudo(playerid);
        }
    }
    SetPVarInt(playerid,"PainelValue",false);
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/painelequipes",cmdtext,true,14)==0)
    {
        SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Vocк estб acessando o Painel de Equipes !");
        ShowPlayerDialog(playerid, Painel, DIALOG_STYLE_LIST,"[ -- Equipes - Opзхes -- ]",
        "Criar uma Equipe [{FFFF00}Valor: R$200000{FFFFFF}]\nSpawn da Equipe [{FFFF00}Valor: R$50000{FFFFFF}]\nTag da Equipe [{FFFF00}Valor: R$8000{FFFFFF}]\nCor da Equipe [{FFFF00}Valor: R$1000{FFFFFF}]\nSkins da Equipe [{FFFF00}Valor: R$500{FFFFFF}]\nNome da Equipe [{FFFF00}Valor: R$1000{FFFFFF}]\nCriar Recruta [{FFFF00}Valor: R$1000{FFFFFF}]\nRetirar Recruta [{FFFF00}Valor: - {FFFFFF}]\nPromover Recruta [{FFFF00}Valor: - {FFFFFF}]\nSair Da Sua Equipe [{FFFF00}Valor: - {FFFFFF}]",
        "OK", "Sair");
        return 1;
    }
    if((strcmp("/equipe",cmdtext,true,7)==0)||(strcmp("/e",cmdtext,true,2)==0))
    {
        if(PlayerTemEquipe[playerid] || PlayerMembroEquipe[playerid])
        {
            new parametros[128];
            parametros = KcmD(1, cmdtext);
            if(!strlen(parametros)) return SendClientMessage(playerid,0xFFFFFFAA,"Digite (/e)quipe [texto]");
            new text[100],Nome[25];
            GetPlayerName(playerid,Nome,sizeof(Nome));
            if(RankPlayer[playerid] == 100)
            {
                format(text,100,"{33FF00}[Chat Da Equipe de %s] {FFFFFF}%s[Lider da Equipe] diz: %s",PlayerRecrutaDeOutroPlayer[playerid],Nome,parametros);
            }
            else
            {
                format(text,100,"{33FF00}[Chat Da Equipe de %s] {FFFFFF}%s[Cargo %d] diz: %s",PlayerRecrutaDeOutroPlayer[playerid],Nome,RankPlayer[playerid],parametros);
            }
            for(new x = 0; x < MAX_PLAYERS; x++)
            {
                if(strcmp(PlayerRecrutaDeOutroPlayer[playerid],PlayerRecrutaDeOutroPlayer[x],true)==0)
                {
                    SendClientMessage(x,0xFFFFFFAA,text);
                }
            }
        }
        return 1;
    }
    if(strcmp("/creditos_equipes",cmdtext,true,17)==0)
    {
        SendClientMessage(playerid, 0xFFFF00AA, "Crйditos do Sistema de Equipes б [iPs]Ken ou rjjj");
        SendClientMessage(playerid, 0xFFFF00AA, "Agradecimentos: [iPs]Team");
        return 1;
    }
    return 0;
}


stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}


stock SalvarTudo(playerid)
{
    new NickName[MAX_PLAYER_NAME],text[100];
    GetPVarString(playerid, "Nome Original", NickName, sizeof(NickName));
    format(text,sizeof(text),"/Equipes/%s.txt",NickName);
    Fini_OpenFile(text);
    Fini_SetStr("RecrutaDeOutroPlayer",PlayerRecrutaDeOutroPlayer[playerid]);
    Fini_SetStr("NomeEquipe",PlayerEquipe[playerid]);
    Fini_SetStr("Tag",EquipeTag[playerid]);
    Fini_SetVal("Cor",CorEquipe[playerid]);
    Fini_SetFloat("SpawnX",Spawn[playerid][0]);
    Fini_SetFloat("SpawnY",Spawn[playerid][1]);
    Fini_SetFloat("SpawnZ",Spawn[playerid][2]);
    Fini_SetVal("Skin1",SkinEquipe[playerid][0]);
    Fini_SetVal("Skin2",SkinEquipe[playerid][1]);
    Fini_SetVal("Skin3",SkinEquipe[playerid][2]);
    Fini_SetVal("Cargo",RankPlayer[playerid]);
    Fini_SetBool("PlayerTemEquipe",PlayerTemEquipe[playerid]);
    Fini_SetBool("PlayerMembroEquipe",PlayerMembroEquipe[playerid]);
    Fini_SaveFile();
    Fini_CloseFile();
    return true;
}
Se alguem souber , tiver um tutorial , uma dica , um comando para estudar aceito , qualquer coisa ;s

obg
att.
Reply
#2

Ta ae.
pawn Код:
#include <a_samp>
#include <Fini>

#define Painel (212)
#define OpcoesPainel (213)
#define Promocao (214)


new PlayerEquipe[MAX_PLAYERS][40];
new EquipeTag[MAX_PLAYERS][10];
new CorEquipe[MAX_PLAYERS];
new Float:Spawn[MAX_PLAYERS][3];
new SkinEquipe[MAX_PLAYERS][3];
new PlayerRecrutaDeOutroPlayer[MAX_PLAYERS][MAX_PLAYER_NAME];
new RankPlayer[MAX_PLAYERS];
new bool:PlayerTemEquipe[MAX_PLAYERS];
new bool:PlayerMembroEquipe[MAX_PLAYERS];
new PromocaoVar;
new bool:Spawned[MAX_PLAYERS];
new Autorizado[MAX_PLAYERS];


enum InGameStatus
{
    Equipe[40],Tag[10],Cor,Float:SpawnGameX,Float:SpawnGameY,Float:SpawnGameZ,SkinEquipeGame1,SkinEquipeGame2,SkinEquipeGame3,
}
new InGame[MAX_PLAYERS][InGameStatus];



public OnFilterScriptInit()
{
    print(".•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•\n");
    print("[ ----- Sistema de Equipes ----- ]");
    print("Crйditos б [iPs]Ken ou rjjj");
    print("Agradecimentos: [iPs]Team\n");
    print(".•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•.•");
    return 1;
}

public OnPlayerConnect(playerid)
{
    new AtualNome[MAX_PLAYER_NAME];
    GetPlayerName(playerid,AtualNome,sizeof(AtualNome));
    SetPVarString(playerid,"Nome Original",AtualNome);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    new AtualNome[MAX_PLAYER_NAME],NovoNome[40];
    if(!Spawned[playerid])
    {
        Spawned[playerid] = true;
        new NickName[MAX_PLAYER_NAME],text[100],string[100];
        GetPlayerName(playerid,NickName,sizeof(NickName));
        format(text,sizeof(text),"/Equipes/%s.txt",NickName);
        if(!Fini_Exists(text))
        {
            Fini_Create(text);
            Fini_OpenFile(text);
            Fini_SetStr("RecrutaDeOutroPlayer",PlayerRecrutaDeOutroPlayer[playerid]);
            Fini_SetStr("NomeEquipe",PlayerEquipe[playerid]);
            Fini_SetStr("Tag",EquipeTag[playerid]);
            Fini_SetVal("Cor",CorEquipe[playerid]);
            Fini_SetFloat("SpawnX",Spawn[playerid][0]);
            Fini_SetFloat("SpawnY",Spawn[playerid][1]);
            Fini_SetFloat("SpawnZ",Spawn[playerid][2]);
            Fini_SetVal("Skin1",SkinEquipe[playerid][0]);
            Fini_SetVal("Skin2",SkinEquipe[playerid][1]);
            Fini_SetVal("Skin3",SkinEquipe[playerid][2]);
            Fini_SetVal("Cargo",RankPlayer[playerid]);
            Fini_SetBool("PlayerTemEquipe",PlayerTemEquipe[playerid]);
            Fini_SetBool("PlayerMembroEquipe",PlayerMembroEquipe[playerid]);
            Fini_SaveFile();
            Fini_CloseFile();
        }
        else
        {
            Fini_OpenFile(text);
            strmid(PlayerRecrutaDeOutroPlayer[playerid],Fini_GetStr("RecrutaDeOutroPlayer"),false,strlen(Fini_GetStr("RecrutaDeOutroPlayer")),MAX_PLAYER_NAME);
            strdel(PlayerRecrutaDeOutroPlayer[playerid],(strlen(PlayerRecrutaDeOutroPlayer[playerid])-2),(strlen(PlayerRecrutaDeOutroPlayer[playerid])));
            format(string,sizeof(string),"/Equipes/%s.txt",PlayerRecrutaDeOutroPlayer[playerid]);
            RankPlayer[playerid] = Fini_GetValue("Cargo");
            PlayerTemEquipe[playerid] = (Fini_GetBool("PlayerTemEquipe") == 1) ? true : false;
            PlayerMembroEquipe[playerid] = (Fini_GetBool("PlayerMembroEquipe") == 1) ? true : false;
            Fini_SaveFile();
            Fini_CloseFile();
            if(strlen(PlayerRecrutaDeOutroPlayer[playerid]) > 2)
            {
                if(Fini_Exists(string))
                {
                    Fini_OpenFile(string);
                    strmid(InGame[playerid][Equipe],Fini_GetStr("NomeEquipe"),false,strlen(Fini_GetStr("NomeEquipe")),MAX_PLAYER_NAME);
                    strmid(InGame[playerid][Tag],Fini_GetStr("Tag"),false,strlen(Fini_GetStr("Tag")),10);
                    InGame[playerid][Cor] = Fini_GetValue("Cor");
                    InGame[playerid][SpawnGameX] = Fini_GetFloat("SpawnX");
                    InGame[playerid][SpawnGameY] = Fini_GetFloat("SpawnY");
                    InGame[playerid][SpawnGameZ] = Fini_GetFloat("SpawnZ");
                    InGame[playerid][SkinEquipeGame1] = Fini_GetValue("Skin1");
                    InGame[playerid][SkinEquipeGame2] = Fini_GetValue("Skin2");
                    InGame[playerid][SkinEquipeGame3] = Fini_GetValue("Skin3");
                    Fini_SaveFile();
                    Fini_CloseFile();
                    SetPlayerColor(playerid,InGame[playerid][Cor]);
                    SetPlayerPos(playerid,InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ]);
                    new Roll = random(2);
                    if(Roll == 0) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(Roll == 1) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    else if(Roll == 2) SetPlayerSkin(playerid,InGame[playerid][SkinEquipeGame1]);
                    GetPVarString(playerid, "Nome Original", AtualNome, sizeof(AtualNome));
                    format(NovoNome,40,"[%s]%s",InGame[playerid][Tag],AtualNome);
                    SetPlayerName(playerid,NovoNome);
                    SetSpawnInfo(playerid, GetPlayerTeam(playerid),GetPlayerSkin(playerid),InGame[playerid][SpawnGameX],InGame[playerid][SpawnGameY],InGame[playerid][SpawnGameZ], 0, 0, 0, 0, 0, 0, 0);
                }
            }
        }
    }
    return true;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == Painel)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            if(listitem == 0)
            {
                if(GetPlayerMoney(playerid) < 200000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                "[ -- Equipes - Opзхes -- ]", "[ --- Server Info --- ]\n\nUma Equipe й um Grupo de jogadores com objetivos em comun.\n\n- Cada jogador sу pode criar 1 equipe.\n- Para selecionar a maioria das opзхes do Painel de Equipes vocк precisarб de Dinheiro\n- Um jogador sу serб recruta se ele nгo tiver em uma Equipe.\n\nVocк requisitou a criaзгo de uma Equipe, qual serб o Nome dela ?\n\n",
                 "OK", "Sair");
                SetPVarInt(playerid,"PainelValue",1);
                new ProprioMembro[MAX_PLAYER_NAME];
                GetPlayerName(playerid,ProprioMembro,MAX_PLAYER_NAME);
                strmid(PlayerRecrutaDeOutroPlayer[playerid],ProprioMembro,false,strlen(ProprioMembro),MAX_PLAYER_NAME);
                return 1;
            }
            if(PlayerTemEquipe[playerid])
            {
                if(listitem == 1)
                {
                    if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Spawn --- ]\n\nDigite as Coordenadas X,Y,Z do Local de Spawn da Sua Equipe no seguinte formato:\n\nX,Y,Z\n\nEm seguinda pressione OK.\nObs:Para que o Local de Spawn seja onde vocк estб no momento, digite no espaзo abaixo:  Local.\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",2);
                    return 1;
                }
                if(listitem == 2)
                {
                    if(GetPlayerMoney(playerid) < 8000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Tag --- ]\n\nDigite a TAG de sua equipe, que serб adicionada ao Nick dos Recrutas ao entrarem no jogo.\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",3);
                    return 1;
                }
                if(listitem == 3)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Cor --- ]\n\nDigite a Cor do Nick da Sua Equipe\nOpзхes:\n\n- Vermelho\n- Verde\n- Amarelo\n- Azul\n- Preto\n- Laranja\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",4);
                    return 1;
                }
                if(listitem == 4)
                {
                    if(GetPlayerMoney(playerid) < 500) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Skins da Equipe --- ]\n\nDigite entre Vнrgulas, o ID das 3 Skins da Equipe.\nExemplo:\n\n250,251,252\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",5);
                    return 1;
                }
                if(listitem == 5)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Nome da Equipe --- ]\n\nDigite Um novo Nome para a sua Equipe:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",6);
                    return 1;
                }
                if(listitem == 6)
                {
                    if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem dinheiro suficiente !");
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Criar Recruta --- ]\n\nDigite o ID do Novo Recruta:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",7);
                    return 1;
                }
                if(listitem == 7)
                {
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Retirar Recruta --- ]\n\nDigite o ID do Futuro Ex-Recruta:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",8);
                    return 1;
                }
                if(listitem == 8)
                {
                    ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                    "[ -- Equipes - Opзхes -- ]", "[ --- Promover Recruta --- ]\n\nDigite o ID do Recruta, e, em seguinda, seu Novo Cargo na Equipe:\n\n",
                    "OK", "Sair");
                    SetPVarInt(playerid,"PainelValue",9);
                    return 1;
                }
                if(listitem == 9)
                {
                    strmid(PlayerRecrutaDeOutroPlayer[playerid],"",false,strlen(""),MAX_PLAYER_NAME);
                    PlayerMembroEquipe[playerid] = false;
                    PlayerTemEquipe[playerid] = false;
                    RankPlayer[playerid] = 0;
                    new NickAtual[25];
                    GetPVarString(playerid, "Nome Original", NickAtual, 25);
                    SetPlayerName(playerid,NickAtual);
                    SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк abandonou a sua Equipe !");
                    return SalvarTudo(playerid);
                }
            }
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк nгo tem uma Equipe !");
        }
    }
    if(dialogid == OpcoesPainel)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            switch(GetPVarInt(playerid,"PainelValue"))
            {
                case 1:
                {
                    if(!PlayerTemEquipe[playerid] && !PlayerMembroEquipe[playerid])
                    {
                        strmid(PlayerEquipe[playerid],inputtext,false,strlen(inputtext),40);
                        PlayerTemEquipe[playerid] = true;
                        RankPlayer[playerid] = 100;
                        SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Parabйns, vocк Criou sua Equipe ! :D");
                    }
                }
                case 2:
                {
                    new space,space2,TextSide1[20],TextSide2[20],TextSide3[20],bool:done;
                    for(new vartxt; vartxt <= strlen(inputtext); vartxt++)
                    {
                        if(inputtext[vartxt] == ',' && !done)
                        {
                            done = true;
                            space = vartxt;
                            format(TextSide1,sizeof(TextSide1),inputtext);
                            strdel(TextSide1,space,strlen(inputtext));
                        }
                        if(inputtext[vartxt] == ',' && vartxt > space && done)
                        {
                            space2 = vartxt;
                            format(TextSide2,sizeof(TextSide2),inputtext);
                            strdel(TextSide2,0,(space+1));
                            for(new y;y<=strlen(TextSide2);++y)
                            {
                                if(TextSide2[y] == ',')
                                {
                                    strdel(TextSide2,y,strlen(TextSide2));
                                }
                            }
                            format(TextSide3,sizeof(TextSide3),inputtext);
                            strdel(TextSide3,0,(space2+1));
                        }
                    }
                    Spawn[playerid][0] = floatstr(TextSide1);
                    Spawn[playerid][1] = floatstr(TextSide2);
                    Spawn[playerid][2] = floatstr(TextSide3);
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Spawn da Equipe foi Redefinido !");
                }
                case 3:
                {
                    strmid(EquipeTag[playerid],inputtext,false,strlen(inputtext),10);
                    new AtualNome[(MAX_PLAYER_NAME)],NovoNome[40];
                    for(new r = 0; r != MAX_PLAYERS; r++)
                    {
                        if(strcmp(PlayerRecrutaDeOutroPlayer[r],PlayerEquipe[playerid],true)==0)
                        {
                            GetPVarString(r, "Nome Original", AtualNome, sizeof(AtualNome));
                            format(NovoNome,40,"[%s]%s",inputtext,AtualNome);
                            SetPlayerName(r,NovoNome);
                        }
                    }
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Tag Da Equipe Foi Redefinida ! :D");
                }
                case 4:
                {
                    if(!strcmp(inputtext,"Vermelho",true))  CorEquipe[playerid] = 0x9D000096;
                    else if(!strcmp(inputtext,"Verde",true)) CorEquipe[playerid] = 0x33AA33AA;
                    else if(!strcmp(inputtext,"Amarelo",true)) CorEquipe[playerid] = 0xFFFF00AA;
                    else if(!strcmp(inputtext,"Azul",true)) CorEquipe[playerid] = 0x2641FEAA;
                    else if(!strcmp(inputtext,"Preto",true)) CorEquipe[playerid] = 0x000000FF;
                    else if(!strcmp(inputtext,"Laranja",true)) CorEquipe[playerid] = 0xF6AD00AA;
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Cor Da Equipe Foi Redefinida ! :D");
                }
                case 5:
                {
                    new space,space2,TextSide1[20],TextSide2[20],TextSide3[20],bool:done;
                    for(new vartxt; vartxt <= strlen(inputtext); vartxt++)
                    {
                        if(inputtext[vartxt] == ',' && !done)
                        {
                            done = true;
                            space = vartxt;
                            format(TextSide1,sizeof(TextSide1),inputtext);
                            strdel(TextSide1,space,strlen(inputtext));
                        }
                        if(inputtext[vartxt] == ',' && vartxt > space && done)
                        {
                            space2 = vartxt;
                            format(TextSide2,sizeof(TextSide2),inputtext);
                            strdel(TextSide2,0,(space+1));
                            for(new y;y<=strlen(TextSide2);++y)
                            {
                                if(TextSide2[y] == ',')
                                {
                                    strdel(TextSide2,y,strlen(TextSide2));
                                }
                            }
                            format(TextSide3,sizeof(TextSide3),inputtext);
                            strdel(TextSide3,0,(space2+1));
                        }
                    }
                    SkinEquipe[playerid][0] = strval(TextSide1);
                    SkinEquipe[playerid][1] = strval(TextSide2);
                    SkinEquipe[playerid][2] = strval(TextSide3);
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Skins da Equipe foram Redefinidas !");
                }
                case 6:
                {
                    strmid(PlayerEquipe[playerid],inputtext,false,strlen(inputtext),40);
                    PlayerTemEquipe[playerid] = true;
                    SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Nome da Equipe, redefinido ! :D");
                }
                case 7:
                {
                    if(IsPlayerConnected(strval(inputtext)) && !PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        if(strlen(PlayerRecrutaDeOutroPlayer[strval(inputtext)]) == 0)
                        {
                            new Name[MAX_PLAYER_NAME];
                            GetPlayerName(playerid,Name,sizeof(Name));
                            strmid(PlayerRecrutaDeOutroPlayer[strval(inputtext)],Name,false,strlen(Name),MAX_PLAYER_NAME);
                            PlayerMembroEquipe[strval(inputtext)] = true;
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador Recrutado !");
                            SendClientMessage(strval(inputtext),0xFFFF00AA,"[Server Info] Vocк foi recrutado por uma Equipe :D, use /equipe ou /e pra Falar com o resto dos Membros !");
                        }
                        else
                        {
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] O jogador jб й de uma Equipe !");
                        }
                    }
                }
                case 8:
                {
                    if(IsPlayerConnected(strval(inputtext)) && PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        new Nick[25];
                        GetPlayerName(playerid,Nick,25);
                        if(!strcmp(Nick,PlayerRecrutaDeOutroPlayer[strval(inputtext)],true))
                        {
                            strmid(PlayerRecrutaDeOutroPlayer[strval(inputtext)],"",false,strlen(""),MAX_PLAYER_NAME);
                            PlayerMembroEquipe[strval(inputtext)] = false;
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador Retirado!");
                            SendClientMessage(strval(inputtext),0xFFFF00AA,"[Server Info] Vocк foi Retirado da Sua Atual Equipe !");
                        }
                        else
                        {
                            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] O jogador jб й de uma Equipe !");
                        }
                    }
                }
                case 9:
                {
                    if(IsPlayerConnected(strval(inputtext)) && PlayerMembroEquipe[strval(inputtext)] && !PlayerTemEquipe[strval(inputtext)])
                    {
                        new Nick[25];
                        GetPlayerName(playerid,Nick,25);
                        if(!strcmp(Nick,PlayerRecrutaDeOutroPlayer[strval(inputtext)],true))
                        {
                            PromocaoVar = strval(inputtext);
                            ShowPlayerDialog(playerid,OpcoesPainel, DIALOG_STYLE_INPUT,
                            "[ -- Equipes - Opзхes -- ]", "[ --- Promover Recruta --- ]\n\nAgora digite o cargo:\n\n",
                            "OK", "Sair");
                        }
                    }
                }
            }
        }
        return SalvarTudo(playerid);
    }
    if(dialogid == Promocao)
    {
        if(response == 0)
        {
            SetPVarInt(playerid,"PainelValue",false);
            SendClientMessage(playerid,0x33CCFFAA,"[Server Info] Vocк saiu do Painel de Equipes !");
            return 1;
        }
        if(response >= 1)
        {
            SetPVarInt(playerid,"PainelValue",false);
            RankPlayer[PromocaoVar] = strval(inputtext);
            SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Jogador promovido !");
            SendClientMessage(PromocaoVar,0xFFFF00AA,"[Server Info] Foi foi promovido de Cargo na sua Equipe !");
            return SalvarTudo(playerid);
        }
    }
    SetPVarInt(playerid,"PainelValue",false);
    return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/painelequipes",cmdtext,true,14)==0)
    {
        if(Autorizado[playerid] == 0)
            return SendClientMessage(playerid,0xFF0000AA,"ERRO - Vocк nгo estб autorizado!");
           
        SendClientMessage(playerid,0xFFFF00AA,"[Server Info] Vocк estб acessando o Painel de Equipes !");
        ShowPlayerDialog(playerid, Painel, DIALOG_STYLE_LIST,"[ -- Equipes - Opзхes -- ]",
        "Criar uma Equipe [{FFFF00}Valor: R$200000{FFFFFF}]\nSpawn da Equipe [{FFFF00}Valor: R$50000{FFFFFF}]\nTag da Equipe [{FFFF00}Valor: R$8000{FFFFFF}]\nCor da Equipe [{FFFF00}Valor: R$1000{FFFFFF}]\nSkins da Equipe [{FFFF00}Valor: R$500{FFFFFF}]\nNome da Equipe [{FFFF00}Valor: R$1000{FFFFFF}]\nCriar Recruta [{FFFF00}Valor: R$1000{FFFFFF}]\nRetirar Recruta [{FFFF00}Valor: - {FFFFFF}]\nPromover Recruta [{FFFF00}Valor: - {FFFFFF}]\nSair Da Sua Equipe [{FFFF00}Valor: - {FFFFFF}]",
        "OK", "Sair");
        return 1;
    }
    if((strcmp("/equipe",cmdtext,true,7)==0)||(strcmp("/e",cmdtext,true,2)==0))
    {
        if(Autorizado[playerid] == 0)
            return SendClientMessage(playerid,0xFF0000AA,"ERRO - Vocк nгo estб autorizado!");
           
        if(PlayerTemEquipe[playerid] || PlayerMembroEquipe[playerid])
        {
            new parametros[128];
            parametros = KcmD(1, cmdtext);
            if(!strlen(parametros)) return SendClientMessage(playerid,0xFFFFFFAA,"Digite (/e)quipe [texto]");
            new text[100],Nome[25];
            GetPlayerName(playerid,Nome,sizeof(Nome));
            if(RankPlayer[playerid] == 100)
            {
                format(text,100,"{33FF00}[Chat Da Equipe de %s] {FFFFFF}%s[Lider da Equipe] diz: %s",PlayerRecrutaDeOutroPlayer[playerid],Nome,parametros);
            }
            else
            {
                format(text,100,"{33FF00}[Chat Da Equipe de %s] {FFFFFF}%s[Cargo %d] diz: %s",PlayerRecrutaDeOutroPlayer[playerid],Nome,RankPlayer[playerid],parametros);
            }
            for(new x = 0; x < MAX_PLAYERS; x++)
            {
                if(strcmp(PlayerRecrutaDeOutroPlayer[playerid],PlayerRecrutaDeOutroPlayer[x],true)==0)
                {
                    SendClientMessage(x,0xFFFFFFAA,text);
                }
            }
        }
        return 1;
    }
    if(strcmp("/autorizarfamilia",cmdtext,true,17)==0)
    {
        if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "ERRO - Vocк nгo й um ADM!");
           
        parametros = KcmD(1, cmdtext);
        if(!strlen(parametros)) return SendClientMessage(playerid,0xFFFFFFAA,"Digite /autorizarfamilia [id/nick]");
        new id = ReturnUser(parametros);
       
        Autorizado[id] = 1;
        return 1;
    }
    if(strcmp("/creditos_equipes",cmdtext,true,17)==0)
    {
        SendClientMessage(playerid, 0xFFFF00AA, "Crйditos do Sistema de Equipes б [iPs]Ken ou rjjj");
        SendClientMessage(playerid, 0xFFFF00AA, "Agradecimentos: [iPs]Team");
        return 1;
    }
    return 0;
}


stock KcmD(param, cmdtext[])
{
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);

    while((pos = strfind(string, " ", true)) != -1)
    {
        if(var == param) return string;
        var++;

        strdel(string, 0, pos + 1);
        if(strcmp(string, " ", true, pos) == 0) goto end;
    }

end:
    string[0] = '\0';
    return string;
}

stock ReturnUser(PlayerName[])
{
    if(IsNumeric(PlayerName))
        return strval(PlayerName);
    else
    {
        new found=0, id;
        for(new i=0; i <= MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                new foundname[MAX_PLAYER_NAME];
                GetPlayerName(i, foundname, MAX_PLAYER_NAME);
                new namelen = strlen(foundname);
                new bool:searched=false;
                for(new pos=0; pos <= namelen; pos++)
                {
                    if(searched != true)
                    {
                        if(strfind(foundname,PlayerName,true) == pos)
                        {
                            found++;
                            id = i;
                        }
                    }
                }
            }
        }
        if(found == 1)
            return id;
        else
            return INVALID_PLAYER_ID;
    }
}

stock IsNumeric(const string[])
{
    for (new i = 0, j = strlen(string); i < j; i++)
        if(string[i] > '9' || string[i] < '0') return 0;

    return 1;
}

stock SalvarTudo(playerid)
{
    new NickName[MAX_PLAYER_NAME],text[100];
    GetPVarString(playerid, "Nome Original", NickName, sizeof(NickName));
    format(text,sizeof(text),"/Equipes/%s.txt",NickName);
    Fini_OpenFile(text);
    Fini_SetStr("RecrutaDeOutroPlayer",PlayerRecrutaDeOutroPlayer[playerid]);
    Fini_SetStr("NomeEquipe",PlayerEquipe[playerid]);
    Fini_SetStr("Tag",EquipeTag[playerid]);
    Fini_SetVal("Cor",CorEquipe[playerid]);
    Fini_SetFloat("SpawnX",Spawn[playerid][0]);
    Fini_SetFloat("SpawnY",Spawn[playerid][1]);
    Fini_SetFloat("SpawnZ",Spawn[playerid][2]);
    Fini_SetVal("Skin1",SkinEquipe[playerid][0]);
    Fini_SetVal("Skin2",SkinEquipe[playerid][1]);
    Fini_SetVal("Skin3",SkinEquipe[playerid][2]);
    Fini_SetVal("Cargo",RankPlayer[playerid]);
    Fini_SetBool("PlayerTemEquipe",PlayerTemEquipe[playerid]);
    Fini_SetBool("PlayerMembroEquipe",PlayerMembroEquipe[playerid]);
    Fini_SaveFile();
    Fini_CloseFile();
    return true;
}
Reply
#3

quandoeu tento logar no server com esse gm , ele nгo fica on , ele ta on , mas nгo consigo me conectar , "LOGAR"
Reply
#4

Versгo do seu samp talvez ? ... '-'
Reply
#5

O meu gm ta 0.3d , mas a fs eu jб nгo sei , taalvez um erro na include de save fino
Reply
#6

Cara , Castro , vocк podia muito bem ter pedido ajuda no msn para mim , mas acho que nгo queria procurar minha ajuda , seguinte , isto й uma FS Certo ? entгo filho , vocк tem que adaptar ela ao seu GameMode se vocк usar ela como fs , nгo vai conseguir denominar quem pode e quem nгo pode usar um comando , vai ter que colocar a fs dentro do teu gm .


Bjos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)