Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

WhitewolfTalkCPP


/* $Id: Talk.cpp 184 2010-01-10 05:58:12Z sausage $
 * EOSERV is released under the zlib license.
 * See LICENSE.txt for more info.
 */

#include "handlers.h"

#include "arena.hpp"
#include "eodata.hpp"
#include "map.hpp"
#include "npc.hpp"
#include "party.hpp"
#include "world.hpp"

#include <fstream>
#include <string>
#include <iostream>
#include <ctype.h>

using namespace std;

static void limit_message(std::string &message, std::size_t chatlength)
{
	if (message.length() > chatlength)
	{
		message = message.substr(0, chatlength - 6) + " [...]";
	}
}

CLIENT_F_FUNC(Talk)
{
	PacketBuilder reply;

	std::string message;

	switch (action)
	{
		case PACKET_REQUEST: // Guild chat message
		{
			if (this->state < EOClient::PlayingModal) return false;

			if (!this->player->character->guild) return false;

			message = reader.GetEndString(); // message
			limit_message(message, static_cast<int>(this->server->world->config["ChatLength"]));

			this->player->character->guild->Msg(this->player->character, message, false);
		}
		break;

		case PACKET_OPEN: // Party chat messagea
		{
			if (this->state < EOClient::PlayingModal) return false;

			if (!this->player->character->party) return false;

			message = reader.GetEndString(); // message
			limit_message(message, static_cast<int>(this->server->world->config["ChatLength"]));

							 ofstream messag1;
  messag1.open ("party.txt" , ios::out | ios::app | ios::binary);
  messag1 << "[Party]" + this->player->character->name + "..." + message && "Writing this to a file.\n";
  messag1.close();

			this->player->character->party->Msg(this->player->character, message, false);
		}
		break;

		case PACKET_MSG: // Global chat message
		{
			if (this->state < EOClient::PlayingModal) return false;

			if (this->player->character->mapid == static_cast<int>(this->server->world->config["JailMap"]))
			{
				return false;
			}

			message = reader.GetEndString();
			limit_message(message, static_cast<int>(this->server->world->config["ChatLength"]));

				 ofstream messag1;
  messag1.open ("global.txt" , ios::out | ios::app | ios::binary);
  messag1 << "[Global]" + this->player->character->name + "..." + message && "Writing this to a file.\n";
  messag1.close();


			this->server->world->Msg(this->player->character, message, false);
		}
		break;

		case PACKET_TELL: // Private chat message
		{
			if (this->state < EOClient::PlayingModal) return false;

			std::string name = reader.GetBreakString();
			message = reader.GetEndString();
			limit_message(message, static_cast<int>(this->server->world->config["ChatLength"]));
			Character *to = 0;

			UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character)
			{
				if (character->name == name)
				{
					to = *character;
					to->AddRef();
					break;
				}
			}

			if (to && !to->hidden)
			{
						 ofstream messag1;
  messag1.open ("private.txt" , ios::out | ios::app | ios::binary);
  messag1 << "[Private]" + this->player->character->name + "..." + message + "..." + to->name && "Writing this to a file.\n";
  messag1.close();
				to->Msg(this->player->character, message);
				to->Release();
			}
			else
			{
				reply.SetID(PACKET_TALK, PACKET_REPLY);
				reply.AddShort(TALK_NOTFOUND);
				reply.AddString(name);
				CLIENT_SEND(reply);
			}
		}
		break;

		case PACKET_REPORT: // Public chat message
		{
			if (this->state < EOClient::PlayingModal) return false;

			message = reader.GetEndString();
			limit_message(message, static_cast<int>(this->server->world->config["ChatLength"]));

			if (!message.empty())
			{

    ofstream messag1;
  messag1.open ("public.txt" , ios::out | ios::app | ios::binary);
  messag1 << "[Public]" + this->player->character->name + "..." + message && "Writing this to a file.\n";
  messag1.close();
 //return 0;
			}
			if (message.empty())
			{
				return false;
			}

  if(this->player->character->player && message[0] == '#')
			{
			    std::string command;
				std::vector<std::string> arguments = util::explode(' ', message);
				command = arguments.front().substr(1);
				arguments.erase(arguments.begin());

                if (command.length() >= 1 && command.compare(0,5,"class") == 0 && arguments.size() >= 1)
                  {
                    int td = static_cast<int>(util::variant(arguments[0]));
                     this->player->character->StatSkill();
                    this->player->character->CalculateStats();
                     this->player->character->StatSkill();
                    this->player->character->CalculateStats();
                    if (td <= 31 && td != 9 && td != 9 && this->player->character->classupdate != true)
                    {

                        this->player->character->clas = td;
                    }
                if ((this->player->character->name == "YOURCHARACTERNAMEHERE" || this->player->character->name == "OTHERCHARACTERNAME" || this->player->character->level > 100) && td <= 31 && this->player->character->classupdate != true )
                    {
                        this->player->character->StatSkill();
                        this->player->character->clas = td;
                    }
                this->player->character->StatSkill();
                this->player->character->CalculateStats();
                this->player->character->StatSkill();
                this->player->character->CalculateStats();
                }

 else if (command.length() >= 4 && command.compare(0,4,"deal") == 0)
        {
                //this->player->character->deal = true;
            int nextcard  = util::rand(1, 12);
            int hisnextcard  = util::rand(1, 12);
            int gold = 1;
            int amount1 = 1000;

            if (this->player->character)
	          {
           int target_x = this->player->character->x;
           int target_y = this->player->character->y;

	       switch (this->player->character->direction)
	        {
		     case DIRECTION_UP:
			 target_y -= 1;
			 break;

		    case DIRECTION_RIGHT:
			target_x += 1;
			break;

		    case DIRECTION_DOWN:
			target_y += 1;
			break;

		    case DIRECTION_LEFT:
			target_x -= 1;
			break;
	    }
            if (this->player->character->map->GetSpec(target_x, target_y) != Map_Tile::Unknown6 || (this->player->character->x != target_x && this->player->character->y != target_y))
              {
                break;
              }
            if (this->player->character->HasItem(1) < 500)
            {
            this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true);
            break;
            }
            if(this->player->character->mycards > 21 && this->player->character->hiscards > 21)
            {
            this->player->character->mycards = 0;
            this->player->character->hiscards = 0;
            }

           if(this->player->character->deal == true)
           {
           if(arguments[0] == "cards")
             {

           if(this->player->character->mycards > 0 || this->player->character->hiscards > 0)
           {
           this->player->character->map->Msg(this->player->character,"either type #deal hit or #deal stand", true);
           break;
           }
            this->player->character->mycards += nextcard;
            this->player->character->hiscards += hisnextcard;
            this->player->character->map->Msg(this->player->character,"You got" + util::to_string(nextcard) , true);
            this->player->character->map->Msg(this->player->character,"He got" + util::to_string(hisnextcard) , true);
        }

            if(arguments[0] == "hit")
            {

            if(this->player->character->mycards < 1 || this->player->character->hiscards < 1)
            {
            this->player->character->map->Msg(this->player->character,"You cant hit type #deal cards", true);
            break;
            }

             if(this->player->character->hiscards > 16 && this->player->character->hiscards <= 21)
            {
            this->player->character->hiscards = this->player->character->hiscards;
            }
            else{
            this->player->character->hiscards += hisnextcard;
            }
            this->player->character->mycards += nextcard;

            this->player->character->map->Msg(this->player->character,"You got" + util::to_string(this->player->character->mycards) , true);
            this->player->character->map->Msg(this->player->character,"He got" + util::to_string(this->player->character->hiscards) , true);

             if(this->player->character->mycards > 21 && this->player->character->hiscards <= 21)
                {
            this->player->character->map->Msg(this->player->character,"You lose" + util::to_string(this->player->character->mycards) , true);
            this->player->character->mycards = 0;
            this->player->character->hiscards = 0;
            short id = 1;
            int amount = 500;
            if(this->player->character->DelItem(id, amount));
             {
              PacketBuilder builder;
              builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
              this->player->character->player->client->SendBuilder(builder);
            }
            break;
            }
          if(this->player->character->hiscards > 21 && this->player->character->mycards <=21)
          {
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->mycards = 0;
            this->player->character->hiscards = 0;
            this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
            }

          if(arguments[0] == "stand")
            {

            if(this->player->character->mycards < 1 || this->player->character->hiscards < 1)
            {
            this->player->character->map->Msg(this->player->character,"You cant stand type #deal cards", true);
            break;
            }

            if(this->player->character->hiscards < 16)
            {
            this->player->character->hiscards += hisnextcard;
            this->player->character->map->Msg(this->player->character,"He got." + util::to_string(this->player->character->hiscards) , true);
            }

            if((this->player->character->mycards > 21 || this->player->character->mycards < this->player->character->hiscards)&& this->player->character->hiscards <=21)
                {
            this->player->character->map->Msg(this->player->character,"You lose" + util::to_string(this->player->character->mycards) , true);
            this->player->character->map->Msg(this->player->character,"He won" + util::to_string(this->player->character->hiscards) , true);
            this->player->character->mycards = 0;
            this->player->character->hiscards = 0;
            short id = 1;
            int amount = 500;
            if(this->player->character->DelItem(id, amount));
             {
              PacketBuilder builder;
              builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
              this->player->character->player->client->SendBuilder(builder);
            }
           break;
            }
          if((this->player->character->hiscards > 21 || this->player->character->hiscards < this->player->character->mycards) && this->player->character->mycards <=21)
          {
            this->player->character->map->Msg(this->player->character,"You got" + util::to_string(this->player->character->mycards) , true);
            this->player->character->map->Msg(this->player->character,"He got" + util::to_string(this->player->character->hiscards) , true);
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->mycards = 0;
            this->player->character->hiscards = 0;
            this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
          }
        }
    }
}

 else if (command.length() >= 3 && command.compare(0,3,"bet") == 0)
                {
            PacketBuilder builder;
            if (this->player->character)
	      {
           int target_x = this->player->character->x;
           int target_y = this->player->character->y;

	       switch (this->player->character->direction)
	        {
		     case DIRECTION_UP:
			 target_y -= 1;
			 break;

		    case DIRECTION_RIGHT:
			target_x += 1;
			break;

		    case DIRECTION_DOWN:
			target_y += 1;
			break;

		    case DIRECTION_LEFT:
			target_x -= 1;
			break;
	    }
            if (this->player->character->map->GetSpec(target_x, target_y) != Map_Tile::Unknown6 || (this->player->character->x != target_x && this->player->character->y != target_y))
         {
          break;
         }

                int color  = util::rand(1, 2);
                int number = util::rand(1, 36);
                int even = util::rand(1, 36);
                int gold = 1;
                int amount1 = 500;

                if(arguments[0] == "red")
                {
                 int amount = 250;
              if(this->player->character->HasItem(1) < 250)
            {
            this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true);
            break;
            }

           if(this->player->character->deal == true)
           {
            if(color == 1)
             {

            this->player->character->map->Msg(this->player->character," you lose" , true);

            short id = 1;
            if(this->player->character->DelItem(id, amount));
             {
              builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
            }
          break;
          }
             if(color == 2)
          {
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
           }
        }

       else if(arguments[0] == "black")
                {
         int amount = 250;
          if(this->player->character->HasItem(1) < 250)
            {
            this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true);
            break;
            }

           if(this->player->character->deal == true)
           {
            if(color == 2)
          {

            this->player->character->map->Msg(this->player->character," you lose" , true);
            short id = 1;
            if(this->player->character->DelItem(id, amount));
             {
              builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
            }
          break;
          }

        else if(color == 1)
          {
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
           }
       }

    else if(arguments[0] == "odd")
        {

            if(this->player->character->HasItem(1) < amount1)
            {
            this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true);
            break;
            }
           if(this->player->character->deal == true)
           {
            if(even == 2 || even == 4 || even == 6 || even == 8 || even == 10 || even == 12 || even == 14 ||
            even == 16 || even == 18 || even == 20 || even == 22 || even == 24 || even == 26 || even == 28 || even == 30 || even == 32 || even == 34)
          {
            this->player->character->map->Msg(this->player->character," you lose" , true);
            short id = 1;
            int amount = 500;
            if(this->player->character->DelItem(id, amount));
             {
               builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
            }
          break;
          }
            if(even == 1 || even == 3 || even == 5 || even == 7 || even == 9 || even == 11 || even == 13 ||
            even == 15 || even == 17 || even == 29 || even == 21 || even == 23 || even == 25 || even == 27 || even == 29 || even == 31 || even == 35)
          {
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
           }
       }

   else if(arguments[0] == "even")
                {

      if(this->player->character->HasItem(1) < amount1)
            {
            this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true);
            break;
            }

           if(this->player->character->deal == true)
           {
              if(even == 1 || even == 3 || even == 5 || even == 7 || even == 9 || even == 11 || even == 13 ||
            even == 15 || even == 17 || even == 29 || even == 21 || even == 23 || even == 25 || even == 27 || even == 29 || even == 31 || even == 33 || even == 35)
           {
            this->player->character->map->Msg(this->player->character," you lose" , true);
            short id = 1;
            int amount = 500;
            if(this->player->character->DelItem(id, amount));
             {
              builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
            }
          break;
          }
              if(even == 2 || even == 4 || even == 6 || even == 8 || even == 10 || even == 12 || even == 14 ||
            even == 16 || even == 18 || even == 20 || even == 22 || even == 24 || even == 26 || even == 28 || even == 30 || even == 32 || even == 34)
          {
            this->player->character->map->Msg(this->player->character,"You win" , true);
            this->player->character->AddItem(gold, amount1);
           reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
            }
           }
    }


 if(this->player->character->deal == true)
        {
           short gold = 1;
           int amount = 500;
           short id = 1;
           int amount1 = 15000;
          if(arguments[0] == "1")
          {
       if(number == 1)
        {
         this->player->character->map->Msg(this->player->character,"You win" , true);
        this->player->character->AddItem(gold, amount1);
        reply.SetID(PACKET_ITEM, PACKET_GET);
        reply.AddShort(0); // UID
        reply.AddShort(gold);
        reply.AddThree(amount1);
        reply.AddChar(this->player->character->weight);
        reply.AddChar(this->player->character->maxweight);
        this->player->character->player->client->SendBuilder(reply);
        break;
   }
    if(number != 1)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
       builder.SetID(PACKET_ITEM, PACKET_KICK);
        builder.AddShort(id);
        builder.AddInt(this->player->character->HasItem(id));
        builder.AddChar(this->player->character->weight);
        builder.AddChar(this->player->character->maxweight);
        this->player->character->player->client->SendBuilder(builder);
      }
break;
}
     else if(arguments[0] == "2")
{
 if(number == 2)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
    reply.AddShort(gold);
    reply.AddThree(amount1);
    reply.AddChar(this->player->character->weight);
    reply.AddChar(this->player->character->maxweight);
   this->player->character->player->client->SendBuilder(reply);
    break;
   }
    if(number != 2)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "3")
{
 if(number == 3)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 3)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
       else if(arguments[0] == "4")
{
 if(number == 4)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 4)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "5")
{
 if(number == 5)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 5)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "6")
{
 if(number == 6)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 6)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
         else if(arguments[0] == "7")
{
 if(number == 7)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 7)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "8")
{
 if(number == 8)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 8)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "9")
{
 if(number == 9)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 9)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "10")
{
 if(number == 10)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
            reply.SetID(PACKET_ITEM, PACKET_GET);
            reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 10)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "11")
{
 if(number == 11)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
          reply.SetID(PACKET_ITEM, PACKET_GET);
           reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 11)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "12")
{
 if(number == 12)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 12)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "13")
{
 if(number == 13)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 13)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "14")
{
 if(number == 14)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 14)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "15")
{
 if(number == 15)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 15)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "16")
{
 if(number == 16)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 16)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "17")
{
 if(number == 17)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 17)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "18")
{
 if(number == 18)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 18)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "19")
{
 if(number == 19)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 19)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "20")
{
 if(number == 20)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 20)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "21")
{
 if(number == 21)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 21)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "22")
{
 if(number == 22)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 22)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "23")
{
 if(number == 23)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 23)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "24")
{
 if(number == 24)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 24)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "25")
{
 if(number == 25)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 25)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "26")
{
 if(number == 26)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
  reply.SetID(PACKET_ITEM, PACKET_GET);
   reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
     if(number != 26)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "27")
{
 if(number == 27)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 27)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "28")
{
 if(number == 28)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 28)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "29")
{
 if(number == 29)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 29)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "30")
{
 if(number == 30)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 30)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "31")
{
 if(number == 31)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 31)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "32")
{
 if(number == 32)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 32)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "33")
{
 if(number == 33)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 33)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "34")
{
 if(number == 34)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
           this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 34)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
        builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "35")
{
 if(number == 35)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 35)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
         builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
      }
}
     else if(arguments[0] == "36")
{
 if(number == 36)
   {
    this->player->character->map->Msg(this->player->character,"You win" , true);
    this->player->character->AddItem(gold, amount1);
    reply.SetID(PACKET_ITEM, PACKET_GET);
    reply.AddShort(0); // UID
            reply.AddShort(gold);
            reply.AddThree(amount1);
            reply.AddChar(this->player->character->weight);
            reply.AddChar(this->player->character->maxweight);
            this->player->character->player->client->SendBuilder(reply);
            break;
   }
    if(number != 36)
      {
        this->player->character->map->Msg(this->player->character," you lose" , true);
        this->player->character->DelItem(id, amount);
          builder.SetID(PACKET_ITEM, PACKET_KICK);
              builder.AddShort(id);
              builder.AddInt(this->player->character->HasItem(id));
              builder.AddChar(this->player->character->weight);
              builder.AddChar(this->player->character->maxweight);
             this->player->character->player->client->SendBuilder(builder);
              break;
            }
         }

      }
    }
   }

