new gPlayerClass[MAX_PLAYERS];
new gTeam[MAX_PLAYERS];
#define TEAM_POLICIAS 0
#define TEAM_LADRONEs 1
public OnGameModeInit()
{
//Todas las cosas que hayan...
AddPlayerClass(skin, coordenadas, arma1, muiniciуn1, arma2, mui2, arma3, mui3); //POLICIA
AddPlayerClass(skin, coordenadas, arma1, muiniciуn1, arma2, mui2, arma3, mui3); //LADRУN
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
gPlayerClass[playerid] = classid;
switch (classid)
{
case 0:
{
gTeam[playerid] = TEAM_POLICIA; //Esto comprueba de que equipo es el personaje de antes. En este caso el primer pesonaje es policнa.
GameTextForPlayer(playerid, "~g~Policia", 1000, 6); //Esto es el texto que aparece. "~g~" es el color (Green - Verde).
}
case 1: //Case 1 es el personaje que pusimos antes, el segundo.
{
gTeam[playerid] = TEAM_LADRON;
GameTextForPlayer(playerid, "~r~Ladron", 1000, 6); // "~r~" (Red - Rojo)
}
}
//Posiciones en la que se ven los jugadores para hacer spawn.
SetPlayerPos(playerid, 489.8416,-72.4437,999.2266);
SetPlayerFacingAngle( playerid, 2.3616 );
SetPlayerCameraPos(playerid, 491.6849,-72.3607,999.2117);
SetPlayerCameraLookAt(playerid, 489.8416,-72.4437,999.2266);
SetPlayerInterior(playerid ,11);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(gTeam[playerid] == TEAM_POLICIA)
{
SetPlayerColor(playerid, color);
}
if(gTeam[playerid] == TEAM_LADRON)
{
SetPlayerColor(playerid, color);
}
//Tambiйn podemos aсadir un mensaje que informe de que un jugador ha entrado.
new string[64], pName[MAX_PLAYER_NAME];
if(gTeam[playerid] == gTeam[playerid])
{
GetPlayerName(playerid,pNombre,MAX_PLAYER_NAME);
format(string,sizeof string,"%s se ha unido a la batalla.",pNombre); //Mensaje. Si lo vais a modificar no cambies %s (es el nombre del jugador).
SendClientMessageToAll(color, string);
}
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason); //Este es el mensaje que sale a la derecha de la pantalla de este modo: Asesino - Arma - Muerto
SetPlayerScore(killerid,(GetPlayerScore(killerid))+1); //Esto da al asesino 1 punto de score.
SetPlayerScore(playerid,(GetPlayerScore(playerid))-1); //Esto quita al muerto 1 punto de score.
//Si el jugador de un equipo mata al mismo miembro de este:
if(gTeam[playerid] == 1 && gTeam[killerid] == 1)
{
SetPlayerScore(killerid,(GetPlayerScore(killerid))-1); //Se le baja -1 al score.
new string[50];
format(string, sizeof(string), "~r~No mates a tus aliados"); //Texo, podeis cambiarlo pero no aсadais 'с' porque no lo lee.
GameTextForPlayer(killerid, string, 3000, 4);
PlayerPlaySound(killerid, 1002, 0.0, 0.0, 0.0); //Sonido.
SetPlayerHealth(killerid, 0.0); //Mata al asesino.
return true; //Fin.
}
//Tambiйn podemos aсadir el mensaje que aparece en el juego GTA San Andreas de "Eliminado".
new string[50];
format(string, sizeof(string), "~w~Eliminado");
GameTextForPlayer(playerid, string, 3000, 2);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/policia", true))
{
if (gTeam[playerid] == TEAM_POLICIA) //Esto comprueba que el jugador sea de un equipo u otro.
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Policнas", "Todo lo que querais\n Esta n con el palito hace que cambiemos de renglуn.","Aceptar","Cancelar");
} else { //Si el jugador es Policнa, se muestra el menъ, sino:
SendClientMessage(playerid, 0xFF0000FFF, "Tъ no eres Policнa.");
}
return 0; /* O tambiйn podemos poner: return SendClientMessage(playerid, 0xffffffff, "Ese comando no existe."); */
}
//Como es un comando dcmd hay que definir primero dcmd:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//Ahora vamos con el comando:
public OnPlayerCommandText(playerid, cmdtext[])
{
//Todo lo que tengamos...
dcmd(r, 1, cmdtext); //Esto define el comando.
dcmd(radio, 5, cmdtext); //Este es el segundo comando, mбs largo.
return 0; /* Como dije antes se puede sustituir por un mensaje. */
}
dcmd_r(playerid, params[])
{
new text[256], name[60];
if(sscanf(params, "s", text)) SendClientMessage(playerid, 0xFFFF00FF, "USA: /R <texto>");
else
{
new string[322];
GetPlayerName(playerid, name, 60);
format(string, 322, "(%s) (Radio): %s", name, text);
for(new i=0;i<MAX_PLAYER;i++)
{
if(IsPlayerConnected(i))
{
if(gTeam[i] == gTeam[playerid])
{
SendClientMessage(i, 0xFF0080FF, string);
}
}
}
}
return 1;
}
//Esto lo podemos poner debajo de dcmd(r, 1, cmdtext);
dcmd(mp, 2, cmdtext);
return 0; /* Y sigo diciendo lo mismo sobre esto.*/
dcmd_mp(playerid, params[])
{
new ID, text[256];
if(sscanf(params, "is", ID, text)) SendClientMessage(playerid, 0xFFFF00FF, "USA: /MP <id> <texto>");
else if(IsPlayerConnected(ID) == 0)
{
new string[100];
format(string, 100, "%d no estб jugando.", ID);
SendClientMessage(playerid, 0xFF0000FF, string);
}
else
{
new string[300], name[60], name2[60];
GetPlayerName(playerid, name, 60);
GetPlayerName(ID, name2, 60);
format(string, 300, "(%s[%d]) (MP): %s", name, playerid, text);
SendClientMessage(ID, 0xFF8000FF, string);
format(string, 300, "Has enviado a %s[%d] un mensaje privado: %s", name2, ID, text);
SendClientMessage(playerid, 0xFF8000FF, string);
}
return 1;
}
Originally Posted by MrDeath
Util para los nuevos. Buen aporte
|
Originally Posted by xenowort
esta muy bueno el tuto xDD lo sacastes de tu gm jejeje xD
|
Originally Posted by CristianTdj
Quote:
|
Originally Posted by SenseiRD
Buen aporte, Bastante util para aquellos que estan comenzando a crear un GM.
|
Originally Posted by Nruluis
Tengo una duda
Como pongo las cordenadas XDesq soy nuevo mira por ejemplo quiero q de los ladrones la posision sea x 1998 z 22 y 1668 a 97 namas ocupo q me digan asi por ejemplo aki es x,aki es z,aki es y,aki es a asi segun el orden |