Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

juver get item error

Newbie Spellweaver
Joined
Oct 4, 2022
Messages
30
Reaction score
0
what is the problem and how to fix this /get_item 215 11 1 and i try also /get_item 215 11 2 but nothing happens nor no error message show from emulator im using this source https://forum.ragezone.com/f528/juver-sourcee-updated-files-1199849/



if( m_dwUserLvl < USER_GM3 ) { NetMsgFB.emFB = EMREQ_GMITEM_FB_PASS; GLGaeaServer::GetInstance().SENDTOCLIENT(m_dwClientID,&NetMsgFB); return E_FAIL; } if ( pNetMsg->wPass != 1 && pNetMsg->wPass != 2 ) { NetMsgFB.emFB = EMREQ_GMITEM_FB_PASS; GLGaeaServer::GetInstance().SENDTOCLIENT(m_dwClientID,&NetMsgFB); return E_FAIL; }

this GLChaInvenMsg2



HRESULT GLCharacter::ReqGMItem ( SNATIVEID sItemID ,WORD wNum ,WORD wPass, DWORD dwUSERLVL) //add itemcmd{ /* Added Validations, RSiLENT */ DWORD m_dwUserLvl = GLGaeaClient::GetInstance().GetCharacter()->m_dwUserLvl; if ( m_dwUserLvl < USER_GM3 ) return E_FAIL; if ( dwUSERLVL < USER_GM3 ) return E_FAIL; if ( wPass != 1 && wPass != 2 ) { CInnerInterface::GetInstance().PrintMsgTextDlg ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_GMITEM_PASS") ); return E_FAIL; } bool bDrop(false); if ( wPass == 1 ) bDrop = true; SITEM* pItem = GLItemMan::GetInstance().GetItem ( sItemID ); if ( !pItem ) { CInnerInterface::GetInstance().PrintMsgTextDlg ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_GMITEM_NOTITEM") ); return E_FAIL; } CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::GREENYELLOW, "Attempting to insert %s quantity: %d", pItem->GetName(), wNum ); //if ( wNum >= 15 ) //{ // CInnerInterface::GetInstance().PrintMsgTextDlg ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_GMITEM_MAX") ); // return E_FAIL; //} GLInventory cInvenTemp; cInvenTemp.SetAddLine ( m_cInventory.GETAddLine(), true ); cInvenTemp.Assign ( m_cInventory ); //for ( int i=0; i< wNum; ++i ) { SITEMCUSTOM sCUSTOM; sCUSTOM.sNativeID = pItem->sBasicOp.sNativeID; if ( sCUSTOM.sNativeID==SNATIVEID(false) ) return E_FAIL; SITEM *pITEM = GLItemMan::GetInstance().GetItem ( sCUSTOM.sNativeID ); if ( !pITEM ) { CInnerInterface::GetInstance().PrintMsgTextDlg ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_GMITEM_FAIL") ); return E_FAIL; } BOOL bOK = cInvenTemp.InsertItem ( sCUSTOM ); if ( !bOK ) { CInnerInterface::GetInstance().PrintMsgTextDlg ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMREQ_GMITEM_INFAIL") ); return E_FAIL; } } /* Added Validations, RSiLENT */ GLMSG::SNET_INVEN_GMITEM NetMsg; NetMsg.sItemID = sItemID; NetMsg.wNum = wNum; NetMsg.wPass = wPass; NetMsg.bDrop = bDrop; NetMsg.m_dwUserLvl = m_dwUserLvl; NetMsg.dwUSERLVL = dwUSERLVL; NetMsg.dwUserLevel = dwUSERLVL; NetMsg.dwChaNum = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID; //Fix validation NETSENDTOFIELD ( &NetMsg ); return S_OK;}

this is GLCharactorReq2
 
Elite Diviner
Joined
Sep 29, 2016
Messages
461
Reaction score
10
Try this /get_item 215 11 1 1

215 11 - your item
1 - pc. Of item
1 - password on your wpass
 
Upvote 0
Newbie Spellweaver
Joined
Oct 4, 2022
Messages
30
Reaction score
0
Try this /get_item 215 11 1 1

215 11 - your item
1 - pc. Of item
1 - password on your wpass

same...nothing happen and nothing show invalid command
im using emulator and run as admin i try also gamemaster but still no luck
 
Upvote 0
Newbie Spellweaver
Joined
Oct 4, 2022
Messages
30
Reaction score
0
this my GLCharactorReq2.cpp and ChaInvenMsg2.cpp



Check dxincommand.cpp
#include "StdAfx.h"
#include "StringUtils.h"

#include "GLPeriod.h"
#include "DxGlobalStage.h"
#include "GLGaeaClient.h"
#include "GLFriendClient.h"

#include "../Lib_ClientUI/Interface/InnerInterface.h"
#include "../Lib_ClientUI/Interface/UITextControl.h"

#include "Emoticon.h"
#include "dxincommand.h"

#include "GLLandManClient.h"

/*item link, Juver, 2017/07/31 */
#include "G-Logic/GLItemLink.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//extern BOOL g_bFRAME_LIMIT;