else if (command.length() >= 6 && command.compare(0,6,"detail") == 0 && arguments.size() >= 1)
       {

           int map = this->player->character->mapid;
           int x = this->player->character->x;
           int y = this->player->character->y;
           int mid; std::string details, tips, drops;

         for(int i = 0 ; i < static_cast<int>(this->server->world->details_config["amount"]) ; i++)
           {
            mid = static_cast<int>(this->server->world->details_config[util::to_string(i+1) + ".map"]);
            details = static_cast<std::string>(this->server->world->details_config[util::to_string(i+1) + ".details"]);
            drops = static_cast<std::string>(this->server->world->details_config[util::to_string(i+1) + ".drops"]);

           if(this->player->character->mapid == mid)
             {
               PacketBuilder builder;
               builder.SetID(PACKET_TALK, PACKET_TELL);
               builder.AddBreakString("OriginsBot");
           if(arguments[0] == "all")
             {
              builder.AddBreakString("your location is" + util::to_string(x) + " , " +  util::to_string(y) + " On map " + util::to_string(map) + ":" + "and here is some info about this map." + details + "The drops on this map are," + drops);
             }
           else if(arguments[0] == "tips")
             {
              builder.AddBreakString("here is some info about this map." + details);
             }
           else if(arguments[0] == "drops")
             {
              builder.AddBreakString("this maps drops are," + drops);
             }
              this->player->client->SendBuilder(builder);
             }
          }
       }

	else if (command.length() >= 5 && command.compare(0,5,"title") == 0)
                {
                    std::string ntitle;
                    std::transform(arguments[0].begin(), arguments[0].end(), arguments[0].begin(), static_cast<int(*)(int)>(std::tolower));
                    for (int i = 0; i < static_cast<int>(arguments.size()); i++)
                    {
                        if (ntitle == "")
                        {
                            ntitle = arguments[i];
                        }
                        else
                        {
                            ntitle += " " + arguments[i];
                        }
                    }
                    if (ntitle.length() > 19)
                    {
                        ntitle = ntitle.substr(0, 19);
                    }
                    this->player->character->title = ntitle;
                }

