void CGame::AdminOrder_ChangePlayerCity(int iClientH, char *pData, DWORD dwMsgSize)
{
char seps[] = "= \t\n";
char * token, cBuff[256];
class CStrTok * pStrTok;
char * city;
char cNick[20];
char cCity[5];
char notice[100];
int oldcity;
int i;
if (m_pClientList[iClientH] == NULL) return;
if ((dwMsgSize) <= 0) return;
if (m_pClientList[iClientH]->m_iAdminUserLevel == 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ADMINUSERLEVELLOW, NULL, NULL, NULL, NULL);
return;
}
ZeroMemory(cBuff, sizeof(cBuff));
memcpy(cBuff, pData, dwMsgSize);
pStrTok = new class CStrTok(cBuff, seps);
token = pStrTok->pGet();
token = pStrTok->pGet();
if (token == NULL) {
delete pStrTok;
return;
}
strcpy(cNick, token);
city = pStrTok->pGet();
if (city == NULL) {
delete pStrTok;
return;
}
strcpy(cCity, city);
for (i = 0; i < DEF_MAXCLIENTS; i++) {
if ((m_pClientList != NULL) && (memcmp(m_pClientList->m_cCharName, cNick, strlen(cNick)) == 0)) {
oldcity = m_pClientList->m_cLocation;
m_pClientList->m_cLocation=atoi(cCity);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_RATINGPLAYER, NULL, NULL, NULL, NULL);
wsprintf(notice,"Player %s has been changed.",m_pClientList[iClientH]->m_cCharName,oldcity,atoi(cCity));
ShowNotice(iClientH,notice);
}
}
delete pStrTok;
}
show notice is
void CGame::ShowNotice(int iClientH,char *pMsg)
{
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_NOTICEMSG, NULL, NULL, NULL, pMsg);
}
usage is
if (memcmp(cp, "/changecity ", 12) == 0) {
AdminOrder_ChangePlayerCity(iClientH, cp, dwMsgSize - 21);
return;
}
this code lets admins change the city of the player. Reason y admin only can use is that if not, soon all ur players will only be on one side because they dont want to be owned by others. if its wrong then go edit it urself. thx.