namespace dxincommand
{
#if defined(NDEBUG)
bool bDISP_FPS = false;
bool bDISP_CONSOLE = false;
#else
bool bDISP_FPS = true;
bool bDISP_CONSOLE = true;
#endif

CString BOOL2STR ( bool bOn )
{
return bOn ? "ON" : "OFF";
}

/*item link, Juver, 2017/07/31 */
bool command ( const char* szcommand, SITEMLINK* pItemLink )
{
if ( szcommand==NULL || szcommand[0]==NULL ) return false;
if ( szcommand[0]!='/' && szcommand[0]!='&' ) return false;

STRUTIL::ClearSeparator ();
STRUTIL::RegisterSeparator ( "\t" );
STRUTIL::RegisterSeparator ( " " );
STRUTIL::RegisterSeparator ( "," );

CString strLINE(szcommand);

CStringArray strArray ;
STRUTIL::StringSeparate ( strLINE, strArray );
if ( strArray.GetSize()==0 ) return true;

CDebugSet::ToListView ( strLINE );

CString strCOMMAND = strArray.GetAt(0);

// Note : Á¦½ºÃÄ.
int nMOTION = CEmoticon::GetInstance().GetEmoticonOfMotion ( strCOMMAND.GetString() );
if ( nMOTION!=UINT_MAX )
{
bool bACTION = GLGaeaClient::GetInstance().GetCharacter()->ReqGESTURE ( nMOTION, true );
if ( bACTION ) return true;
}

if ( strCOMMAND=="/?" )
{
LISTEMOTICON& listEMOTICON = CEmoticon::GetInstance().GetEmoticon();
LISTEMOTICON_ITER pos = listEMOTICON.begin();
LISTEMOTICON_ITER end = listEMOTICON.end();

for ( ; pos!=end; ++pos )
{
SEMOTICON &sEMOTICON = (*pos);
CInnerInterface::GetInstance().PrintConsoleText ( "%s", sEMOTICON.strMotion.c_str() );
}

return true;
}

//add addstats cmd
if( strCOMMAND =="/pow")
{
if(strArray.GetSize() != 2) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD value = ( DWORD ) atoi( strPARAM_01.GetString() );
GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUpCmd( EMPOW, value);
}
else if( strCOMMAND =="/dex")
{
if(strArray.GetSize() != 2) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD value = ( DWORD ) atoi( strPARAM_01.GetString() );
GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUpCmd( EMDEX, value);
}
else if( strCOMMAND =="/int")
{
if(strArray.GetSize() != 2) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD value = ( DWORD ) atoi( strPARAM_01.GetString() );
GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUpCmd( EMSPI, value);
}
else if( strCOMMAND =="/vit")
{
if(strArray.GetSize() != 2) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD value = ( DWORD ) atoi( strPARAM_01.GetString() );
GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUpCmd( EMSTR, value);
}

else if( strCOMMAND =="/stm")
{
if(strArray.GetSize() != 2) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD value = ( DWORD ) atoi( strPARAM_01.GetString() );
GLGaeaClient::GetInstance().GetCharacter()->ReqStatsUpCmd( EMSTA, value);
}

// Note : GM ¸í·É.
DWORD dwUSERLVL = GLGaeaClient::GetInstance().GetCharacter()->m_dwUserLvl;
if ( dwUSERLVL < USER_MASTER ) return true;

if ( szcommand[0]=='&' )
{
int nLEN = (int) strlen(szcommand) - 1;
if ( nLEN==0 ) return true;

if ( nLEN > CHAT_MSG_SIZE ) nLEN = CHAT_MSG_SIZE;

NET_CHAT NetMsg;
NetMsg.nmg.nType = NET_MSG_CHAT;
NetMsg.emType = CHAT_TYPE_GLOBAL;
::StringCchCopyN ( NetMsg.szChatMsg, CHAT_MSG_SIZE, szcommand+1, nLEN );

/*item link, Juver, 2017/07/31 */
if ( pItemLink )
NetMsg.sItemLink = *pItemLink;

NETSEND ( &NetMsg );

return true;
}

if ( strCOMMAND=="/dsp" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

if ( strPARAM_01=="off" )
{
bDISP_CONSOLE = false;
bDISP_FPS = false;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", "console, fps", BOOL2STR(false) );
}
if ( strPARAM_01=="console" )
{
bDISP_CONSOLE = !bDISP_CONSOLE;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, BOOL2STR(bDISP_CONSOLE) );
}
else if ( strPARAM_01=="fps" )
{
bDISP_FPS = !bDISP_FPS;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, BOOL2STR(bDISP_FPS) );
}
else if ( strPARAM_01=="gate" )
{
PLANDMANCLIENT pLand = GLGaeaClient::GetInstance().GetActiveMap();
if ( !pLand ) return false;

DxLandGateMan* pGateMan = &pLand->GetLandGateMan();
if ( !pGateMan ) return false;

PDXLANDGATE pLandGate = pGateMan->GetListLandGate();
while ( pLandGate )
{
CString strGATE;
strGATE.Format ( "%d ", pLandGate->GetGateID() );

strGATE += "[";
if ( pLandGate->GetFlags() & DxLandGate::GATE_OUT ) strGATE += "out";
if ( (pLandGate->GetFlags()&DxLandGate::GATE_OUT) && (pLandGate->GetFlags()&DxLandGate::GATE_IN) )
strGATE += "/";
if ( pLandGate->GetFlags() & DxLandGate::GATE_IN ) strGATE += "in";
strGATE += "]";

if ( pLandGate->GetFlags() & DxLandGate::GATE_OUT )
{
strGATE += "=>";
const char *szMAPNAME = GLGaeaClient::GetInstance().GetMapName ( pLandGate->GetToMapID() );
if ( szMAPNAME ) strGATE += szMAPNAME;
}

CInnerInterface::GetInstance().PrintConsoleText ( strGATE.GetString() );

pLandGate = pLandGate->m_pNext;
};
}
else if ( strPARAM_01=="player" )
{
PLANDMANCLIENT pLand = GLGaeaClient::GetInstance().GetActiveMap();
if ( !pLand ) return false;

GLCHARCLIENTLIST* pLIST = pLand->GetCharList();
GLCHARCLIENTNODE *pCharCur = pLIST->m_pHead;
for ( ; pCharCur; pCharCur = pCharCur->pNext )
{
CInnerInterface::GetInstance().PrintConsoleText ( "%s : charid = %d",
pCharCur->Data->m_strName.c_str(), pCharCur->Data->GetCharData().dwCharID );
}
}
else if ( strPARAM_01=="allplayer" )
{
GLMSG::SNET_GM_VIEWALLPLAYER NetMsg;
NETSEND ( &NetMsg );
}
else if ( strPARAM_01=="event" )
{
GLMSG::SNET_GM_VIEWWORKEVENT NetMsg;
NETSEND ( &NetMsg );
}
}

else if ( strCOMMAND== "/shop_info" )
{
if ( strArray.GetSize() != 3 && strArray.GetSize() != 1 ) return true;

SNATIVEID mapID = GLGaeaClient::GetInstance().GetActiveMapID();

if( mapID.wMainID != 22 || mapID.wSubID != 0 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "Can't use the command in this map." );
return true;
}

GLMSG::SNET_GM_SHOP_INFO_REQ NetMsg;

if( strArray.GetSize() == 3 )
{
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

NetMsg.bBasicInfo = FALSE;

NetMsg.sSearchItemID.wMainID = (WORD) atoi ( strPARAM_01.GetString() );
NetMsg.sSearchItemID.wSubID = (WORD) atoi ( strPARAM_02.GetString() );
NETSENDTOFIELD ( &NetMsg );
}else{
NETSENDTOFIELD( &NetMsg );
}
}

else if ( strCOMMAND== "/slot" )
{
if ( strArray.GetSize() < 2 || strArray.GetSize() > 7 )
{
//CInnerInterface::GetInstance().PrintConsoleTextDlg ( "Invalid Command!" );
return true;
}
CString strPARAM_01 = strArray.GetAt(1);
GLMSG::SNETPC_NET_AT_SLOTEVENT_SHUFFLE pNetMsg;
if ( strPARAM_01=="roll" )
{
pNetMsg.bSHUFFLE = true;
if( strArray.GetSize() == 7 )
{
CString strPARAM_02 = strArray.GetAt(2); //amount
CString strPARAM_03 = strArray.GetAt(3); // # of winners
CString strPARAM_04 = strArray.GetAt(4); // range
CString strPARAM_05 = strArray.GetAt(5); //mid
CString strPARAM_06 = strArray.GetAt(6); //sid

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_05.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_06.GetString() );
WORD wAmount = (WORD) atoi ( strPARAM_02.GetString() );
WORD wWinners = (WORD) atoi ( strPARAM_03.GetString() );
WORD wRange = (WORD) atoi ( strPARAM_04.GetString() );

pNetMsg.sID = sItemReq;
pNetMsg.wAmount = wAmount;
pNetMsg.wWinners = wWinners;
pNetMsg.wRange = wRange;
}
else if( strArray.GetSize() == 6 )
{
CString strPARAM_02 = strArray.GetAt(2); // # of winners
CString strPARAM_03 = strArray.GetAt(3); // range
CString strPARAM_04 = strArray.GetAt(4); //mid
CString strPARAM_05 = strArray.GetAt(5); //sid

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_04.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_05.GetString() );
WORD wWinners = (WORD) atoi ( strPARAM_02.GetString() );
WORD wRange = (WORD) atoi ( strPARAM_03.GetString() );

pNetMsg.sID = sItemReq;
pNetMsg.wAmount = 1;
pNetMsg.wWinners = wWinners;
pNetMsg.wRange = wRange;
}else if ( strArray.GetSize() == 5 )
{
CString strPARAM_02 = strArray.GetAt(2); // range
CString strPARAM_03 = strArray.GetAt(3); //mid
CString strPARAM_04 = strArray.GetAt(4); //sid

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_03.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_04.GetString() );
WORD wRange = (WORD) atoi ( strPARAM_02.GetString() );

