-----edited-----
Abaixo temos um post de GM commands, eu não testei o code por isso não posso afirmar se funciona. Caso alguém teste poste aqui para edição do post.
LoL? Issu num era um tópico pedindo code? hAUhauAHuAh... ![]()
-----fim do edited-----
Broadcast color
Em commands.cpp
em baixo de:
{"/kick",&Commands::kickPlayer},
Coloque
{"/bc",&Commands::broadcastColor},
Agora vá ao final de commands.cpp e adicione
bool Commands::broadcastColor(Creature* c, const std::string &cmd, const std::string ¶m){ int a; int colorInt; Player* player = dynamic_cast<Player*>©; std::string message = param.c_str(); std::stringstream fullMessage; std::string color; MessageClasses mclass; for(a=0; a<param.length(); ++a){ if(param[a] > 3 && param[a] == ' '){ color = param; color.erase(a,1-param.length()); message.erase(0,1+a); break; } else message = param.c_str(); } std::transform(color.begin(), color.end(), color.begin(), tolower); if(color == "blue") mclass = MSG_BLUE_TEXT; else if(color == "red"){ game->creatureBroadcastMessage(c,message); return false; } else if(color == "red2") mclass = MSG_RED_TEXT; else if(color == "orange") mclass = MSG_ORANGE; else if(color == "white") mclass = MSG_ADVANCE; //Invasion else if(color == "white2") mclass = MSG_EVENT; else if(color == "green") mclass = MSG_INFO; else if(color == "small") mclass = MSG_SMALLINFO; else if(color == "yellow") mclass = MSG_YELLOW; else if(color == "private") mclass = MSG_PRIVATE; else{ player->sendTextMessage(MSG_SMALLINFO, "Define a color, or use #b to speak in red."); return false; } fullMessage << c->getName()<< ": "<< message.c_str()<<std::endl; //Name: Message for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it){ if(dynamic_cast<Player*>(it->second)) (*it).second->sendTextMessage(mclass, fullMessage.str().c_str()); } return true;}
Pronto. Agora é só declarar.
Commands.h
em baixo de:
bool kickPlayer(Creature* c, const std::string &cmd, const std::string ¶m);
Coloque:
bool Commands::broadcastColor(Creature* c, const std::string &cmd, const std::string ¶m);
Quase funcionando... Agora é soh declarar as "novas cores":
Const76.h
em baixo de:
MSG_RED_INFO = 0x12,
Coloque:
MSG_YELLOW = 0x01, MSG_PRIVATE = 0x04, MSG_ORANGE = 0x11,
Você vai encontrar isso:
enum MessageClasses { MSG_YELLOW = 0x01, MSG_PRIVATE = 0x04, MSG_ORANGE = 0x11, MSG_RED_INFO = 0x12, MSG_ADVANCE = 0x13, MSG_EVENT = 0x14, /*MSG_EVENT = 0x15, */ MSG_INFO = 0x16, MSG_SMALLINFO = 0x17, MSG_BLUE_TEXT = 0x18, MSG_RED_TEXT = 0x19,};
Agora recompile e é soh aproveitar... ^^
NÃO SE ESQUEÇA DE ADICIONAR O COMANDO EM commands.xml!!!
Como usar:
/bc COR mensagemmensagem é a sua mensagem... =p
COR:
1.Red: A cor que aparece qndo vc digita #b mensagem
2.Blue: Azul, igual a conversa de dois players(Code da cor by nitrous). ¹
3.White: Mesma cor qndo vc avança em level/skills.
4.White2: Mensagens em branco, invasões.
5.Green: Mensagem em verde!
6.small: uma mensagem pequena na tela.
7.Yellow: mensagem normal. ¹
8.Orange: mensagem laranja. ¹
9.Private: Azul marinho, igual a conversa de dois players. ¹
10.Red2: Igual uma mensagem normal, vermelha ¹.
¹- As CORES com esse ¹ vão aparecer na janela "Default" (não na "tela" propriamente dita).
Creditos para "The Chaos" e "Nitrous" ambos do forum otfans...
GM Speed
Commands.cpp
em baixo de:
{"/a",&Commands::teleportNTiles},
Coloque:
{"/speed",&Commands::speedChanger},
No fim adicione:
bool Commands::speedChanger(Creature* c, const std::string &cmd, const std::string ¶m){ int a; Player* player = dynamic_cast<Player*>©; std::string gambiarra = param.c_str(); std::stringstream speedValue; std::string aimeudeus; for(a=0; a<param.length(); ++a){ if(!isdigit(param[a])){ aimeudeus = param; aimeudeus.erase(a,1-param.length()); gambiarra.erase(0,1+a); break; } else aimeudeus = param.c_str(); } int newspeed = atoi(aimeudeus.c_str()); if(newspeed > 9999 || newspeed <= 99){ player->sendTextMessage(MSG_RED_TEXT,"Sorry but the speed must be more than 99 and less than 9999."); return false; } if(Player* toChange = game->getPlayerByName(gambiarra)){ toChange->speed = newspeed; toChange->sendChangeSpeed(game->getCreatureByName(gambiarra.c_str())); speedValue << "GM "<<player->getName()<< " changed your speed to: "<<toChange->speed<<"."<<std::endl; toChange->sendTextMessage(MSG_RED_TEXT,speedValue.str().c_str()); player->sendTextMessage(MSG_RED_TEXT,"Done."); return true; } else{ player->speed = newspeed; player->sendChangeSpeed©; speedValue << "You changed your speed to: "<<player->speed<<"."<<std::endl; player->sendTextMessage(MSG_RED_TEXT,speedValue.str().c_str()); return true; } return false; }
Commands.h
em baixo de:
bool teleportNTiles(Creature* c, const std::string &cmd, const std::string ¶m);
Coloque:
bool speedChanger(Creature* c, const std::string &cmd, const std::string ¶m);
Agora recompile e é soh aproveitar... ^^
NÃO SE ESQUEÇA DE ADICIONAR O COMANDO EM commands.xml!!!
Como usar:
/speed VELOCIDADE nome-do-playerOnde:
VELOCIDADE => velocidade do player (de 100 a 9999)
nome-do-player => nome do player a quem você dará a velocidade (deixe em branco se você quiser alterar sua velocidade)
Exemplos:
Alterar velocidade de um player chamado Fre Re Ty
/speed 1050 Fre Re Ty
/speed 5567 Fre Re Ty
Alterar sua velocidade
/speed 168
/speed 9999
Creditos ao "The Chaos"
Moderas, srry pela propaganda, mas era pra fla q naum fui eu ki fiz, soh toh ajudanu... ^^




info
Grupo: Campones
Registrado: 14/10/05
Posts: 39
Reputação: 0
Post editado por gusbronha.
Abaixo temos um post de GM commands, eu não testei o code por isso não posso afirmar se funciona. Caso alguém teste poste aqui para edição do post.
Obrigado
Editado Abril 16 por gusbronha