MUTEALL: This command work to mute all players at room.
OVERHEREALL: This command will teleport all players to your position.
KICKALL: This command will kick all players at room except player from argument. (Not tested 100% but this should work).
ALIVE: This command will show how many players are alive. (useful for events).
I did it a long time ago but I am going post this now.
I'll not answer newbie questions.
MUTEALL
ZChat_Cmds.cpp
PHP Code:
void ChatCmd_AdminMuteAll(const char* line, const int argc, char **const argv);
PHP Code:
_CC_AC("muteall", &ChatCmd_AdminMuteAll, CCF_ADMIN, ARGVNoMin, 1 , true,"/muteall <num>", "");
PHP Code:
void ChatCmd_AdminMuteAll(const char* line, const int argc, char **const argv)
{
if( argc < 2 )
{
OutputCmdWrongArgument(argv[0]);
return;
}
if( !ZGetGame() )
{
ZChatOutput("You're not in game.", ZChat::CMT_SYSTEM);
return;
}
int nValue = atoi(argv[1]);
if( nValue == 0 )
{
ZChatOutput("Room unmuted.", ZChat::CMT_SYSTEM);
}
else if( nValue == 1 )
{
ZChatOutput("Room muted.", ZChat::CMT_SYSTEM);
}
else
{
ZChatOutput("Use: /muteall [0-1]", ZChat::CMT_SYSTEM);
return;
}
ZPOSTCMD2(MC_MUTE_ALL, MCmdParamStr(""), MCmdParamInt(nValue));
}
MMatchServer_OnCommand.cpp
PHP Code:
case MC_MUTE_ALL:
{
char szAdminName[ MAX_CHARNAME_LENGTH ] = "";
int nValue = 0;
if (!pCommand->GetParameter( szAdminName, 0, MPT_STR, MAX_CHARNAME_LENGTH )) break;
if (!pCommand->GetParameter( &nValue, 1, MPT_INT )) break;
MMatchObject* pObj = GetObjectA(pCommand->GetSenderUID());
if (pObj == NULL) break;
if(!IsAdminGrade(pObj)) break;
MCommand* pCmd = CreateCommand(MC_MUTE_ALL, MUID(0,0));
pCmd->AddParameter(new MCmdParamStr(pObj->GetName()));
pCmd->AddParameter(new MCmdParamInt(nValue));
RouteToStage(pObj->GetStageUID(), pCmd);
}
break;
ZGameClient_OnCommand.cpp
PHP Code:
case MC_MUTE_ALL:
{
char szAdminName[128] = "";
int nValue = 0;
char szOutput[111] = "";
if(ZGetMyInfo()->IsAdminGrade()) break;
pCommand->GetParameter(szAdminName, 0, MPT_STR, sizeof(szAdminName) );
pCommand->GetParameter(&nValue, 1, MPT_INT);
if( nValue == 1 )
{
ZGetGame()->m_pMyCharacter->GetStatus().CheckCrc();
ZGetGame()->m_pMyCharacter->GetStatus().Ref().bMuteAll = true;
ZGetGame()->m_pMyCharacter->GetStatus().MakeCrc();
sprintf( szOutput, "Room muted by %s.", szAdminName );
}
else
{
ZGetGame()->m_pMyCharacter->GetStatus().CheckCrc();
ZGetGame()->m_pMyCharacter->GetStatus().Ref().bMuteAll = false;
ZGetGame()->m_pMyCharacter->GetStatus().MakeCrc();
sprintf( szOutput, "Room unmuted by %s.", szAdminName );
}
ZChatOutput( szOutput, ZChat::CMT_SYSTEM );
}
break;
MSharedCommandTable.cpp
PHP Code:
C(MC_MUTE_ALL, "Admin.MuteAll", "", MCDT_MACHINE2MACHINE)
P(MPT_STR, "AdminName")
P(MPT_INT, "Value")
MSharedCommandTable.h
PHP Code:
#define MC_MUTE_ALL XXXXX //Replace XXXXX following your numbers from file.
ZCharacter.h
Find: ZCharacterStatus
Paste:
Find: ZCharacterStatus() :
Paste:
ZPost.h
Find: ZPostPeerChat
Paste:
PHP Code:
if(ZGetGame()->m_pMyCharacter->GetStatus().Ref().bMuteAll){
return;
}
OVERHEREALL
ZChat_Cmds.cpp
PHP Code:
void ChatCmd_AdminOverHereAll(const char* line, const int argc, char **const argv);
PHP Code:
_CC_AC("overhereall", &ChatCmd_AdminOverHereAll, CCF_ADMIN, ARGVNoMin,-1 , true,"/overhereall", "");
PHP Code:
void ChatCmd_AdminOverHereAll(const char* line, const int argc, char **const argv)
{
if( !ZGetGame() )
{
ZChatOutput("You're not in game.", ZChat::CMT_SYSTEM);
return;
}
ZPOSTCMD1(MC_OVERHERE_ALL, MCmdParamStr(""));
}
MMatchServer_OnCommand.cpp
PHP Code:
case MC_OVERHERE_ALL:
{
char szAdminName[128] = "";
if (!pCommand->GetParameter( szAdminName, 0, MPT_STR )) break;
MMatchObject* pObj = GetObjectA(pCommand->GetSenderUID());
if (pObj == NULL) break;
if(!IsAdminGrade(pObj)) break;
MCommand* pCmd = CreateCommand(MC_OVERHERE_ALL, MUID(0,0));
pCmd->AddParameter(new MCmdParamStr(pObj->GetName()));
RouteToStage(pObj->GetStageUID(), pCmd);
Announce( pObj->GetUID(), "Room teleported to your position." );
}
break;
ZGameClient_OnCommand.cpp
PHP Code:
case MC_OVERHERE_ALL:
{
char szAdminName[128] = "";
char szOutput[512] = "";
if( ZGetMyInfo()->IsAdminGrade() ) break;
pCommand->GetParameter(szAdminName, 0, MPT_STR, sizeof(szAdminName) );
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))
ZGetGame()->m_pMyCharacter->SetPosition(pCharacter->GetPosition());
}
}
ZChatOutput("Room has been teleport by staff.");
}
break;
MSharedCommandTable.cpp
PHP Code:
C(MC_OVERHERE_ALL, "Admin.OverHereAll", "", MCDT_MACHINE2MACHINE)
P(MPT_STR, "AdminName")
MSharedCommandTable.h
PHP Code:
#define MC_OVERHERE_ALL XXXXX //Replace XXXXX following your numbers from file.
KICKALL
ZChat_Cmds.cpp
PHP Code:
void ChatCmd_AdminKickAll(const char* line, const int argc, char **const argv);
PHP Code:
_CC_AC("kickall", &ChatCmd_AdminKickAll, CCF_ADMIN, ARGVNoMin, 1 , true,"/kickall <player>", "");
PHP Code:
void ChatCmd_AdminKickAll(const char* line, const int argc, char **const argv)
{
if( !ZGetGame() )
{
ZChatOutput("You're not in game.", ZChat::CMT_SYSTEM);
return;
}
char szPlayer[100] = "";
char szBuffer[128] = "";
if( argc > 2 ){
OutputCmdWrongArgument(argv[0]);
return;
}else if( argc < 2 ){
strcpy( szPlayer, "" );
strcpy( szBuffer, "Room kicked.");
}else{
strcpy( szPlayer, argv[1] );
sprintf( szBuffer, "Room kicked, except %s.", szPlayer );
}
ZPOSTCMD1(MC_KICK_ALL, MCmdParamStr(szPlayer));
ZChatOutput( szBuffer, ZChat::CMT_SYSTEM );
}
MMatchServer_OnCommand.cpp
PHP Code:
case MC_KICK_ALL:
{
char szPlayerName[1024] = "";
if (!pCommand->GetParameter( szPlayerName, 0, MPT_STR, 32 )) break;
MMatchObject* pObj = GetObjectA(pCommand->GetSenderUID());
if (pObj == NULL) break;
if(!IsAdminGrade(pObj)) break;
MCommand* pCmd = CreateCommand(MC_KICK_ALL, MUID(0,0));
pCmd->AddParameter(new MCmdParamStr(szPlayerName));
RouteToStage(pObj->GetStageUID(), pCmd);
}
break;
ZGameClient_OnCommand.cpp
PHP Code:
case MC_KICK_ALL:
{
char szPlayerName[100] = "";
if(!ZGetMyInfo()->IsAdminGrade()) break;
pCommand->GetParameter(szPlayerName, 0, MPT_STR, sizeof(szPlayerName) );
if( strcmp( ZGetMyInfo()->GetCharName(), szPlayerName) )
{
ZPostStageLeaveBattle(ZGetGameClient()->GetPlayerUID(), ZGetGameInterface()->GetIsGameFinishLeaveBattle());
ZPostStageLeave(ZGetGameClient()->GetPlayerUID());
ZGetGameInterface()->ShowMessage("Room has been kicked by staff.");
}
}
break;
MSharedCommandTable.cpp
PHP Code:
C(MC_KICK_ALL, "Admin.KickAll", "", MCDT_MACHINE2MACHINE)
P(MPT_STR, "PlayerName")
MSharedCommandTable.h
PHP Code:
#define MC_KICK_ALL //Replace XXXXX following your numbers from file.
ALIVE
ZChat_Cmds.cpp
PHP Code:
void ChatCmd_Alive(const char* line, const int argc, char **const argv);
PHP Code:
_CC_AC("alive", &ChatCmd_Alive, CCF_ADMIN, ARGVNoMin, ARGVNoMax, true, "/alive", "");
PHP Code:
void ChatCmd_Alive(const char* line, const int argc, char **const argv)
{
int nPlayers = 0;
for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin(); itor != ZGetGame()->m_CharacterManager.end(); ++itor)
{
ZCharacter* pCharacter = (*itor).second;
if(ZGetGame()->GetMatch()->IsTeamPlay())
{
if( !pCharacter->IsDie() && pCharacter->GetTeamID() != ZGetGame()->m_pMyCharacter->GetTeamID() )
{
++nPlayers;
}
}
else if( !pCharacter->IsDie() && pCharacter != ZGetGame()->m_pMyCharacter )
{
++nPlayers;
}
}
char szPlayers[35];
sprintf( szPlayers, "%d players are alive.", nPlayers);
ZChatOutput(szPlayers, ZChat::CMT_SYSTEM);
}
I know that isn't hard but I hope help you. You can modify them to your better.