Well done
legal
bem pensado e bem bolado
bom trabalho
cya~~ ![]()
info
Grupo: Visconde
Registrado: 03/10/05
Posts: 301
Reputação: +8
Gênero: Masculino
Well done
legal
bem pensado e bem bolado
bom trabalho
cya~~ ![]()
info
Grupo: Campones
Registrado: 15/01/06
Posts: 37
Reputação: 0
Char 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
info
Grupo: Campones
Registrado: 22/02/06
Posts: 15
Reputação: 0
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
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
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
info
Grupo: Visconde
Registrado: 03/10/05
Posts: 301
Reputação: +8
Gê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~~
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
Editado Maio 18 por frerety
info
Grupo: Artesão
Registrado: 07/10/05
Posts: 114
Reputação: +12

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.
@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 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)));
}
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!
Editado Maio 19 por frerety
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
Nuss, massa
fico joia
info
Grupo: Campones
Registrado: 22/07/07
Posts: 19
Reputação: 0
Char no Tibia: Dragonblest
Como Fasso PRa coloka no Meu Serv?
info
Grupo: Campones
Registrado: 01/02/06
Posts: 74
Reputação: 0
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:
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 mapGame.cpp
acima de:
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:
adicione logo abaixo:
agora procure por:
acima adicione:
Agora vá no config.lua e coloque:
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
Editado Maio 22 por Zorzin