pNetMsg.sID = sItemReq;
pNetMsg.wAmount = 1;
pNetMsg.wWinners = 1;
pNetMsg.wRange = wRange;
}else if ( strArray.GetSize() == 4 )
{
CString strPARAM_02 = strArray.GetAt(2); //mid
CString strPARAM_03 = strArray.GetAt(3); //sid

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_02.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_03.GetString() );

pNetMsg.sID = sItemReq;
pNetMsg.wAmount = 1;
pNetMsg.wWinners = 1;
pNetMsg.wRange = 100;
}else if ( strArray.GetSize() == 3 )
{
CString strPARAM_02 = strArray.GetAt(2); //mid

SNATIVEID sItemReq = NATIVEID_NULL();
WORD wRange = (WORD) atoi ( strPARAM_02.GetString() );

pNetMsg.sID = sItemReq;
pNetMsg.wAmount = 1;
pNetMsg.wWinners = 1;
pNetMsg.wRange = wRange;
}
else{
pNetMsg.sID = NATIVEID_NULL();
pNetMsg.wAmount = 1;
pNetMsg.wWinners = 1;
pNetMsg.wRange = 100;
}
NETSEND(&pNetMsg);
}
else if ( strPARAM_01=="off" )
{
pNetMsg.bSHUFFLE = false;
NETSEND(&pNetMsg);
}
}
else if ( strCOMMAND=="/profile")
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

if ( strPARAM_01=="on" )
{
g_bProfile = TRUE;
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", "profile", "on" );
}
else if ( strPARAM_01=="off" )
{
g_bProfile = FALSE;
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", "profile", "off" );
}
}

else if ( strCOMMAND=="/chatlog")
{
const int NORMAL = 0x0001; // ÀϹÝ
const int PRIVATE = 0x0002; // ±Ó¼Ó¸»
const int PARTY = 0x0004; // ÆÄƼ
const int GUILD = 0x0008; // Ŭ·´
const int TOALL = 0x0010; // È®¼º±â
const int ALLIANCE = 0x0020; // µ¿¸Í
const int SYSTEM = 0x0100; // ½Ã½ºÅÛ
const int ALL = NORMAL | PRIVATE | PARTY | GUILD | TOALL | ALLIANCE | SYSTEM;


if ( strArray.GetSize() != 3 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

int nChatLogType = 0;

if ( strPARAM_02 == "normal" ) nChatLogType = NORMAL;
else if ( strPARAM_02 == "private" ) nChatLogType = PRIVATE;
else if ( strPARAM_02 == "party" ) nChatLogType = PARTY;
else if ( strPARAM_02 == "guild" ) nChatLogType = GUILD;
else if ( strPARAM_02 == "toall" ) nChatLogType = TOALL;
else if ( strPARAM_02 == "alliance" ) nChatLogType = ALLIANCE;
else if ( strPARAM_02 == "system" ) nChatLogType = SYSTEM;
else if ( strPARAM_02 == "all" ) nChatLogType = ALL;
else return true;

if ( strPARAM_01=="on" )
{
CInnerInterface::GetInstance().ChatLog( true, nChatLogType );
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s : %s", "chatlog", "on", strPARAM_02 );
}
else if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s : %s", "chatlog", "off", strPARAM_02 );
CInnerInterface::GetInstance().ChatLog( false, nChatLogType );

}
}
#if defined(_RELEASED)
else if ( strCOMMAND=="/showmethemoney")
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNET_GM_SHOWMETHEMONEY NetMsg;
NetMsg.llMoney = _ttoi64( strPARAM_01.GetString() );
NETSEND(&NetMsg);
}
#endif
/* else if ( strCOMMAND== "/get_item" || strCOMMAND== "/rsilent" ) //add itemcmd
{
if ( dwUSERLVL < USER_GM3 ) return E_FAIL;
if ( strArray.GetSize() != 5 && strArray.GetSize() != 4 )
{
//CInnerInterface::GetInstance().PrintConsoleText ( "Invalid Command! :p" );
return true;
}

if( strArray.GetSize() == 5 )
{
CString strPARAM_01 = strArray.GetAt(1); //mid
CString strPARAM_02 = strArray.GetAt(2); //sid
CString strPARAM_03 = strArray.GetAt(3); //pass
CString strPARAM_04 = strArray.GetAt(4); //amount

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_01.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_02.GetString() );
WORD wPass = (WORD) atoi ( strPARAM_03.GetString() );
WORD wAmount = (WORD) atoi ( strPARAM_04.GetString() );

GLGaeaClient::GetInstance().GetCharacter()->ReqGMItem(sItemReq,wAmount,wPass,dwUSERLVL);

}
else if( strArray.GetSize() == 4 )
{
CString strPARAM_01 = strArray.GetAt(1); //mid
CString strPARAM_02 = strArray.GetAt(2); //sid
CString strPARAM_03 = strArray.GetAt(3); //pass

SNATIVEID sItemReq;
sItemReq.wMainID = (WORD) atoi ( strPARAM_01.GetString() );
sItemReq.wSubID = (WORD) atoi ( strPARAM_02.GetString() );
WORD wPass = (WORD) atoi ( strPARAM_03.GetString() );
WORD wAmount = (WORD) 1 ;
GLGaeaClient::GetInstance().GetCharacter()->ReqGMItem(sItemReq,wAmount,wPass,dwUSERLVL);

}
}*/
else if ( strCOMMAND=="/weather" )
{
if ( strArray.GetSize() < 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD dwWeather(NULL);
bool bActiveWeather(true);
WORD map_mID = 0, map_sID = 0;
DWORD dwApplyTime = 0;
bool bEveryApply = TRUE;

if( strArray.GetSize() == 2 )
{
bEveryApply = TRUE;

if ( strPARAM_01=="clear" )
{
if( strArray.GetSize() != 2 ) return true;

bActiveWeather = FALSE;
dwWeather = NULL;
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, "clear" );
}else if ( strPARAM_01=="rain" )
{
dwWeather = FGW_RAIN;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, "begin" );
}
else if ( strPARAM_01=="snow" )
{
dwWeather = FGW_SNOW;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, "begin" );
}
else if ( strPARAM_01=="spore" )
{
dwWeather = FGW_SPORE;

CInnerInterface::GetInstance().PrintConsoleText( "%s : %s", strPARAM_01, "begin" );
}
else if ( strPARAM_01=="leave" )
{
dwWeather = FGW_LEAVES;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", strPARAM_01, "begin" );
}

}
// Add OneMap Weather
else if( strArray.GetSize() == 5 )
{

bEveryApply = FALSE;

CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);

