[7.6] Auto Clean Map

Zorzin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/06Posts: 74

Oi gente... Tava sem nada pra faze e resolvi cria um code.. É assim.. De tantos em tantos minutos, o server da um cleanmap (comando /clean )

otserv.cpp

Emcima disso:

 

// Call to WSA Startup on Windows Systems...

 

Coloque isso:

 

// ZorZin clean mapif (g_config.getGlobalNumber("cleanmap") > 0){    g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup)));    g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));}elsestd::cout << ":: Clean Map Disabled!" << std::endl;// ZorZin clean map

 

Game.cpp

acima de:

 

void Game::creatureBroadcastMessage(Creature *creature, const std::string &text)

 

coloque:

 

void Game::msgAntesdeCleanup(){for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it){std::string name;name = (*it).second->getName();extern Game g_game;Creature* creature = g_game.getCreatureByName(name);(*it).second->onCreatureSay(creature, SPEAK_BROADCAST, "O mapa será limpo daqui a exatamente 1 minuto. Por favor, retire os equipamentos do chão ou de cima da caixa do dp e deixe com seu char.");}}

 

agora procure por:

 

long Game::cleanMap(){OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::cleanMap()");return map->clean();}

 

abaixo adicione:

 

long Game::cleanMap2(){    addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup)));    addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));return map->clean();}

 

Game.h

procure por:

 

long cleanMap();

 

adicione logo abaixo:

 

long cleanMap2();

 

agora procure por:

 

void creatureBroadcastMessage(Creature *creature, const std::string &text);

 

acima adicione:

 

void msgAntesdeCleanup();

 

Agora vá no config.lua e coloque:

 

--Auto Clean Map -- de quanto em quanto tempo ira dar clean (em minutos) 60 = 1 horacleanmap = 60

 

Se der algum erro, pode ser porque no seu ot num tem o CleanMap(comando /clean)

Espero que esse code ajude vocês...

É bem simples mas com items no chão, dá muito lag..

Ai você num precisa ficar entrando no ot e dar /clean

Com o code da clean sozinho

Crédits: Zorzin & Frerety

Zorzin




BlackOnix C++ Programmer
------------------------------------------------------------------------

É meu fan ou gosta dos meus trabalhos ou é meu amigo? Usa minha bar: =)



[7.92] Zorzin OTServer Version 1.1

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

Well done

legal

bem pensado e bem bolado

bom trabalho

cya~~ :bye:

Zen

~Léozera~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/01/06Posts: 37Char no Tibia: Zen Knight

Olá,

Maneiro o Code,

Vai ser Bem útil,

Vai Reduzir o Lag de Certo modo e ajudar os GMs, para dar Clean, e vai poupar muito tempo, vou user no meu OT.

Brigadão Zorzin,

Abraços,

Zen

zenfanbar.jpg

zenhf.jpg

GM Pikkeno

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/02/06Posts: 15

Cara muito massa esse code.

O meu server so vivia dando lag por que a galera ficava pegando e clonando itens :confused: e jogava no chão ai varias pessoas ficavam reclamando.

Agora graças a você eu não vou ter mais esse problema.

ps: E deixa o server com muito lag

Flws

Assinatura Removida by Don
Motivo: Desrespeito as regras.

kamimura

Old School :D
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 19/04/06Posts: 201

Oi,

muito bom esse code.

Mas tipo no mapa global ele trava o serv por uns minutos, se o PC do kara nao for bom vai ser ruim pra caramba a hora q de o autclean.

E tipo nao e so para o mapa global, mapas grandes tb dao esse tipo de lag.

Fora isso is very perfect !!! xD

vlw

//kamimura


"Sem música, a vida seria um erro." (Friedrich Nietzsche)
___________________________________________________
©1993 - 2009 kamimura™ - Todos os direitos reservados

Zorzin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/06Posts: 74
Oi,

muito bom esse code.

Mas tipo no mapa global ele trava o serv por uns minutos, se o PC do kara nao for bom vai ser ruim pra caramba a hora q de o autclean.

E tipo nao e so para o mapa global, mapas grandes tb dao esse tipo de lag.

Fora isso is very perfect !!! xD

vlw

//kamimura

 

 

 

claro.. isso depende do pc.. mas, para pcs ruins,

é só colocar de 3 em 3 horas por exemplo... ou seja, 180 minutos..

no meu ot que o mapa eh pequeno prefiro de 2 em 2 horas...

ai deixo como 120 min...

Zorzin