else if (command.length() >= 3 && command.compare(0,3,"job") == 0)
                {
                    std::string job;
                    std::transform(arguments[0].begin(), arguments[0].end(), arguments[0].begin(), static_cast<int(*)(int)>(std::tolower));
                    for (int i = 0; i < static_cast<int>(arguments.size()); i++)
                    {
                        if (job == "")
                        {
                            job = arguments[i];
                        }
                        else
                        {
                            job += " " + arguments[i];
                        }
                    }
                    if (job.length() > 19)
                    {
                        job = job.substr(0, 19);
                    }
                    this->player->character->job = job;
                }

else if (command.length() >= 1 && command.compare(0,6,"hcolor") == 0 && arguments.size() >= 1)
                {
                    int td = static_cast<int>(util::variant(arguments[0]));
                    if (td <= 9)
                    {
                        this->player->character->haircolor = td;
                         this->player->character->Warp(this->player->character->mapid, this->player->character->x, this->player->character->y,WARP_ANIMATION_NONE);
                    }
                }

                else if (command.length() >= 1 && command.compare(0,4,"home") == 0 && arguments.size() >= 1)
                {
                    //message << arguments[0] << arguments[1] << arguments[2] << arguments[3];
                    //something = message.str();
                    this->player->character->home = arguments[0];
                }

               else if (command.length() >= 5 && command.compare(0,5,"reset") == 0 && arguments.size() >= 0)
                {
                        if(this->player->character->paperdoll[Character::Accessory] != 0 || this->player->character->paperdoll[Character::Armlet1] != 0 ||this->player->character->paperdoll[Character::Armlet2] != 0 || this->player->character->paperdoll[Character::Armor] != 0 || this->player->character->paperdoll[Character::Belt] != 0 || this->player->character->paperdoll[Character::Boots] != 0 ||this->player->character->paperdoll[Character::Bracer1] != 0 || this->player->character->paperdoll[Character::Bracer2] != 0 || this->player->character->paperdoll[Character::Gloves] != 0 || this->player->character->paperdoll[Character::Hat] != 0 ||this->player->character->paperdoll[Character::Necklace] != 0 || this->player->character->paperdoll[Character::Ring1] != 0 || this->player->character->paperdoll[Character::Ring2] != 0 || this->player->character->paperdoll[Character::Shield] != 0 ||this->player->character->paperdoll[Character::Weapon] != 0)
                        {
                            reply.SetID(PACKET_STATSKILL, PACKET_REPLY);
                            reply.AddShort(1);

                            CLIENT_SEND(reply);

                            break;
                        }

                        long statpoints = -1;

                        statpoints = this->player->character->str + this->player->character->intl + this->player->character->wis +this->player->character->agi + this->player->character->con + this->player->character->cha + this->player->character->statpoints;

                        this->player->character->str = 0;
                        this->player->character->intl = 0;
                        this->player->character->wis = 0;
                        this->player->character->agi = 0;
                        this->player->character->con = 0;
                        this->player->character->cha = 0;

                        this->player->character->statpoints = statpoints;
                        this->player->character->CalculateStats();

                        reply.SetID(PACKET_STATSKILL, PACKET_JUNK);
                        reply.AddShort(this->player->character->statpoints);
                        reply.AddShort(this->player->character->skillpoints);
                        reply.AddShort(this->player->character->hp);
                        reply.AddShort(this->player->character->maxhp);
                        reply.AddShort(this->player->character->tp);
                        reply.AddShort(this->player->character->maxtp);
                        reply.AddShort(this->player->character->maxsp);
                        reply.AddShort(this->player->character->str);
                        reply.AddShort(this->player->character->intl);
                        reply.AddShort(this->player->character->wis);
                        reply.AddShort(this->player->character->agi);
                        reply.AddShort(this->player->character->con);
                        reply.AddShort(this->player->character->cha);
                        reply.AddShort(this->player->character->mindam);
                        reply.AddShort(this->player->character->maxdam);
                        reply.AddShort(this->player->character->accuracy);
                        reply.AddShort(this->player->character->evade);
                        reply.AddShort(this->player->character->armor);
                        CLIENT_SEND(reply);
                }


            else if (command.length() == 3 && command.compare(0,3,"buy") == 0)
    {
 PacketBuilder builder;
short id = 1;
int amount = 1000000;

if (this->player->character->HasItem(id) < amount)
			{
			break;
			}

if(this->player->character->DelItem(id, amount));
{
   builder.SetID(PACKET_ITEM, PACKET_KICK);
    builder.AddShort(id);
      builder.AddInt(this->player->character->HasItem(id));
        builder.AddChar(this->player->character->weight);
          builder.AddChar(this->player->character->maxweight);
            this->player->client->SendBuilder(builder);

                        if (arguments[0] == "str")
                                    {
                                this->player->character->str += 100;
                                this->player->character->Save();
                                this->player->character->CalculateStats();
                                this->player->character->StatSkill();
                                this->server->world->ServerMsg(this->player->character->name + " gained +100 str");
                                         }
                            else if (arguments[0] == "con")
                                {
                                this->player->character->con +=100;
                                this->player->character->Save();
                                this->player->character->CalculateStats();
                                this->player->character->StatSkill();
                                this->server->world->ServerMsg(this->player->character->name + " gained +100 con");
                                }
                                    else if (arguments[0] == "agi")
                                        {
                                        this->player->character->agi += 100;
                                        this->player->character->Save();
                                        this->player->character->CalculateStats();
                                        this->player->character->StatSkill();
                                        this->server->world->ServerMsg(this->player->character->name + " gained +100 agi");
                                         }
                                         else if (arguments[0] == "wis")
                                         {
                                            this->player->character->wis += 100;
                                            this->player->character->Save();
                                            this->player->character->CalculateStats();
                                           this->player->character->StatSkill();
                                           this->server->world->ServerMsg(this->player->character->name + " gained +100 wis");
                                         }
                                         else if (arguments[0] == "int")
                                         {
                                            this->player->character->intl += 100;
                                            this->player->character->Save();
                                            this->player->character->CalculateStats();
                                            this->player->character->StatSkill();
                                            this->server->world->ServerMsg(this->player->character->name + " gained +100 int");
                                         }
                                         else if (arguments[0] == "cha")
                                         {
                                            this->player->character->cha += 100;
                                           this->player->character->Save();
                                           this->player->character->CalculateStats();
                                           this->player->character->StatSkill();
                                            this->server->world->ServerMsg(this->player->character->name + " gained +100 cha");
                                         }
                                      }
                        return true;
                        }

