[Ajuda]GangBase da Policia
#1

To precisando de uma ajuda...
Tipo quero criar uma base de policia simples. Com carros q so a policia pegue, nascer com colete, skin de minha preferencia e spawnar na base
mais que tenha um lugar aonde a pessoa va e coloca /ingressarpolicia e entre, mais com o criterito: quantidade de kills.
Exemplo:
a pessoa coloca /ingressarpolicia e se ele nao tiver a quantidade de kills aparecerб "Vocк nao tem "500" kills para ingressar na Policia."

й so isso galera. Vlw's
Reply
#2

pawn Код:
if(PlayerInfo[playerid][pKills] > 499) //Ve se ele tem mais de 500 kills
{
     //As funcoes aqui
}
else // Ve se ele nгo tem mais de 500 kills
{
     //As funcoes aqui
}
return 1;
Mude o PlayerInfo[playerid][pKills] para o seu sistema de assassinatos.
Reply
#3

Antes de mais voce precisa de algo que guarde seu jogo! senгo serб cansativo estar sempre a comeзar denovo!

depois para nao criar a mesma coisa varias vezes, crie uma inumeraзao de valores usando este exemplo
pawn Код:
enum jinfo
{
    Mortes,
    MembroPolicia,
    //pode usar mais se quiser
}
new InfoJogador[playerid][jinfo];
depois quando voce digitar /ingressarpolicia ele vai setar a variavel "MembroPolicia" para 1. depois quando voce logar se o "MembroPolicia" for igual a 1 vai spawnar na base

exemplo

pawn Код:
public OnPlayerConnect(playerid)
{
    if(InfoJogador[playerid][MembroPolicia] == 1)
    {
        //funcoes, setar pos dar armas e isso
    }
    return 1;
}
e para as funcoes й mesma coisa, so seguir o exemplo
Reply
#4

Quote:
Originally Posted by DJloko
Посмотреть сообщение
pawn Код:
public OnPlayerConnect(playerid)
{
    if(InfoJugador[playerid][MembroPolicia] == 1)
    {
        //funcoes, setar pos dar armas e isso
    }
    return 1;
}
Erro no InfoJugador! Use o Fini para salvar o jogador!
Download: http://forum.sa-mp.com/showthread.ph...highlight=Fini
Reply
#5

Quote:
Originally Posted by Dr_Pawno
Посмотреть сообщение
Erro no InfoJugador! Use o Fini para salvar o jogador!
Download: http://forum.sa-mp.com/showthread.ph...highlight=Fini
lol, editei, obrigado!
fiz isso rapidao e de cabeзa, foi mesmo so para ele perceber!
Reply
#6

Nгo sei mexer com Dini e estou querendo aprender. Portanto, criei o codigo abaixo de acordo com o que foi pedido e com a ajuda de alguns tutoriais e outros scripts. Peзo que, caso tenha algo ERRADO, me digam para eu poder consertar.

OBS: Esta й minha primeira vez que mexo com Dini.

PHP код:
#include <Dini>
new COP;
enum info
{
    
kills,
    
prof
}
new 
Info[MAX_PLAYERS][info];
public 
OnGameModeInit()
{
    
COP AddStaticVehicle(/*MODELO DO CARRO*//*COORDENADA X*//*COORDENADA Y*//*COORDENADA Z*//*ANGULO*//*COR 1*//*COR 2*/)
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
Carregar(playerid);
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
Salvar(playerid);
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    if(
Info[prof] == 1)
    {
        
SetPlayerPos(playerid,/*X*/,/*Y*/,/*Z*/);
        
SetPlayerSkin(playerid,/*ANGULO*/);
        
SetPlayerArmour(playerid,50);
        return 
1;
    }
    return 
1;
}
public 
OnPlayerDeath(playerid,killerid,reason)
{
    
Info[killerid][kills]++;
    return 
1;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == 2)
    {
        if(
GetPlayerVehicleID(playerid) == COP)
        {
            if(
Info[playerid][prof] != 1)
            {
                
SendClientMessage(playerid0xFFF55CFF,"Vocк nгo й policial");
                
RemovePlayerFromVehicle(playerid);
                return 
1;
            }
        }
    }
    return 
