PHP Code:
#include a_samp
#include zcmd
#include sscanf
#include foreach
#pragma dynamic 99999999999
#define CheckAllPlayers(%0) foreach(new %0:Player)
#define GetPlayerGameMode(%0,%1) if(PlayerInfo[%0][GameMode] == %1)
main()
{
}
enum Info
{
GameMode
};
new PlayerInfo[MAX_PLAYERS][Info];
public OnPlayerText(playerid, text[])
{
new string[20000];
SetPlayerColor(playerid, 4278190335);
format(string,sizeof(string),"{%06x}%s{00ff00}(%d):{ffffff} %s",GetPlayerColor(playerid) >>> 8,pName(playerid),playerid,text);
GetPlayerGameMode(playerid, 0) SendMessageToLobby(string);
GetPlayerGameMode(playerid, 1) SendMessageToDM(string);
GetPlayerGameMode(playerid, 2) SendMessageToDD(string);
GetPlayerGameMode(playerid, 3) SendMessageToEDM(string);
return 0;
}
/**********Simple Example I Use It To Look The All Bugs And Fix It*************/
CMD:changemode(playerid, params[])
{
if(IsPlayerAdmin(playerid))
{
new id,mode;
if(sscanf(params,"ii",id,mode)) return SendClientMessage(playerid,-1,"{FF0000}USAGE:{02ff00}/changemode {ffffff}[PlayerID] [Mode]");
if(mode > 3) return SendClientMessage(playerid,-1,"{FF0000}Mode: 0-1-2-3");
if(IsPlayerConnected(id))
{
if(PlayerInfo[id][GameMode] != mode)
{
new string[128],gname[6];
ChangeModeForPlayer(id, mode);
GetGameModeNameFromId(mode, gname);
format(string,sizeof(string),"{02ff00} You Have Successfully Changed {FF0000}%s {02ff00}GameMode To [{fff200}%s{02ff00}]",pName(id),gname);
SendClientMessage(playerid,-1,string);
return 1;
}
else SendClientMessage(playerid,-1,"{FF0000}Player Is Already In This GameMode");
}
else SendClientMessage(playerid,-1,"{FF0000}Player Is Not Connected");
return 1;
}
else SendClientMessage(playerid,-1,"{FF0000}You Need To Be RCON To Use This Command");
return 1;
}
/******************************************************************************/
stock pName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock SendMessageToLobby(string[])
{
new message[20000];
format(message,sizeof(message),"{10ff00}[{fff200}Lobby{10ff00}]:%s",string);
SendClientMessageToAll( -1, message);
return 1;
}
stock SendMessageToDM(string[])
{
new message[20000];
format(message,sizeof(message),"{10ff00}[{fff200}DM{10ff00}]:%s",string);
SendClientMessageToAll( -1, message);
return 1;
}
stock SendMessageToDD(string[])
{
new message[20000];
format(message,sizeof(message),"{10ff00}[{fff200}DD{10ff00}]:%s",string);
SendClientMessageToAll( -1, message);
return 1;
}
stock SendMessageToEDM(string[])
{
new message[20000];
format(message,sizeof(message),"{10ff00}[{fff200}EDM{10ff00}]:%s",string);
SendClientMessageToAll( -1, message);
return 1;
}
stock ChangeModeForPlayer(playerid, mode)
{
PlayerInfo[playerid][GameMode] = mode;
return mode;
}
stock GetGameModeNameFromId(id,str[6])
{
if(id == 0) format(str,sizeof(str),"Lobby");
if(id == 1) format(str,sizeof(str),"DM");
if(id == 2) format(str,sizeof(str),"DD");
if(id == 3) format(str,sizeof(str),"EDM");
return 1;
}