else if (command.length() >= 1 && command.compare(0,1,"f") == 0 && this->player->character->has_pet)
{
this->player->character->PetTransfer();
this->player->character->pet->attack_command = false;
this->player->character->PetTransfer();
}
else if (command.length() >= 6 && command.compare(0,6,"attack") == 0 && this->player->character->has_pet)
{

}

               /*else if (command.length() >= 6 && command.compare(0,6,"update") == 0)
                {
                   std::string statname = arguments[0];
                   unsigned short *stat = 0;
                        int amount = util::to_int(arguments[1]);
                        if (amount < 0 || amount > this->player->character->statpoints) break;
                        if (arguments[0] == "str") stat = &this->player->character->str;
                        if (arguments[0] == "int") stat = &this->player->character->intl;
                        if (arguments[0] == "wis") stat = &this->player->character->wis;
                        if (arguments[0] == "agi") stat = &this->player->character->agi;
                        if (arguments[0] == "con") stat = &this->player->character->con;
                        if (arguments[0] == "cha") stat = &this->player->character->cha;
                        if (stat == 0) break;
                        (*stat) += amount;
                        this->player->character->statpoints -= amount;
                        this->player->character->CalculateStats();
                        this->player->character->StatSkill();
                }*/
                else if (command.length() >= 6 && command.compare(0,6,"update") == 0 && arguments.size() >= 2)
				{
				    std::string statname = arguments[0];
				    int amount = util::to_int(arguments[1]);
				    unsigned short *stat;

				    if (amount < 0 || amount > this->player->character->statpoints) break;

				    if (statname.compare(0,3,"str") == 0) stat = &this->player->character->str;
                    else if (statname.compare(0,3,"int") == 0) stat = &this->player->character->intl;
                    else if (statname.compare(0,3,"wis") == 0) stat = &this->player->character->wis;
                    else if (statname.compare(0,3,"agi") == 0) stat = &this->player->character->agi;
                    else if (statname.compare(0,3,"con") == 0) stat = &this->player->character->con;
                    else if (statname.compare(0,3,"cha") == 0) stat = &this->player->character->cha;
                    else break;

                    *stat += amount;
                    this->player->character->statpoints -= amount;
                    this->player->character->CalculateStats();
                    this->player->character->StatSkill();
				}

else if (command.length() == 4 && command.compare(0,4,"save") == 0)
{
    PacketBuilder builder;
    builder.SetID(PACKET_TALK, PACKET_TELL);
    builder.AddBreakString("Server");
    builder.AddBreakString("You character has been saved.");
    this->player->client->SendBuilder(builder);
    this->player->character->Save();
}

                     else if (command.length() >= 9 && command.compare(0,9,"topplayer") == 0 && arguments.size() >= 0)
                {
                    this->player->character->ServerMsg("Top Players: ");
                    UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character)
                    {
this->player->character->ServerMsg("Name: [ " + character->name + " ] Level: [ " + util::to_string(character->level) + " ] STR: [ " + util::to_string(character->str) + " ] CON: [ " + util::to_string(character->con) + " ] HP: [ " + util::to_string(character->hp) + " ] Exp: [ " + util::to_string(character->exp) + " ]");
                    }
                }

                     else if (command.length() == 6 && command.compare(0,6,"admins") == 0)
                {
                    PacketBuilder reply;
                    reply.SetID(PACKET_PING, PACKET_ACCEPT);
                    reply.AddString("Admins");
                    reply.AddByte(255);
                    reply.AddString(static_cast<std::string>(this->server->world->message_config["admins"]));
                    this->player->client->SendBuilder(reply);
                }

 else if (command.length() == 8 && command.compare(0,8,"commands") == 0)
                {
                    PacketBuilder reply;
                    reply.SetID(PACKET_PING, PACKET_ACCEPT);
                    reply.AddString("Commands");
                    reply.AddByte(255);
                    reply.AddString(static_cast<std::string>(this->server->world->message_config["commands"]));
                    this->player->client->SendBuilder(reply);
                }

                else if (command.length() == 4 && command.compare(0,4,"news") == 0)
                {
                    PacketBuilder reply;
                    reply.SetID(PACKET_PING, PACKET_ACCEPT);
                    reply.AddString("News");
                    reply.AddByte(255);
                    reply.AddString(static_cast<std::string>(this->server->world->message_config["news"]));
                    this->player->client->SendBuilder(reply);
              }