map_mID = atoi(strPARAM_02.GetString());
map_sID = atoi(strPARAM_03.GetString());
dwApplyTime = atoi(strPARAM_04.GetString());

if ( strPARAM_01=="rain" )
{
dwWeather = FGW_RAIN;

CInnerInterface::GetInstance().PrintConsoleText ( "One Map Weather MapID %d %d : %d Minutes : %s : %s",
map_mID, map_sID, dwApplyTime, strPARAM_01, "begin" );
}
else if ( strPARAM_01=="snow" )
{
dwWeather = FGW_SNOW;

CInnerInterface::GetInstance().PrintConsoleText ( "One Map Weather MapID %d %d : %d Minutes : %s : %s",
map_mID, map_sID, dwApplyTime, strPARAM_01, "begin" );
}
else if ( strPARAM_01=="spore" )
{
dwWeather = FGW_SPORE;

CInnerInterface::GetInstance().PrintConsoleText ( "One Map Weather MapID %d %d : %d Minutes : %s : %s",
map_mID, map_sID, dwApplyTime, strPARAM_01, "begin" );
}
else if ( strPARAM_01=="leave" )
{
dwWeather = FGW_LEAVES;

CInnerInterface::GetInstance().PrintConsoleText ( "One Map Weather MapID %d %d : %d Minutes : %s : %s",
map_mID, map_sID, dwApplyTime, strPARAM_01, "begin" );
}
}else if( strArray.GetSize() == 4 )
{
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);

map_mID = atoi(strPARAM_02.GetString());
map_sID = atoi(strPARAM_03.GetString());

if ( strPARAM_01=="clear" )
{
dwWeather = NULL;
CInnerInterface::GetInstance().PrintConsoleText ( "One Map Weather MapID %d %d : Clear",
map_mID, map_sID );
}

bEveryApply = FALSE;
}else{
return TRUE;
}


