[Ajuda] Criando ORG RPG
#1

Boa noite galera,

Estou tentando criar um GM do new.pwn, porйm estou encontrando uma dificuldade em criar ORG,
ja achei diversos tutoriais,inclusive aqui mas nгo tive sucesso em nenhum deles, nem no programa criador de org.

Se alguйm puder me passar um tutorial bem detalhado, criando a org de um gm new atй pq sу acho "editando".

Estou com a org criada, mas nгo consigo nem configurar, por exemplo:
eu uso /darlider 0 1, ok, mas nгo consigo retirar o lider por comando e nem criar.
o /promover й infinito, tentei limitar mas nгo consegui.

De qualquer forma vlw a atenзгo, nгo sei se consegui expor minha dificuldade.
Reply
#2

Um sistema de organizaзгo envolve mais Lуgica/Algorнtimos do que "funзхes extremas". Vocк tem que pensar bastante em um sistema de ORG, pense como ele deve ser. Esqueзa as limitaзхes do SA-MP, defina uma ideia e escreva no papel depois disto pense em programar.

Bom estudos.
Reply
#3

Pra vocк entender,

Quero criar uma org Gangster que vai ter exclusivamente o emprego de Vendedor de drogas, ninguйm mais no servidor terб, terб a gang zone, sequestro,assalto;

Mafia: Exclusivamente vendedor de armas, gang zone, venda de equipamento para roubos,armas,materiais,c4;

Terrorista: Guerra, gang zone, vendendor de bazookas;

Hitmans: Contrato;

Reporteres; /no /aovivo /an



E policiais.
Reply
#4

Entгo! Faзa oque eu falei, Crie uma lуgica primeiro depois procure as funзхes!

Quote:
Originally Posted by zSuYaNw
Посмотреть сообщение
Um sistema de organizaзгo envolve mais Lуgica/Algorнtimos do que "funзхes extremas". Vocк tem que pensar bastante em um sistema de ORG, pense como ele deve ser. Esqueзa as limitaзхes do SA-MP, defina uma ideia e escreva no papel depois disto pense em programar.
Reply
#5

O que seria a lуgica? nгo entendi, mals
Reply
#6

Cara, pra criar um sistema de Organizaзхes, primeiro vocк precisa ter noзгo de Algoritmos. Vocк precisa saber usar variбveis, criar comandos, loops, e etc. Caso vocк esteja criando um GM DO 0 mesmo, aconselho a comeзar pelos comandos mais bбsicos, depois pula pra um sistema de administraзгo e tal, que aн vocк vai comeзar a pegar noзгo de bastante coisa. Й cansativo, й demorado, mas nгo й impossнvel, tudo й esforзo!
Reply
#7

Essa й uma lуgica, mais veja bem tem outras maneiras de fazer orgs, mais vai depender da sua imaginaзгo e do seu algoritmo.

@Exemplo:
PHP код:
#define MAX_ORGS         (31)
#define MAX_MEMBERS     (20)
enum org_data
{
    
orgID,
    
orgName[75],
    
orgMember[MAX_MEMBERS],
}
new 
PlayerOrg[MAX_ORGS][org_data]; 
@edit
Obs: veja esse tutorial http://forum.sa-mp.com/showthread.ph...=Sistemas+Orgs nгo li, mais vindo de quem "era" sei que й bom.

Vocк pode pesquisar tambйm sobre [FilterScript] ou atй gamemodes que contenham tal sistema, para estudar.

Abraзo e bom aprendizado.
Reply
#8

Sim, tenho estudado bastante esses dias, ja tenho sistema de administraзao no servidor,vip mas estou tendo muita dificuldade na hora de criar a org, na verdade ela ja esta criada, porйm quando vou configura, que й limitar o /promover por exemplo, nгo estou conseguindo, vou deixar um cod aqui que tentei para voces entenderem,

comecei assim;

Quote:

#define CIVIL 0
#define POLICIAM 1
#define GROVE 2
#define BALLAS 3

#define C_CIVIL 0x000000FF
#define C_POLICIAM 0x9999FFF6
#define C_GROVE 0x00D900C8
#define C_BALLAS 0x9900CCF6