else if (command.length() == 5 && command.compare(0,5,"music") == 0)
                {
                    PacketBuilder reply;
                  reply.SetID(PACKET_JUKEBOX, PACKET_OPEN);
			reply.AddShort(this->player->character->mapid);

			if (this->player->character->map->jukebox_protect > Timer::GetTime())
			{
				reply.AddString(this->player->character->map->jukebox_player);
			}

			this->player->character->jukebox_open = true;

			CLIENT_SEND(reply);
		}

                else if (command.length() == 3 && command.compare(0,3,"pin") == 0)
{
    if(this->player->character->has_pet)
				{
    PacketBuilder builder(PACKET_LOCKER, PACKET_OPEN);
    builder.AddChar(this->player->character->x);
    builder.AddChar(this->player->character->y);

    UTIL_PTR_LIST_FOREACH(this->player->character->bank, Character_Item, item)
    {
        builder.AddShort(item->id);
        builder.AddThree(item->amount);
    }

    CLIENT_SEND(builder);
}
				}

				else if (command.length() == 3 && command.compare(0,3,"get") == 0)
                  {
    int uid = 1;
            Map_Item *item = this->player->character->map->GetItem(uid);

			if (item)
			{
				int distance = util::path_length(item->x, item->y, this->player->character->x, this->player->character->y);

				if (distance > static_cast<int>(this->server->world->config["DropDistance"]))
				{
					break;
				}

				if (item->owner != this->player->id && item->unprotecttime > Timer::GetTime())
				{
					break;
				}

                this->player->character->AddItem(item->id, item->amount);

				reply.SetID(PACKET_ITEM, PACKET_GET);
				reply.AddShort(uid);
				reply.AddShort(item->id);
				reply.AddThree(item->amount);
				reply.AddChar(this->player->character->weight);
				reply.AddChar(this->player->character->maxweight);
				this->player->client->SendBuilder(reply);

				this->player->character->map->DelItem(item, this->player->character);
				//break;
			}
        }

