[Tutorial] Crйer plusieurs teams et ajouter des vйhicules.
#1

[CENTER]. :: [COLOR="DeepSkyBlue"]Tutoriel by Julien [/COLOR]:: .[/CENTER]

Bonjour dans ce tutoriel suivant, je vais vous expliquer comment crйer plusieurs teams et ajouter des vйhicules selon les teams ! Je vais essayer de rester dans la simplicitй pour que les dйbutant comprenne petit а petit.

Je vais commencer tout d'abord par les teams, puis seulement les vйhicules.

[COLOR="DarkOrchid"]I[/COLOR].Les Teams et couleurs.

Tout d'abord, vous devez dйfinir les diffйrentes teams, dans le tutoriel je vais simplement utiliser deux teams et deux couleurs pour chaque team. Le code sera а placй juste en dessous des #include.

[pawn]#define TEAM_POLICE 1 //Premiиre Team.
#define TEAM_BALLAS 2 //Deuxiиme Team.

#define COLOR_TEAM_POLICE 0x2641FEAA
#define COLOR_TEAM_BALLAS 0xC2A2DAAA[/pawn]
Maintenant que les teams et couleurs ont йtй crйer, vous devez а prйsent crйer les diffйrentes variables. Le code est а mettre un peu plus loin que les #define.

[COLOR="DarkOrchid"]II[/COLOR].Les variables.

[pawn]new gTeam[MAX_PLAYERS]; //La variable.[/pawn]

Les teams, couleurs et variable ont йtй dйfinit donc nous pouvons passer au choix du personnage, et sa classe.

Pour l'instant tout est facile а comprendre, mais c'est aprиs que sa va se compliquer un peu.


[COLOR="DarkOrchid"]III[/COLOR].Les skins et classe.

Je vais choisir deux skins pour le tutoriel, bien sыr vous pourrez modifier selon vos envies. Le code est а mettre comme ci-dessous.

[pawn]public OnGameModeInit()
{
AddPlayerClass(280, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 1 (Team Police)
AddPlayerClass(102, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 2 (Team Ballas)
//https://sampwiki.blast.hk/wiki/AddPlayerClass pour plus d'informations.
return 1;
}[/pawn]

Comme cela est fait, nous passons а la couleur du nom du joueur et la classe.

[pawn]SetPlayerTeamFromClass(playerid, classid)
{
if(classid == 0) //Le skin 1.
{
gTeam[playerid] = 1; //Vous pouvez mettre gTeam[playerid] = TEAM_POLICE ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~b~Team police",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
else if(classid == 1) //Le skin 2.
{
gTeam[playerid] = 2; //Vous pouvez mettre gTeam[playerid] = TEAM_BALLAS ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~p~Team Ballas",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
return 1;
}

SetPlayerToTeamColor(playerid)
{
if (gTeam[playerid] == 1) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_POLICE ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_POLICE); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
else if (gTeam[playerid] == 2) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_BALLAS ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_BALLAS); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
}[/pawn]

Maintenant quand le joueur choisira la team police, son nom sera automatiquement en bleu, et si c'est ballas en mauve.

[COLOR="DarkOrchid"]IV[/COLOR].Sйlection du skin et spawn.

Maintenant nous allons passer а la sйlection et spawn du joueur. Vous pouvez aussi modifier vos positions, si vous le dйsirez.

[pawn]public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,0); //L'intйrieur.
SetPlayerPos(playerid, 1759.0189,-1898.1260,13.5622); //Position du joueur.
SetPlayerCameraPos(playerid, 1765.6584,-1898.3611,13.5639); //Position de la camйra.
SetPlayerCameraLookAt(playerid, 1759.0189,-1898.1260,13.5622); //Position de l'angle de la camйra.

SetPlayerTeamFromClass(playerid, classid); //Plus besoin d'expliquer je crois.
return 1;
}[/pawn]

Maintenant le spawn du joueur.

