[Pedido] Guerra no Morro
#1

Boa noite a todos, galera, seguinte, nunca pedi nada aqui no fуrum, mas agora preciso mesmo, gostaria de perguntar se alguйm tem um sistema de guerra no morro, para disponibilizar, estou meio sem tempo de criar um, e uns admins inventaram de que tem que ter o sistema no server antes na inauguraзгo, que no caso, pretendemos inaugurar 2Є ou terзa feira. Eu ainda nгo sou nenhum expert em pawn, poderia atй criar um mais iria demorar um pouco, e preciso mesmo para antes de amanha ou terзa. Caso alguйm tenha algum, eu agradeзo!
Reply
#2

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Boa noite a todos, galera, seguinte, nunca pedi nada aqui no fуrum, mas agora preciso mesmo, gostaria de perguntar se alguйm tem um sistema de guerra no morro, para disponibilizar, estou meio sem tempo de criar um, e uns admins inventaram de que tem que ter o sistema no server antes na inauguraзгo, que no caso, pretendemos inaugurar 2Є ou terзa feira. Eu ainda nгo sou nenhum expert em pawn, poderia atй criar um mais iria demorar um pouco, e preciso mesmo para antes de amanha ou terзa. Caso alguйm tenha algum, eu agradeзo!
sу saber criar gangzone.. o resto vai depender do seu GM..
Reply
#3

A GangZone no caso ja criei, o mais difнcil/chato pra mim acho que й o sistema de pontuaзгo, mas acho que da pra fazer com um tutorial que vi aqui sobre guerras, obrigado pela resposta Holl.
Reply
#4

Faz o sistema ai se for tendo dъvidas vai postando aqui que eu vou ajudando.
Reply
#5

Certo, ta dando um erro sendo que nгo era pra dar, acho:

Criei o seguinte, com base num sistema que baixei e estou adaptando/estudando:

PHP код:
enum MorroInfo
{
        
Dono,
        
Cor,
        
Guerra
};
new 
Morro[MorroInfo]; 
Mas ta dando aqui, undefined symbol Guerra:

