[AJUDA] Tempo bugando (arara)
#1

pawn Код:
/////////////////////////////////////////////
//                                         //
//      Sistema de Arara by FreeGells!     //
//                                         //
//            Ajuda de Shadoww5.           //
//                                         //
/////////////////////////////////////////////

#include <a_samp>
#include <dini>

#define OURO 0xFFD700AA
#define BRANCO 0xFFFFFFFF
#define VERMELHO 0xFF0000FF

enum a
{
    bool:Arara,
    bool:Racao,
    Grande,
    Timer
}
new Info[MAX_PLAYERS][a];

public OnFilterScriptInit()
{
    if(!fexist("Araras.txt")) { dini_Create("Araras.txt"); }
    return 1;
}

public OnFilterScriptExit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(Info[i][Arara]) { RemovePlayerAttachedObject(i, 0); }
    }
    return 1;
}

forward Crescimento(playerid);

public OnPlayerConnect(playerid)
{
    new nome[24], str[50];
    GetPlayerName(playerid, nome, 24);
    format(str, sizeof str, "%s - Arara", nome);
    if(dini_Isset("Araras.txt", str))
    {
        Info[playerid][Arara] = bool:dini_Bool("Araras.txt", str);
        format(str, sizeof str, "%s - Racao", nome);
        Info[playerid][Racao] = bool:dini_Bool("Araras.txt", str);
        format(str, sizeof str, "%s - Grande", nome);
        Info[playerid][Grande] = dini_Int("Araras.txt", str);
        if(Info[playerid][Arara])
        {
            Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
            SendClientMessage(playerid, 0xFFFF00FF, "Alimente sua arara ou ela morrerб.");
        }
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(Info[playerid][Arara]) { SetPlayerAttachedObject(playerid,0, 19079, 1, 0.319503, -0.089340, -0.185576, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new nome[24], str[50];
    GetPlayerName(playerid, nome, 24);
    format(str, sizeof str, "%s - Arara", nome);
    dini_BoolSet("Araras.txt", str, Info[playerid][Arara]);
    format(str, sizeof str, "%s - Racao", nome);
    dini_BoolSet("Araras.txt", str, Info[playerid][Racao]);
    format(str, sizeof str, "%s - Grande", nome);
    dini_IntSet("Araras.txt", str, Info[playerid][Grande]);
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/cacar", true) == 0)
    {
        if(Info[playerid][Grande] >= 5) return SendClientMessage(playerid, VERMELHO, "Sua Arara Estб Grande e Pronta para ser vendida, Para vender digite /VenderArara !");
        if(Info[playerid][Arara] > 0) return SendClientMessage(playerid, BRANCO, "Vocк jб tem uma Arara!");
        new leo= random(50);
        if(leo > 40) return SendClientMessage(playerid, BRANCO, "Nгo conseguiu capturar nada...tente novamente!");
        if(leo >= 25)
        {
        SendClientMessage(playerid, OURO, "Vocк capturou uma {05c720}Arara Verde!");
        SendClientMessage(playerid, OURO, "Ela irб crescer de Cinco a Cinco Minutos!");
        SendClientMessage(playerid, OURO, "Nгo se esqueзa de Alimenta-lб! /Racгo!");
        SetPlayerAttachedObject(playerid,0, 19079, 1, 0.319503, -0.089340, -0.185576, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );
        Info[playerid][Arara] = 1;
        Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
        return 1;
        }
 }
        new leo= random(50);
        if(strcmp(cmdtext, "/cacar", true) == 0 && leo >= 18 )
    {

        SendClientMessage(playerid, OURO, "Vocк capturou uma {fe0012}Arara Vermelha!");
        SendClientMessage(playerid, OURO, "Ela irб crescer de Cinco a Cinco Minutos!");
        SendClientMessage(playerid, OURO, "Nгo se esqueзa de Alimenta-lб! /Racгo!");
        SetPlayerAttachedObject(playerid,0, 19079, 1, 0.319503, -0.089340, -0.185576, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );
        Info[playerid][Arara] = 2;
        Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
        return 1;
    }
   

        if(strcmp(cmdtext, "/cacar", true) == 0 && leo < 18 && leo > 5 )
    {

        SendClientMessage(playerid, OURO, "Vocк capturou uma {24a1e9}Ar{f7f037}ara {1ba92f}Mes{fd161b}ti{fdb916}зa!");
        SendClientMessage(playerid, OURO, "Ela irб crescer de Cinco a Cinco Minutos!");
        SendClientMessage(playerid, OURO, "Nгo se esqueзa de Alimenta-lб! /Racгo!");
        SetPlayerAttachedObject(playerid,0, 19079, 1, 0.319503, -0.089340, -0.185576, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );
        Info[playerid][Arara] = 3;
        Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
        return 1;
    }

   
   
   

            if(strcmp(cmdtext, "/cacar", true) == 0)
    {

        SendClientMessage(playerid, OURO, "Vocк capturou uma rarнssima {24a1e9}Arara Azul!");
        SendClientMessage(playerid, OURO, "Ela irб crescer de Cinco a Cinco Minutos!");
        SendClientMessage(playerid, OURO, "Nгo se esqueзa de Alimenta-lб! /Racгo!");
        SetPlayerAttachedObject(playerid,0, 19079, 1, 0.319503, -0.089340, -0.185576, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 );
        Info[playerid][Arara] = 4;
        Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
        return 1;
    }


   

   
   
   
   
    if(strcmp(cmdtext, "/arara", true) == 0)
    {
        if(Info[playerid][Grande] >= 5) return SendClientMessage(playerid, VERMELHO, "Sua Arara Estб Grande e Pronta para ser vendida, Para vender digite /VenderArara !");
        if(!Info[playerid][Arara]) return SendClientMessage(playerid, VERMELHO, "Vocк nгo tem uma arara.");
        if(Info[playerid][Arara]) { SendClientMessage(playerid, OURO, "____________Ficha do seu Pбssaro____________");
        new str[30];
        if(Info[playerid][Arara]==1 && Info[playerid][Racao]==1) {
        SendClientMessage(playerid, OURO, "Espйcime:{05c720}Arara Verde");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{05c720}Sim");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
        if(Info[playerid][Arara]==2 && Info[playerid][Racao]==1) {
        SendClientMessage(playerid, OURO, "Espйcime:{fe0012}Arara Vermelha");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{05c720}Sim");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
        if(Info[playerid][Arara]==3 && Info[playerid][Racao]==1) {
        SendClientMessage(playerid, OURO, "Espйcime:{24a1e9}Ar{f7f037}ara {1ba92f}Mes{fd161b}ti{fdb916}зa");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{05c720}Sim");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
        if(Info[playerid][Arara]==4 && Info[playerid][Racao]==1) {
        SendClientMessage(playerid, OURO, "Espйcime:{24a1e9}Arara Azul");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{05c720}Sim");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
        if(Info[playerid][Arara]==1 && Info[playerid][Racao]==0) {
        SendClientMessage(playerid, OURO, "Espйcime:{05c720}Arara Verde");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{cd0c1a}Nгo");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
         
        if(Info[playerid][Arara]==2 && Info[playerid][Racao]==0) {
        SendClientMessage(playerid, OURO, "Espйcime:{fe0012}Arara Vermelha");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{fe0012}Nгo");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
         if(Info[playerid][Arara]==3 && Info[playerid][Racao]==0) {
        SendClientMessage(playerid, OURO, "Espйcime:{24a1e9}Ar{f7f037}ara {1ba92f}Mes{fd161b}ti{fdb916}зa");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{fe0012}Nгo");
        SendClientMessage(playerid, OURO, "____________________________________________");
         }
         if(Info[playerid][Arara]==4 && Info[playerid][Racao]==0) {
        SendClientMessage(playerid, OURO, "Espйcime:{24a1e9}Arara Azul");
        Info[playerid][Grande];
        format(str, sizeof str, "Estбgio(%d/5)", Info[playerid][Grande]);
        SendClientMessage(playerid, OURO, str);
        SendClientMessage(playerid, OURO, "Alimentada:{fe0012}Nгo");
        SendClientMessage(playerid, OURO, "____________________________________________");
   }

  }

        return 1;
    }
    if(strcmp(cmdtext, "/racao", true) == 0)
    {
        if(Info[playerid][Grande] >= 5) return SendClientMessage(playerid, VERMELHO, "Sua Arara Estб Grande e Pronta para ser vendida, Para vender digite /VenderArara !");
        if(!Info[playerid][Arara]) return SendClientMessage(playerid, VERMELHO, "Vocк nгo tem uma arara.");
        if(Info[playerid][Racao]) return SendClientMessage(playerid, BRANCO, "Vocк jб Alimentou sua Arara!");
        if(Info[playerid][Grande] > 0) {
        SendClientMessage(playerid, BRANCO, "Vocк Alimentou Sua Arara! Isso lhe custou R$200");
        Info[playerid][Racao] = true;
        Info[playerid][Timer] = SetTimerEx("Crescimento", 300000, true, "i", playerid);
        return 1;
        }
        else {
        SendClientMessage(playerid, BRANCO, "Vocк Alimentou Sua Arara! Isso lhe custou R$200");
        Info[playerid][Racao] = true;
        }
    }
    if(strcmp(cmdtext, "/soltar", true) == 0)
    {
        if(!Info[playerid][Arara]) return SendClientMessage(playerid, BRANCO,"Vocк nгo tem nenhuma Arara!");
        Info[playerid][Grande] = 0;
        Info[playerid][Arara] = 0;
        Info[playerid][Racao] = 0;
        RemovePlayerAttachedObject(playerid, 0);
        SendClientMessage(playerid, BRANCO, "A arara estб voando...voando...foi-se embora!");
        return 1;
    }
   
        if(strcmp(cmdtext, "/venderarara", true) == 0)
    {
        if(!Info[playerid][Arara]) return SendClientMessage(playerid, BRANCO,"Vocк Nгo comprou nenhuma Arara!");
        if(Info[playerid][Grande] < 5) return SendClientMessage(playerid, BRANCO,"Sua Arara ainda nгo estб grande!");
        Info[playerid][Grande] = 0;
        Info[playerid][Arara] = false;
        RemovePlayerAttachedObject(playerid, 0);
        GivePlayerMoney(playerid, 10000);
        SendClientMessage(playerid, BRANCO, "Vocк Vendeu Sua Arara e ganhou R$10000!");
        return 1;
    }
   
   
   
   
    return 0;
}


public Crescimento(playerid)
{
    if(!Info[playerid][Arara])
    {
        KillTimer(Info[playerid][Timer]);
        return 0;
    }
    if(!Info[playerid][Racao] && Info[playerid][Grande] < 5)
    {
        SendClientMessage(playerid, BRANCO, "Vocк nгo alimentou sua Arara e Ela Morreu!");
        RemovePlayerAttachedObject(playerid, 0);
        Info[playerid][Arara] = false;
        Info[playerid][Grande] = 0;
        KillTimer(Info[playerid][Timer]);
        return 1;
    }
    new str[30];
    Info[playerid][Grande]++;
    Info[playerid][Racao] = false;
    format(str, sizeof str, "Sua Arara Cresceu! (%d/5)", Info[playerid][Grande]);
    SendClientMessage(playerid, BRANCO, str);
    if(Info[playerid][Grande] >= 5)
    {
        SendClientMessage(playerid, BRANCO, "Sua Arara Estб Grande e Pronta para ser vendida, Para vender digite /VenderArara !");
        KillTimer(Info[playerid][Timer]);
    }
    return 1;
}
Eu dei uma modificada no sistema de Araras baixado daqui do fуrum, uma gambiarra danada mas atй que ficou interessante o resultado kkk...
Mas enfim tem hora que eu dou o comando /racao e n passa nem um minuto a arara cresce ou morre se eu n alimentar em tipo, 30 segundos oO, sendo que era pra ser 5 minutos de espera...
Daн eu pensei que dps do /racao as vzs o tempo zerava, e coloquei pra que se a arara for nova nгo precisa setar tempo, pq jб veio setado quando 'caзou', mas se ela for velha setar mais tempo pra ela, mas mesmo assim tem hora que dб hora nгo....parece que й intercalado mesmo, do jeito que eu falei, tipo assim: estбgio 1 cresce, 2 vai rбpido, 3 cresce, 4 vai rбpido...nгo sei se tem a ver, mas foi o que pareceu in game...






EDIT:

Dando uma reanalisada aqui....

pawn Код:
if(Info[playerid][Arara])
Setб sу se й 1 ou se й qlqr nъmero? As vezes pode estar dando conflito aqui por eu ter adicionado mais 'ids' de araras.
Reply
#2

n entendi nada.
Reply
#3

Й o sistema de araras do free...
De 5 em 5 minutos ela deveria crescer, mas tб bugado...
Tem hora que ela cresce em menos de 1 minuto.
Hora cresce com mais de 5 minutos...
Tem hora que nem chega a dar tempo de dar raзгo que jб morre
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)