Bonjour je vous proposes ce petit tuto , j'ai vus que beaucoup de personne sont en difficulté avec le systeme d'equipe , donc je leurs proposes un coup de mains . Je remercis aussi toutes les personnes qui m'on aider a arriver a mon niveaux '-' j'ai encore beaucoup de choses a apprendre mes ce que je sais je vais le faire decouvrir au personne qui on on besoin .
1) Création des skins des equipes et de leurs vehicules Prenez un game mode vide , puis aller dans :
public OnGameModeInit()
Choisissez 6 skin 3 pour les grooves et 3 pour les Ballas .
public OnGameModeInit()
{
SetGameModeText("TutoLayak");
AddPlayerClass(142,2498, -1686, 13,90.4503,-1,-1,24,60,29,200); // skin groove
AddPlayerClass(180,2498, -1686, 13,90.4503,-1,-1,24,60,29,200);// skin groove
AddPlayerClass(19,2498, -1686, 13,90.4503,-1,-1,24,60,29,200);// skin groove
AddPlayerClass(143,2145.96,-1487.80,25.54,90.4503,-1,-1,24,60,29,200); // skin ballas
AddPlayerClass(21,2145.96,-1487.80,25.54,180.4503,-1,-1,24,60,29,200);// skin ballas
AddPlayerClass(24,2145.96,-1487.80,25.54,380.4503,-1,-1,24,60,29,200);// skin ballas
return 1;
}
On va ajoutez les vehicules , j'ai choisis des vehicules qui font une allure de gangs ,
AddStaticVehicle(560,2483.945800,-1653.816406,13.082028,88.911155,0,0);
AddStaticVehicle(492,2475.137695,-1681.036376,13.136338,60.089332,0,0);
AddStaticVehicle(566,2468.715332,-1670.321533,13.196229,10.110590,0,0);
AddStaticVehicle(567,2127.592041,-1487.348510,23.750598,180.345001,0,0);
AddStaticVehicle(492,2134.533447,-1484.243896,23.672067,359.012939,0,0);
AddStaticVehicle(567,2127.569091,-1474.869262,23.748228,178.489181,0,0);
Donc vous les rajoutez a la suite des AddPlayerClass .
2) Creation du systeme d'equipe . Aller dans
public OnPlayerRequestClass(playerid, classid)
Et vous allez crée vos equipes .
Il vous faut definir le Gteam et les couleur avant .
#define COULEUR_VERT 0x00FFFFFF
#define COULEUR_ROUGE 0xFF0000FF
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_YELLOW 0xFFFF00AA
#define TEAM_GROOVE 0 // Equipe 0
#define TEAM_BALLAS 1 // Equipe 1
static gTeam[MAX_PLAYERS];
en haut du script ( Le reste vous servira pour plus tard )
if(classid == 0) // "Si tu est dans l'equipe 0 tu fera/aura : "
{
GameTextForPlayer(playerid, "~g~EQUIPE GROOVE", 3000, 4); // On marque le nom de l'equipe a l'ecran au joueur
SetPlayerPos(playerid, 2499, -1686, 13); // On definie la position
SetPlayerFacingAngle(playerid,90); // On definie l'angle
SetPlayerCameraPos(playerid, 2495, -1686, 14); // On definie la position de la camera
SetPlayerCameraLookAt(playerid, 2495, -1686, 14); // On definie la position de la camera ( A laisser comme le SetPlayerCameraPos
SetPlayerColor(playerid, COULEUR_VERT); // Couleur de l'equipe
gTeam[playerid] = TEAM_GROOVE; // Nom de l'equipe
}
if(classid == 1)
{
GameTextForPlayer(playerid, "~g~EQUIPE GROOVE", 3000, 4);
SetPlayerPos(playerid, 2499, -1686, 13);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid, 2495, -1686, 14);
SetPlayerCameraLookAt(playerid, 2495, -1686, 14);
SetPlayerColor(playerid, COULEUR_VERT);
gTeam[playerid] = TEAM_GROOVE;
}
if(classid == 2)
{
GameTextForPlayer(playerid, "~g~EQUIPE GROOVE", 3000, 4);
SetPlayerPos(playerid, 2499, -1686, 13);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid, 2495, -1686, 14);
SetPlayerCameraLookAt(playerid, 2495, -1686, 14);
SetPlayerColor(playerid, COULEUR_VERT);
gTeam[playerid] = TEAM_GROOVE;
}
if(classid == 3)
{
GameTextForPlayer(playerid, "~g~EQUIPE BALLAS", 3000, 4);
SetPlayerPos(playerid, 2145.96,-1487.80,25.54);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid, 2140.96,-1487.80,25.54);
SetPlayerCameraLookAt(playerid, 2140.96,-1487.80,25.54);
SetPlayerColor(playerid, COULEUR_ROUGE);
gTeam[playerid] = TEAM_BALLAS;
}
if(classid == 4)
{
GameTextForPlayer(playerid, "~g~EQUIPE BALLAS", 3000, 4);
SetPlayerPos(playerid, 2145.96,-1487.80,25.54);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid, 2140.96,-1487.80,25.54);
SetPlayerCameraLookAt(playerid, 2140.96,-1487.80,25.54);
SetPlayerColor(playerid, COULEUR_ROUGE);
gTeam[playerid] = TEAM_BALLAS;
}
if(classid == 5)
{
GameTextForPlayer(playerid, "~g~EQUIPE BALLAS", 3000, 4);
SetPlayerPos(playerid, 2145.96,-1487.80,25.54);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid, 2140.96,-1487.80,25.54);
SetPlayerCameraLookAt(playerid, 2140.96,-1487.80,25.54);
SetPlayerColor(playerid, COULEUR_ROUGE);
gTeam[playerid] = TEAM_BALLAS;;
}
return 1;
}
Puis dans :
Quand le joueur va spawn on va lui donné de la vie de l'argent et aussi de l'armure .
public OnPlayerSpawn(playerid)
{
GivePlayerMoney(playerid, 100); // On donne de l'argent au joueur qui spawn
SetPlayerHealth(playerid, 100); // On donne de la vie
SetPlayerArmour(playerid, 100); // On donne de l'armure
return 1;
}
Et enfin :
dans
Quand une personne tue un joueur on lui donne de l'argent et +1 au score
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1); // On donne 1 de score au tueur
GivePlayerMoney(killerid, 200); // On donne 200 $ au tueur
if(gTeam[killerid] == gTeam[playerid]) // et la un anti team kill si un joueur tue une personne de sont equipe on lui donne 20 PV et on lui retire 1 au score
{
{
if(gTeam[playerid] == TEAM_GROOVE)
{
SetPlayerHealth(killerid, 20.0);
SetPlayerArmour(killerid, 0.0);
SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
return 1;
}
}
{
if(gTeam[playerid] == TEAM_BALLAS)
{
SetPlayerHealth(killerid, 20.0);
SetPlayerArmour(killerid, 0.0);
SetPlayerScore(killerid,GetPlayerScore(killerid)-1);
return 1;
}
}
}
return 1;
}
3) La premiere commande d'equipe .Aller dans
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/objectif", true) == 0)
{
{
if(gTeam[playerid] == TEAM_GROOVE)
{
SendClientMessage(playerid, COLOR_YELLOW,"|______________________ Groove ______________________|");
SendClientMessage(playerid, COLOR_ORANGE," Vous devez tuer les Ballas" );
}
}
{
if(gTeam[playerid] == TEAM_BALLAS)
{
SendClientMessage(playerid, COLOR_YELLOW,"|______________________ BALLAS ______________________|");
SendClientMessage(playerid, COLOR_ORANGE," Vous devez tuer les GROOVE" );
}
}
}
return 1;
}
Cela dira , si tu est dans l'equipe groove , tu dois tuer les ballas , si tu est dans l'equipe ballas tu dois tuer les groove .
4) Creation de leurs planque et de la commande pour y entrer ( Commande basique ) if(strcmp(cmdtext, "/entrer", true) == 0 || strcmp(cmdtext, "/enter", true) == 0) // Deux type de commande sont possible pour y entrer en anglais ou en francais .
{
if(IsPlayerInRangeOfPoint(playerid,9.0,2495, -1691, 14)) // On definie la positions du joueur pour qu'il entre dans la planque
{
SetPlayerPos(playerid, 2496, -1695.71, 1015); // On marque la positions du joueur a l'entrer
SetPlayerInterior(playerid,3); // On marque l'interieur
}
if(IsPlayerInRangeOfPoint(playerid,9.0,2148, -1485, 26))
{
SetPlayerPos(playerid, 2452, -1703.71, 1014);
SetPlayerInterior(playerid,2);
}
return 1;
}
Je vous laisses faire la commande pour sortir , elle est tres simple vous pouvez la faire rien qu'avec les positons si dessus .
Si vous voulez rajouter une restriction de classe pour y entrer rajouter
if(gTeam[playerid] == TEAM_GROOVE) ou if(gTeam[playerid] == TEAM_BALLAS)
Voila fin du tuto , si vous souhaitez un supplement n'exitez pas a poster . ( Ps : Désolé pour les fautes . )
Pastebin :
http://pastebin.gtaonline.fr/pastebin.php?show=919