#define MAX_ORGS 4

PHP код:
enum PlayerDados
{
    
Organizacao,
    
Cargo
}
new 
pDados[MAX_PLAYERS][PlayerDados]; 
Agora vem a parte que nгo consigo;

PHP код:
CMD:promover(playeridparams[])
{
    new 
idcargostring[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; 
    if(
pDados[playerid][Cargo] != 6) return SendClientMessage(playerid0xAD0000AA"Vocк nгo й lнder."); 
    if(
pDados[playerid][Cargo] >= 6) return SendClientMessage(playerid0xAD0000AA"%s, vocк sу pode promover atй level 5");    [ FIZ ESSA EDIЗГO PARA TENTAR LIMITAR O /PROMOVER ATЙ CARGO 5 MAS FAIL]
    if(
sscanf(params"dd"idcargo)) return SendClientMessage(playerid0xAD0000AA"USE: /promover [ID] [CARGO]"); 
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid0xAD0000AA"Este jogador nгo estб online.");
    if(
pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid0xAD0000AA"Este jogador nгo й da mesma Organizaзгo que vocк."); 
    if(
playerid == id) return SendClientMessage(playerid0xAD0000AA"Vocк nгo pode promover a vocк mesmo."); 
    if(
cargo >= || cargo <= 5)
    {
        
pDados[id][Cargo] = cargo
        
GetPlayerName(playeridplayernamesizeof(playername));
        
GetPlayerName(ididnamesizeof(idname)); 
        
format(stringsizeof(string), "%s promoveu o membro %s para o Cargo %d."playernameidnamecargo); 
        
SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); 
        
format(stringsizeof(string), "%s te promoveu para o Cargo %d."playernamecargo);
        
SendClientMessage(idGetPlayerColor(playerid), string); 
    }
    else 
    {
        
SendClientMessage(playerid0xAD0000AA"Cargos de 1 a 5");
        return 
1;
    }
    return 
1

vou dar uma lida no tutorial repassado ai, obrigado pela atenзгo.

[Corrigindo] Eu coloquei este codigo na linha de baixo apos o else, um amigo fez a correзao subindo a linha e agora vou testar.
Reply
#9

Fiz o que vocк queria.
Obs: Para melhor organizaзгo do seu cуdigo, aconselho usar #DEFINE de cores no inнcio do seu gamemode, e nas mensagens basta escrever o nome da cor, sem precisar escrever o cуdigo.
Код:
CMD:promover(playerid, params[])
{
    new id, cargo, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME];
    if(pDados[playerid][Cargo] < 5) return SendClientMessage(playerid, 0xAD0000AA, "ERRO | Vocк nгo й Lнder ou Sub"); //Esta й a verificaзгo correta. Se o player for cargo menor que 5, ele nгo conseguirб promover.
    if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, 0xAD0000AA, "USE: /promover [ID] [CARGO]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo estб online.");
    if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, 0xAD0000AA, "Este jogador nгo й da mesma Organizaзгo que vocк.");
    if(playerid == id) return SendClientMessage(playerid, 0xAD0000AA, "Vocк nгo pode promover a vocк mesmo.");
    if(cargo >= 1 || cargo <= 5)
    {
        pDados[id][Cargo] = cargo;
        GetPlayerName(playerid, playername, sizeof(playername));
        GetPlayerName(id, idname, sizeof(idname));
        format(string, sizeof(string), "%s promoveu o membro %s para o Cargo %d.", playername, idname, cargo);
        SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string);
        format(string, sizeof(string), "%s te promoveu para o Cargo %d.", playername, cargo);
        SendClientMessage(id, GetPlayerColor(playerid), string);
    }
    else
    {
        SendClientMessage(playerid, 0xAD0000AA, "Cargos de 1 a 5");
        return 1;
    }
    return 1;
}
Ajudei? +Rep.
Reply
#10

vlww pela boa vontade, +rp

porйm n funcionou, continuo promovendo o player а qualquer cargo...

nгo estou conseguindo ainda tirar lider e nem limitar o /promover, o lider promove a cargo 999999 se quiser...

=\
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)