[Include] Alert Overflow v1.0
#1

[Image: AlertOf.png]
* Comentбrio

Essa include serve para Avisar vocк caso vocк ultrapasse os Limites determinados pelo SAMP, Exemplo: Objetos, TextDraws, TextLabel e etc..
Sem nada para fazer, Resolvi fazer essa Simples e Ъtil include.


*Como usar ?

pawn Код:
#include a_samp
#include AlertOf
Lembre-se de sempre deixar esta Include abaixo de Todas outras..

Agora se vocк preferir pode desativar qualquer verificaзгo, Basta fazer o seguinte!

pawn Код:
#define OfObject false //Coloque false para Desativar Tal verificaзгo.
* Funзхes

pawn Код:
AlertOf(); //Coloque no final do OnGameModeInit

AlertPlayerOf(playerid); //Coloque no final do OnPlayerConnect
* Creditos

Paulo - Criador
Equipe SA-MP(Passado\Presente\Futuro) - SAMP.


* Download

PasteBin
Sites******


* Observaзгo

Qualquer BUG me contatar por MP ou pelo Post mesmo! Ficarei agradecido.
Dъvidas, Pergunte no Post!
Bom jogo!
Reply
#2

Legal!

O problema й que as funзхes da SA:MP trabalham com slots. Logo vocк tem 300 mil objetos e deleta id zero.

Usando sua biblioteca, ele vai criar outro objeto, com id 0 (logo que й o slot livre). Assim vai acusar que tem 1 objeto criado, mesmo que tenha 300 mil deles nos outros slots.

Portanto tem que refazer a include hookando todas funзхes e criando uma variбvel para cada coisa e incrementar ela ao deletar/criar objetos, textdraws .. etc!

Teste esse cуdigo e verб que estou certo:
pawn Код:
new objetos[10];
    objetos[0] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[1] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[2] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[3] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[4] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[5] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[6] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[7] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[8] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    objetos[9] = CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1) ;
    //10  objetos criados!
   
   
    DestroyObject(objetos[2]) ;
   
    // agora sгo 9 objetos
   
    printf("existem %d objetos", CreateObject(1000, 0.1, 0.1, 0.1, 0.0, 0.0, 0.1));
   
    // "existem 3 objetos"

Tem que refazer o script todo, eu aguardo!

Boa sorte
Reply
#3

Parabens!
Reply
#4

Tem coisa ai desnecessaria!
Exemplo MaxPlayers pra que
Ja existe definiзao pra isso!
Reply
#5

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Legal!

O problema й que as funзхes da SA:MP trabalham com slots. Logo vocк tem 300 mil objetos e deleta id zero.

Usando sua biblioteca, ele vai criar outro objeto, com id 0 (logo que й o slot livre). Assim vai acusar que tem 1 objeto criado, mesmo que tenha 300 mil deles nos outros slots.

Portanto tem que refazer a include hookando todas funзхes e criando uma variбvel para cada coisa e incrementar ela ao deletar/criar objetos, textdraws .. etc!


No aguardo!
Й, eu fiz mais para avisar caso ultrapasse o Limite, assim o Usuбrio ficaria sabendo e deletaria o que ele achasse melhor, Vlw ae..

@Sky

Vlw.

@Don

Aquela definiзгo й para quem Usa mais que 500 Slots, pois tem uma maneira que contatar o Kalcor e pedir mais Slots..

@Bruno EDIT

Entгo cara, eu pensei nesse caso, mais fiquei pensando, porque ele deletaria o objeto no mesmo lugar em que criou ? nгo faz sentido, mais se ele fazer isso, irб bugar..
Reply
#6

Quote:
Originally Posted by paulor
Посмотреть сообщение
Й, eu fiz mais para avisar caso ultrapasse o Limite, assim o Usuбrio ficaria sabendo e deletaria o que ele achasse melhor, Vlw ae..

@Sky

Vlw.

@Don

Aquela definiзгo й para quem Usa mais que 500 Slots, pois tem uma maneira que contatar o Kalcor e pedir mais Slots..
Mas vai dar erro! Tem que refazer o script da forma que eu falei. Hookando todas funзхes e incrementado em uma variбvel cada vez que criar um objeto.
Reply
#7

Sim isso deve mostrar uns erros durante seu funcionamento "Hookando" todas as funзхes deve resolver!

mesmo assim continua sendo muito util!
Reply
#8

Aqui um exemplo:

pawn Код:
new  objetosCriados = 0;

DestroyObjectPaulor(modelid)  {
    objetosCriados --;
    return DestroyObject(modelid);
   
}
CreateObjectPaulor(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 350.0) {
   
    if(objetosCriados <  MAX_OBJECTS ) {         
        objetosCriados ++;
        return  CreateObject(modelid, X, Y, Z, rX, rY, rZ, DrawDistance) ;
    }
   
    print(" Foi atingido o nъmero de objetos criados em "MAX_OBJECTS" objetos");

    return -1 ;
}

#define CreateObject \  
            CreateObjectPaulor
#define DestroyObject\
            DestroyObjectPaulor
Sу fazer pra tudo agora! Boa sorte Paulor!
Reply
#9

Quote:
Originally Posted by paulor
Посмотреть сообщение

@Don

Aquela definiзгo й para quem Usa mais que 500 Slots, pois tem uma maneira que contatar o Kalcor e pedir mais Slots..

Isto apenas para servidores da russia pois nenhum brasileiro chega pelo menos a metade do que tem na russia!
Reply
#10

Sim Bruno eu entendi, mais veja comigo:

OnGameModeInit й executado em Ms, dai o Cara cria seus Objetos lб e jб os Destroi, isso nгo tem sentido pois o Objeto nгo apareceria, Mais caso alguйm faзa o que й muito Improvбvel, irб bugar...

@Don

Isso se chama Prevenзгo cara..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)