// Map ¼³Á¤Çؼ­ º¸³»´Â ¸Þ½ÃÁö
if( bEveryApply == FALSE )
{
GLMSG::SNETSERVER_CTRL_WEATHER2 NetMsg;
NetMsg.dwWeather = dwWeather;
NetMsg.map_mID = map_mID;
NetMsg.map_sID = map_sID;
NetMsg.dwApplyTime = dwApplyTime;
NETSEND(&NetMsg);
// Àüü ¸Ê¿¡ Àû¿ëµÇ´Â ¸Þ½ÃÁö
}else
{
GLMSG::SNETSERVER_CTRL_WEATHER NetMsg;
NetMsg.bActive = bActiveWeather;
NetMsg.dwWeather = dwWeather;
NETSEND(&NetMsg);
}
}
else if ( strCOMMAND=="/time" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD dwTIME = (DWORD) atoi ( strPARAM_01.GetString() );
if ( dwTIME > 24 ) return true;

GLMSG::SNETSERVER_CTRL_TIME NetMsg;
NetMsg.dwTime = dwTIME;
NETSEND(&NetMsg);

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %d", "time", dwTIME );
}
else if ( strCOMMAND=="/month" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD dwMONTH = (DWORD) atoi ( strPARAM_01.GetString() );
if ( dwMONTH > 12 ) return true;

GLMSG::SNETSERVER_CTRL_MONTH NetMsg;
NetMsg.dwMonth = dwMONTH;
NETSEND(&NetMsg);

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %d", "month", dwMONTH );
}
else if ( strCOMMAND=="/itemhold" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

bool bHold(true);

if ( strPARAM_01=="on" )
{
bHold = true;

CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", "itemhold", "on" );
}
else if ( strPARAM_01=="off" )
{
bHold = false;
CInnerInterface::GetInstance().PrintConsoleText ( "%s : %s", "itemhold", "off" );
}

GLMSG::SNETSERVER_CTRL_GENITEMHOLD NetMsg;
NetMsg.bHold = bHold;
NETSEND(&NetMsg);
}
else if ( strCOMMAND=="/move2gate" || strCOMMAND=="/m2g" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD dwGATE = (DWORD) atoi ( strPARAM_01.GetString() );

PLANDMANCLIENT pLand = GLGaeaClient::GetInstance().GetActiveMap();
if ( !pLand ) return false;

DxLandGateMan* pGateMan = &pLand->GetLandGateMan();
if ( !pGateMan ) return false;

PDXLANDGATE pGATE = pGateMan->FindLandGate ( dwGATE );
if ( !pGATE )
{
CInnerInterface::GetInstance().PrintConsoleText ( "%d gate not exist", dwGATE );
}

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOVE2GATE_FLD NetMsgFld;
NetMsgFld.dwGaeaID = 0;
NetMsgFld.dwGATE = dwGATE;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOVE2GATE NetMsg;
NetMsg.dwGATE = dwGATE;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/move2pos" || strCOMMAND=="/m2p" )
{
if ( strArray.GetSize() != 5 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOVE2MAPPOS_FLD NetMsgFld;
NetMsgFld.nidMAP.wMainID = ( WORD ) atoi( strPARAM_01.GetString() );
NetMsgFld.nidMAP.wSubID = ( WORD ) atoi( strPARAM_02.GetString() );
NetMsgFld.dwPOSX = ( DWORD ) atoi( strPARAM_03.GetString() );
NetMsgFld.dwPOSY = ( DWORD ) atoi( strPARAM_04.GetString() );
NetMsgFld.dwGaeaID = 0;

NETSEND( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOVE2MAPPOS NetMsg;
NetMsg.nidMAP.wMainID = ( WORD ) atoi( strPARAM_01.GetString() );
NetMsg.nidMAP.wSubID = ( WORD ) atoi( strPARAM_02.GetString() );
NetMsg.dwPOSX = ( DWORD ) atoi( strPARAM_03.GetString() );
NetMsg.dwPOSY = ( DWORD ) atoi( strPARAM_04.GetString() );

NETSEND( &NetMsg );
}
}
else if ( strCOMMAND=="/move2char_cn" || strCOMMAND=="/m2c_cn" || strCOMMAND=="/m2c" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNETPC_GM_MOVE2CHAR NetMsg;
StringCchCopy ( NetMsg.szNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NETSEND(&NetMsg);

CInnerInterface::GetInstance().PrintConsoleText ( "move to charactor : %s", NetMsg.szNAME );
}

else if ( strCOMMAND=="/move2char_ci" || strCOMMAND=="/m2c_ci" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
DWORD dwCHARID = (DWORD) atoi (strPARAM_01.GetString());

GLMSG::SNETPC_GM_MOVE2CHAR NetMsg;
NetMsg.dwCHARID = dwCHARID;
NETSEND(&NetMsg);

CInnerInterface::GetInstance().PrintConsoleText ( "move to charactor : %s", NetMsg.szNAME );
}

else if ( strCOMMAND=="/msgview" )
{
if ( strArray.GetSize() < 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNETPC_GM_GETWHISPERMSG NetMsg;
if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "message view : off" );
}else{
StringCchCopy( NetMsg.szNAME, CHAR_SZNAME, strPARAM_01.GetString() );
CInnerInterface::GetInstance().PrintConsoleText ( "message view : %s on", NetMsg.szNAME );
}
NETSEND(&NetMsg);

}



else if ( strCOMMAND=="/genchar_cn" || strCOMMAND=="/genchar" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNETPC_GM_GENCHAR NetMsg;
StringCchCopy ( NetMsg.szNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NETSEND(&NetMsg);

CInnerInterface::GetInstance().PrintConsoleText ( "Recall charactor : %s", NetMsg.szNAME );
}

else if ( strCOMMAND=="/genchar_ci" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
DWORD dwCHARID = (DWORD) atoi (strPARAM_01.GetString());

GLMSG::SNETPC_GM_GENCHAR NetMsg;
NetMsg.dwCHARID = dwCHARID;
NETSEND(&NetMsg);
}

else if ( strCOMMAND=="/visible" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

if ( strPARAM_01=="none" )
{
GLGaeaClient::GetInstance().GetCharacter()->ReqVisibleNone();

CInnerInterface::GetInstance().PrintConsoleText ( "Visible Nothing" );
}
else if ( strPARAM_01=="off" )
{
GLGaeaClient::GetInstance().GetCharacter()->ReqVisibleOff();

CInnerInterface::GetInstance().PrintConsoleText ( "Character now Not Visible InGame" );
}
else if ( strPARAM_01=="on" )
{
GLGaeaClient::GetInstance().GetCharacter()->ReqVisibleOn();

CInnerInterface::GetInstance().PrintConsoleText ( "Character now Visible InGame" );
}
}
else if ( strCOMMAND=="/kickuser" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

DWORD dwID = (DWORD) atoi ( strPARAM_01.GetString() );

GLMSG::SNET_GM_KICK_USER NetMsg;
NetMsg.dwID = dwID;
NetMsg.bGaeaID = FALSE;
NetMsg.bName = FALSE;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/kick" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNET_GM_KICK_USER NetMsg;
StringCchCopy ( NetMsg.szNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NetMsg.bName = TRUE;
NetMsg.bGaeaID = FALSE;

NETSEND ( &NetMsg );

CInnerInterface::GetInstance().PrintConsoleText ( "Disconnecting Character : %s", strPARAM_01 );
}
else if ( strCOMMAND=="/kick_all" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
if ( strPARAM_01 == "sure" )
{
GLMSG::SNET_GM_KICK_USER NetMsg;
NetMsg.bGaeaID = TRUE;
NetMsg.bName = FALSE;

NETSEND ( &NetMsg );

CInnerInterface::GetInstance().PrintConsoleText ( "Disconnecting All GaeaID Except Executor" );
}
else CInnerInterface::GetInstance().PrintConsoleText ( "Disconnecting Failed" );

}
else if( strCOMMAND=="/limit_event_begin" )
{
#ifdef CH_PARAM_USEGAIN
return true;
#endif
if ( strArray.GetSize() != 7 && strArray.GetSize() != 8 ) return true;

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);
CString strPARAM_05 = strArray.GetAt(5);
CString strPARAM_06 = strArray.GetAt(6);

int start_Lv = (int)atoi(strPARAM_01.GetString());
int end_Lv = (int)atoi(strPARAM_02.GetString());
int play_Time = (int)atoi(strPARAM_03.GetString());
int buster_Time = (int)atoi(strPARAM_04.GetString());
float expGain_Rate = (float)atof(strPARAM_05.GetString());
float itemGain_Rate = (float)atof(strPARAM_06.GetString());

DWORD dwEventMinute = 0;
if( strArray.GetSize() == 8 )
{
CString strPARAM_07;
strPARAM_07 = strArray.GetAt(7);
dwEventMinute = (DWORD)atoi(strPARAM_07.GetString());
}

// BYPASS MAX 10.00 RATE OF BTG :) -RSiLENT
/*#if !defined(_RELEASED)
if( expGain_Rate > 10.0f ) expGain_Rate = 10.0f;
if( itemGain_Rate > 10.0f ) itemGain_Rate = 10.0f;
#endif*/


CInnerInterface::GetInstance().PrintConsoleText (
"Limit Event Start, StartLv: %d, EndLv: %d, PlayTime: %d, BusterTime: %d ExpGainRate: %.3f ItemGainRate: %.3f EventMinute %d",
start_Lv, end_Lv, play_Time, buster_Time, expGain_Rate, itemGain_Rate, dwEventMinute );

GLMSG::SNET_GM_LIMIT_EVENT_BEGIN NetMsg;
NetMsg.start_Lv = start_Lv;
NetMsg.end_Lv = end_Lv;
NetMsg.play_Time = play_Time;
NetMsg.buster_Time = buster_Time;
NetMsg.expGain_Rate = expGain_Rate;
NetMsg.itemGain_Rate = itemGain_Rate;
NetMsg.dwEventMinute = dwEventMinute;
NETSEND ( &NetMsg );

}
else if( strCOMMAND=="/limit_event_end" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "Limit Event End" );
GLMSG::SNET_GM_LIMIT_EVENT_END NetMsg;
NETSEND ( &NetMsg );

}
else if ( strCOMMAND=="/eventexp_begin" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

float fSCALE = (float) atof ( strPARAM_01.GetString() );

GLMSG::SNET_GM_EVENT_EXP NetMsg;
NetMsg.fRATE = fSCALE;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/eventexp_end" )
{
GLMSG::SNET_GM_EVENT_EXP_END NetMsg;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/eventitem_begin" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

float fSCALE = (float) atof ( strPARAM_01.GetString() );

GLMSG::SNET_GM_EVENT_ITEM_GEN NetMsg;
NetMsg.fRATE = fSCALE;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/eventitem_end" )
{
GLMSG::SNET_GM_EVENT_ITEM_GEN_END NetMsg;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/eventmoney_begin" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

float fSCALE = (float) atof ( strPARAM_01.GetString() );

GLMSG::SNET_GM_EVENT_MONEY_GEN NetMsg;
NetMsg.fRATE = fSCALE;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/eventmoney_end" )
{
GLMSG::SNET_GM_EVENT_MONEY_GEN_END NetMsg;
NetMsg.dwCHARID = GLGaeaClient::GetInstance().GetCharacter()->m_dwCharID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/pk_mode" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

BOOL bMODE(FALSE);
if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "pk_mode : off" );
bMODE = FALSE;
}
else if ( strPARAM_01=="on" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "pk_mode : on" );
bMODE = TRUE;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "pk_mode : invalid param" );
return true;
}

GLMSG::SNET_SERVER_PLAYERKILLING_MODE NetMsg;
NetMsg.bMODE = bMODE;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/where_npc" )
{
if ( strArray.GetSize() != 3 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

WORD mid = (WORD) atoi (strPARAM_01.GetString());
WORD sid = (WORD) atoi (strPARAM_02.GetString());

CInnerInterface::GetInstance().PrintConsoleText ( "where_npc : [%d/%d]", mid, sid );

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_WHERE_NPC_FLD NetMsgFld;
NetMsgFld.nidNPC = SNATIVEID(mid,sid);
NetMsgFld.dwGaeaID = 0;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_WHERE_NPC NetMsg;
NetMsg.nidNPC = SNATIVEID(mid,sid);
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/crow_list" )
{
if ( strArray.GetSize() > 2 ) return true;

BYTE dwFindMob = 0;
if( strArray.GetSize() != 1 )
{
CString strPARAM_01 = strArray.GetAt(1);
if ( strPARAM_01=="mob" )
{
dwFindMob = 1;
}
else if ( strPARAM_01=="npc" )
{
dwFindMob = 2;
}
}

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_PRINT_CROWLIST_FLD NetMsgFld;
NetMsgFld.dwGaeaID = 0;
NetMsgFld.dwFindMob = dwFindMob;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_PRINT_CROWLIST NetMsg;
NetMsg.dwFindMob = dwFindMob;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/bighead" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

bool bMODE(false);
if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighead : off" );
bMODE = false;
}
else if ( strPARAM_01=="on" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighead : on" );
bMODE = true;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighead : invalid param" );
return true;
}

GLMSG::SNET_GM_BIGHEAD NetMsg;
NetMsg.bBIGHEAD = bMODE;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/bighand" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

bool bMODE(false);
if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighand : off" );
bMODE = false;
}
else if ( strPARAM_01=="on" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighand : on" );
bMODE = true;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "bighand : invalid param" );
return true;
}

GLMSG::SNET_GM_BIGHAND NetMsg;
NetMsg.bBIGHAND = bMODE;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/mob_gen" )
{
if ( strArray.GetSize() != 5 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);

WORD wMainID = (WORD) atoi (strPARAM_01.GetString() );
WORD wSubID = (WORD) atoi (strPARAM_02.GetString() );
WORD wPosX = (WORD) atoi (strPARAM_03.GetString() );
WORD wPosY = (WORD) atoi (strPARAM_04.GetString() );

PCROWDATA pCrowData = GLCrowDataMan::GetInstance().GetCrowData ( wMainID, wSubID );
if ( !pCrowData )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen : invalid mob_id" );
return true;
}

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOB_GEN_FLD NetMsgFld;
NetMsgFld.dwGaeaID = 0;
NetMsgFld.wMainID = wMainID;
NetMsgFld.wSubID = wSubID;
NetMsgFld.wPosX = wPosX;
NetMsgFld.wPosY = wPosY;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOB_GEN NetMsg;
NetMsg.wMainID = wMainID;
NetMsg.wSubID = wSubID;
NetMsg.wPosX = wPosX;
NetMsg.wPosY = wPosY;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/mob_gen_ex" )
{
if ( strArray.GetSize() != 10 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);
CString strPARAM_05 = strArray.GetAt(5);
CString strPARAM_06 = strArray.GetAt(6);
CString strPARAM_07 = strArray.GetAt(7);
CString strPARAM_08 = strArray.GetAt(8);
CString strPARAM_09 = strArray.GetAt(9);

WORD wMobMID = (WORD) atoi (strPARAM_01.GetString() );
WORD wMobSID = (WORD) atoi (strPARAM_02.GetString() );
WORD wMapMID = (WORD) atoi (strPARAM_03.GetString() );
WORD wMapSID = (WORD) atoi (strPARAM_04.GetString() );
WORD wPosX = (WORD) atoi (strPARAM_05.GetString() );
WORD wPosY = (WORD) atoi (strPARAM_06.GetString() );
WORD wRange = (WORD) atoi (strPARAM_07.GetString() );
WORD wNum = (WORD) atoi (strPARAM_08.GetString() );
WORD wChannel = (WORD) atoi (strPARAM_09.GetString() );

PCROWDATA pCrowData = GLCrowDataMan::GetInstance().GetCrowData ( wMobMID, wMobSID );
if ( !pCrowData )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : invalid mob_id" );
return false;
}

SNATIVEID sMapID(wMapMID, wMapSID);
GLMapList::FIELDMAP MapsList = GLGaeaClient::GetInstance().GetMapList ();
GLMapList::FIELDMAP_ITER iter = MapsList.find ( sMapID.dwID );
if ( iter==MapsList.end() )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : invalid map_id" );
return false;
}

if ( wRange*100 < wNum )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : out of mob amount in range" );
return false;
}

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOB_GEN_EX_FLD NetMsgFld;
NetMsgFld.wMobMID = wMobMID;
NetMsgFld.wMobSID = wMobSID;
NetMsgFld.wMapMID = wMapMID;
NetMsgFld.wMapSID = wMapSID;
NetMsgFld.wPosX = wPosX;
NetMsgFld.wPosY = wPosY;
NetMsgFld.wRange = wRange;
NetMsgFld.wNum = wNum;
NetMsgFld.dwGaeaID = 0;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOB_GEN_EX NetMsg;
NetMsg.wMobMID = wMobMID;
NetMsg.wMobSID = wMobSID;
NetMsg.wMapMID = wMapMID;
NetMsg.wMapSID = wMapSID;
NetMsg.wPosX = wPosX;
NetMsg.wPosY = wPosY;
NetMsg.wRange = wRange;
NetMsg.wNum = wNum;
NetMsg.bThisChannel = wChannel;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/mob_del" )
{
if ( strArray.GetSize() > 3 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_del : invalid param" );
return true;
}

WORD wMobMID = USHRT_MAX;
WORD wMobSID = USHRT_MAX;
bool bMaterial = false;

if ( strArray.GetSize() == 2 )
{
CString strPARAM_01 = strArray.GetAt(1);
bMaterial = (bool) atoi( strPARAM_01.GetString() );
}

if ( strArray.GetSize() == 3 )
{
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
wMobMID = (WORD) atoi (strPARAM_01.GetString() );
wMobSID = (WORD) atoi (strPARAM_02.GetString() );
}


if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOB_DEL_FLD NetMsgFld;
NetMsgFld.dwGaeaID = 0;
NetMsgFld.sMobID.wMainID = wMobMID;
NetMsgFld.sMobID.wSubID = wMobSID;
NetMsgFld.bMaterial = bMaterial;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOB_DEL NetMsg;
NetMsg.sMobID.wMainID = wMobMID;
NetMsg.sMobID.wSubID = wMobSID;
NetMsg.bMaterial = bMaterial;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/mob_del_ex" )
{
if ( strArray.GetSize() != 6 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_del_ex : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);
CString strPARAM_03 = strArray.GetAt(3);
CString strPARAM_04 = strArray.GetAt(4);
CString strPARAM_05 = strArray.GetAt(5);

WORD wMobMID = (WORD) atoi (strPARAM_01.GetString() );
WORD wMobSID = (WORD) atoi (strPARAM_02.GetString() );
WORD wMapMID = (WORD) atoi (strPARAM_03.GetString() );
WORD wMapSID = (WORD) atoi (strPARAM_04.GetString() );
WORD wChannel = (WORD) atoi (strPARAM_05.GetString() );

PCROWDATA pCrowData = GLCrowDataMan::GetInstance().GetCrowData ( wMobMID, wMobSID );
if ( !pCrowData )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : invalid mob_id" );
return false;
}

SNATIVEID sMapID(wMapMID, wMapSID);
GLMapList::FIELDMAP MapsList = GLGaeaClient::GetInstance().GetMapList ();
GLMapList::FIELDMAP_ITER iter = MapsList.find ( sMapID.dwID );
if ( iter==MapsList.end() )
{
CInnerInterface::GetInstance().PrintConsoleText ( "mob_gen_ex : invalid map_id" );
return false;
}
if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNET_GM_MOB_DEL_EX_FLD NetMsgFld;
NetMsgFld.wMobMID = wMobMID;
NetMsgFld.wMobSID = wMobSID;
NetMsgFld.wMapMID = wMapMID;
NetMsgFld.wMapSID = wMapSID;
NETSEND ( &NetMsgFld );
}
else
{
GLMSG::SNET_GM_MOB_DEL_EX NetMsg;
NetMsg.wMobMID = wMobMID;
NetMsg.wMobSID = wMobSID;
NetMsg.wMapMID = wMapMID;
NetMsg.wMapSID = wMapSID;
NETSEND ( &NetMsg );
}
}
else if ( strCOMMAND=="/lev_new" )
{
if ( strArray.GetSize() != 2 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "lev_new : invalid param" );
return true;
}
CString strPARAM_01 = strArray.GetAt(1);