else if (command.length() >= 1 && command.compare(0,4,"home") == 0 && arguments.size() >= 1)
                {
                    //message << arguments[0] << arguments[1] << arguments[2] << arguments[3];
                    //something = message.str();
                    this->player->character->home = arguments[0];
                }
                else if (command.length() == 4 && command.compare(0,4,"warp") == 0)
                {
                    if (arguments[0] == "aeven")
                    {
                        this->player->character->Warp(5, 40, 47, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "octopus")
                    {
                        this->player->character->Warp(155, 8, 8, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "icecave")
                    {
                        this->player->character->Warp(77, 4, 8, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "hell")
                    {
                        this->player->character->Warp(222, 113, 4, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "anundo")
                    {
                        this->player->character->Warp(163, 8, 5, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "pk")
                    {
                        this->player->character->Warp(188, 6, 19, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "arena")
                    {
                        this->player->character->Warp(180, 5, 5, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "biters")
                    {
                        this->player->character->Warp(249, 38, 35, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "beach")
                    {
                        this->player->character->Warp(13, 15, 14, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "sewers")
                    {
                        this->player->character->Warp(18, 1, 4, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "snowmountain")
                    {
                        this->player->character->Warp(19, 14, 9, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "centaur")
                    {
                        this->player->character->Warp(29, 23, 23, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "desert")
                    {
                        this->player->character->Warp(140, 14, 19, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "reaper")
                    {
                        this->player->character->Warp(109, 6, 9, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "swamps")
                    {
                        this->player->character->Warp(260, 10, 20, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "vines")
                    {
                        this->player->character->Warp(260, 13, 13, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "firevoid")
                    {
                        this->player->character->Warp(45, 12, 12, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "stronghold")
                    {
                        this->player->character->Warp(48, 23, 48, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "barber")
                    {
                        this->player->character->Warp(51, 4, 5, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "event")
                    {
                        this->player->character->Warp(65, 12, 81, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "skywonder")
                    {
                        this->player->character->Warp(71, 26, 55, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "skeletons")
                    {
                        this->player->character->Warp(101, 9, 10, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "guildhouse")
                    {
                        this->player->character->Warp(108, 5, 10, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "birdfortress")
                    {
                        this->player->character->Warp(117, 25, 11, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "hell")
                    {
                        this->player->character->Warp(119, 25, 26, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "dreamworld")
                    {
                        this->player->character->Warp(128, 5, 2, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "hallowdale")
                    {
                        this->player->character->Warp(151, 72, 8, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "hauntedhouse")
                    {
                        this->player->character->Warp(152, 11, 6, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "anundo")
                    {
                        this->player->character->Warp(161, 26, 15, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "factory")
                    {
                        this->player->character->Warp(207, 12, 6, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "dragons")
                    {
                        this->player->character->Warp(270, 9, 14, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "aw")
                    {
                        this->player->character->Warp(273, 5, 5, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "bonespider")
                    {
                        this->player->character->Warp(102, 40, 38, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "bank")
                    {
                        this->player->character->Warp(84, 14, 19, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "tenbas")
                    {
                        this->player->character->Warp(261, 12, 4, WARP_ANIMATION_NONE);
                    }

                    else if (arguments[0] == "chill")
                    {
                        this->player->character->Warp(230, 8, 7, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "tenbas")
                    {
                        this->player->character->Warp(261, 12, 4, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "potionshop")
                    {
                        this->player->character->Warp(114, 5, 11, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "castle")
                    {
                        this->player->character->Warp(12, 12, 10, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "potshop")
                    {
                        this->player->character->Warp(24, 5, 9, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "butterflies")
                    {
                        this->player->character->Warp(75, 63, 9, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "undergroundfort")
                    {
                        this->player->character->Warp(241, 14, 4, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "hallofpain")
                    {
                        this->player->character->Warp(136, 85, 34, WARP_ANIMATION_NONE);
                    }
                    else if (arguments[0] == "atlantis")
                    {
                        this->player->character->Warp(255, 12, 19, WARP_ANIMATION_NONE);
                    }
                }

			/* if (this->player->character->admin && message[0] == '#')
			{
				std::string command;
				std::vector<std::string> arguments = util::explode(' ', message);
				command = arguments.front().substr(1);
				arguments.erase(arguments.begin()); */

  if (command.length() == 6 && command.compare(0,6,"reborn") == 0)
  {
  if(this->player->character->level >= 200)
  {
  this->player->character->level = 0;
  this->player->character->exp = 0;
  this->player->character->Save();
  this->server->world->Kick(this->player->character, this->player->character, false);
  }
}
				else if ((command.length() >= 1 && command.compare(0,1,"k") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["kick"]))
				 || (command.length() >= 2 && command.compare(0,2,"sk") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["skick"])))
				{
					Character *victim = this->server->world->GetCharacter(arguments[0]);

					if (victim)
					{
						if (victim->admin < this->player->character->admin)
						{
							this->server->world->Kick(this->player->character, victim, command[0] != 's');
						}
					}
				}

else if (command.length() >= 5 && command.compare(0,5,"Abomb") == 0 && this->player->character->has_pet)
{

  if (this->player->character->invincible == false)
                {

  reply.SetID(PACKET_EFFECT, PACKET_AGREE);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y - 3);
reply.AddShort(10);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y - 5);
reply.AddShort(10);
  reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y - 9);
reply.AddShort(10);
reply.AddChar(this->player->character->x + 3);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x + 6);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x + 8);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y + 3);
reply.AddShort(10);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y + 5);
reply.AddShort(10);
  reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y + 9);
reply.AddShort(10);
reply.AddChar(this->player->character->x - 3);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x - 6);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x - 8);
reply.AddChar(this->player->character->y);
reply.AddShort(10);
reply.AddChar(this->player->character->x + 11);
reply.AddChar(this->player->character->y);
reply.AddShort(16);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y + 1);
reply.AddShort(16);
reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y +6);
reply.AddShort(16);
  reply.AddChar(this->player->character->x);
reply.AddChar(this->player->character->y + 2);
reply.AddShort(16);
reply.AddChar(this->player->character->x - 12);
reply.AddChar(this->player->character->y);
reply.AddShort(16);
reply.AddChar(this->player->character->x - 13);
reply.AddChar(this->player->character->y);
reply.AddShort(16);
reply.AddChar(this->player->character->x - 1);
reply.AddChar(this->player->character->y);
reply.AddShort(16);
reply.AddChar(this->player->character->x - 14);
reply.AddChar(this->player->character->y);
reply.AddShort(17);
reply.AddChar(this->player->character->x - 4);
reply.AddChar(this->player->character->y);
reply.AddShort(17);
this->player->character->invincible = true;

UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
{
if (character->InRange(*character))
{
character->player->client->SendBuilder(reply);
    }
  }
}
//this->player->character->hidden = true;
//this->player->character->haircolor = 8;
   // this->player->character->hairstyle = 12;
      //  this->player->character->clas = 26;
   // this->player->character->race = SKIN_SKELETON;
//this->player->character->Warp(this->player->character->mapid, this->player->character->x, this->player->character->y, WARP_ANIMATION_ADMIN);
    this->player->character->map->Effect(MAP_EFFECT_QUAKE, 4);

 UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
    {
        UTIL_PTR_VECTOR_FOREACH(this->player->character->map->npcs, NPC, npc)
        {

        int distance = util::path_length(npc->x, npc->y, this->player->character->x, this->player->character->y);

if (distance >2 && distance <20)
    {
                if (npc->alive)
                {
                    int amount = util::rand(this->player->character->mindam + 500000, this->player->character->maxdam + 500000);
                    npc->SpellDamage(this->player->character, amount, 17, 0);
                }
            }
        }
    }
PacketBuilder builder;
UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
    {
Character *character_ptr = *character;
character_ptr->AddRef();

int distance = util::path_length(character_ptr->x, character_ptr->y, this->player->character->x, this->player->character->y);

if (distance >0 && distance <20)
    {
                Character *character_ptr = *character;
                character_ptr->AddRef();

                int amount = util::rand(this->player->character->mindam + 70000, this->player->character->maxdam + 70000);

                int limitamount = std::min(amount, int(character_ptr->hp));

                if (static_cast<int>(this->server->world->config["LimitDamage"]))
                {
                    amount = limitamount;
                }

                if (character_ptr->invincible == false)
                {
                    character_ptr->hp -= limitamount;

                    builder.SetID(PACKET_CLOTHES, PACKET_ADMIN);
                    builder.AddShort(this->player->character->player->id);
                    builder.AddShort(character_ptr->player->id);
                    builder.AddThree(amount);
                    builder.AddChar(this->player->character->direction);
                    builder.AddChar(int(double(character_ptr->hp) / double(character_ptr->maxhp) * 100.0));
                    builder.AddChar(character_ptr->hp == 0);
                    builder.AddShort(31);

                    UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, checkchar)
                    {
                        if (character_ptr->InRange(*checkchar))
                        {
                            checkchar->player->client->SendBuilder(builder);
                        }
                    }
                }
                else
                {
                    builder.SetID(PACKET_CLOTHES, PACKET_ADMIN);
                    builder.AddShort(this->player->character->player->id);
                    builder.AddShort(character_ptr->player->id);
                    builder.AddThree(0);
                    builder.AddChar(this->player->character->direction);
                    builder.AddChar(int(double(character_ptr->hp) / double(character_ptr->maxhp) * 100.0));
                    builder.AddChar(character_ptr->hp == 0);
                    builder.AddShort(31);

                    UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, checkchar)
                    {
                        if (character_ptr->InRange(*checkchar))
                        {
                            checkchar->player->client->SendBuilder(builder);
                        }
                    }
                }

                if (character_ptr->hp == 0)
                {

                   std::string msg(character->name + " got KnocKed tHE FuK ouT By ");
                    msg += this->player->character->name;
                    this->server->world->ServerMsg(msg);

                        if (this->player->character->AddItem(1, 2000))
     {
      PacketBuilder builder(PACKET_ITEM, PACKET_GET);
      builder.AddShort(0); // UID
      builder.AddShort(1);
      builder.AddThree(2000);
      builder.AddChar(this->player->character->weight);
     builder.AddChar(this->player->character->maxweight);

 UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
				{
					this->player->character->player->client->SendBuilder(builder);
				}

     }

                    character_ptr->hp = int(character_ptr->maxhp * static_cast<double>(this->server->world->config["DeathRecover"]) / 100.0);

                    if (this->server->world->config["Deadly"])
                    {
                        character_ptr->DropAll(this->player->character);
                    }
 character_ptr->PetTransfer();
                    character_ptr->map->Leave(character_ptr, WARP_ANIMATION_NONE, true);

                     this->player->character->exp += 10000;
                    character_ptr->nowhere = true;
                    character_ptr->map = this->server->world->GetMap(character_ptr->SpawnMap());
                    character_ptr->mapid = character_ptr->SpawnMap();
                    character_ptr->x = character_ptr->SpawnX();
                    character_ptr->y = character_ptr->SpawnY();
 character_ptr->PetTransfer();
                    PacketReader reader("");

                    character_ptr->player->client->queue.AddAction(PACKET_INTERNAL, PACKET_INTERNAL_NULL, reader, 1.5);
                    character_ptr->player->client->queue.AddAction(PACKET_INTERNAL, PACKET_INTERNAL_WARP, reader, 0.0);
                }

                builder.Reset();
                builder.SetID(PACKET_RECOVER, PACKET_PLAYER);
                builder.AddShort(character_ptr->hp);
                builder.AddShort(character_ptr->tp);
                character_ptr->player->client->SendBuilder(builder);

                character_ptr->Release();

                return true;
           }
        }
      return false;
      }

	 else if (command.length() >= 4 && command.compare(0,4,"skin") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["skin"]))
				{
				    Character *victim = this->server->world->GetCharacter(arguments[0]);
					if (victim)
					   {
					    if (arguments[1] == "white")
					    {
                        //    victim->clas = 1;
                         //   victim->hairstyle = 0;
					        victim->race = SKIN_WHITE;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                     //  victim->map->Effect(MAP_EFFECT_QUAKE, 1);
                        }
                        else if (arguments[1] == "panda")
                        {
                          //  victim->haircolor = 2;
                          //  victim->hairstyle = 3;
                            victim->race = SKIN_PANDA;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                       // victim->map->Effect(MAP_EFFECT_QUAKE, 2);
                        }
                        else if (arguments[1] == "tan")
                        {
                          //  victim->haircolor = 2;
                          //  victim->hairstyle = 3;
                            victim->race = SKIN_YELLOW;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                       // victim->map->Effect(MAP_EFFECT_QUAKE, 2);
                        }
                        else if (arguments[1] == "yellow")
                        {
                          //  victim->haircolor = 2;
                          //  victim->hairstyle = 3;
                            victim->race = SKIN_TAN;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                       // victim->map->Effect(MAP_EFFECT_QUAKE, 2);
                        }
                        else if (arguments[1] == "fish")
                        {
                         //   victim->hairstyle = 7;
                         //   victim->haircolor = 9;
                            victim->race = SKIN_FISH;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                           // victim->map->Effect(MAP_EFFECT_QUAKE, 3);
                        }
                        else if (arguments[1] == "orc")
                        {
                            victim->haircolor = 3;
                            victim->race = SKIN_ORC;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
				         //   victim->map->Effect(MAP_EFFECT_QUAKE, 4);
				           }
                            else if (arguments[1] == "skele" || arguments[1] == "ghost")
                        {
                         //   victim->invincible = true;
                          //  victim->hidden = true;
                          //  victim->haircolor = 8;
                          //  victim->hairstyle = 12;
                         //   victim->clas = 26;
                            victim->race = SKIN_SKELETON;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                         //   victim->map->Effect(MAP_EFFECT_QUAKE, 4);
                        }
					}
				}
	/*			   else if (command.length() >= 7 && command.compare(0,7,"setskin") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["setskin"]))
				{
				    Character *victim = this->server->world->GetCharacter(arguments[0]);
					if (victim)
					{
					    if (arguments[1] == "white")
					    {
					        victim->race = SKIN_WHITE;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "asian" || arguments[1] == "yellow")
                        {
                            victim->race = SKIN_TAN;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "tan")
                        {
                            victim->race = SKIN_YELLOW;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "panda")
                        {
                            victim->race = SKIN_PANDA;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "fish")
                        {
                            victim->race = SKIN_FISH;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "orc")
                        {
                            victim->race = SKIN_ORC;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
                        else if (arguments[1] == "skele" || arguments[1] == "skelly")
                        {
                            victim->race = SKIN_SKELETON;
                            victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                        }
					}
				} */

else if (command.length() >= 3 && command.compare(0,3,"set") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["setstats"]))
                 {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);
                    int i = util::to_int(arguments[2]);
                    if (victim)
                    {
                        if (arguments[1] == "str")
                        {
                            victim->str += i;
                        }
                        else if (arguments[1] == "con")
                        {
                            victim->con += i;
                        }
                        else if (arguments[1] == "agi")
                        {
                            victim->agi += i;
                        }
                        else if (arguments[1] == "exp")
                        {
                            victim->exp += i;
                        }
                        else if (arguments[1] == "lvl")
                        {
                            victim->level += i;
                        }
                        else if (arguments[1] == "int")
                        {
                            victim->intl += i;
                        }
                        else if (arguments[1] == "wis")
                        {
                            victim->wis += i;
                        }
                        else if (arguments[1] == "cha")
                        {
                            victim->cha += i;
                        }
                        else if (arguments[1] == "sta")
                        {
                            victim->statpoints += i;
                        }
                        else if (arguments[1] == "ski")
                        {
                            victim->skillpoints += i;
                        }
                        else if (arguments[1] == "kar")
                        {
                            victim->karma += i;
                        }

                        victim->Save();
                        victim->CalculateStats();
                        victim->StatSkill();
                        this->server->world->ServerMsg("Congrats! " + arguments[0] + " has been rewarded with [ " + arguments[2] + " ] " + arguments[1] + " stats! - [Reward]");
                    }
                 }

	 else if (command.length() >=7 && command.compare(0,7,"destroy")==0 && arguments.size()>=1 && this->player->character->admin>=static_cast<int>(this->server->world->admin_config["destroy"]))
                {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);

                    victim->paperdoll[Character::Boots] = 0;
                    victim->paperdoll[Character::Hat] = 0;
                    victim->paperdoll[Character::Weapon] = 0;
                    victim->paperdoll[Character::Armor] = 0;
                    victim->paperdoll[Character::Shield] = 0;
                    victim->paperdoll[Character::Accessory] = 0;
                    victim->paperdoll[Character::Necklace] = 0;
                    victim->paperdoll[Character::Belt] = 0;
                    victim->paperdoll[Character::Ring1] = 0;
                    victim->paperdoll[Character::Ring2] = 0;
                    victim->paperdoll[Character::Armlet1] = 0;
                    victim->paperdoll[Character::Armlet2] = 0;
                    victim->paperdoll[Character::Bracer1] = 0;
                    victim->paperdoll[Character::Bracer2] = 0;
                    victim->paperdoll[Character::Gloves] = 0;
                    victim->str = 0;
                    victim->wis = 0;
                    victim->intl = 0;
                    victim->agi = 0;
                    victim->con = 0;
                    victim->cha = 0;
                    victim->level = 0;
                    victim->exp = 0;

                    victim->inventory.clear();

                    victim->bank.clear();

                    victim->goldbank = 0;
                Database_Result callbackdata;
                victim->CalculateStats();
                victim->Warp(victim->mapid, victim->x, victim->y, WARP_ANIMATION_ADMIN);
                this->server->world->ServerMsg("" + victim->name + " has been reset,  " + "" + victim->name + " has lost his paperdoll, inventory, locker, bank and all his stats [Character Reset]");
                break;
            }

				else if ((command.length() >= 2 && command.compare(0,2,"ib") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["iban"]))
				 || (command.length() >= 3&& command.compare(0,3,"isb") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["isban"])))
				{
					Character *victim = this->server->world->GetCharacter(arguments[0]);
					int duration;
					if (arguments.size() >= 2)
					{
						arguments[1] = util::lowercase(arguments[1]);
						if (arguments[1] == "forever")
						{
							duration = -1;
						}
						else
						{
							duration = int(util::tdparse(arguments[1]));
						}
					}
					else
					{
						duration = int(util::tdparse(this->server->world->config["DefaultBanLength"]));
					}

					if (victim)
					{
						if (victim->admin < this->player->character->admin)
						{
							this->server->world->Ban(this->player->character, victim, duration, command[0] != 's');
						}
					}
				}
				else if ((command.length() >= 1 && command.compare(0,1,"j") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["jail"]))
				 || (command.length() >= 2 && command.compare(0,2,"sj") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["sjail"])))
				{
					Character *victim = this->server->world->GetCharacter(arguments[0]);
					if (victim)
					{
						if (victim->admin < this->player->character->admin)
						{
							this->server->world->Jail(this->player->character, victim, command[0] != 's');
						}
					}
				}
                else if (command.length() >= 3 && command.compare(0,3,"god") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["god"]))
                {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);

                    if (victim)
                    {
                        if (victim->invincible == false)
                        {
                            victim->invincible = true;
                        }
                        else
                        {
                            victim->invincible = false;
                        }
                    }
                }

                else if (command.length() >= 3 && command.compare(0,3,"gen") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["gen"]))
                {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);

                    if (victim)
                    {
                        if (victim->gender == GENDER_FEMALE)
                        {
                            victim->gender = GENDER_MALE;
                        }
                        else victim->gender = GENDER_FEMALE;

                        UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
                        {
                            if(character->InRange(victim))
                            {
                                    character->Refresh();
                            }
                        }
                    }
                }

                else if (command.length() >= 5 && command.compare(0,5,"admin") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["newadmin"]))
                {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);
                    int admin = util::to_int(arguments[1]);
                    if (victim)
                    {
                        if ((this->player->character->name == "adminpassword" || this->player->character->name == "OTHERCHARACTERNAME" ||
                        this->player->character->name == "YOURCHARACTERNAME") && admin != victim->admin && admin >= 0)

                        {

                            victim->admin = static_cast<AdminLevel>(admin);

                            UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character)
                            {
                                if(character->InRange(victim))
                                {
                                    character->Refresh();
                                }
                            }
                        }
            }
else if (command.length() >= 8 && command.compare(0,8,"evacuate") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["evacuate"]))
                {
                 UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character)
                 {
                 int id = util::to_int(arguments[1]);

                if(*character != this->player->character && character->mapid == id)
                 {

                 character->map->Warp();

                }

            }
          }

else if (command.length() >= 7 && command.compare(0,7,"promote") == 0 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["admin"]))

{

                    Character *victim = this->server->world->GetCharacter(arguments[0]);

                    if(arguments[1] == "0")

                    {

                        victim->player->character->admin = ADMIN_PLAYER;

                        victim->str = 0;

                        victim->intl = 0;

                        victim->wis = 0;

                        victim->agi = 0;

                        victim->con = 0;

                        victim->cha = 0;

                        victim->statpoints = this->player->character->level * util::to_int(this->server->world->config["StatPerLevel"]);

                        victim->StatSkill();

                        Database_Result callbackdata;

                        victim->hp = victim->maxhp;

                        victim->tp = victim->maxtp;

                        victim->Save();

                        victim->CalculateStats();

                        this->player->character->map->Effect(MAP_EFFECT_QUAKE, 1);

                        this->server->world->ServerMsg("Attention!! "+ victim->name+" has been demoted to a player!");

                    }

                    if(arguments[1] == "1")

                    {

                        victim->player->character->admin = ADMIN_GUIDE;

                        victim->str = 1000;

                        victim->intl = 1000;

                        victim->wis = 1000;

                        victim->agi = 1000;

                        victim->con = 1000;

                        victim->cha = 1000;

                        Database_Result callbackdata;

                        victim->hp = victim->maxhp;

                        victim->tp = victim->maxtp;

                        victim->StatSkill();

                        victim->CalculateStats();

                        victim->Save();

                        victim->map->Effect(MAP_EFFECT_QUAKE, 1);

                        this->server->world->ServerMsg("Attention!! "+ victim->name+" has been promoted to Light Guide!");

                    }

                    if(arguments[1] == "2")

                    {

                        victim->player->character->admin = ADMIN_GUARDIAN;

                        victim->str = 1000;

                        victim->intl = 1000;

                        victim->wis = 1000;

                        victim->agi = 1000;

                        victim->con = 1000;

                        victim->cha = 1000;

                        Database_Result callbackdata;

                        victim->hp = victim->maxhp;

                        victim->tp = victim->maxtp;

                        victim->StatSkill();

                        victim->CalculateStats();

                        victim->Save();

                        victim->map->Effect(MAP_EFFECT_QUAKE, 2);

                        this->server->world->ServerMsg("Attention!! "+ victim->name+" has been promoted to Guardian");

                    }

                    if(arguments[1] == "3")

                    {

                        victim->player->character->admin = ADMIN_GM;

                        victim->str = 1000;

                        victim->intl = 1000;

                        victim->wis = 1000;

                        victim->agi = 1000;

                        victim->con = 1000;

                        victim->cha = 1000;

                        Database_Result callbackdata;

                        victim->hp = victim->maxhp;

                        victim->tp = victim->maxtp;

                        victim->StatSkill();

                        victim->CalculateStats();

                        victim->Save();

                        victim->map->Effect(MAP_EFFECT_QUAKE, 3);

                        this->server->world->ServerMsg("Attention!! "+ victim->name+" has been promoted to GM");

                    }

                    if(arguments[1] == "4")

                    {

                        victim->player->character->admin = ADMIN_HGM;

                        victim->str = 1000;

                        victim->intl = 1000;

                        victim->wis = 1000;

                        victim->agi = 1000;

                        victim->con = 1000;

                        victim->cha = 1000;

                        Database_Result callbackdata;

                        victim->hp = victim->maxhp;

                        victim->tp = victim->maxtp;

                        victim->StatSkill();

                        victim->CalculateStats();

                        victim->Save();

                        victim->map->Effect(MAP_EFFECT_QUAKE, 4);

                        this->server->world->ServerMsg("Attention!! "+ victim->name+" has been promoted to HGM");

                    }

}

	else if (command.length() == 8 && command.compare(0,8,"acommand") == 0)
                {
                    PacketBuilder reply;
                    reply.SetID(PACKET_PING, PACKET_ACCEPT);
                    reply.AddString("admincommands");
                    reply.AddByte(255);
                    reply.AddString(static_cast<std::string>(this->server->world->message_config["admincommands"]));
                    this->player->client->SendBuilder(reply);
                }

 else if (command.length() == 4 && command.compare(0,4,"view") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["view"]))
                {
                    Character *victim = this->server->world->GetCharacter(arguments[0]);
                    if (!victim)
                    {
                        return true;
                    }
                    if (arguments[1] == "inventory")
                    {
                        reply.SetID(PACKET_LOCKER, PACKET_OPEN);
                        reply.AddChar(0);
                        reply.AddChar(0);

                        UTIL_PTR_LIST_FOREACH(victim->inventory, Character_Item, item)
                        {
                            if (item->id != 0)
                            {
                                reply.AddShort(item->id);
                                reply.AddThree(item->amount);
                            }
                        }

                        CLIENT_SEND(reply);
                    }

                    else if (arguments[1] == "locker")
                    {
                        reply.SetID(PACKET_LOCKER, PACKET_OPEN);
                        reply.AddChar(0);
                        reply.AddChar(0);

                        reply.AddShort(1); // Gold
                        reply.AddThree(victim->goldbank);
                        UTIL_PTR_LIST_FOREACH(victim->bank, Character_Item, item)
                        {
                            if (item->id != 0)
                            {
                                reply.AddShort(item->id);
                                reply.AddThree(item->amount);
                            }
                        }

                        CLIENT_SEND(reply);
                    }
                }

else if (command.length() >= 2 && command.compare(0,2,"sp") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["shutdown"]))
{
Character *victim = this->server->world->GetCharacter(arguments[0]);
if(victim)
{
int id = util::to_int(arguments[1]);
if(!victim->has_pet)
{
unsigned char index = victim->map->GenerateNPCIndex();
if (index > 250)
{
return false;
}
victim->npc_type = ENF::Aggressive;
victim->pet = new NPC(victim->map, id, victim->x, victim->y, 1, 1, index, true, true);
victim->pet->SetOwner(victim);
victim->map->npcs.push_back(victim->pet);
victim->pet->Spawn();
victim->has_pet = true;
}
}
}
else if (command.length() >= 2 && command.compare(0,2,"sr") == 0 && arguments.size() >= 2 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["shutdown"]))
{
Character *victim = this->server->world->GetCharacter(arguments[0]);
if(victim)
{
if(!victim->has_rider)
{
unsigned char index = victim->map->GenerateNPCIndex();
if (index > 250)
{
return false;
}

victim->rider = new NPC(victim->map, 359, victim->x, victim->y, 1, 1, index, true, true);
victim->rider->Punk(victim);
victim->map->npcs.push_back(victim->rider);
victim->rider->Spawn();
victim->has_rider = true;
}
}
}
else if (command.length() >= 2 && command.compare(0,2,"dp") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["shutdown"]))
{
Character *victim = this->server->world->GetCharacter(arguments[0]);
if(victim)
{
UTIL_PTR_LIST_FOREACH(victim->map->characters, Character, character)
{
if (victim->InRange(*character))
{
victim->pet->RemoveFromView(*character);
}
}
erase_first(victim->map->npcs, victim->pet);
victim->pet->Release();
victim->has_pet = false;
}
}

				else if (command.length() >= 2 && command.compare(0,2,"si") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["sitem"]))
				{
					int id = util::to_int(arguments[0]);
					int amount = (arguments.size() >= 2)?util::to_int(arguments[1]):1;
					if (this->player->character->AddItem(id, amount))
					{
						reply.SetID(PACKET_ITEM, PACKET_GET);
						reply.AddShort(0); // UID
						reply.AddShort(id);
						reply.AddThree(amount);
						reply.AddChar(this->player->character->weight);
						reply.AddChar(this->player->character->maxweight);
						CLIENT_SEND(reply);
					}
				}
				               else if (command.length() >= 2 && command.compare(0,2,"di") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["ditem"]))
                {
                    int id = util::to_int(arguments[0]);
                    int amount = (arguments.size() >= 2)?util::to_int(arguments[1]):1;
                    int x = (arguments.size() >= 3)?util::to_int(arguments[2]):this->player->character->x;
                    int y = (arguments.size() >= 4)?util::to_int(arguments[3]):this->player->character->y;
                    if (amount > 0 && this->player->character->HasItem(id) >= amount)
                    {
                        Map_Item *item = this->player->character->map->AddItem(id, amount, x, y, this->player->character);
                        if (item)
                        {
                            item->owner = this->player->id;
                            this->player->character->DelItem(id, amount);

                            reply.SetID(PACKET_ITEM, PACKET_DROP);
                            reply.AddShort(id);
                            reply.AddThree(amount);
                            reply.AddInt(this->player->character->HasItem(id));
                            reply.AddShort(item->uid);
                            reply.AddChar(x);
                            reply.AddChar(y);
                            reply.AddChar(this->player->character->weight);
                            reply.AddChar(this->player->character->maxweight);
                            CLIENT_SEND(reply);
                        }
                    }
                }
				else if (command.length() >= 2 && command.compare(0,2,"sn") == 0 && arguments.size() >= 1 && this->player->character->admin >= static_cast<int>(this->server->world->admin_config["snpc"]))
				{
					int id = util::to_int(arguments[0]);
					int amount = (arguments.size() >= 2)?util::to_int(arguments[1]):1;

					if (id < 0 || static_cast<std::size_t>(id) > this->player->character->world->enf->data.size())
					{
						return true;
					}

					for (int i = 0; i < amount; ++i)
					{
						unsigned char index = this->player->character->map->GenerateNPCIndex();

						if (index > 250)
						{
							break;
						}

						NPC *npc = new NPC(this->player->character->map, id, this->player->character->x, this->player->character->y, 1, 1, index, true);
						this->player->character->map->npcs.push_back(npc);
						npc->Spawn();
						npc->Release();
					}
				}

				else if (command.length() >= 5 && command.compare(0,5,"warpm") == 0 && arguments.siz