Seguinte venho trazer alguns códigos bem uteis para quem está começando desenvolver Gamemodes. Creditos: KeneD_FusioN, Black_FusioN Rodney.
OBS: Crie a Stock NomeDoJogador para não dar pau
// = [ Limpar Chat ] =
if(strcmp(cmdtext,"/limparchat", true) == 0 || strcmp(cmdtext,"/limparchat", true) == 0)
{
for(new a = 0; a < 100; a++)
{
SendClientMessageToAll(0xFFFFFFFF, " ");
}
return 1;
}
// = [ /Recuperar ] =
if(strcmp(cmdtext,"/kill", true) == 0)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
format(string, sizeof(string), "O jogador %s se recuperou", NomeDoJogador(playerid));
SendClientMessageToAll(COR_INFO, string);
return 1;
}
// = [ Reparar Veiculo ] =
if(strcmp("/vcarro", cmdtext, true) == 0)
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleid, 1000.0);
SendClientMessage(playerid, COR, "Seu veicCÚlo foi reparado.");
return 1;
}
// = [ Teleport Dialog ] =
#define Verde 0x00FF00FF
new Cores[MAX_PLAYER_NAME];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/teleporte", true) == 0)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Teleportes", "{461BE0}Los Santos\n{461BE0}San Fierro\n{461BE0}Las Venturas", "Ok", "Cancelar");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[128];
new sendername[MAX_PLAYER_NAME];
if(dialogid == 1)
{
if(response)
{
if(listitem == 0)
{
SetPlayerPos(playerid,1550.4852,-1698.0416,13.5485);
format(string, sizeof(string), "%s Foi para {FA0004}Los Santos", sendername);
SendClientMessageToAll(0x00FF00FF, string);
return 1;
}
if(listitem == 1)
{
SetPlayerPos(playerid,-1424.3461,-291.1817,14.1484);
format(string, sizeof(string), "%s Foi para {FA0004}San Fierro", sendername);
SendClientMessageToAll(Verde, string);
return 1;
}
if(listitem == 2)
{
SetPlayerPos(playerid,2362.0901,1005.1843,14.2725);
format(string, sizeof(string), "%s Foi para {FA0004}Las Venturas", sendername);
SendClientMessageToAll(Verde, string);
return 1;
}
}
}
return 1;
}
// = AFK SIMPLES
if (strcmp("/afk", cmdtext, true, 10) == 0)
{
new string[128];
TogglePlayerControllable(playerid,0);
SetPlayerHealth(playerid, 9999);
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] Esta Ausente (/afk) !",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
}
if (strcmp("/sairafk", cmdtext, true, 10) == 0)
{
new string[128];
TogglePlayerControllable(playerid,1);
SetPlayerHealth(playerid, 100);
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] Saiu Do Ausente (/sairafk) !",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
}
// = SISTEMA DE ANT PING & DB
#define COLOR_LIGHTRED 0xFF6347AA
#define MaxPing 600 // DEFINA O PING MAXIMO
public OnPlayerUpdate(playerid)
{
new Nome[MAX_PLAYER_NAME];
if(GetPlayerState(playerid) == 2)
{
new string[128];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] cometeu DB em %s e será Kikado!",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(playerid);
}
if(GetPlayerPing(playerid) > MaxPing)
{
new string[128];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção %s ID[%d] Foi kickado por ultrapassar o limite. (Máximo: %d ms)", Nome, MaxPing);
SendClientMessageToAll(COR_BRANCA, string);
Kick(playerid);
return 1;
}
return 1;
}
Alguma duvida, reclamação ou erro comente abaixo...
// = [ Limpar Chat ] =
if(strcmp(cmdtext,"/limparchat", true) == 0 || strcmp(cmdtext,"/limparchat", true) == 0)
{
for(new a = 0; a < 100; a++)
{
SendClientMessageToAll(0xFFFFFFFF, " ");
}
return 1;
}
// = [ /Recuperar ] =
if(strcmp(cmdtext,"/kill", true) == 0)
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
format(string, sizeof(string), "O jogador %s se recuperou", NomeDoJogador(playerid));
SendClientMessageToAll(COR_INFO, string);
return 1;
}
// = [ Reparar Veiculo ] =
if(strcmp("/vcarro", cmdtext, true) == 0)
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleid, 1000.0);
SendClientMessage(playerid, COR, "Seu veicCÚlo foi reparado.");
return 1;
}
// = [ Teleport Dialog ] =
#define Verde 0x00FF00FF
new Cores[MAX_PLAYER_NAME];
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/teleporte", true) == 0)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Teleportes", "{461BE0}Los Santos\n{461BE0}San Fierro\n{461BE0}Las Venturas", "Ok", "Cancelar");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[128];
new sendername[MAX_PLAYER_NAME];
if(dialogid == 1)
{
if(response)
{
if(listitem == 0)
{
SetPlayerPos(playerid,1550.4852,-1698.0416,13.5485);
format(string, sizeof(string), "%s Foi para {FA0004}Los Santos", sendername);
SendClientMessageToAll(0x00FF00FF, string);
return 1;
}
if(listitem == 1)
{
SetPlayerPos(playerid,-1424.3461,-291.1817,14.1484);
format(string, sizeof(string), "%s Foi para {FA0004}San Fierro", sendername);
SendClientMessageToAll(Verde, string);
return 1;
}
if(listitem == 2)
{
SetPlayerPos(playerid,2362.0901,1005.1843,14.2725);
format(string, sizeof(string), "%s Foi para {FA0004}Las Venturas", sendername);
SendClientMessageToAll(Verde, string);
return 1;
}
}
}
return 1;
}
// = AFK SIMPLES
if (strcmp("/afk", cmdtext, true, 10) == 0)
{
new string[128];
TogglePlayerControllable(playerid,0);
SetPlayerHealth(playerid, 9999);
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] Esta Ausente (/afk) !",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
}
if (strcmp("/sairafk", cmdtext, true, 10) == 0)
{
new string[128];
TogglePlayerControllable(playerid,1);
SetPlayerHealth(playerid, 100);
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] Saiu Do Ausente (/sairafk) !",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
}
// = SISTEMA DE ANT PING & DB
#define COLOR_LIGHTRED 0xFF6347AA
#define MaxPing 600 // DEFINA O PING MAXIMO
public OnPlayerUpdate(playerid)
{
new Nome[MAX_PLAYER_NAME];
if(GetPlayerState(playerid) == 2)
{
new string[128];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção: %s ID:[%d] cometeu DB em %s e será Kikado!",Nome);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Kick(playerid);
}
if(GetPlayerPing(playerid) > MaxPing)
{
new string[128];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
format(string, sizeof(string), "Atenção %s ID[%d] Foi kickado por ultrapassar o limite. (Máximo: %d ms)", Nome, MaxPing);
SendClientMessageToAll(COR_BRANCA, string);
Kick(playerid);
return 1;
}
return 1;
}
Alguma duvida, reclamação ou erro comente abaixo...