[pawn]public OnPlayerSpawn(playerid)
{
SetPlayerToTeamColor(playerid); //La couleur du joueur lors du spawn.

if(gTeam[playerid] == TEAM_POLICE)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team police spawn.
SetPlayerPos(playerid, 1545.3563,-1675.3363,13.5602); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 24, 70); //Le policier spawn avec un deagle 70 balles.
}
if(gTeam[playerid] == TEAM_BALLAS)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team ballas spawn.
SetPlayerPos(playerid, 1922.4635,-1120.1049,26.1114); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 30, 250); //Le gangster spawn avec un AK-47 250 balles.
}
return 1;
}[/pawn]

En gйnйral vous devez avoir sa pour la premiиre partie.

[pawn]#include <a_samp>

#define TEAM_POLICE 1 //Premiиre Team.
#define TEAM_BALLAS 2 //Deuxiиme Team.

#define COLOR_TEAM_POLICE 0x2641FEAA
#define COLOR_TEAM_BALLAS 0xC2A2DAAA

new gTeam[MAX_PLAYERS]; //La variable.

public OnGameModeInit()
{
AddPlayerClass(280, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 1 (Team Police)
AddPlayerClass(102, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 2 (Team Ballas)
//https://sampwiki.blast.hk/wiki/AddPlayerClass pour plus d'informations.
return 1;
}

SetPlayerTeamFromClass(playerid, classid)
{
if(classid == 0) //Le skin 1.
{
gTeam[playerid] = 1; //Vous pouvez mettre gTeam[playerid] = TEAM_POLICE ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~b~Team police",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
else if(classid == 1) //Le skin 2.
{
gTeam[playerid] = 2; //Vous pouvez mettre gTeam[playerid] = TEAM_BALLAS ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~p~Team Ballas",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
return 1;
}

SetPlayerToTeamColor(playerid)
{
if (gTeam[playerid] == 1) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_POLICE ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_POLICE); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
else if (gTeam[playerid] == 2) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_BALLAS ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_BALLAS); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,0); //L'intйrieur.
SetPlayerPos(playerid, 1759.0189,-1898.1260,13.5622); //Position du joueur.
SetPlayerCameraPos(playerid, 1765.6584,-1898.3611,13.5639); //Position de la camйra.
SetPlayerCameraLookAt(playerid, 1759.0189,-1898.1260,13.5622); //Position de l'angle de la camйra.

SetPlayerTeamFromClass(playerid, classid); //Plus besoin d'expliquer je crois.
return 1;
}

public OnPlayerSpawn(playerid)
{
SetPlayerToTeamColor(playerid); //La couleur du joueur lors du spawn.

if(gTeam[playerid] == TEAM_POLICE)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team police spawn.
SetPlayerPos(playerid, 1545.3563,-1675.3363,13.5602); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 24, 70); //Le policier spawn avec un deagle 70 balles.
}
if(gTeam[playerid] == TEAM_BALLAS)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team ballas spawn.
SetPlayerPos(playerid, 1922.4635,-1120.1049,26.1114); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 30, 250); //Le gangster spawn avec un AK-47 250 balles.
}
return 1;
}[/pawn]

Maintenant passons au vйhicule !

[COLOR="DarkOrange"]I[/COLOR].Variable.

Vous devez aussi dйfinir une variable pour les vйhicules pour la team que vous voulez.

[pawn]new vBallas[10]; //Nombre de vйhicule maximun 10 pour la team ballas.
new vPolice[10]; //Nombre de vйhicule maximun 10 pour la team police.[/pawn]

[COLOR="DarkOrange"]II[/COLOR].Ajout d'un vйhicule.

Ici je vais utiliser seulement deux vйhicules, vous pourrez changer si vous voulez.

[pawn]public OnGameModeInit()
{
vBallas[0] = CreateVehicle(411,1905.8345,-1115.1959,25.9300,182.3250,-1,-1,200); //Le vйhicule pour les ballas.
vPolice[1] = CreateVehicle(596,1545.3563,-1675.3363,13.5602,182.3250,-1,-1,200); //Le vйhicule pour la police.
return 1;
}[/pawn]

