[Release] zTeam Season 8 Episode 2 (Source)

Page 119 of 130 FirstFirst ... 1969109111112113114115116117118119120121122123124125126127129 ... LastLast
Results 2,951 to 2,975 of 3226
  1. #2951
    -( . ) ( . )- clerigz is offline
    MemberRank
    Mar 2012 Join Date
    1,365Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    anyone fix when season 4 items upgrading to +10? in chaosmachine?

  2. #2952
    Account Upgraded | Title Enabled! michi28 is offline
    MemberRank
    Sep 2014 Join Date
    Maldonado, Uy.Location
    473Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    soon new mueditor for zteam s8 and my repack s9.



    PS: MuEditor based on the MuEmu Editor..

  3. #2953
    Enthusiast kaho0706 is offline
    MemberRank
    Mar 2009 Join Date
    46Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    /evo , /reset command source plz T^T

  4. #2954
    Apprentice Golden Dragon is offline
    MemberRank
    Jan 2016 Join Date
    19Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by michi28 View Post
    soon new mueditor for zteam s8 and my repack s9.



    PS: MuEditor based on the MuEmu Editor..


    Wonderfull Michi28 !! :)

  5. #2955
    Account Upgraded | Title Enabled! michi28 is offline
    MemberRank
    Sep 2014 Join Date
    Maldonado, Uy.Location
    473Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Well as promised, I leave the Mu Editor for files Zteam

    Link Mediafire : MuEditor

    Link Mega : https://mega.nz/#!iokVzaLS!3KPIWj5VG...MUqsewy1Dy6YVo


    Password: aogames.net




    - - - Updated - - -

    Well, for those who have not found yet. I share them CASHSHOP editor. for files Zteam..


    Link Mega: https://mega.nz/#!HgVnlAIA!RVG58jdmRUVzJj4kIJnJnjrUZCOJJW_edVKgMCobxeI


    Link Mediafire: http://www.mediafire.com/download/ucauze588b2b285/CashShopEditor_zTeam.rar



    password: aogames.net

  6. #2956
    Account Upgraded | Title Enabled! Piiirags is offline
    MemberRank
    Apr 2009 Join Date
    225Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by Omaruu View Post
    I think something is wrong with "pet system (/summon 1,2,3,-1)", it allways gives me error compiling the project. Something about gObjUseSkill.SkillMonsterCalls not defined. But when i comment it out i can compile project.


    P.S
    About c++ i know zero, so this is just a guess...

  7. #2957

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by michi28 View Post
    Well as promised, I leave the Mu Editor for files Zteam

    Link Mediafire : MuEditor

    Link Mega : https://mega.nz/#!iokVzaLS!3KPIWj5VG...MUqsewy1Dy6YVo


    Password: aogames.net




    - - - Updated - - -

    Well, for those who have not found yet. I share them CASHSHOP editor. for files Zteam..


    Link Mega: https://mega.nz/#!HgVnlAIA!RVG58jdmR...W_edVKgMCobxeI


    Link Mediafire: CashShopEditor_zTeam



    password: aogames.net
    Can you make for ss6 version.thanks

  8. #2958
    Proficient Member R3jectZ is offline
    MemberRank
    Jun 2011 Join Date
    PhilippinesLocation
    198Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by piradzins View Post
    I think something is wrong with "pet system (/summon 1,2,3,-1)", it allways gives me error compiling the project. Something about gObjUseSkill.SkillMonsterCalls not defined. But when i comment it out i can compile project.


    P.S
    About c++ i know zero, so this is just a guess...
    i think its having a problem here. its working without that code. i commented that part :) thanks for the help pal :)

  9. #2959
    -( . ) ( . )- clerigz is offline
    MemberRank
    Mar 2012 Join Date
    1,365Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    @michi28 bro i got this error lacking structure in the DB?


  10. #2960
    Account Upgraded | Title Enabled! jeffzkie69 is offline
    MemberRank
    Jul 2009 Join Date
    523Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by clerigz View Post
    @michi28 bro i got this error lacking structure in the DB?

    you cannot use that item editor via remote it can only work locally

  11. #2961
    -( . ) ( . )- clerigz is offline
    MemberRank
    Mar 2012 Join Date
    1,365Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by jeffzkie69 View Post
    you cannot use that item editor via remote it can only work locally
    i did not use that editor via remote. it was local

  12. #2962
    Proficient Member R3jectZ is offline
    MemberRank
    Jun 2011 Join Date
    PhilippinesLocation
    198Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by Omaruu View Post
    New Update: DOX.bg - Файл организатор за лесно споделяне и съхранение на файлове
    Just a small bug fix:
    - Exp Rollback to Level 393 Fixed

    - - - Updated - - -



    Can you please share and monsters skins if you have them?
    anybody? in this source the reset system is working 100%?

  13. #2963
    Account Upgraded | Title Enabled! michi28 is offline
    MemberRank
    Sep 2014 Join Date
    Maldonado, Uy.Location
    473Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by jeffzkie69 View Post
    you cannot use that item editor via remote it can only work locally


    I local use

  14. #2964
    Account Upgraded | Title Enabled! PiECLOUD is offline
    MemberRank
    Apr 2015 Join Date
    237Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by michi28 View Post
    Well as promised, I leave the Mu Editor for files Zteam

    Link Mediafire : MuEditor

    Link Mega : https://mega.nz/#!iokVzaLS!3KPIWj5VG...MUqsewy1Dy6YVo


    Password: aogames.net




    - - - Updated - - -

    Well, for those who have not found yet. I share them CASHSHOP editor. for files Zteam..


    Link Mega: https://mega.nz/#!HgVnlAIA!RVG58jdmR...W_edVKgMCobxeI


    Link Mediafire: CashShopEditor_zTeam



    password: aogames.net

    still buggy.

  15. #2965
    Valued Member bopoh1987 is offline
    MemberRank
    Feb 2014 Join Date
    Рига, LatviLocation
    118Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Yup last source have error.

  16. #2966
    DeV MuCMS Developer reseter is offline
    MemberRank
    Jun 2013 Join Date
    Error 404Location
    476Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by bopoh1987 View Post
    Yup last source have error.
    What errors?

  17. #2967
    Valued Member bopoh1987 is offline
    MemberRank
    Feb 2014 Join Date
    Рига, LatviLocation
    118Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    // ----

    case Command::Summon:
    {

    int getMonsterID = this->GetTokenNumber();

    if (getMonsterID == -1) { //Removing Of Pet
    g_USystemLog.Output("[USystem] [Pet] [Kill] Name: [%s] ", lpUser->Name);
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    MsgOutput(lpUser->m_Index, "Pet has been removed");
    }
    if (getMonsterID == 1) { //Satyros
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Satyros] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 353, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Satyros] created");
    }
    if (getMonsterID == 2) { //Blade Hunter
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Blade Hunter] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 354, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Blade Hunter] created");
    }
    if (getMonsterID == 3) { //Kentauros
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Kentauros] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 355, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Kentauros] created");
    }

    }
    break;
    // ----

    - - - Updated - - -

    Something's Not Right Here .

    - - - Updated - - -

    1>CommandManager.cpp(1716): error C2046: недопустимый вариант выбора
    1>CommandManager.cpp(1731): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1731): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1738): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1738): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1745): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1745): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1750): error C2043: недопустимый break

    - - - Updated - - -

    in commandmanager.cpp need add #include "ObjUseSkill.h" but still have error 1>CommandManager.cpp(1717): error C2046: недопустимый вариант выбора
    1>CommandManager.cpp(1751): error C2043: недопустимый break.

  18. #2968
    Apprentice jprey7 is offline
    MemberRank
    Jun 2012 Join Date
    23Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by bopoh1987 View Post
    // ----

    case Command::Summon:
    {

    int getMonsterID = this->GetTokenNumber();

    if (getMonsterID == -1) { //Removing Of Pet
    g_USystemLog.Output("[USystem] [Pet] [Kill] Name: [%s] ", lpUser->Name);
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    MsgOutput(lpUser->m_Index, "Pet has been removed");
    }
    if (getMonsterID == 1) { //Satyros
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Satyros] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 353, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Satyros] created");
    }
    if (getMonsterID == 2) { //Blade Hunter
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Blade Hunter] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 354, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Blade Hunter] created");
    }
    if (getMonsterID == 3) { //Kentauros
    GCRecallMonLife(lpUser->m_Index, 60, 0);
    gObjMonsterCallKill(lpUser->m_Index);
    g_USystemLog.Output("[USystem] [Pet] [Kentauros] Name: [%s] ", lpUser->Name);
    gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 355, lpUser->X - 1, lpUser->Y + 1);
    MsgOutput(lpUser->m_Index, "Pet [Kentauros] created");
    }

    }
    break;
    // ----

    - - - Updated - - -

    Something's Not Right Here .

    - - - Updated - - -

    1>CommandManager.cpp(1716): error C2046: недопустимый вариант выбора
    1>CommandManager.cpp(1731): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1731): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1738): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1738): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1745): error C2065: gObjUseSkill: необъявленный идентификатор
    1>CommandManager.cpp(1745): error C2228: выражение слева от ".SkillMonsterCalls" должно представлять класс, структуру или объединение
    1> тип: 'unknown-type'
    1>CommandManager.cpp(1750): error C2043: недопустимый break

    - - - Updated - - -

    in commandmanager.cpp need add #include "ObjUseSkill.h" but still have error 1>CommandManager.cpp(1717): error C2046: недопустимый вариант выбора
    1>CommandManager.cpp(1751): error C2043: недопустимый break.
    add:

    #include "ObjUseSkill.h"

    /*****************************
    //} this
    // ----

    case Command::Summon:

    /****************************************
    case 3: //WCoinG
    {
    //lpUser->m_wgCashPoint
    }
    break;
    }
    } <------this add
    }
    // -------------------------------------------------------------------------------

    BYTE CommandManager::CheckCommand(LPOBJ lpUser, LPSTR Text)

  19. #2969
    Valued Member bopoh1987 is offline
    MemberRank
    Feb 2014 Join Date
    Рига, LatviLocation
    118Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    still dont work ... damn whis codes ))

  20. #2970
    Member ispyder is offline
    MemberRank
    Aug 2015 Join Date
    76Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    If you don't know what { and } are, why are you trying to compile the project yourself? Wtf?!

  21. #2971
    Apprentice jprey7 is offline
    MemberRank
    Jun 2012 Join Date
    23Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Code:
    #include "stdafx.h"
    #include "CommandManager.h"
    #include "..\pugixml\pugixml.hpp"
    #include "GameMain.h"
    #include "DSProtocol.h"
    #include "BuffEffectSlot.h"
    #include "..\common\winutil.h"
    #include "CastleSiege.h"
    #include "Crywolf.h"
    #include "MoveCommand.h"
    #include "Gate.h"
    #include "MultiWareHouseSystem.h"
    #include "SProtocol.h"
    #if (ENABLE_CUSTOM_OFFLINETRADE == 1)
    #include "OfflineTrade.h"
    #endif
    #include "ObjUseSkill.h"
    // -------------------------------------------------------------------------------
    
    CLogToFile g_GMChatLog("GMSystem", ".\\LOG\\GMLog", TRUE);
    CLogToFile g_USystemLog("USystem", ".\\LOG\\ULog", TRUE);
    CLogToFile g_PostLog("Post", ".\\LOG\\Post", TRUE);
    
    
    using namespace pugi;
    CommandManager g_CommandManager;
    // -------------------------------------------------------------------------------
    
    CommandManager::CommandManager()
    {
    
    }
    // -------------------------------------------------------------------------------
    
    CommandManager::~CommandManager()
    {
    
    }
    // -------------------------------------------------------------------------------
    			//int tempindex;
    			//int aIndex;
    
    void CommandManager::Init()
    {
    	this->m_CommandInfo.clear();
    	if( this->m_CommandInfo.capacity() > 0 )
    	{
    		std::vector<CommandInfo>().swap(this->m_CommandInfo);
    	}
    }
    // -------------------------------------------------------------------------------
    
    void CommandManager::Load()
    {
    	this->Init();
    	this->Read(gDirPath.GetNewPath(FILE_CUSTOM_COMMANDMANAGER));
    }
    // -------------------------------------------------------------------------------
    
    void CommandManager::Read(LPSTR File)
    {
    	xml_document Document;
    	xml_parse_result Result = Document.load_file(File);
    	// ----
    	if( Result.status != status_ok )
    	{
    		MsgBox("[CommandManager] File %s not found! %d", File, Result.status);
    		return;
    	}
    	// ----
    	xml_node CommandManager = Document.child("commandmanager");
    	xml_node CommandList = CommandManager.child("commandlist");
    	// ----
    	for( xml_node Node = CommandList.child("command"); Node; Node = Node.next_sibling() )
    	{
    		CommandInfo lpCommand = { 0 };
    		lpCommand.Index = Node.attribute("id").as_int();
    		lpCommand.Access = Node.attribute("access").as_int();
    		lpCommand.MinLevel = Node.attribute("minlevel").as_int();
    		lpCommand.MinReset = Node.attribute("minreset").as_int();
    		lpCommand.PriceType = Node.attribute("pricetype").as_int();
    		lpCommand.Price = Node.attribute("price").as_int();
    		lpCommand.PremiumAccess = Node.attribute("premium").as_int();
    		strcpy(lpCommand.Text, Node.text().as_string());
    		this->m_CommandInfo.push_back(lpCommand);
    	}
    }
    // -------------------------------------------------------------------------------
    
    void CommandManager::Run(LPOBJ lpUser, LPSTR Text)
    {
    	if (g_SelfDefenseOn)
    	{
    		if ((GetTickCount() - lpUser->MySelfDefenseTime) < g_SelfDefenseTime * 1000) 
    		{
    			GCServerMsgStringSend(lMsg.Get(1133), lpUser->m_Index, 1);
    			return;
    		}
    	}
    	// ----
    	LPSTR Command = { 0 };
    	char Buffer[250];
    	char Separator[2] = " ";
    	// ----
    	strcpy(Buffer, Text);
    	Command = strtok(Buffer, Separator);
    	// ----
    	CommandInfo* lpCommand = this->GetCommand(Command);
    	BYTE CheckStatus = this->CheckCommand(lpUser, Command);	
    
    	if (lpCommand == NULL) {
    		return;
    	}
    
    	if( CheckStatus != 1)
    	{
    		if( CheckStatus == 0 )
    		{
    			MsgOutput(lpUser->m_Index, "Wrong command");
    		}
    		else if( CheckStatus == 2 )
    		{
    			MsgOutput(lpUser->m_Index, "Your access code is wrong for this command");
    		}
    		else if( CheckStatus == 3 
    			&& lpCommand->Index != Command::PKReset) // special calculation
    		{
    			MsgOutput(lpUser->m_Index, "You are short money for this command");
    		}
    		else if( CheckStatus == 4 )
    		{
    			MsgOutput(lpUser->m_Index, "Your premium access code is wrong for this command");
    		}
    		else if( CheckStatus == 5 )
    		{
    			MsgOutput(lpUser->m_Index, "Your level is small for use this command");
    		}
    		else if( CheckStatus == 6 )
    		{
    			MsgOutput(lpUser->m_Index, "Your reset is small for use this command");
    		}
    		// ----
    		return;
    	}
    	// ----
    	
    	// ----
    	switch(lpCommand->Index)
    	{
    	case Command::BanChat:
    		{
    			LPSTR UserName = this->GetTokenString();
    			int Time = this->GetTokenNumber();
    			// ----
    			if( UserName == 0 || Time == -1 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			
    
    			//LogAddTD("[GMSystem] [BanChat] GMName: [%s] -> Name: [%s]", lpUser->Name, lpTarget->Name);
    			g_GMChatLog.Output("[GMSystem] [BanChat] GMName: [%s] -> Name: [%s]", lpUser->Name, lpTarget->Name);
    
    			// ----
    			lpTarget->ChatLimitTime = Time;
    
    		}
    		break;
    		// --
    	case Command::BanUser: //Need DB request for set new ctrlcode
    		{
    			MsgOutput(lpUser->m_Index, "Command temporarily not working");
    			return;
    			/*LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    			MsgOutput(lpUser->m_Index, "Syntax error in command");
    			return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    			return;
    			}
    			// ----
    			lpTarget->Authority = 1;*/
    		}
    		break;
    		// --
    	case Command::BanAccount:
    		{
    			MsgOutput(lpUser->m_Index, "Command temporarily not working");
    			return;
    		}
    		break;
    		// --
    	case Command::Disconnect:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			LPOBJ lpObj;
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    
    			//LogAddTD("[GMSystem] [Disconnect] GMName: [%s] -> Name: [%s] ", lpUser->Name, lpTarget->Name);
    			g_GMChatLog.Output("[GMSystem] [Disconnect] GMName: [%s] -> Name: [%s] ", lpUser->Name, lpTarget->Name);
    
    			// ----
    			CloseClient(lpTarget->m_Index);
    
    #if (ENABLE_CUSTOM_OFFLINETRADE == 1)
    			if( lpTarget->bOffTrade )
    			{
    				gObjDel(lpTarget->m_Index);
    			}
    #endif
    		}
    		break;
    		// --
    	case Command::PKSet:
    		{
    			LPSTR UserName = this->GetTokenString();
    			int Level = this->GetTokenNumber();
    			// ----
    			if( UserName == 0 || Level == -1 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			lpTarget->m_PK_Level = Level;
    			// ----
    			if( lpTarget->PartyNumber >= 0 )
    			{
    				gParty.SetPkLevel(lpTarget->PartyNumber, lpTarget->m_Index, lpTarget->DBNumber, lpTarget->m_PK_Level);
    				gParty.SetPkCount(lpTarget->PartyNumber);
    			}
    			// ----
    			GCPkLevelSend(lpTarget->m_Index, lpTarget->m_PK_Level);
    		}
    		break;
    
    		/* // Old
    		// --
    	case Command::PKReset:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			if (lpUser->Money < lpCommand->Price * lpTarget->m_PK_Count) {
    				MsgOutput(lpUser->m_Index, "You are short of money");
    				return;
    			}
    
    			lpUser->Money -= lpCommand->Price * lpTarget->m_PK_Count;
    			GCMoneySend(lpUser->m_Index, lpUser->Money);
    			
    			lpTarget->m_PK_Count = 0;
    			lpTarget->m_PK_Level = 3;
    			lpTarget->m_PK_Time	= 0;
    			// ----
    			if( lpTarget->PartyNumber >= 0 )
    			{
    				gParty.SetPkLevel(lpTarget->PartyNumber, lpTarget->m_Index, lpTarget->DBNumber, lpTarget->m_PK_Level);
    				gParty.SetPkCount(lpTarget->PartyNumber);
    			}
    			// ----
    			GCPkLevelSend(lpTarget->m_Index, lpTarget->m_PK_Level);
    		}
    		break;
    		// --
    
    		*/
    		case Command::PKReset:
    		{
    			// ----
    
    			if ( lpUser->m_PK_Level <= 3 )
    			{
    				MsgOutput(lpUser->m_Index, "You are not PK.");
    				return;
    			}
    
    			if (lpUser->Money < lpCommand->Price * lpUser->m_PK_Count) {
    				MsgOutput(lpUser->m_Index, "You are short of money");
    				return;
    			}
    
    			lpUser->Money -= lpCommand->Price * lpUser->m_PK_Count;
    			GCMoneySend(lpUser->m_Index, lpUser->Money);
    			
    			lpUser->m_PK_Count = 0;
    			lpUser->m_PK_Level = 3;
    			lpUser->m_PK_Time	= 0;
    			// ----
    			if( lpUser->PartyNumber >= 0 )
    			{
    				gParty.SetPkLevel(lpUser->PartyNumber, lpUser->m_Index, lpUser->DBNumber, lpUser->m_PK_Level);
    				gParty.SetPkCount(lpUser->PartyNumber);
    			}
    			// ----
    
    			GCPkLevelSend(lpUser->m_Index, lpUser->m_PK_Level);
    		}
    		break;
    		// --
    
    	case Command::MoneySet:
    		{
    			LPSTR UserName = this->GetTokenString();
    			int Money = this->GetTokenNumber();
    			// ----
    
    			if( UserName == 0 || Money == -1 || Money == 1000000000)
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			lpTarget->Money = Money;
    
    			//LogAddTD("[GMSystem] [MoneySet] GMName: [%s] -> Name: [%s] Money: [%d] ", lpUser->Name, lpTarget->Name, lpTarget->Money);
    			g_GMChatLog.Output("[GMSystem] [MoneySet] GMName: [%s] -> Name: [%s] Money: [%d] ", lpUser->Name, lpTarget->Name, lpTarget->Money);
    
    			GCMoneySend(lpTarget->m_Index, lpTarget->Money);
    		}
    		break;
    		// --
    	case Command::MakeItem:
    		{
    			int EBP798;
    			int EBP79C = 0;
    			int EBP7A0 = 0;
    			int EBP7A4 = 0;
    			BYTE EBP7A8 = 0;
    			int iDur = (BYTE)-1;//7AC
    			int EBP7B0;
    
    			int ItemCount = this->GetTokenNumber();
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    			EBP798 = this->GetTokenNumber();
    			iDur = this->GetTokenNumber();
    			EBP79C = this->GetTokenNumber();
    			EBP7A0 = this->GetTokenNumber();
    			EBP7B0 = this->GetTokenNumber();
    
    			if( ItemCount <= 0 )
    			{
    				ItemCount = 1;
    			}
    
    			if( ItemCount > 10 )
    			{
    				ItemCount = 10;
    			}
    
    			if( ItemType < 0 || ItemType > 15 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( ItemIndex < 0 || ItemIndex > 512 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if(ItemType == 13 && ItemIndex == 3)
    			{
    				if(	EBP7B0 < 8)
    				{
    					EBP7A4 = EBP7B0;
    				}
    			}
    			else
    			{
    				if( EBP7B0 >= 4 )
    				{
    					EBP7A4 = EBP7B0 / 4;
    				}
    				else
    				{
    					EBP7B0 = 0;
    				}
    			}
    
    			int EBP7B4 = this->GetTokenNumber();
    			int EBP7B8 = this->GetTokenNumber();
    
    			if(EBP7B4 != 0 )
    			{
    				if( EBP7B8 == 0)
    				{
    					if((rand()%100) < 80)
    					{
    						EBP7B4 |= 4; 
    					}
    					else
    					{
    						EBP7B4 |= 8; 
    					}
    				}
    				else if (EBP7B8 == 1) 
    				{
    					EBP7B4 |= 4; 
    				}
    				else
    				{
    					EBP7B4 |= 8; 
    				}
    			}
    
    			int EBP7BC = this->GetTokenNumber();
    
    			if(EBP7BC > 0)
    			{
    				EBP7A8 |= 0x20;
    			}
    
    			int EBP7C0 = this->GetTokenNumber();
    
    			if(EBP7C0 > 0)
    			{
    				EBP7A8 |= 0x10;
    			}
    
    			int EBP7C4 = this->GetTokenNumber();
    
    			if(EBP7C4 > 0)
    			{
    				EBP7A8 |= 0x08;
    			}
    
    			int EBP7C8 = this->GetTokenNumber();
    
    			if(EBP7C8 > 0)
    			{
    				EBP7A8 |= 0x04;
    			}
    
    			int EBP7CC = this->GetTokenNumber();
    
    			if(EBP7CC > 0)
    			{
    				EBP7A8 |= 0x02;
    			}
    
    			int EBP7D0 = this->GetTokenNumber();
    
    			if(EBP7D0 > 0)
    			{
    				EBP7A8 |= 0x01;
    			}
    
    			if( ItemType >= 0 && ItemType < 512 &&
    				ItemIndex >= 0 && ItemIndex < 512)
    			{
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				if( iItemNumber == ITEMGET(0,19) || 
    					iItemNumber == ITEMGET(4,18) || 
    					iItemNumber == ITEMGET(5,10) || 
    					iItemNumber == ITEMGET(2,13))
    				{
    					EBP7A8 = 63;	
    				}
    
    
    				//LogAddTD("[GMSystem] [Item Create] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d] Level: [%d] Dur: [%d] Skill: [%d] Luck: [%d] Opt: [%d] ExcOpt: [%d] AncOpt: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, EBP798, iDur, EBP79C, EBP7A0, EBP7A4, EBP7A8, EBP7B4);
    				g_GMChatLog.Output("[GMSystem] [Item Create] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d] Level: [%d] Dur: [%d] Skill: [%d] Luck: [%d] Opt: [%d] ExcOpt: [%d] AncOpt: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, EBP798, iDur, EBP79C, EBP7A0, EBP7A4, EBP7A8, EBP7B4);
    
    				for( int i =0;i < ItemCount; i++ )
    				{
    					ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, EBP798, iDur, EBP79C, EBP7A0, EBP7A4, -1, EBP7A8, EBP7B4); 
    				}
    
    			}
    		}
    		break;
    		// --
    	case Command::MakeRandomSet:
    		{
    			int Count = this->GetTokenNumber();
    			// ----
    			if( Count == -1 || Count > 10)
    			{
    				MsgOutput(lpUser->m_Index, "Out of range 1-10");
    				return;
    			}
    
    			if( Count <= 0 )
    			{
    				Count = 1;
    			}
    
    			if( Count > 10 )
    			{
    				Count = 10;
    			}
    
    			// ----
    
    			//LogAddTD("[GMSystem] [RandomSet] GMName: [%s] Count: [%d]", lpUser->Name, Count);
    			g_GMChatLog.Output("[GMSystem] [RandomSet] GMName: [%s] Count: [%d]", lpUser->Name, Count);
    
    			for( int i = 0; i < Count; i++ )
    			{
    				MakeRandomSetItem(lpUser->m_Index);
    			}
    		}
    		break;
    		// ---
    	case Command::HideOn:
    		{
    			gObjAddBuffEffect(lpUser, BUFF_INVISIBILITY, 0, 0, 0, 0, -10);
    			gObjViewportListProtocolDestroy(lpUser);
    		}
    		break;
    		// ---
    	case Command::HideOff:
    		{
    			gObjRemoveBuffEffect(lpUser, BUFF_INVISIBILITY);
    			gObjViewportListProtocolCreate(lpUser);
    		}
    		break;
    		// --
    	case Command::ClearDrop:
    		{
    			int Distance = this->GetTokenNumber();
    			// ----
    			if( Distance == -1 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			MapC[lpUser->MapNumber].ClearItem(lpUser, Distance);
    		}
    		break;
    		// --
    	case Command::ClearInventory:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			//LogAddTD("[GMSystem] [ClearInv] GMName: [%s] -> Name: [%s] ", lpUser->Name, lpTarget->Name);
    			g_GMChatLog.Output("[GMSystem] [ClearInv] GMName: [%s] -> Name: [%s] ", lpUser->Name, lpTarget->Name);
    			// ----
    			for( int i = INVETORY_WEAR_SIZE; i < MAIN_INVENTORY_SIZE; i++ )
    			{
    				if( lpTarget->pInventory[i].IsItem() )
    				{
    					gObjInventoryDeleteItem(lpTarget->m_Index, i);
    				}
    			}
    			// ----
    			GCItemListSend(lpTarget->m_Index);
    		}
    		break;
    		// --
    	case Command::Skin:
    		{
    			LPSTR UserName = this->GetTokenString();
    			int SkinNumber = this->GetTokenNumber();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			//To test
    
    			if(SkinNumber > 675 || SkinNumber < -1)
    			{
    				MsgOutput(lpUser->m_Index, "Skin out of range -1 - 675");
    				return;
    			}
    
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    
    			lpTarget->m_Change = SkinNumber;
    
    			//LogAddTD("[GMSystem] [Skin] GMName: [%s] -> Name: [%s] Skin: [%d]", lpUser->Name, lpTarget->Name, SkinNumber);
    			g_GMChatLog.Output("[GMSystem] [Skin] GMName: [%s] -> Name: [%s] Skin: [%d]", lpUser->Name, lpTarget->Name, SkinNumber);
    			gObjViewportListProtocolCreate(lpTarget);
    		}
    		break;
    		// --
    	case Command::PartyInfo:
    		{
    			LPSTR UserName = this->GetTokenString();
    			char Text[80] = { 0 };
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			if( lpTarget->PartyNumber < 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Party not found");
    				return;
    			}
    			// ----
    			PARTY_STRUCT* lpParty = &gParty.m_PartyS[lpTarget->PartyNumber];
    			// ----
    			if( !lpParty )
    			{
    				MsgOutput(lpUser->m_Index, "Party data not found");
    				return;
    			}
    			// ----
    			MsgOutput(lpUser->m_Index, "Party:");
    			// ----
    			int PartyCount = 0;
    			int PartyNumber = -1;
    			// ----
    			for( int i = 0; i < 5; i++ )
    			{
    				PartyNumber = lpParty->Number[i];
    				// ----
    				if( PartyNumber < 0 )
    				{
    					continue;
    				}
    				// ----
    				LPOBJ lpPartyObj = &gObj[PartyNumber];
    				// ----
    				if( lpPartyObj != NULL )
    				{
    					if( lpPartyObj->Connected >= PLAYER_PLAYING )
    					{
    						PartyCount++;
    						strcat(Text, lpPartyObj->Name);
    						// ----
    						if( i == 0 )
    						{
    							strcat(Text, "(Leader)");
    						}
    						// ----
    						if( lpParty->Count > PartyCount)
    						{
    							strcat(Text, ", ");
    						}
    					}
    				}
    			}
    			// ----
    			MsgOutput(lpUser->m_Index, Text);
    		}
    		break;
    		// --
    	case Command::FireCrack:
    		{
    			for( int i = 0; i < 3; i++ )
    			{
    				PMSG_SERVERCMD ServerCmd = { 0 };
    				PHeadSubSetB((LPBYTE)&ServerCmd, 0xF3, 0x40, sizeof(ServerCmd));
    				ServerCmd.CmdType = 0;
    				ServerCmd.X = lpUser->X + (rand() % 5) * 2 - 4;
    				ServerCmd.Y = lpUser->Y + (rand() % 5) * 2 - 4;
    				MsgSendV2(lpUser, (LPBYTE)&ServerCmd, sizeof(ServerCmd));
    				DataSend(lpUser->m_Index, (LPBYTE)&ServerCmd, sizeof(ServerCmd));
    			}
    		}
    		break;
    		// --
    	case Command::Trans:
    		{
    			LPSTR UserName = this->GetTokenString();
    			int MapNumber = this->GetTokenNumber();
    			int X = this->GetTokenNumber();
    			int Y = this->GetTokenNumber();
    			// ---
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    
    			if (MapNumber > 92 || MapNumber < 0)
    			{
    				MsgOutput(lpUser->m_Index, "Map out of range use only 0 - 92");
    				return;
    			}
    
    			if (X < 1 || Y < 1 || X > 255 || Y > 255)
    			{
    				MsgOutput(lpUser->m_Index, "Coords out of range use only 1 - 255");
    				return;
    			}
    
    			// ----
    			LPOBJ lpObj;
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    
    			//LogAddTD("[GMSystem] [GMove] GMName: [%s] -> Name: [%s] Map: [%d] X: [%d] Y: [%d]", lpUser->Name, lpTarget->Name, MapNumber, X, Y);
    			g_GMChatLog.Output("[GMSystem] [GMove] GMName: [%s] -> Name: [%s] Map: [%d] X: [%d] Y: [%d]", lpUser->Name, lpTarget->Name, MapNumber, X, Y);
    
    			gObjTeleport(lpTarget->m_Index, MapNumber, X, Y);
    		}
    		break;
    		// --
    	case Command::Track:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ---
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			gObjTeleport(lpTarget->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y);
    		}
    		break;
    		// --
    	case Command::Trace:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ---
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    			// ----
    			gObjTeleport(lpUser->m_Index, lpTarget->MapNumber, lpTarget->X, lpTarget->Y);
    		}
    		break;
    		// --
    	case Command::CastleSiege1:
    		{
    			LPSTR GuildName = this->GetTokenString();
    			// ---
    			if( GuildName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 0, GuildName);
    		}
    		break;
    		// --
    	case Command::CastleSiege2:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 1, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege3:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 2, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege4:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 3, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege5:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 4, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege6:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 5, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege7:
    		{
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 6, 0);
    		}
    		break;
    		// --
    	case Command::CastleSiege8:
    		{
    			LPSTR GuildName = this->GetTokenString();
    			// ---
    			if( GuildName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			g_CastleSiege.OperateGmCommand(lpUser->m_Index, 8, GuildName);
    		}
    		break;
    		// --
    	case Command::Crywolf1:
    		{
    			g_Crywolf.OperateGmCommand(lpUser->m_Index, 1);
    		}
    		break;
    		// --
    	case Command::Crywolf2:
    		{
    			g_Crywolf.OperateGmCommand(lpUser->m_Index, 2);
    		}
    		break;
    		// --
    	case Command::Crywolf3:
    		{
    			g_Crywolf.OperateGmCommand(lpUser->m_Index, 3);
    		}
    		break;
    		// --
    	case Command::Crywolf4:
    		{
    			g_Crywolf.OperateGmCommand(lpUser->m_Index, 0);
    		}
    		break;
    		// --
    	case Command::Request:
    		{
    			LPSTR Mode = this->GetTokenString();
    			// ---
    			if( Mode == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			BYTE State = 3;
    			// ---
    			if( strcmp(Mode, "on" ) == 0 )
    			{
    				State = 1;
    			}
    			else if( strcmp(Mode, "off") == 0 )
    			{
    				State = 0;
    			}
    			// ---
    			if( State >= FALSE && State <= TRUE )
    			{
    				gObjSetTradeOption(lpUser->m_Index, State);
    				gObjSetDuelOption(lpUser->m_Index, State);
    			}
    		}
    		break;
    		// --
    	case Command::PartyLeader:
    		{
    			LPSTR TargetName	= this->GetTokenString();
    			int TargetIndex		= gObjGetIndex(TargetName);
    			// ----
    			if( !gParty.SetLeader(lpUser->m_Index, TargetIndex) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    		}
    		break;
    		// --
    	case Command::Move:
    		{
    			LPSTR MapName = this->GetTokenString();
    			// ---
    			if( MapName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			if( lpUser->Teleport != 0 )
    			{
    				GCServerMsgStringSend(lMsg.Get(MSGGET(6, 68)), lpUser->m_Index, 1);
    				return;
    			}
    			// ----
    			if( (lpUser->m_IfState.use) != 0 )
    			{
    				if( lpUser->m_IfState.type  == 3 )
    				{
    					lpUser->TargetShopNumber = -1;
    					lpUser->m_IfState.type = 0;
    					lpUser->m_IfState.use = 0;
    				}
    			}
    			// ----
    			if (lpUser->m_RecallMon >= 0)
    			{
    			GCRecallMonLife(lpUser->m_Index, 60, 0);
    			gObjMonsterCallKill(lpUser->m_Index);
    			}
    			// ----
    			if( lpUser->m_IfState.use > 0 )
    			{
    				GCServerMsgStringSend(lMsg.Get(MSGGET(6, 68)), lpUser->m_Index, 1);
    				return;
    			}
    			// ----
    			//PK can move
    			if( lpUser->m_PK_Level > 6 )
    			{
    				GCServerMsgStringSend(lMsg.Get(MSGGET(4, 101)), lpUser->m_Index, 1);
    				return;
    			}
    			// ----
    			gMoveCommand.Move(lpUser, MapName);
    		}
    		break;
    		// --
    	case Command::Post:
    		{
    			if (lpUser->ChatLimitTime > 0) {
    				MsgOutput(lpUser->m_Index, lMsg.Get(MSGGET(4, 223)), lpUser->ChatLimitTime);
    				return;
    			}
    
    			if(g_bPostFloodProtect == 1)
    			{
    				if(lpUser->m_dwPostTickCount != 0)
    				{
    					if ( 1000 * g_bPostFloodProtectTime >= GetTickCount() - lpUser->m_dwPostTickCount )
    					{
    						MsgOutput(lpUser->m_Index, "Please wait 3 seconds before next post.");
    						return;
    					}
    				}
    			}
    
    			lpUser->m_dwPostTickCount = GetTickCount();
    			
    			BroadCastMessageInfo lpRequest = { 0 };
    			lpRequest.h.set((LPBYTE)&lpRequest, 0xCD, sizeof(lpRequest));
    			lpRequest.Type = 1;
    			strcat(lpRequest.Text, &Text[strlen(Command) + 1]);
    
    			g_PostLog.Output("Name: [%s] Message: [%s]", lpUser->Name, Text);
    
    			CopyMemory(lpRequest.Sender, lpUser->Name, 10);
    			
    			wsJServerCli.DataSend((PCHAR)&lpRequest, sizeof(BroadCastMessageInfo));
    
    			/*USER_REQ_POST lpInfo = { 0 };
    			PHeadSetB((LPBYTE)&lpInfo, 0, sizeof(lpInfo));
    			lpInfo.h.headcode = 2;
    			lpInfo.chatmsg[0] = '!';
    			memcpy(lpInfo.id, lpUser->Name, 10);
    			strcat(lpInfo.chatmsg, &Text[strlen(Command) + 1]);
    			DataSendAll((LPBYTE)&lpInfo, sizeof(lpInfo));*/
    		}
    		break;
    		// --
    	case Command::AddStr:
    	case Command::AddAgi:
    	case Command::AddVit:
    	case Command::AddEne:
    	case Command::AddCom:
    		{
    			int AddValue = this->GetTokenNumber();
    			// ----
    			if( AddValue < 0 || AddValue >= g_MaxStatValue )
    			{
    				MsgOutput(lpUser->m_Index, "Wrong value for add.");
    				return;
    			}
    			// ----
    			if( lpUser->LevelUpPoint < AddValue )
    			{
    				MsgOutput(lpUser->m_Index, "You do not have enough level up points!");
    				return;
    			}
    			// ----
    			if(		lpCommand->Index == Command::AddCom 
    				&&	lpUser->Class != CLASS_DARKLORD )
    			{
    				MsgOutput(lpUser->m_Index, "Your class in invalid for this command");
    				return;
    			}
    			// ----
    			PMSG_LVPOINTADDRESULT pMsg;
    			PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
    			// ----
    			if( lpCommand->Index == Command::AddStr )
    			{
    				if( lpUser->Strength + AddValue > g_MaxStatValue )
    				{
    					return;
    				}
    				lpUser->Strength += AddValue;
    				pMsg.NewValue = lpUser->Strength;
    				pMsg.ResultType = 0x15;
    			}
    			else if( lpCommand->Index == Command::AddAgi )
    			{
    				if( lpUser->Dexterity + AddValue > g_MaxStatValue )
    				{
    					return;
    				}
    				lpUser->Dexterity += AddValue;
    				pMsg.NewValue = lpUser->Dexterity;
    				pMsg.ResultType = 0x16;
    			}
    			else if( lpCommand->Index == Command::AddVit )
    			{
    				if( lpUser->Vitality + AddValue > g_MaxStatValue )
    				{
    					return;
    				}
    				lpUser->Vitality += AddValue;
    				pMsg.NewValue = lpUser->Vitality;
    				lpUser->MaxLife += lpUser->VitalityToLife * AddValue;
    				pMsg.MaxLifeAndMana = (WORD)(lpUser->MaxLife + lpUser->AddLife);
    				pMsg.MAXHPANDMANA = (int)(lpUser->MaxLife + lpUser->AddLife);
    				pMsg.ResultType = 0x17;
    			}
    			else if( lpCommand->Index == Command::AddEne )
    			{
    				if( lpUser->Energy + AddValue > g_MaxStatValue )
    				{
    					return;
    				}
    				lpUser->Energy += AddValue;
    				pMsg.NewValue = lpUser->Energy;
    				lpUser->MaxMana += lpUser->EnergyToMana * AddValue;
    				pMsg.MaxLifeAndMana = (WORD)(lpUser->MaxMana + lpUser->AddMana);
    				pMsg.MAXHPANDMANA = (int)(lpUser->MaxMana + lpUser->AddMana);
    				pMsg.ResultType = 0x18;
    			}
    			else if( lpCommand->Index == Command::AddCom )
    			{
    				if( lpUser->Leadership + AddValue > g_MaxStatValue )
    				{
    					return;
    				}
    				lpUser->Leadership += AddValue;
    				pMsg.NewValue = lpUser->Leadership;
    				pMsg.ResultType = 0x19;
    			}
    			// ----
    			gObjCalCharacter(lpUser->m_Index);
    			gObjSetBP(lpUser->m_Index);
    			pMsg.wMaxShield = lpUser->iMaxShield + lpUser->iAddShield;
    			pMsg.MaxBP = lpUser->MaxBP + lpUser->AddBP;
    			pMsg.MAXSD = lpUser->iMaxShield + lpUser->iAddShield;
    			lpUser->LevelUpPoint -= AddValue;
    			pMsg.LvlUpPt = lpUser->LevelUpPoint;
    			DataSend(lpUser->m_Index, (LPBYTE)&pMsg, pMsg.h.size);
    			MsgOutput(lpUser->m_Index, "%d point(s) has been used", AddValue);
    		}
    		break;
    		// --
    	case Command::Offtrade:
    		{
    #if (ENABLE_CUSTOM_OFFLINETRADE == 1)
    			g_OfflineTrade.ProcStart(lpUser);
    #endif
    		}
    		break;
    	case Command::MultiVault:
    		{
    			int iVaultNumber = this->GetTokenNumber();
    
    			if (iVaultNumber > 5 || iVaultNumber < 0)
    			{
    				GCServerMsgStringSend("Warehouse range: 0-5", lpUser->m_Index,1);
    				return;
    			}
    
    			if(g_bVaultFloodProtect == 1)
    			{
    				if(lpUser->m_dwVaultTickCount != 0)
    				{
    					if ( 1000 * g_bVaultFloodProtectTime >= GetTickCount() - lpUser->m_dwVaultTickCount )
    					{
    						MsgOutput(lpUser->m_Index, "Please wait 15 seconds before change vault.");
    						return;
    					}
    				}
    			}
    
    			lpUser->m_dwVaultTickCount = GetTickCount();
    
    			// ----
    			if (	lpUser->WarehouseSave != 0 
    				|| lpUser->m_ReqWarehouseOpen != 0
    				|| (lpUser->m_IfState.use >= 1 && lpUser->m_IfState.type >=1) )
    			{
    				return;
    			}
    			// ----
    			if (lpUser->RecvSendWare != 0)
    			{
    				return;
    			}
    
    			lpUser->RecvSendWare = 1;
    			gWareHouseSYSTEM.DBSendVaultInfo(lpUser->m_Index, lpUser->AccountID, (BYTE)iVaultNumber);
    		}
    		break;
    	case Command::GuildWar:
    		{
    			LPSTR pId = this->GetTokenString();
    
    			if ( pId != NULL )
    			{
    				if ( strlen(pId) >= 1 )
    				{
    					::GCGuildWarRequestResult(pId, lpUser->m_Index, 0);
    				}
    			}
    		}
    		break;
    	case Command::BattleSoccer:
    		{
    			if ( gEnableBattleSoccer != FALSE )
    			{
    				LPSTR pId = this->GetTokenString();
    
    				if ( pId != NULL )
    				{
    					if ( strlen(pId) >= 1 )
    					{
    						::GCGuildWarRequestResult(pId, lpUser->m_Index, 1);
    					}
    				}
    			}
    		}
    		break;
    
    
    		case Command::Info:
    		{
    			MsgOutput(lpUser->m_Index, "Project v1.0.0.9");
    			Sleep(1000);
    		}
    		break;
    		// --
    
    			case Command::SkinPlayer:
    		{
    			int SkinNumber = this->GetTokenNumber();
    
    			if( SkinNumber == 80 || SkinNumber == 15 || SkinNumber == 79 || SkinNumber == 82 || SkinNumber == -1 )
    			{
    			lpUser->m_Change = SkinNumber;
    			//LogAddTD("[USystem] [Skin] -> Name: [%s] ", lpUser->Name);
    			gObjViewportListProtocolCreate(lpUser);
    			}
    			else 
    			{
    				MsgOutput(lpUser->m_Index, "These skins are not allowed!");
    				return;
    			}
    		}
    		break;
    
    		// New Command Starts Here
    		case Command::EAnger:
    		{
    				LPOBJ lpObj;
    
    					BYTE SocketBonus = 0x14;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA4;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    
    				//LogAddTD("[GMSystem] [EAnger] -> GMName: [%s] ", lpUser->Name);
    				g_GMChatLog.Output("[GMSystem] [EAnger] -> GMName: [%s] ", lpUser->Name);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, ITEMGET(12,221), 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				
    		}
    		break;
    
    
    		case Command::Status:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			LPOBJ lpObj;
    			LPOBJ lpTargetObj;
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    
    			MsgOutput(lpUser->m_Index, "Name:[%s] Acc: [%s] Map:[%d] X:[%d] Y:[%d] IP: [%s]",lpTarget->Name, lpTarget->AccountID, lpTarget->MapNumber, lpTarget->X, lpTarget->Y, lpTarget->Ip_addr);
    		}
    		break;
    
    
    		case Command::Online:
    		{
    
    			int oncount = 0;
    			int gmoncount = 0;
    
    			for (int g = OBJ_STARTUSERINDEX; g < OBJMAX; g++)
    			{
    				if (gObj[g].Connected == 3)
    				{
    					oncount++;
    				}
    
    				if (gObj[g].Connected == 3 && gObj[g].Authority == 32)
    				{
    					gmoncount++;
    				}
    			}
    				MsgOutput(lpUser->m_Index, "Players Online: [%d] GM Online: [%d]",oncount, gmoncount);
    				//return TRUE;
    		}
    		break;
    
    		case Command::ClearInventoryUser:
    		{
    			LPOBJ lpObj;
    
    			for( int i = 12; i < 76; i++ )
    			{
    				if( lpUser->pInventory[i].IsItem() )
    				{
    					gObjInventoryDeleteItem(lpUser->m_Index, i);
    				}
    			}
    			// ----
    
    			//LogAddTD("[USystem] [ClearInvent] -> Name: [%s] ", lpUser->Name);
    			g_USystemLog.Output("[USystem] [ClearInvent] -> Name: [%s] ", lpUser->Name);
    
    			MsgOutput(lpUser->m_Index, "Successfully cleared your Part1 Inventory.");
    			GCItemListSend(lpUser->m_Index);
    		}
    		break;
    
    		case Command::ClearStore:
    		{
    			LPOBJ lpObj;
    
    			for( int i = 204; i < 235; i++ )
    			{
    				if( lpUser->pInventory[i].IsItem() )
    				{
    					gObjInventoryDeleteItem(lpUser->m_Index, i);
    				}
    			}
    			// ----
    
    			//LogAddTD("[USystem] [ClearStore] -> Name: [%s] ", lpUser->Name);
    			g_USystemLog.Output("[USystem] [ClearStore] -> Name: [%s] ", lpUser->Name);
    
    			MsgOutput(lpUser->m_Index, "Successfully cleared your Store.");
    			GCItemListSend(lpUser->m_Index);
    		}
    		break;
    
    		case Command::ClearInvAll:
    		{
    			LPOBJ lpObj;
    
    			for( int i = 12; i < 204; i++ )
    			{
    				if( lpUser->pInventory[i].IsItem() )
    				{
    					gObjInventoryDeleteItem(lpUser->m_Index, i);
    				}
    			}
    			// ----
    
    			//LogAddTD("[USystem] [ClearWholeInventory] -> Name: [%s] ", lpUser->Name);
    			g_USystemLog.Output("[USystem] [ClearWholeInventory] -> Name: [%s] ", lpUser->Name);
    
    			MsgOutput(lpUser->m_Index, "Successfully cleared your whole inventory.");
    			GCItemListSend(lpUser->m_Index);
    		}
    		break;
    
    		//Wind Ertels only
    		case Command::ErtelW:
    		{
    
    					BYTE SocketBonus = 0x14;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA1;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    
    			if( ItemType != 12 )
    			{
    				MsgOutput(lpUser->m_Index, "Type can be only 12.");
    				return;
    			}
    
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if (ItemIndex == 221 || ItemIndex == 231 || ItemIndex == 241 || ItemIndex == 251 || ItemIndex == 261)
    				{
    			
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				//LogAddTD("[GMSystem] [EWDCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    				g_GMChatLog.Output("[GMSystem] [EWDCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				}
    			else
    				{
    				MsgOutput(lpUser->m_Index, "Index can be only: 221/231/241/251/261.");
    				return;
    				}
    			//}
    		}
    		break;
    
    		//Darkness Errtel
    
    		case Command::ErtelD:
    		{
    
    					BYTE SocketBonus = 0x15;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA1;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    
    			if( ItemType != 12 )
    			{
    				MsgOutput(lpUser->m_Index, "Type can be only 12.");
    				return;
    			}
    
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if (ItemIndex == 221 || ItemIndex == 231 || ItemIndex == 241 || ItemIndex == 251 || ItemIndex == 261)
    				{
    			
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				//LogAddTD("[GMSystem] [EDCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    				g_GMChatLog.Output("[GMSystem] [EDCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				}
    			else
    				{
    				MsgOutput(lpUser->m_Index, "Index can be only: 221/231/241/251/261.");
    				return;
    				}
    			//}
    		}
    		break;
    
    		case Command::ErtelE:
    		{
    
    					BYTE SocketBonus = 0x13;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA1;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    
    			if( ItemType != 12 )
    			{
    				MsgOutput(lpUser->m_Index, "Type can be only 12.");
    				return;
    			}
    
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    
    
    			if (ItemIndex == 221 || ItemIndex == 231 || ItemIndex == 241 || ItemIndex == 251 || ItemIndex == 261)
    				{
    			
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				//LogAddTD("[GMSystem] [EECreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    				g_GMChatLog.Output("[GMSystem] [EECreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				}
    			else
    				{
    				MsgOutput(lpUser->m_Index, "Index can be only: 221/231/241/251/261.");
    				return;
    				}
    			//}
    		}
    		break;
    
    		case Command::ErtelWater:
    		{
    
    					BYTE SocketBonus = 0x12;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA1;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    
    			if( ItemType != 12 )
    			{
    				MsgOutput(lpUser->m_Index, "Type can be only 12.");
    				return;
    			}
    
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    
    
    			if (ItemIndex == 221 || ItemIndex == 231 || ItemIndex == 241 || ItemIndex == 251 || ItemIndex == 261)
    				{
    			
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				//LogAddTD("[GMSystem] [EWCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    				g_GMChatLog.Output("[GMSystem] [EWCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				}
    			else
    				{
    				MsgOutput(lpUser->m_Index, "Index can be only: 221/231/241/251/261.");
    				return;
    				}
    			//}
    		}
    		break;
    
    		case Command::ErtelF:
    		{
    
    					BYTE SocketBonus = 0x11;
    					BYTE SocketOption[5];
    					SocketOption[0] = 0xA1;
    					SocketOption[1] = 0xA1;
    					SocketOption[2] = 0xA1;
    					SocketOption[3] = 0xA1;
    					SocketOption[4] = 0xA1;
    
    			int ItemType  = this->GetTokenNumber();
    			int ItemIndex  = this->GetTokenNumber();
    
    			if( ItemType != 12 )
    			{
    				MsgOutput(lpUser->m_Index, "Type can be only 12.");
    				return;
    			}
    
    			int ItemCode = ITEMGET(ItemType, ItemIndex);
    			
    			if( ItemCode < ITEMGET(0, 0) || ItemCode > ITEMGET(15, 512) )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if( !ItemAttribute[ItemCode].HaveItemInfo )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    
    			if (ItemIndex == 221 || ItemIndex == 231 || ItemIndex == 241 || ItemIndex == 251 || ItemIndex == 261)
    				{
    			
    				int iItemNumber = ItemGetNumberMake(ItemType, ItemIndex);
    
    				//LogAddTD("[GMSystem] [EFCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    				g_GMChatLog.Output("[GMSystem] [EFCreate] Name: [%s] Map: [%d] X: [%d] Y: [%d] Item: [%d]", lpUser->Name, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber);
    
    				ItemSerialCreateSend(lpUser->m_Index, lpUser->MapNumber, lpUser->X, lpUser->Y, iItemNumber, 0, 1, 0, 0, 0, -1, 0, 0, SocketBonus, SocketOption);
    				}
    			else
    				{
    				MsgOutput(lpUser->m_Index, "Index can be only: 221/231/241/251/261.");
    				return;
    				}
    			//}
    		}
    		break;
    
    	case Command::Money:
    		{
    			lpUser->Money = 100000000;
    
    
    			//LogAddTD("[USystem] [Money] Name: [%s] ", lpUser->Name);
    			g_USystemLog.Output("[USystem] [Money] Name: [%s] ", lpUser->Name);
    
    			GCMoneySend(lpUser->m_Index, lpUser->Money);
    
    		}
    		break;
    		// --
    
    
    
    		case Command::HpSd:
    		{
    			LPSTR UserName = this->GetTokenString();
    			// ----
    			if( UserName == 0 )
    			{
    				MsgOutput(lpUser->m_Index, "Syntax error in command");
    				return;
    			}
    			// ----
    			LPOBJ lpTarget = this->GetUserInfo(lpUser, UserName);
    			LPOBJ lpObj;
    			LPOBJ lpTargetObj;
    			// ----
    			if( !lpTarget )
    			{
    				return;
    			}
    
    			MsgOutput(lpUser->m_Index, "Name:[%s] Life:[%d]",lpTarget->Name, lpTarget->Life);
    		}
    		break;
    
    	
    	//}
    	// ----
    	
    	case Command::Summon:
    		{
    
    		int getMonsterID = this->GetTokenNumber();
    
    		if (getMonsterID == -1) { //Removing Of Pet
    			g_USystemLog.Output("[USystem] [Pet] [Kill] Name: [%s] ", lpUser->Name);
    			GCRecallMonLife(lpUser->m_Index, 60, 0);
    			gObjMonsterCallKill(lpUser->m_Index);
    			MsgOutput(lpUser->m_Index, "Pet has been removed");
    		}
    		if (getMonsterID == 1) { //Satyros
    			GCRecallMonLife(lpUser->m_Index, 60, 0);
    			gObjMonsterCallKill(lpUser->m_Index);
    			g_USystemLog.Output("[USystem] [Pet] [Satyros] Name: [%s] ", lpUser->Name);
    			gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 353, lpUser->X - 1, lpUser->Y + 1);
    			MsgOutput(lpUser->m_Index, "Pet [Satyros] created");
    		}
    		if (getMonsterID == 2) { //Blade Hunter
    			GCRecallMonLife(lpUser->m_Index, 60, 0);
    			gObjMonsterCallKill(lpUser->m_Index);
    			g_USystemLog.Output("[USystem] [Pet] [Blade Hunter] Name: [%s] ", lpUser->Name);
    			gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 354, lpUser->X - 1, lpUser->Y + 1);
    			MsgOutput(lpUser->m_Index, "Pet [Blade Hunter] created");
    		}
    		if (getMonsterID == 3) { //Kentauros
    			GCRecallMonLife(lpUser->m_Index, 60, 0);
    			gObjMonsterCallKill(lpUser->m_Index);
    			g_USystemLog.Output("[USystem] [Pet] [Kentauros] Name: [%s] ", lpUser->Name);
    			gObjUseSkill.SkillMonsterCalls(lpUser->m_Index, 355, lpUser->X - 1, lpUser->Y + 1);
    			MsgOutput(lpUser->m_Index, "Pet [Kentauros] created");
    		}
    		
    		}
    		break;
    	// ----	
    	
    	if( lpCommand->Price <= 0 )
    	{
    		return;
    	}
    	// ----
    	switch(lpCommand->PriceType)
    	{
    		case 0: //Zen
    			{
    				if (lpCommand->Index != Command::PKReset) {
    
    				lpUser->Money -= lpCommand->Price;
    				GCMoneySend(lpUser->m_Index, lpUser->Money);
    				}
    			}
    			break;
    			// --
    		case 1: //WCoinC
    			{
    				//lpUser->m_wcCashPoint
    			}
    			break;
    			// --
    		case 2: //WCoinP
    			{
    				//lpUser->m_wpCashPoint
    			}
    			break;
    			// --
    		case 3: //WCoinG
    			{
    				//lpUser->m_wgCashPoint
    			}
    			break;
    	}
      }
    }
    // -------------------------------------------------------------------------------
    
    BYTE CommandManager::CheckCommand(LPOBJ lpUser, LPSTR Text)
    {
    	CommandInfo* lpCommand = this->GetCommand(Text);
    	// ----
    	if( !lpCommand )
    	{
    		return 0;
    	}
    	// ----
    	if( lpUser->Authority < lpCommand->Access )
    	{
    		return 2;
    	}
    	// ----
    	if( lpCommand->Price > 0 )
    	{
    		switch(lpCommand->PriceType)
    		{
    		case 0: //Zen
    			{
    				if( lpUser->Money < lpCommand->Price )
    				{
    					return 3;
    				}
    			}
    			break;
    			// --
    		case 1: //WCoinC
    			{
    				if( lpUser->m_wcCashPoint < lpCommand->Price )
    				{
    					return 3;
    				}
    			}
    			break;
    			// --
    		case 2: //WCoinP
    			{
    				if( lpUser->m_wpCashPoint < lpCommand->Price )
    				{
    					return 3;
    				}
    			}
    			break;
    			// --
    		case 3: //WCoinG
    			{
    				if( lpUser->m_wgCashPoint < lpCommand->Price )
    				{
    					return 3;
    				}
    			}
    			break;
    		}
    	}
    	// ----
    	if( lpCommand->PremiumAccess >= 0 )
    	{
    		if( m_ObjBill[lpUser->m_Index].GetPayCode() < lpCommand->PremiumAccess )
    		{
    			return 4;
    		}
    	}
    	// ----
    	if( lpUser->Level < lpCommand->MinLevel )
    	{
    		return 5;
    	}
    	// ----
    	if( lpUser->iResetCount < lpCommand->MinReset )
    	{
    		return 6;
    	}
    	// ----
    	return 1;
    }
    // -------------------------------------------------------------------------------
    
    LPOBJ CommandManager::GetUserInfo(LPOBJ lpUser, LPSTR UserName)
    {
    	for( int i = OBJ_STARTUSERINDEX; i < OBJMAX; i++ )
    	{
    		if( gObj[i].Connected >= PLAYER_PLAYING )
    		{
    			if( gObj[i].Name[0] == *UserName )
    			{
    				if( strcmp(gObj[i].Name, UserName) == 0 )
    				{
    					return &gObj[i];
    				}
    			}
    		}
    	}
    	// ----
    	MsgOutput(lpUser->m_Index, "Target user not found");
    	return NULL;
    }
    // -------------------------------------------------------------------------------
    
    LPSTR CommandManager::GetTokenString()
    {
    	char Separator[2] = " ";
    	return strtok(0, Separator);
    }
    // -------------------------------------------------------------------------------
    
    int CommandManager::GetTokenNumber()
    {
    	char Separator[2] = " ";
    	LPSTR Token = strtok(0, Separator);
    	// ----
    	if( Token != NULL )
    	{
    		return atoi(Token);
    	}
    	// ----
    	return -1;
    }
    // -------------------------------------------------------------------------------
    
    CommandInfo* CommandManager::GetCommand(int Index)
    {
    
    	for( unsigned int i = 0; i < this->m_CommandInfo.size(); i++ )
    
    	{
    		if( this->m_CommandInfo[i].Index == Index )
    		{
    			return &m_CommandInfo[i];
    		}
    	}
    	// ----
    	return NULL;
    }
    // -------------------------------------------------------------------------------
    
    CommandInfo* CommandManager::GetCommand(LPSTR Text)
    {
    
    	for( unsigned int i = 0; i < this->m_CommandInfo.size(); i++ )
    
    	{
    		if( strcmp(this->m_CommandInfo[i].Text, Text) == 0 )
    		{
    			return &m_CommandInfo[i];
    		}
    	}
    	// ----
    	return NULL;
    }
    // -------------------------------------------------------------------------------

  22. #2972
    Valued Member bopoh1987 is offline
    MemberRank
    Feb 2014 Join Date
    Рига, LatviLocation
    118Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Thanks man but its the same, debug error .

  23. #2973
    Apprentice jprey7 is offline
    MemberRank
    Jun 2012 Join Date
    23Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by bopoh1987 View Post
    Thanks man but its the same, debug error .
    compile release mode

  24. #2974
    Valued Member bopoh1987 is offline
    MemberRank
    Feb 2014 Join Date
    Рига, LatviLocation
    118Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    im in release mode.

    - - - Updated - - -

    Finaly i do it. Just need some configuration for compilator ,кecently installed vs2015 , I am studying it more.

  25. #2975
    Novice zjjcmnv is offline
    MemberRank
    Jul 2011 Join Date
    4Posts

    re: [Release] zTeam Season 8 Episode 2 (Source)

    Quote Originally Posted by bopoh1987 View Post
    im in release mode.

    - - - Updated - - -

    Finaly i do it. Just need some configuration for compilator ,кecently installed vs2015 , I am studying it more.
    hey man what do you do to copile the files?

    --can someone help me in inbox?
    Last edited by zjjcmnv; 16-02-16 at 02:44 AM.



Advertisement