[ajuda] conto com vocкs - criar sistema de Org
#1

Aew pessoal criei esse topic , pra vcs me ajudarem a criar esse sistema de Org , eu vi um tutorial mais nao entendi bem pq ainda nao sei bem ... peguei essa base pra fazer :
pawn Код:
#include <a_samp>

#if defined FILTERSCRIPT

    enum Info
    {
        Membro,    //Identifica de que organizaзгo o player й membro. 0 para civil.
        Cargo,      //Identifica qual o cargo do player. 10 para lнder.
    };
    new ProgressaoInfo[MAX_PLAYERS][Info]; //Utilizaremos essa variбvel com arrays em conjunto com o enum

new Nomeorgs[5][128] =  //[5] representa o numero de linhas iniciando do 0 e [128] o numero de caracters mбximo de cada string.
{
    "Civil",            //Org [0]: Como dito no enum, a org 0 й civil, nгo й propriamente uma org mas й necessбrio ter pois o player serб automaticamente membro da org 0 caso nгo definido.
    "Assassinos",      //Org [1]: Assassinos por contrato, Hitmans.
    "Aeronautica"      //Org [2]: Aeronautica, controle aйreo.
    "Drifters",        //Org [3]: Drifters, corredores de derrapagem.
    "Policial Federal"  //Org [4]: Policiais Federais, casos de escala nacional.
};const C_Civil      = 0xFFFFFFFF; //Cor dos civis, branco.
const C_Assassinos  = 0x000000FF; //Cor dos assassinos, preto.
const C_Aeronautica = 0x1E90FF99; //Cor da aeronautica, azul.
const C_Drifters    = 0x1E90AA99; //Cor dos drifters, verde.
const C_PFederal    = 0x6C7B8BFF; //Cor da Policia Federal, azul escuro.new VCivil[3];      //Os Civis tem 3 veнculos
new VAssassinos[5];  //Os Assassinos tem 5 veнculos.
new VAeronautica[7]; //A Aeronautica tem 7 veнculos.
new VDrifters[4];    //Os Drifters tem 4 veнculos.
new VPFederal[6];    //A Policia Federal tem 6 veнculos.

    //**********************************[ Veнculos Civis]*************************************************
    VCivil[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VCivil[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VCivil[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);

    //******************************[ Veнculos dos Assassinos]*************************************************
    VAssassinos[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VAssassinos[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VAssassinos[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

    //******************************[ Veнculos da Aeronautica]*************************************************
    VAeronautica[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VAeronautica[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VAeronautica[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

    //******************************[ Veнculos dos Drifters]*************************************************
    VDrifters[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VDrifters[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VDrifters[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

    //***************************[ Veнculos da Policia Federal]**********************************************
    VPFederal[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VPFederal[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    VPFederal[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
    //E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.


#define VDaOrg(%0,%1,%2) GetPlayerVehicleID(playerid) >= %0[%1] && GetPlayerVehicleID(playerid) <= %0[%2]public OnPlayerStateChange(playerid, newstate, oldstate) //Verificarб a mudanзa de estado do player
{
    if(newstate == PLAYER_STATE_DRIVER) //O novo estado do player й de motorista.
    {
        if(VDaOrg(VPCivil,0,2)) SendClientMessage(playerid, C_Civil, "Vocк entrou em um veнculo Civil");
        if(VDaOrg(VAssassinos,0,4)  && ProgressaoInfo[playerid][Membro] != 2) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Assassinos, "Vocк nгo й um Assassino");
        if(VDaOrg(VAeronautica,0,6) && ProgressaoInfo[playerid][Membro] != 3) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Aeronautica, "Vocк nгo й da Aeronautica");
        if(VDaOrg(VDrifters,0,3)    && ProgressaoInfo[playerid][Membro] != 4) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Drifters, "Vocк nгo й um Drifter");
        if(VDaOrg(VPFederal,0,5)    && ProgressaoInfo[playerid][Membro] != 5) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_PFederal, "Vocк nгo й um Policial Federal");
    }
    return true;
}new Texto[256]; //Lembrando, й uma variбvel global, nгo deve ser posta dentro de qualquer estrutura que use chaves.

    cmd(membros, playerid, params[])
    {
        #pragma unused params //Nгo estamos usando parametros no comando, por isso o pragma.
        new corda[70];
        for(new i, PP = GetMaxPlayers(); i < PP; i++)
        {
            if(!IsPlayerConnected(PP)) continue;    //Caso o player nгo esteja conectado ele darб continuidade no loop
            if(ProgressaoInfo[i][Membro] == ProgressaoInfo[playerid][Membro]) //Caso a org do player [i] for igual a org do player [playerid] Executarб o que vem abaixo.
            {
                new nome[MAX_PLAYER_NAME]; //Criarб a variбvel que acumularб o nome do player membro da org.
                GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player membro da org pra acumular na variбvel acima.
                format(corda, sizeof(corda), "%s membro da org %s cargo %d\n", nome, Orgnome[ProgressaoInfo[i][Membro]], ProgressaoInfo[i][Cargo]); //Formatarб a string corda com o nome, cargo e nome da org pertencente.
                strcat(Texto, corda, 70);
            }
        }
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Lista de membros online", Texto, "OK", ""); //Mostratб ao player o dialog com a lista de membros.
        strdel(Texto, 0, sizeof(Texto)); //Deletarб os dados da string pra que ela possa ser reutilizada e evitando um 'bug' que repete as mensagens.
        return true;
    }

    cmd(equipar, playerid, params[])
    {
        #pragma unused params //Nгo estamos usando parametros no comando, por isso o pragma.
        if(ProgressaoInfo[playerid][Membro] == 1 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 1 = Assassinos
        {
            ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita.
            GivePlayerWeapon(playerid, 31, 500); //Lhe equiparб com uma M4 e 500 balas.
            GivePlayerWeapon(playerid, 24, 300); //Lhe equiparб com uma Eagle e 300 balas.
            GivePlayerWeapon(playerid, 25, 250); //Lhe equiparб com uma Shotgun e 250 balas.
            SendClientMessage(playerid, C_Assassinos, "Vocк foi equipado");
            return true;
        }
        else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 2 = Aeronautica
        {
            ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita.
            GivePlayerWeapon(playerid, 31, 500); //Lhe equiparб com uma M4 e 500 balas.
            GivePlayerWeapon(playerid, 24, 300); //Lhe equiparб com uma Eagle e 300 balas.
            GivePlayerWeapon(playerid, 25, 250); //Lhe equiparб com uma Shotgun e 250 balas.
            SendClientMessage(playerid, C_Aeronautica, "Vocк foi equipado");
            return true;
        }
        else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 3 = Drifters
        {
            ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita.
            GivePlayerWeapon(playerid, 31, 500); //Lhe equiparб com uma M4 e 500 balas.
            GivePlayerWeapon(playerid, 24, 300); //Lhe equiparб com uma Eagle e 300 balas.
            GivePlayerWeapon(playerid, 25, 250); //Lhe equiparб com uma Shotgun e 250 balas.
            SendClientMessage(playerid, C_Drifters, "Vocк foi equipado");
            return true;
        }
        else if(ProgressaoInfo[playerid][Membro] == 2 && IsPlayerInRangeOfPoint(playerid, 3.0, Float:X, Float:Y, Float:Z)) //No X, Y e Z as coordenadas do local de equipe da org 4 = Policia Federal
        {
            ResetPlayerWeapons(playerid); //Tirarб as armas do player evitando que ele se equipe vбrias vezes pra conseguir muniзгo infinita.
            GivePlayerWeapon(playerid, 31, 500); //Lhe equiparб com uma M4 e 500 balas.
            GivePlayerWeapon(playerid, 24, 300); //Lhe equiparб com uma Eagle e 300 balas.
            GivePlayerWeapon(playerid, 25, 250); //Lhe equiparб com uma Shotgun e 250 balas.
            SendClientMessage(playerid, C_PFederal, "Vocк foi equipado");
            return true;
        }
        return true;
    }

cmd(chatorg, playerid, params[])
{
    //Usaremos parвmetros entгo nгo precisaremos do pragma.
    new corda[128];
    if(sscanf(params, "s[128]", corda)) return SendClientMessage(playerid, GetPlayerColor(playerid), "Uso correto: /ChatOrg [Mensagem]");
    if(ProgressaoInfo[playerid][Membro] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Civis nгo tem chat prуprio"); //Caso o player tente utilizar chat sendo civil.
    new nome[MAX_PLAYER_NAME]; //Criamos a variбvel que acumularб o nome do player que estб mandando a mensagem а org.
    GetPlayerName(playerid, nome, sizeof(nome)); //Getamos o nome do player e acoplamos а variбvel criada acima.
    format(Texto, 128, "%s[%d] diz: %s", nome, ProgressaoInfo[playerid][Cargo], corda); //Lembra da variбvel global chamada de Texto que criamos? Reutilizaremos ela para armazenar o texto que serб mandado aos membros da org. Junto com o mandante e seu cargo.
    for(new PP, Progressao = GetMaxPlayers(); PP < Progressao; PP++)
    {
        if(!IsPlayerConnected(PP)) continue; //Caso o player do loop nгo esteja conectado ele darб continuidade no loop sem executar o que estб abaixo.
        if(ProgressaoInfo[PP][Membro] == ProgressaoInfo[playerid][Membro]) //Verificarб se o player no Loop й da mesma organizaзгo do player que mandou a mensagem а org.
        {
            SendClientMessage(PP, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao player no loop com a cor do player que mandou que lуgicamente serб a cor da org dele.
        }
    }
    return true;
}
cmd(convidar, playerid, params[])
{
    new PlayerB, nome[MAX_PLAYER_NAME]; //Criarб as variбveis PlayerB que acumularб o ID do player convidado e nome que acumularб o nome de dois players(Um de cada vez, claro).
    if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /convidar [id]"); //Caso o player nгo digite o comando completo retornarб а esta mensagem.
    if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online"); //Caso o jogador convidado nгo esteja online retornarб а esta mensagem.
    GetPlayerName(PlayerB, nome, sizeof(nome)); //Pegarб o nome do player convidado para usar ao formatar a variбvel Texto.
    format(Texto, 70, "Vocк convidou %s para sua organizaзгo", nome); //Formatarб a variбvel texto com a mensagem e o nome do convidante.
    SendClientMessage(playerid, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao convidante informando-o que ele convidou um player.
    GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player convidante para usar ao formatar a variбvel Texto
    format(Texto, 128, "%s estб lhe convidando para fazer parte da organizaзгo: %s \nDeseja aceitar?", nome, Nomeorgs[ProgressaoInfo[playerid][Membro]]); //Formatarб a variбvel Texto com o nome do player convidante e o nome da organizaзгo
    ShowPlayerDialog(PlayerB, 100, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", Texto, "Sim", "Nгo"); //Mostrarб ao player convidado o dialog de aceitaзгo da org.
    SetPVarInt(PlayerB, "OrgConvidado", ProgressaoInfo[playerid][Membro]); //Setarб a PVar do player convidado com o id da org que ele estб sendo convidado, caso aceite, serб setado.
    return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 100 && response) //100 й o ID do dialog que usamos no ShowPlayerDialog do comando /convidar. Response й a resposta ao primeiro botгo do dialog, no caso, "Sim".
    {
        ProgressaoInfo[playerid][Membro] = GetPVarInt(playerid, "OrgConvidado"); //Setaremos a org do player = a org setada no PVar dele, que й a mesma do player que o convidou.
        ProgressaoInfo[playerid][Cargo] = 1; //Setaremos o cargo do player para 1 afinal ele acabou de entrar na nova organizaзгo.
        DeletePVar(playerid, "OrgConvidado"); //Deletaremos a PVar que usamos no comando /convidar.
        return true;
    }
    return true;
}
cmd(promover, playerid, params[])
{
    new PlayerB, cargo;
    if(sscanf(params, "dd", PlayerB, Cargo)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Promover [id] [cargo]");
    if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder");
    if(ProgressaoInfo[PlayerB][Membro] != ProgressaoInfo[playerid][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da mesma organizaзгo que vocк.");
    ProgressaoInfo[playerid][Cargo] = cargo;
    return true;
}cmd(demitir, playerid, params[])
{
    new PlayerB;
    if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Demitir [id]");
    if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online");
    if(ProgressaoInfo[playerid][Membro] != ProgressaoInfo[PlayerB][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da sua organizaзгo");
    if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder da organizaзгo");
    ProgressaoInfo[PlayerB][Membro] = 0; //Tornarб o player demitido um civil novamente.
    ProgressaoInfo[PlayerB][Cargo] = 0; //Atribuirб o cargo 0 ao player demitido, afinal, agora ele nгo pertence а org alguma.
    SendClientMessage(PlayerB, C_Civil, "Vocк foi demitido");
    SetPlayerColor(playerid, C_Civil);
    SendClientMessage(playerid, 0x1E90FF99, "Jogador demitido");
    return true;
}

    public OnPlayerDisconnect(playerid, reason)
    {
        SalvarPlayer(playerid);
        return true;
    }

    stock SalvarPlayer(playerid)
    {
        new nome[MAX_PLAYER_NAME];
        GetPlayerName(playerid, nome, sizeof(nome));
        format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde ficarб o arquivo com os dados do player.
        INI_Open(Texto); //Abrirб o arquivo para escrever as informaзхes, caso nгo exista, ele criarб automaticamente.
        INI_WriteInt("Organizaзгo", ProgressaoInfo[playerid][Membro]); //Setarб na TAG Organizaзгo o valor inteiro da variбvel Membro do playerid(No caso o ID da org dele).
        INI_WriteInt("Cargo", ProgressaoInfo[playerid][Cargo]); //Setarб na TAG Cargo o valor inteiro da variбvel Cargo do playerid(No caso, o cargo dele na org).
        INI_Save(); //Salvar й necessбrio, caso nгo salve, nгo verб nada escrito no arquivo.
        INI_Close(); //Tambйm й necessбrio Fechar oa rquivo aberto.
        return true;
    }

    public OnPlayerConnect(playerid)
    {
        new nome[MAX_PLAYER_NAME];
        GetPlayerName(playerid, nome, sizeof(nome));
        format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde fica o arquivo com os dados do player.
        if(fexist(Texto)) //Verificarб se o arquivo existe, caso exista executarб o que vem entre as chaves abaixo.
        {
            INI_Open(Texto); //Й necessбrio abrir o arquivo antes de tudo.
            ProgressaoInfo[playerid][Membro] = INI_ReadInt("Organizaзгo");
            ProgressaoInfo[playerid][Cargo] = INI_ReadInt("Cargo");
            INI_Close(); //Й necessбrio apenas fechar o arquivo sem salvar, pois nada foi modificado nele.
        }
        return true;
    }
erro:
pawn Код:
C:\Users\User\Desktop\org fazendo.pwn(235) : error 001: expected token: "#endif", but found "-end of file-"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
da esse erro , mais eu ainda nem fiz nadinha ! o que e o erro ?
Reply
#2

Coloca em qualquer parte do FS
pawn Код:
#endif
Reply
#3

Nem olhei o cуdigo, mas pelo erro , isso foi aberto :

pawn Код:
#if
Mas nгo foi fechado

pawn Код:
#endif
Reply
#4

se eu botar #endif
da esse erro:
pawn Код:
C:\Users\User\Desktop\org fazendo.pwn(2) : error 026: no matching "#if..."
C:\Users\User\Desktop\org fazendo.pwn(236) : error 001: expected token: "#endif", but found "-end of file-"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Reply
#5

Apaga o If que ta acusando na linha 2 entao ¬¬
Reply
#6

Retira isso e o #endif , caso tenha colocado.

pawn Код:
#if defined FILTERSCRIPT
Reply
#7

Define ai essas 3 \/
pawn Код:
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#endif
Reply
#8

sim ai fica o erro 1 , tenta arumar no teu PAWNO.exe pra ver como vai da erro ! >';'<
Affa fica dando erro sempre ...
Reply
#9

Vo revisa o fs aki vo ver o q posso fazer por ti. ja vi que falta definir algumas includes '-'
Reply
#10

Jah tento tirar so o
PHP код:
#if defined FILTERSCRIPT 
?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)