Jackson Zani 0 Postado Junho 15, 2007 Share Postado Junho 15, 2007 (editado) 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: std::string key = defined_commands[i].name; Em baixo adicione: cmd->name = key; Em Commands.h abaixo de: static ReturnValue placeSummon(Creature* creature, const std::string& name); Adicione: void playerEditCommands(Player* player, Item* item, const std::string& text); Depois dê: bool forceRaid(Creature* creature, const std::string& cmd, const std::string& param); Adicione: bool commandsXmlEditor(Creature* creature, const std::string& cmd, const std::string& param); Agora na função struct Command{ Depois dê: bool loaded; Adicione: std::string name; Ok, agora em Protocol.cpp aonde fica os #include adicione #include "commands.h" extern Commands commands; Ache a função void Protocol79::ParseTextWindow(NetworkMessage& msg) { Depois dê std::string new_text = msg.GetString(); Adicione if(player->eCommands){ commands.playerEditCommands(player, readItem, new_text); return; } Em player.h depois dê uint32_t maxDepotLimit; Adicione: bool eCommands; 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, 2007 por Jackson Zani Link para o comentário Compartilhar em outros sites More sharing options...
Jvchequer 63 Postado Junho 15, 2007 Share Postado Junho 15, 2007 Mais um tópico, mais um comando excelente Show Zani ;D Parabéns Link para o comentário Compartilhar em outros sites More sharing options...
Mustorze 0 Postado Junho 15, 2007 Share Postado Junho 15, 2007 Roxxx A loot!!! cara muito bom! Link para o comentário Compartilhar em outros sites More sharing options...
moorte 0 Postado Junho 19, 2007 Share Postado Junho 19, 2007 muito doido Link para o comentário Compartilhar em outros sites More sharing options...
Exordium 0 Postado Junho 25, 2007 Share Postado Junho 25, 2007 Muito bom Link para o comentário Compartilhar em outros sites More sharing options...
GM Volcano 1 Postado Junho 26, 2007 Share Postado Junho 26, 2007 Num skeceu de fala p/ por no commands.xml : <command cmd="/cmdeditor" access="4" /> ????????? Link para o comentário Compartilhar em outros sites More sharing options...
Exordium 0 Postado Junho 27, 2007 Share Postado Junho 27, 2007 (editado) pelo jeito que ele boto acho que todos podem acessar =o Editado Junho 27, 2007 por Exordium Link para o comentário Compartilhar em outros sites More sharing options...
God Anthyrax 0 Postado Junho 29, 2007 Share Postado Junho 29, 2007 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 Link para o comentário Compartilhar em outros sites More sharing options...
ellendil 0 Postado Julho 7, 2007 Share Postado Julho 7, 2007 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. Link para o comentário Compartilhar em outros sites More sharing options...
zani123 17 Postado Janeiro 4, 2009 Share Postado Janeiro 4, 2009 Onde fica commands.cpp? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados