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!

Chat command - Teleportplayer

Newbie Spellweaver
Joined
Sep 7, 2014
Messages
51
Reaction score
2
Find ZChat_Cmds.cpp :
Code

void ChatCmd_AdminTeleport2(const char* line, const int argc, char **const argv);

Code
_CC_AC("teleportplayer", &ChatCmd_AdminTeleport2, CCF_ADMIN, ARGVNoMin, 1 , true,"/teleportplayer <name>", "");

Code
void ChatCmd_AdminTeleport2(const char* line, const int argc, char **const argv){
if (!ZGetMyInfo()->IsAdminGrade()) {
return;
}


if(!ZGetGame())
{
ZChatOutput("You need to be in-game!", ZChat::CMT_SYSTEM);
return;
}


if (argc < 2)
{
ZChatOutput("Enter a character name!", ZChat::CMT_SYSTEM);
return;
}
ZPOSTCMD2(MC_ADMIN_TELEPORT, MCmdParamStr(""), MCmdParamStr(argv[1]));
}

MSharedCommandTable.h
#define MC_ADMIN_TELEPORT xxxxx


MMatchServer_OnCommand.cpp
case MC_ADMIN_TELEPORT: {
char szAdminName[ MAX_CHARNAME_LENGTH ] = "";
char szTargetName[ MAX_CHARNAME_LENGTH ] = "";


if (pCommand->GetParameter(szAdminName, 0, MPT_STR, MAX_CHARNAME_LENGTH ) == false) break;
if (pCommand->GetParameter(szTargetName, 1, MPT_STR, MAX_CHARNAME_LENGTH ) == false) break;


MMatchObject* pObj = GetObjectA(pCommand->GetSenderUID());

if (pObj == NULL) break;
if(!IsAdminGrade(pObj)) break;




MMatchObject* pTargetObj = GetPlayerByName(szTargetName);
if (pTargetObj == NULL)
{
NotifyMessage(pObj->GetUID(), MATCHNOTIFY_GENERAL_USER_NOTFOUND);
break;
}


MCommand* pCmd = CreateCommand(MC_ADMIN_TELEPORT, MUID(0,0));
pCmd->AddParameter(new MCmdParamStr(pObj->GetName()));
pCmd->AddParameter(new MCmdParamStr(szTargetName));
RouteToListener(pTargetObj, pCmd);
}

break;


MSharedCommandTable.cpp
C(MC_ADMIN_TELEPORT, "Admin.Teleport", "Teleport player to admin position", MCDT_MACHINE2MACHINE) P(MPT_STR, "AdminName")

P(MPT_STR, "TargetName");


ZGameClient_OnCommand.cpp
case MC_ADMIN_TELEPORT: {
char szAdminName[128] = "";
char szTargetName[128] = "";


if (pCommand->GetSenderUID() != GetServerUID()) //Mark idea
break;

pCommand->GetParameter(szAdminName, 0, MPT_STR, sizeof(szAdminName) );
pCommand->GetParameter(szTargetName, 1, MPT_STR, sizeof(szTargetName) );


ZCharacterManager *pZCharacterManager = ZGetCharacterManager();

if (pZCharacterManager != NULL)
{
for (ZCharacterManager::iterator itor = pZCharacterManager->begin(); itor != pZCharacterManager->end(); ++itor)
{
ZCharacter* pCharacter = (*itor).second;


if (strcmp(pCharacter->GetProperty()->GetName(), szAdminName) == 0)
ZGetGame()->m_pMyCharacter->SetPosition(pCharacter->GetPosition());
}
}
}

break;



I Succeeded
 
Last edited:
Rival Gamers Owner
Loyal Member
Joined
Jul 7, 2007
Messages
962
Reaction score
161
exploitable by udp nice c&p fail.
 
Back
Top