[COLOR="DarkOrange"]III[/COLOR].L'autorisation des vйhicules.

Voici la derniиre partie avant la fin du tutoriel ! L'autorisation avant d'entrer dans un vйhicule.

[pawn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new CarCheck = GetPlayerVehicleID(playerid);
if(CarCheck == vBallas[0])
{
if(gTeam[playerid] != TEAM_BALLAS)
{
SendClientMessage(playerid, 0x33CCFFAA, "Vous n'avez pas les clefs de ce vйhicule.");
RemovePlayerFromVehicle(playerid); //On fait sortir le joueur si il n'est pas ballas.
return 1;
}
}
if(CarCheck == vPolice[1] /*|| vPolice[2]*/) //Si vous dйsirez mettre plusieurs vйhicules а la suite vous avez juste а faire comme ceci '||'.
{
if(gTeam[playerid] != TEAM_POLICE)
{
SendClientMessage(playerid, 0x33CCFFAA, "Vous n'avez pas les clefs de ce vйhicule.");
RemovePlayerFromVehicle(playerid); //On fait sortir le joueur si il n'est pas de la police.
return 1;
}
}
return 1;
}
return 1;
}[/pawn]

Maintenant si nous gйnйrons les deux codes ensemble sa fait ceci.

[pawn]#include <a_samp>

#define TEAM_POLICE 1 //Premiиre Team.
#define TEAM_BALLAS 2 //Deuxiиme Team.

#define COLOR_TEAM_POLICE 0x2641FEAA
#define COLOR_TEAM_BALLAS 0xC2A2DAAA

new gTeam[MAX_PLAYERS]; //La variable.
new vBallas[10]; //Nombre de vйhicule maximun 10 pour la team ballas.
new vPolice[10]; //Nombre de vйhicule maximun 10 pour la team police.

public OnGameModeInit()
{
AddPlayerClass(280, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 1 (Team Police)
AddPlayerClass(102, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); //Skin 2 (Team Ballas)
vBallas[0] = CreateVehicle(411,1905.8345,-1115.1959,25.9300,182.3250,-1,-1,200); //Le vйhicule pour les ballas.
vPolice[1] = CreateVehicle(596,1545.3563,-1675.3363,13.5602,182.3250,-1,-1,200); //Le vйhicule pour la police.
//https://sampwiki.blast.hk/wiki/AddPlayerClass pour plus d'informations.
//https://sampwiki.blast.hk/wiki/CreateVehicle pour plus d'informations.
return 1;
}

SetPlayerTeamFromClass(playerid, classid)
{
if(classid == 0) //Le skin 1.
{
gTeam[playerid] = 1; //Vous pouvez mettre gTeam[playerid] = TEAM_POLICE ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~b~Team police",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
else if(classid == 1) //Le skin 2.
{
gTeam[playerid] = 2; //Vous pouvez mettre gTeam[playerid] = TEAM_BALLAS ou bien le numйro que vous avez mit.
GameTextForPlayer(playerid,"~p~Team Ballas",1000,4); //Plus d'informations sur https://sampwiki.blast.hk/wiki/GameTextForPlayer
}
return 1;
}

SetPlayerToTeamColor(playerid)
{
if (gTeam[playerid] == 1) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_POLICE ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_POLICE); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
else if (gTeam[playerid] == 2) //Vous pouvez mettre comme au dessus. gTeam[playerid] == TEAM_BALLAS ou le numйro.
{
SetPlayerColor(playerid, COLOR_TEAM_BALLAS); //Ici vous mettez la couleur que vous avez dйfinit pour la team.
}
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,0); //L'intйrieur.
SetPlayerPos(playerid, 1759.0189,-1898.1260,13.5622); //Position du joueur.
SetPlayerCameraPos(playerid, 1765.6584,-1898.3611,13.5639); //Position de la camйra.
SetPlayerCameraLookAt(playerid, 1759.0189,-1898.1260,13.5622); //Position de l'angle de la camйra.

SetPlayerTeamFromClass(playerid, classid); //Plus besoin d'expliquer je crois.
return 1;
}

