KA

Gm Commands [créditos: The Chaos]

Por kamikazex, 14 de abr. de 2006 em Linguagens de Programação

6
5.3k
kamikazexK
14 de abril de 2006 às 11:35

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

freretyF
14 de abril de 2006 às 15:57

-----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... :bigsmile:

-----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 &param){    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 &param);

Coloque:

 

bool Commands::broadcastColor(Creature* c, const std::string &cmd, const std::string &param);

 

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 mensagem

mensagem é 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 &param){    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 &param);

Coloque:

 

bool speedChanger(Creature* c, const std::string &cmd, const std::string &param);

 

Agora recompile e é soh aproveitar... ^^

NÃO SE ESQUEÇA DE ADICIONAR O COMANDO EM commands.xml!!!

Como usar:

/speed VELOCIDADE nome-do-player

Onde:

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... ^^

Editado Abril 20 por frerety

1 mês depois...
ScarFaceS
26 de maio de 2006 às 22:56

r000x demais nao chegueia usar mas codes bons, pena que ja tinha no ot que eu uso, mas r00x mesmo r00000x mesmo, vlwss por ajudar

2 meses depois...
cleks2C
13 de julho de 2006 às 10:53

bom, como acho q o tópico naum é tãão velho assim, eu posso postar...

eu gostaria de saber se algum compiler disposto a ajudar está interessado em me ajudar a criar alguns comandos de GM que estou necesitando no momento...

obrigado pela atenção,

Cleks2

3 meses depois...
DeToNaTiOnSD
13 de outubro de 2006 às 09:18

Eu também não acho que o Tópico é TÃÃÃO VELHO assim mas vou postar... ;D

Gostei ,agora é so aprender a Compilar direito,to partindo pras versões MySQL agora ;D

flw.

2 meses depois...
Perfect MapperP
24 de dezembro de 2006 às 00:54

boa muito roxxxxx

vlws mesmo

flws

preciso aprender a compilar xD