BlackOnix C++ Programmer
------------------------------------------------------------------------

É meu fan ou gosta dos meus trabalhos ou é meu amigo? Usa minha bar: =)



[7.92] Zorzin OTServer Version 1.1

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

mas mapa global em pc ruim deve ser um lag tremendo mesmu sem clean map xD

mas eu até axu melhor u clean map de 4 em 4 horas, 8 em 8 horas

e axo ke ficava melhor 1 minuto antes du clean um aviso prévio

"1 minute left to clean map" para as pessoas naum perderem items

cya~~

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

wow!

great code!!!

haUhAUha...

mt bem bolado... parabéns...

soh teim um probleminha, o mapa soh eh limpo 1 vez...

estou trabalhando com uma função que faça isso funcionar i faça mandar uma mensagem 1 minuto antes de dar clean... agora a msm toh postanu aki como vai fikar...

FlW

CyA!

----- EDITED -----

olhe mais pra baixo pra ver uma versão complementar

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


Sir Picaralhos

Lendário XTibiano =)
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/10/05Posts: 114

r0x

e eu concordo com o colex

é bom ter um aviso prévio de qunado ira ter clean no mapa

pra ngm correr risco de perder nd

e issu tem utilidade para todos tipos de server do enforced até o up lvl

;] vlw abraços

Atenciosamente,

Sir Picaralhos.

janniferjopeseo9.jpg

janniferjopesbarjd6.jpg

userbar172527ez3.gif

frerety

DVNO
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 08/04/06Posts: 133

@Zorzin

adorei seu comando i sua criatividade... dei uma "melhorada" no seu code...

si vc kizer edite seu post e coloque assim:

otserv.cpp

Em cima disso:

Call to WSA Startup on Windows Systems...

Coloque isso:

// ZorZin clean map

if (g_config.getGlobalNumber("cleanmap") > 0)

{

    g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup)));

    g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));

}

else

std::cout << ":: Clean Map Disabled!" << std::endl;

// ZorZin clean map

Game.cpp

acima de:

void Game::creatureBroadcastMessage(Creature *creature, const std::string &text)

adicione:

void Game::msgAntesdeCleanup()

{

for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it)

{

std::string name;

name = (*it).second->getName();

extern Game g_game;

Creature* creature = g_game.getCreatureByName(name);

(*it).second->onCreatureSay(creature, SPEAK_BROADCAST, "O mapa será limpo daqui a exatamente 1 minuto. Por favor, retire os equipamentos do chão ou de cima da caixa do dp e deixe com seu char.");

}

}

agora procure por:

long Game::cleanMap()

{

OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::cleanMap()");

return map->clean();

}

abaixo adicione:

long Game::cleanMap2()

{

    addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup)));

    addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));

return map->clean();

}

Game.h

procure por:

long cleanMap();

adicione logo abaixo:

long cleanMap2();

agora procure por:

void creatureBroadcastMessage(Creature *creature, const std::string &text);

acima adicione:

void msgAntesdeCleanup();

Config.lua

adicione no final:

 

--Auto Clean Map -- de quanto em quanto tempo ira dar clean (em minutos) 60 = 1 horacleanmap = 60

 

.: ALTERAÇÕES:

.:

.: Agora manda uma mensagem 1 minuto antes de dar clean;

.: Não funciona apenas uma vez por reset server, funciona agora periodicamente (de x em x minutos, pq estava dando só uma vez por server ligado);

FlW

CyA!

It's the hunger; the hunger for an alternative and the refusal to accept a life of unhappiness.


Zorzin

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/06Posts: 74

legal frerefty... vlw ai

eu desobri que só tava dando isso só uma vez só agorinha..

na hora que eu ia arruma vc arrumo.. ehuaehuehue

Obrigado,

Zorzin




BlackOnix C++ Programmer
------------------------------------------------------------------------

É meu fan ou gosta dos meus trabalhos ou é meu amigo? Usa minha bar: =)



[7.92] Zorzin OTServer Version 1.1

ladenn

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/09/05Posts: 34

Nuss, massa

fico joia

Xerizezo~

"A diplomat is a person who can tell you how to go to hell in the such that a way actually forward to the trip."

Dragonblest

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/07/07Posts: 19Char no Tibia: Dragonblest

Como Fasso PRa coloka no Meu Serv?

<a href="http://www.danasoft.com"><img src="http://www.danasoft.com/sig/boiolaaallal.jpg" border="0"></a><div style="font-family:arial,sans-serif;font-size:11px;">