public OnPlayerSpawn(playerid)
{
SetPlayerToTeamColor(playerid); //La couleur du joueur lors du spawn.

if(gTeam[playerid] == TEAM_POLICE)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team police spawn.
SetPlayerPos(playerid, 1545.3563,-1675.3363,13.5602); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 24, 70); //Le policier spawn avec un deagle 70 balles.
}
if(gTeam[playerid] == TEAM_BALLAS)
{
SetPlayerInterior(playerid, 0); //L'intйrieur ou les joueurs de la team ballas spawn.
SetPlayerPos(playerid, 1922.4635,-1120.1049,26.1114); //La position ou les joueurs de la team spawn.
GivePlayerWeapon(playerid, 30, 250); //Le gangster spawn avec un AK-47 250 balles.
}
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2) //Plus d'informations ici. https://sampwiki.blast.hk/wiki/OnPlayerStateChange
{
new CarCheck = GetPlayerVehicleID(playerid);
if(CarCheck == vBallas[0])
{
if(gTeam[playerid] != TEAM_BALLAS)
{
SendClientMessage(playerid, 0x33CCFFAA, "Vous n'avez pas les clefs de ce vйhicule.");
RemovePlayerFromVehicle(playerid); //On fait sortir le joueur si il n'est pas ballas.
return 1;
}
}
if(CarCheck == vPolice[1])
{
if(gTeam[playerid] != TEAM_POLICE)
{
SendClientMessage(playerid, 0x33CCFFAA, "Vous n'avez pas les clefs de ce vйhicule.");
RemovePlayerFromVehicle(playerid); //On fait sortir le joueur si il n'est pas de la police.
return 1;
}
}
return 1;
}
return 1;
}

//Merci а tous pour avoir suivi le tutoriel, j'espиre que celui ci sera utile pour vous, surtout pour les dйbutant ![/pawn]

Voici le tutoriel fini, j'espиre que celui-ci aidera les dйbutants un petit point de rйputation vous fera pas de mal, je vous remercie d'avance et qui sais а bientфt pour un deuxiиme tutoriel !
PS:Ceci est mon premier tutoriel, donc soyez gentil ! Si vous voyez aussi tout mauvais code ou autre, veuillez me le dire car sa m'as pris du temps que et je me suis relu qu'une seule fois, je suis aussi disponible pour toute question !

[COLOR="DeepSkyBlue"]Edit[/COLOR]: J'ai rajouter un petit dйtail, afin de ne pas checke tout les vйhicules, il existe une mйthode beaucoup plus facile comme celle-ci en dessous.

[pawn]if(CarCheck == vPolice[1] || vPolice[2] || vPolice[3] || ...)[/pawn]
Sa йvitera d'avoir un code trиs long !

By Julien.
Reply
#2

Bien jouй ;)
Reply
#3

OMG Shidony tu fais exprиs ?
Il a eu un bug lors de la rйdaction, il le continue...
Reply
#4

Il aurais au moins pu prйvenir --'
Reply
#5

Il m'a prйvenu, de pas supprimer le topic :)
Reply
#6

Voici, voilа, j'ai modifier tout j'espиre que sa vous plaоt.
Reply
#7

Merci du tuto ;)
Mais avec ton systиme pour checker une entrйe de vйhicule, si j'ai 50 vйhs, je vais devoir йcrire et checker les 50 vehs...

Tate toi plutфt une boucle qui check tout le monde ou alors une fonction.

++
Reply
#8

Ha oui c'est vrai j'aurais du expliquer un peu plus, je vais l'editer pour rajouter pour les checks des vйhicules. :)
Reply
#9

Lиger UP.

Une mise а jour du tutoriel arrive d'ici demain afin de rajouter des vйhicules d'un autre maniиre et rajouter des fonctions pour les teams, genre comment changer les positions lors du RequestClass, et bien d'autres.

Cordialement Julien.
Reply
#10

Beau tutoriel :)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)