[7.92]command Editor Ingame

Jackson Zani

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/02/07Posts: 84

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.

 

 

cmdeditorih2uc7.jpg

Todos direitos reservados® Administrador - Medieval Works 2009.

Jvchequer

"Veni, vidi, vici."
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 10/10/05Posts: 2161Char no Tibia: Master Chequer

:D

 

Mais um tópico, mais um comando excelente :D

 

Show Zani ;D

 

 

Parabéns :D

1271330714-U1306.gif

 

~ Fiz parte da Equipe Xtibia em um tempo que Tibia era minha família. Saudades de todos vocês.

Mustorze

Banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 28/04/06Posts: 46

Roxxx A loot!!! cara muito bom!

[Banido por Ripping]

moorte

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/06/07Posts: 1

muito doido

Exordium

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/01/06Posts: 190

Muito bom :D

Sou fã de:







Exordium

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/01/06Posts: 190

pelo jeito que ele boto acho que todos podem acessar =o

Sou fã de:







God Anthyrax

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 07/04/07Posts: 61

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

Net XD







ellendil

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/06/07Posts: 14

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.


Retired?

zani123

http://HeroesOT.com
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 07/03/08Posts: 231Gênero: Masculino

Onde fica commands.cpp?

 

Surpreenda-se no melhor server. Crie sua conta e ganhe dois dias VIP e Triple EXP até os 15 resets. Junte sua team, crie uma guild e venha para a war!

 

http://www.TheHeroesOfTime.com

thumbnail_Final - Copia - Copia.jpg

 

logo thot 200 - Copia.png