PLANDMANCLIENT pLAND = GLGaeaClient::GetInstance().GetActiveMap();
if ( !pLAND )
{
CInnerInterface::GetInstance().PrintConsoleText ( "lev_new : unknown error" );
return true;
}

SNATIVEID nidMAP = pLAND->GetMapID();

GLMSG::SNET_GM_MOB_LEV NetMsg;
NetMsg.wMAP_MID = nidMAP.wMainID;
NetMsg.wMAP_SID = nidMAP.wSubID;
StringCchCopy ( NetMsg.szLevelFile, GLMSG::SNET_GM_MOB_LEV::FILE_NAME, strPARAM_01.GetString() );
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/lev_del" )
{
PLANDMANCLIENT pLAND = GLGaeaClient::GetInstance().GetActiveMap();
if ( !pLAND )
{
CInnerInterface::GetInstance().PrintConsoleText ( "lev_del : unknown error" );
return true;
}

SNATIVEID nidMAP = pLAND->GetMapID();

GLMSG::SNET_GM_MOB_LEV_CLEAR NetMsg;
NetMsg.wMAP_MID = nidMAP.wMainID;
NetMsg.wMAP_SID = nidMAP.wSubID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/chatblock_ua" )
{
if ( strArray.GetSize() != 3 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "chatblock_ua : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

DWORD dwMinute = (DWORD) atoi (strPARAM_02.GetString());

GLMSG::SNET_GM_CHAT_BLOCK_UACCOUNT NetMsg;
StringCchCopy ( NetMsg.szUACCOUNT, USR_ID_LENGTH+1, strPARAM_01.GetString() );
NetMsg.dwBLOCK_MINUTE = dwMinute;
NETSEND ( &NetMsg );

CInnerInterface::GetInstance().PrintConsoleText ( "request chat block : uaccount %s, minute %d", NetMsg.szUACCOUNT, NetMsg.dwBLOCK_MINUTE );
}
else if ( strCOMMAND=="/chatblock_cn" )
{
if ( strArray.GetSize() != 3 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "chatblock_cn : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

DWORD dwMinute = (DWORD) atoi (strPARAM_02.GetString());

GLMSG::SNET_GM_CHAT_BLOCK_CHARNAME NetMsg;
StringCchCopy ( NetMsg.szCHARNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NetMsg.dwBLOCK_MINUTE = dwMinute;
NETSEND ( &NetMsg );

CInnerInterface::GetInstance().PrintConsoleText ( "request chat block : charname %s, minute %d", NetMsg.szCHARNAME, NetMsg.dwBLOCK_MINUTE );
}
else if ( strCOMMAND=="/chatblock_ci" )
{
if ( strArray.GetSize() != 3 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "chatblock_ci : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

DWORD dwCHARID = (DWORD) atoi (strPARAM_01.GetString());
DWORD dwMinute = (DWORD) atoi (strPARAM_02.GetString());

GLMSG::SNET_GM_CHAT_BLOCK_CHARID NetMsg;
NetMsg.dwCHARID = dwCHARID;
NetMsg.dwBLOCK_MINUTE = dwMinute;
NETSEND ( &NetMsg );

CInnerInterface::GetInstance().PrintConsoleText ( "request chat block : charid %d, minute %d", NetMsg.dwCHARID, NetMsg.dwBLOCK_MINUTE );
}
else if ( strCOMMAND=="/charinfo_cn" )
{
if ( strArray.GetSize() != 2 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "charinfo_cn : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNET_GM_CHAR_INFO_4NAME NetMsg;
StringCchCopy ( NetMsg.szCHARNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/charinfo_ci" )
{
if ( strArray.GetSize() != 2 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "charinfo_ci : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);

DWORD dwCHARID = (DWORD) atoi (strPARAM_01.GetString());

GLMSG::SNET_GM_CHAR_INFO_4CHARID NetMsg;
NetMsg.dwCHARID = dwCHARID;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/freepk_on" )
{
if ( strArray.GetSize() != 2 )
{
CInnerInterface::GetInstance().PrintConsoleText ( "freepk : invalid param" );
return true;
}

CString strPARAM_01 = strArray.GetAt(1);

DWORD dwTIME = (DWORD) atoi (strPARAM_01.GetString());

GLMSG::SNET_GM_FREEPK NetMsg;
NetMsg.dwPKTIME = dwTIME;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/freepk_off" )
{
DWORD dwTIME(0);

GLMSG::SNET_GM_FREEPK NetMsg;
NetMsg.dwPKTIME = dwTIME;
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/warning_msg" )
{
if ( strArray.GetSize() != 2 ) return true;
CString strPARAM_01 = strArray.GetAt(1);

bool bOn(false);
if ( strPARAM_01=="off" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "Warning Message : off" );
bOn = false;
}
else if ( strPARAM_01=="on" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "Warning Message : on" );
bOn = true;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "warning_msg : invalid param" );
return true;
}

GLMSG::SNET_GM_WARNING_MSG NetMsg;
NetMsg.bOn = bOn;
NETSEND ( &NetMsg );
}
// Memo : (À̵¿¼Óµµ¼³Á¤ 1~50±îÁö¸¸ ¼³Á¤°¡´É)
// (°ø°Ý¼Óµµ¼³Á¤ 1~50±îÁö¸¸ ¼³Á¤°¡´É)
// (°ø°Ý·Â¼³Á¤ 1~50±îÁö¸¸ ¼³Á¤°¡´É)
else if( strCOMMAND=="/event_ex_begin" )
{
if ( strArray.GetSize() != 3 ) return true;

CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

EMGM_EVENT_TYPE emType(EMGM_EVENT_NONE);
WORD wValue = (WORD)atoi( strPARAM_02.GetString() );

if ( strPARAM_01=="speed" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_begin : speed" );
emType = EMGM_EVENT_SPEED;
}
else if ( strPARAM_01=="aspeed" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_begin : aspeed" );
emType = EMGM_EVENT_ASPEED;
}
else if ( strPARAM_01=="attack" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_begin : attack" );
emType = EMGM_EVENT_ATTACK;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_begin : invalid param" );
return true;
}

GLMSG::SNET_GM_EVENT_EX NetMsg;
NetMsg.emType = emType;
NetMsg.wValue = wValue;
NETSEND ( &NetMsg );
}
else if( strCOMMAND=="/event_ex_end" )
{
if ( strArray.GetSize() != 2 ) return true;

CString strPARAM_01 = strArray.GetAt(1);
EMGM_EVENT_TYPE emType(EMGM_EVENT_NONE);

if ( strPARAM_01=="speed" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_end : speed" );
emType = EMGM_EVENT_SPEED;
}
else if ( strPARAM_01=="aspeed" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_end : aspeed" );
emType = EMGM_EVENT_ASPEED;
}
else if ( strPARAM_01=="attack" )
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_end : attack" );
emType = EMGM_EVENT_ATTACK;
}
else
{
CInnerInterface::GetInstance().PrintConsoleText ( "event_ex_end : invalid param" );
return true;
}

GLMSG::SNET_GM_EVENT_EX_END NetMsg;
NetMsg.emType = emType;
NETSEND ( &NetMsg );
}

/*event map move, Juver, 2017/08/25 */
else if ( strCOMMAND=="/m2mp" )
{
if ( strArray.GetSize() != 5 ) return true;

CString strPARAM_01 = strArray.GetAt(1); //map mid
CString strPARAM_02 = strArray.GetAt(2); //map sid
CString strPARAM_03 = strArray.GetAt(3); //map posx
CString strPARAM_04 = strArray.GetAt(4); //map posy

if ( DxGlobalStage::GetInstance().IsEmulator() )
{
GLMSG::SNETPC_REQ_EVENT_MOVEMAP_FLD net_msg_command;
net_msg_command.nidMAP.wMainID = (WORD)atoi( strPARAM_01.GetString() );
net_msg_command.nidMAP.wSubID = (WORD)atoi( strPARAM_02.GetString() );
net_msg_command.wPosX = (WORD)atoi( strPARAM_03.GetString() );
net_msg_command.wPosY = (WORD)atoi( strPARAM_04.GetString() );
net_msg_command.bCurMapCheck = FALSE;
net_msg_command.bCalculatePos = TRUE;
net_msg_command.dwCharID = 0;

NETSEND(&net_msg_command);
}
else
{
GLMSG::SNETPC_GM_MOVE2_MAPPOS net_msg_command;
net_msg_command.nidMAP.wMainID = (WORD)atoi( strPARAM_01.GetString() );
net_msg_command.nidMAP.wSubID = (WORD)atoi( strPARAM_02.GetString() );
net_msg_command.wPosX = (WORD)atoi( strPARAM_03.GetString() );
net_msg_command.wPosY = (WORD)atoi( strPARAM_04.GetString() );

NETSEND(&net_msg_command);
}

}
/*private market set, Juver, 2018/01/02 */
else if ( strCOMMAND=="/setvend_on" )
{
GLMSG::SNET_GM_SET_PRIVATE_MARKET NetMsg;
NetMsg.bEnable = TRUE;
NETSEND ( &NetMsg );
CInnerInterface::GetInstance().PrintConsoleText ( "vend on" );
}
/*private market set, Juver, 2018/01/02 */
else if ( strCOMMAND=="/setvend_off" )
{
GLMSG::SNET_GM_SET_PRIVATE_MARKET NetMsg;
NetMsg.bEnable = FALSE;
NETSEND ( &NetMsg );
CInnerInterface::GetInstance().PrintConsoleText ( "vend off" );
}
/*megaphone set, Juver, 2018/01/02 */
else if ( strCOMMAND=="/setmega_on" )
{
GLMSG::SNET_GM_SET_MEGAPHONE NetMsg;
NetMsg.bEnable = TRUE;
NETSEND ( &NetMsg );
CInnerInterface::GetInstance().PrintConsoleText ( "mega on" );
}
/*megaphone set, Juver, 2018/01/02 */
else if ( strCOMMAND=="/setmega_off" )
{
GLMSG::SNET_GM_SET_MEGAPHONE NetMsg;
NetMsg.bEnable = FALSE;
NETSEND ( &NetMsg );
CInnerInterface::GetInstance().PrintConsoleText ( "mega off" );
}

/*get process command, Juver, 2017/06/08 */
else if ( strCOMMAND=="/getproc" )
{
if ( strArray.GetSize() != 2 ) return true;

CString strPARAM_01 = strArray.GetAt(1);

GLMSG::SNET_GM_CHAR_GETPROC NetMsg;
StringCchCopy ( NetMsg.szCHARNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NETSEND ( &NetMsg );
}
else if ( strCOMMAND=="/kwreason" )
{
if ( strArray.GetSize() != 3 ) return true;
CString strPARAM_01 = strArray.GetAt(1);
CString strPARAM_02 = strArray.GetAt(2);

WORD nReasonType = (WORD) atoi (strPARAM_02.GetString() );

if( nReasonType == 0 ) return true;

GLMSG::SNET_GM_KICK_USER NetMsg;
StringCchCopy ( NetMsg.szNAME, CHAR_SZNAME, strPARAM_01.GetString() );
NetMsg.bName = TRUE;
NetMsg.bReason = TRUE;
NetMsg.nReasonType = nReasonType;

NETSEND ( &NetMsg );

//CInnerInterface::GetInstance().PrintConsoleText ( "Kicked Character %s with nReasonType %d", strPARAM_01, nReasonType );
}
else
{
CString strPARAM_00 = strArray.GetAt(0);
// CInnerInterface::GetInstance().PrintConsoleText ( "invalid command : %s", strPARAM_00.GetString() );
}

return true;
}
};
 
Upvote 0
Back
Top