• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

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