1;
}
public 
OnPlayerCommandText(playerid,cmdtext[])
{
    new 
idxcmd[256];
    
cmd strtok(cmdtext,idx);
    if(
strcmp(cmd,"/ingressarpolicia",true))
    {
        if(
Info[playerid][kills] < 500) return SendClientMessage(playerid,0xFFF55CFF,"Vocк nao tem 500 kills para ingressar na Policia.");
        
Info[playerid][prof] = 1;
        
Salvar(playerid);
        return 
1;
    }
    return 
0;
}
stock Salvar(playerid)
{
    new 
save[34],nome[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,nome,sizeof(nome));
    
format(save,sizeof(save),"Conta%s.ini",nome);
    if(!
fexist(save))
    {
        
dini_Create(save);
        return 
1;
    }
    
dini_IntSet(save,"kills",Info[playerid][kills]);
    
dini_IntSet(save,"prof",Info[playerid][prof]);
    return 
1;
}
stock Carregar(playerid)
{
    new 
save[34],nome[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,nome,sizeof(nome));
    
format(save,sizeof(save),"Conta%s.ini",nome);
    
Info[playerid][kills] = dini_Int(save,"kills");
    
Info[playerid][prof] = dini_Int(save,"prof");
    return 
1;
}
strtok(const string[], &index)
{
    new 
length strlen(string);
    while ((
index length) && (string[index] <= ' '))
    {
        
index++;
    }
    new 
offset index;
    new 
result[20];
    while ((
index length) && (string[index] > ' ') && ((index offset) < (sizeof(result) - 1)))
    {
        
result[index offset] = string[index];
        
index++;
    }
    
result[index offset] = EOS;
    return 
result;

Codigo no Pastebin.com: http://pastebin.com/4w84LGtg
Reply
#7

Up, se alguem puder analisar meu codigo, agradeзo.
Reply
#8

Eu posso lhe ajudar na base de criar a base das Policias pois tenho um server de facзхes crimonosas que tem essas orgs -> BOPE, GOE, EXERCITO, e Facзхes Comando Vermelho [CV] Amigos dos Amigos [ADA] Terceiro Comando Puro [TCP], Primeiro Comando da Capital [PCC] Lembrados essas Facзхes sгo brasileiras se quizer ajuda adicione meu msn estб embaixo da assinatura
Reply
#9

Й muito simples.

No comeзo de seu gamemode, use um define como este:


pawn Код:
#define POLICIA 121
Pronto, temos um comeзo. Precisamos agora definir os players que serгo da polнcia.
Irei assumir que seu GM tenha uma array de players com o nome PlayerInfo. Caso ela seja diferente, poste no tуpico a sua array que eu ajusto.

Iremos definir quem й policial.
pawn Код:
stock Policia(playerid)
{
    if(PlayerInfo[playerid][pTeam] == POLICIA || GetPlayerTeam(playerid) == POLICIA) return 1;
    return 0;
}
Agora, vamos para os carros.


Primeiro, vocк deve definir os carros.

pawn Код:
stock CarroDaPolicia(carid) // Coloque esta funзгo em qualquer lugar do GM (fora de qualquer funзгo)
{
    for(new i = 0; i < sizeof(carrosdapolicia); i++)
    {
        if(carid == carrosdapolicia[i]) return 1;
    }
    return 0;
}

//Agora, coloque isso em OnGameModeInit:
//Atenзгo. Isso й apenas um exemplo dos carros que vocк pode colocar. Voc~e pode colocar quantos carros quiser.
new carrosdapolicia[10]; //Quantidade de carros. Sempre adicione um a mais que o ъltimo. Exemplo: O ъltimo й o 9, entгo a array deve ter 10 slots.
    carrosdapolicia[0] = AddStaticVehicleEx(599,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Ranger
    carrosdapolicia[1] = AddStaticVehicleEx(596,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Car (LSPD)
    carrosdapolicia[2] = AddStaticVehicleEx(472,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); // BARCO LSPD
    carrosdapolicia[3] = AddStaticVehicleEx(430,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); // PREDATOR LSPD
    carrosdapolicia[4] = AddStaticVehicleEx(523,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //HPV1000
    carrosdapolicia[5] = AddStaticVehicleEx(597,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Car (SFPD)
    carrosdapolicia[6] = AddStaticVehicleEx(427,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Enforcer
    carrosdapolicia[7] = AddStaticVehicleEx(426,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Premier
    carrosdapolicia[8] = AddStaticVehicleEx(601,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000);//S.W.A.T. Van
    carrosdapolicia[9] = AddStaticVehicleEx(427,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Enforcer
Agora temos todos os carros que precisamos. Mas precisamos saber os ID's deles para a checagem.

Apуs vocК checar os id's deles (irei tomar como exemplo que eles sejam do carro ID 15 ao 20.), iremos prosseguir com a checagem.

Vб atй a funзгo OnPlayerStateChange, e coloque isso:
pawn Код:
new vehicle = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        if(CarrosDaPolicia(vehicleid))
        {
            if(Policial(playerid))
            {
                SendClientMessage(playerid, 0x0080FFFF, ":: Este veнculo pertence a Polнcia ::");
            }
            else
            {
                SendClientMessage(playerid, 0xAFAFAFFF, "Vocк nгo pode dirigir este carro.!");
                RemovePlayerFromVehicle(playerid);
            }
        }
    }

Temos agora os carrinhos bonitinhos dos policiais. Agora, vamos para a seзгo do Spawn.

Se vocк tem um sistema de login, ache a funзгo, e coloque isto nela:
pawn Код:
if(GetPlayerTeam(playerid) == POLICIA || PlayerInfo[playerid][pTeam] == POLICIA) SetSpawnInfo(playerid, POLICIA, [skin], [Posiзгo do Spawn X], [Posiзгo do Spawn Y] ,[Posiзгo do Spawn Z], [Вngulo], [Arma de Spawn 1], [Muniзгo de Spawn 1], [Arma de Spawn 2], [Muniзгo de Spawn 2], [Arma de Spawn 3], [Muniзгo de Spawn 3]);
E entгo, para salvar as kills, vocк deve navegar atй a funзгo OnPlayerDeath, e colocar isso:
pawn Код:
PlayerInfo[killerid][pKills]++;
Agora, que temos quase tudo pronto, vamos para o /ingressarpolicia.

Em OnPlayerCommandText, adicione isso:
pawn Код:
if(!strcmp(cmd, "/ingressarpolicia", true))
{
    new Float:pos[500][3];
    GetPlayerPos(playerid, pos[playerid][0], pos[playerid][1], pos[playerid][2]);
    if(pos[playerid][0] == [posiзгo x de onde vocк quer que digite o comando] && pos[playerid][1] == [posiзгo y de onde vocк quer que digite o comando] && pos[playerid][2] == [posiзгo z de onde vocк quer que digite o comando])
    {
        if(PlayerInfo[playerid][pKills] < 500) return SendClientMessage(playerid, 0xAFAFAFFF, "Vocк nгo matou gente suficiente pra entrar na polнcia!");
        SetPlayerTeam(playerid, POLICIA);
        SpawnPlayer(playerid);
        return SendClientMessage(playerid, 0xAFAFAFFF, "Vocк agora й um policial!");
    }
    else return SendClientMessage(playerid, 0xAFAFAFFF, "Vocк nгo estб no lugar que ingressa na polнcia!");
    return 1;
}
E este й o bбsico de uma base. Caso queira mais funзхes, me adicione no MSN, e discutiremos sobre.

Espero ter ajudado.
Reply
#10

PHP код:
carrosdapolicia[0] = AddStaticVehicleEx(599,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Ranger
    
carrosdapolicia[1] = AddStaticVehicleEx(596,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Car (LSPD)
    
carrosdapolicia[2] = AddStaticVehicleEx(472,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); // BARCO LSPD
    
carrosdapolicia[3] = AddStaticVehicleEx(430,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); // PREDATOR LSPD
    
carrosdapolicia[4] = AddStaticVehicleEx(523,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //HPV1000
    
carrosdapolicia[5] = AddStaticVehicleEx(597,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Police Car (SFPD)
    
carrosdapolicia[6] = AddStaticVehicleEx(427,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Enforcer
    
carrosdapolicia[7] = AddStaticVehicleEx(426,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Premier
    
carrosdapolicia[8] = AddStaticVehicleEx(601,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000);//S.W.A.T. Van
    
carrosdapolicia[9] = AddStaticVehicleEx(427,[PosiзгoX], [PosiзгoY], [PosiзгoZ], [Вngulo],-1,1,3600000); //Enforcer

//ISSO DEVE FICAR NO ONGAMEMODEINIT

----------------------------------------------------------

//Nгo entendi uma coisa:
    
new Float:pos[500][3];

Para que esse [500] ? 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)