PHP код:
if(Morro[Guerra] >= 1
Por que ta dando isso?
Reply
#6

Crie gangzone e times. Use OnPlayerDeath para diminuir a pontuaзгo de um time. Exemplo.
PHP код:
public OnPlayerDeath(playerid,killerid,reason)
{
 if(
IsPlayerInMorro[playerid])
{
 
PontuacaoTime[playerid]--;
}
  return 
1;

Vocк pode usar Textdraws para atualizar a pontuaзгo para todos que estгo no morro a cada morte. Essa sгo as dicas que dou. Boa sorte.
Reply
#7

Use o sistema do JonathanFeitosa como uma base, vocк consegue fбcil...

pawn Код:
#include <a_samp>

new Dominando[MAX_PLAYERS];
new GZCasarao;
new donoCasarao;
new GuerranoCasarao;
new ProvocoCasarao[MAX_PLAYERS];
new TempoGuerraCasarao;
forward GuerraCasarao(playerid);
new CelulasJFS[128];
new NomeJFS[MAX_PLAYER_NAME];

//========================
//S istema de Gang Criado
new MinhaGang[MAX_PLAYERS];
#define Vagos 1
#define Grove 2
#define CorGrove 0x00FF00C8
#define CorVagos 0xFFFF00C8
//=========================

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("FS GangZ5one Casarгo Por Jonathan Feitosa Carregado.");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    print("\n--------------------------------------");
    print("FS GangZone Casarгo Por Jonathan Feitosa Descarregado..");
    print("--------------------------------------\n");
    return 1;
}

main()
{
    print("\n----------------------------------");
    print("Criado Por: Jonathan Feitosa");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    GZCasarao = GangZoneCreate(1122.5748, -2068.6694, 1208.1812, -1994.9491);
    return 1;
}

public OnPlayerConnect(playerid)
{
    if(donoCasarao == 0)
    {
         GangZoneShowForPlayer(playerid, GZCasarao, 0xC0C0C0AA);
    }
    if(donoCasarao == 1)
    {
        GangZoneShowForPlayer(playerid, GZCasarao, CorVagos);
    }
    if(donoCasarao == 2)
    {
        GangZoneShowForPlayer(playerid, GZCasarao,CorGrove);
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(ProvocoCasarao[playerid] == 1)
    {
         GangZoneStopFlashForAll(GZCasarao);
         GangZoneShowForAll(GZCasarao, 0xFFFFFF96);
         GuerranoCasarao = 0;
         ProvocoCasarao[playerid] = 0;
         donoCasarao = 0;
         Dominando[playerid] = 0;
         KillTimer(TempoGuerraCasarao);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(ProvocoCasarao[playerid] == 1)
    {
         GangZoneStopFlashForAll(GZCasarao);
         GangZoneShowForAll(GZCasarao, 0xFFFFFF96);
         GuerranoCasarao = 0;
         ProvocoCasarao[playerid] = 0;
         donoCasarao = 0;
         Dominando[playerid] = 0;
         KillTimer(TempoGuerraCasarao);
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/dominar", true) == 0 || strcmp(cmdtext, "/do", true) == 0) // Ou /dominar ou /do ^^
    {
        if(MinhaGang[playerid] == Vagos)
        {
             if(!IsPlayerInCasarao(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo estб em nenhum territуrio!");
             if(Dominando[playerid] == 1) return SendClientMessage(playerid, -1, "Vocк Jб Estб Dominando um Territorio.");
             if(GuerranoCasarao == 1) return SendClientMessage(playerid, -1, "Jб estб tendo uma guerra nesse territorio.");
             GetPlayerName(playerid, NomeJFS, MAX_PLAYER_NAME);
             format(CelulasJFS, sizeof(CelulasJFS), "%s e os Vagos Estгo Dominando o Casarгo",NomeJFS);
             SendClientMessageToAll(CorVagos, CelulasJFS);
             SendClientMessage(playerid, -1, "Fique esperto, Todos os Terroristas Foi Avisados!");
             SendClientMessage(playerid, -1, "Espere 1 minuto para dominar estб area.");
             GangZoneFlashForAll(GZCasarao, CorVagos);
             Dominando[playerid] = 1;
             ProvocoCasarao[playerid] = 1;
             GuerranoCasarao = 1;
             TempoGuerraCasarao = SetTimerEx("GuerraCasarao", 60000, 0, "i", playerid);
             return true;
        }
        if(MinhaGang[playerid] == Grove)
        {
             if(!IsPlayerInCasarao(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo estб em nenhum territуrio!");
             if(Dominando[playerid] == 1) return SendClientMessage(playerid, -1, "Vocк Jб Estб Dominando um Territorio.");
             if(GuerranoCasarao == 1) return SendClientMessage(playerid, -1, "Jб estб tendo uma guerra nesse territorio.");
             GetPlayerName(playerid, NomeJFS, MAX_PLAYER_NAME);
             format(CelulasJFS, sizeof(CelulasJFS), "%s e os Grove Estгo Dominando o Casarгo",NomeJFS);
             SendClientMessageToAll(CorVagos, CelulasJFS);
             SendClientMessage(playerid, -1, "Fique esperto, Todos os Terroristas Foi Avisados!");
             SendClientMessage(playerid, -1, "Espere 1 minuto para dominar estб area.");
             GangZoneFlashForAll(GZCasarao, CorGrove);
             Dominando[playerid] = 1;
             ProvocoCasarao[playerid] = 1;
             GuerranoCasarao = 1;
             TempoGuerraCasarao = SetTimerEx("GuerraCasarao", 60000, 0, "i", playerid);
             return true;
        }
        return true;
    }
    if(strcmp(cmdtext, "/virarvagos", true) == 0)
    {
        MinhaGang[playerid] = Vagos;
        return true;
    }
    if(strcmp(cmdtext, "/virargrove", true) == 0)
    {
        MinhaGang[playerid] = Grove;
        return true;
    }
    return false;
}

public GuerraCasarao(playerid)
{
      if(MinhaGang[playerid] == Vagos)
      {
          if(ProvocoCasarao[playerid] == 1)
          {
                if(IsPlayerInCasarao(playerid))
                {
                    GetPlayerName(playerid, NomeJFS, MAX_PLAYER_NAME);
                    format(CelulasJFS, sizeof(CelulasJFS), "%s e os Vagos Dominaram a GangZone do Casarгo.",NomeJFS);
                    SendClientMessageToAll(CorVagos, CelulasJFS);
                    SendClientMessage(playerid, -1, "Vocк Dominou a GangZone do Casarгo.");
                    GangZoneStopFlashForAll(GZCasarao);
                    GangZoneShowForAll(GZCasarao, CorVagos);
                    Dominando[playerid] = 0;
                    ProvocoCasarao[playerid] = 0;
                    GuerranoCasarao = 0;
                    donoCasarao = 1;
                    KillTimer(TempoGuerraCasarao);
                    return true;
                }
                else
                {
                   SendClientMessage(playerid, CorVagos, "Vocк nгo estб na Construзгo Abandonada.");
                   Dominando[playerid] = 0;
                   GangZoneStopFlashForAll(GZCasarao);
                   GangZoneShowForAll(GZCasarao, 0xFFFFFF96);
                   ProvocoCasarao[playerid] = 0;
                   GuerranoCasarao = 0;
                   donoCasarao = 0;
                   KillTimer(TempoGuerraCasarao);
                   return true;
                }
          }
          return true;
      }
      if(MinhaGang[playerid] == Grove)
      {
          if(ProvocoCasarao[playerid] == 1)
          {
            if(IsPlayerInCasarao(playerid))
            {
                   GetPlayerName(playerid, NomeJFS, MAX_PLAYER_NAME);
                   format(CelulasJFS, sizeof(CelulasJFS), "%s e os Grove Dominaram o Casarгo.",NomeJFS);
                   SendClientMessageToAll(CorGrove, CelulasJFS);
                   SendClientMessage(playerid, -1, "Vocк dominou o Casarгo.");
                   GangZoneStopFlashForAll(GZCasarao);
                   GangZoneShowForAll(GZCasarao, CorGrove);
                   Dominando[playerid] = 0;
                   ProvocoCasarao[playerid] = 0;
                   GuerranoCasarao = 0;
                   donoCasarao = 2;
                   KillTimer(TempoGuerraCasarao);
                   return true;
            }
            else
            {
                   SendClientMessage(playerid, CorGrove, "Vocк nгo estб na Construзгo Abandonada.");
                   Dominando[playerid] = 0;
                   GangZoneStopFlashForAll(GZCasarao);
                   GangZoneShowForAll(GZCasarao, 0xFFFFFF96);
                   ProvocoCasarao[playerid] = 0;
                   GuerranoCasarao = 0;
                   donoCasarao = 0;
                   KillTimer(TempoGuerraCasarao);
                   return true;
            }
          }
          return true;
      }
      return true;
}

stock IsPlayerInCasarao(playerid)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(x >= 1122.5748 && y >= -2068.6694 && x <= 1208.1812 && y <= -1994.9491) return true;
    else return false;
}
Reply
#8

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Certo, ta dando um erro sendo que nгo era pra dar, acho:

Criei o seguinte, com base num sistema que baixei e estou adaptando/estudando:

PHP код:
enum MorroInfo
{
        
Dono,
        
Cor,
        
Guerra
};
new 
Morro[MorroInfo]; 
Mas ta dando aqui, undefined symbol Guerra:

PHP код:
if(Morro[Guerra] >= 1
Por que ta dando isso?
No comeзo do GM coloque:
PHP код:
enum MorroInfo 
        
Dono
        
Cor
        
Guerra 

new 
Morro[MorroInfo]; 
Reply
#9

Obrigado a todas as respostas, vou continuar no que eu estava fazendo, e respondendo ao Seu Madruga, antes de dar o erro undefined symbol, estб dando o erro: expected token: "-identifier-", but found "-integer value-" na linha:

PHP код:
Dono
em
PHP код:
enum MorroInfo {
        
Dono,
        
Cor,
        
Guerra

Nгo entendi tambйm o porque do erro
Reply
#10

#UP, alguem sabe o por que desse erro?

#EDIT

Consegui remover os erros e cabei de criar a guerra no morro, vamos ter 3 horбrios de guerra no servidor, de 13:00 as 14:00, de 17:00 as 18:00 e de 22:00 as 23:00, as premiaзхes vгo ser as seguintes, quem ganhar a guerra no horбrio de 13:00 as 14:00 vai ganhar org vip atй as 18:00 horas que no caso й quando termina a 2є guerra, se a mesma org ganhar, ela continua com a org vip, se perder, ela perde a org vip e quem ganha a org vip й a org que venceu a ultima guerra no morro, acho que ficou bacana o sistema, o que acham?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)