![]()
Mais um tópico, mais um comando excelente ![]()
Show Zani ;D
Parabéns ![]()
info
Grupo: Lenda
Registrado: 10/10/05
Posts: 2.2k
Reputação: +63
Char no Tibia: Master Chequer

![]()
Mais um tópico, mais um comando excelente ![]()
Show Zani ;D
Parabéns ![]()
Roxxx A loot!!! cara muito bom!
muito doido
Muito bom ![]()
info
Grupo: Artesão
Registrado: 26/06/06
Posts: 115
Reputação: +1
Char no Tibia: Kasugol

Num skeceu de fala p/ por no commands.xml :
<command cmd="/cmdeditor" access="4" />
?????????
pelo jeito que ele boto acho que todos podem acessar =o
Editado Junho 26 por Exordium
info
Grupo: Campones
Registrado: 06/04/07
Posts: 61
Reputação: 0

Aew cara otimo code
soq tipow eu uso Evolutions 0.7.8 XML
e tem uns codes ai q nun ten aki
em kl Ot vc uso esse code?
abraços
foi bolado numa svn, não foi feita em distro não, os codes que tem a mais ali fui eu que tava fuçando.
info
Grupo: Campones
Registrado: 25/02/07
Posts: 84
Reputação: 0
Bom, esse é um ótimo editor de Access direto pelo Jogo.
É um exelente programador brasileiro que fez.
The Chaos.
Lembrando só pessoa com acesso pode editar essa lista. ou seja ( Gods, Gms )
No final de commandos.cpp
bool Commands::commandsXmlEditor(Creature* creature, const std::string& cmd, const std::string& param) { Player* player = creature->getPlayer(); if(!player) return false; Item* book = Item::CreateItem(2597); std::stringstream tds; for(CommandMap::iterator it = commandMap.begin(); it != commandMap.end(); ++it){ tds << it->second->name << "= "<<it->second->accesslevel<<";"<<std::endl; } book->setText(tds.str().c_str()); player->sendTextWindow(book,65535, true); player->eCommands = true; return false; } void Commands::playerEditCommands(Player* player, Item* item, const std::string& text) { if(!player) return; player->eCommands = false; std::string tmp = text, command; std::string datadir = g_config.getString(ConfigManager::DATA_DIRECTORY); std::string filename = datadir + "commands.xml"; std::stringstream sb; xmlNodePtr nn, sn, pn, root; xmlDocPtr doc = xmlNewDoc((const xmlChar*)"1.0"); doc->children = xmlNewDocNode(doc, NULL, (const xmlChar*)"commands", NULL); root = doc->children; while(tmp.size() > 1){ pn = xmlNewNode(NULL,(const xmlChar*)"command"); std::string::size_type pos = tmp.find('=', 0); sb.str(""); sb << tmp.substr(0, pos).c_str(); tmp.erase(0, pos+2); xmlSetProp(pn, (const xmlChar*)"cmd", (const xmlChar*)sb.str().c_str()); pos = tmp.find(';', 0); sb.str(""); sb << tmp.substr(0, pos).c_str(); tmp.erase(0, pos+2); xmlSetProp(pn, (const xmlChar*)"access", (const xmlChar*)sb.str().c_str()); xmlAddChild(root, pn); } xmlSaveFormatFileEnc(filename.c_str(), doc, "UTF-8", 1); this->reload(); return; }Depois dê
{"/raid",&Commands::forceRaid},Adicione:
{"/cmdeditor", &Commands::commandsXmlEditor},Agora ache:
Em baixo adicione:
Em Commands.h abaixo de:
Adicione:
Depois dê:
Adicione:
Agora na função struct Command{
Depois dê:
Adicione:
Ok, agora em Protocol.cpp aonde fica os #include adicione
Ache a função void Protocol79::ParseTextWindow(NetworkMessage& msg)
{
Depois dê
Adicione
if(player->eCommands){ commands.playerEditCommands(player, readItem, new_text); return; }Em player.h depois dê
Adicione:
Pronto. Agora você tem que dar Rebuild all, para reparar as suas sources.
Obs: Cuidado com esse code, você só pode mudar os números, nunca mude o nome do comando.
Créditos: The Chaos
Tradução: Jackson Zani
Abraços.
Editado Junho 15 por Jackson Zani