GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: skylive77 le 08 Juin 2010, 11:14:37

Titre: [Script]Barrage Routier
Posté par: skylive77 le 08 Juin 2010, 11:14:37
Je vous fait par d'un script que j'ai modifier, ce script peut aider d'autre personne donc je le partage :

//--------------------------------=[Roadblock]=-----------------------------------
// by Luk0r modif by Skylive77
if(strcmp(cmdtext, "/poserbarrage", true)==0 || strcmp(cmdtext, "/pb", true)==0)
{
if (PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3) return SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas flic / Membre du FBI / Millitaire !");
if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas déployer un autre barrage , tapez /rb pour supprimer votre barrage existant.");
if (roadblocktimer != 0) return SendClientMessage(playerid, COLOR_GREY, "Veulliez attendre avant de placer un autre barrage!");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
SetPlayerPos(playerid, X, Y, Z+4);
GameTextForPlayer(playerid, "~w~Barrage ~r~Déployé", 5000, 5);
SendClientMessage(playerid, COLOR_GREEN, "Déployement du barrage, tapez /rb ou /retirerbarrage pour le suprimé.");
roadblocktimer = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "HQ: Un barrage routier à été déployé par %s, ce barrage à été marqué sur la carte.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)
{
SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
SendClientMessage(i, TEAM_BLUE_COLOR, string);
if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 3)
{
SendClientMessage(i, COLOR_YELLOW, "Vous pouvez supprimer tous les barrages routiers en tapant /rball");
}
}
}
}
SetTimer("ResetRoadblockTimer", 60000, false);
return 1;
}

if(strcmp(cmdtext, "/retirerbarrage", true)==0 || strcmp(cmdtext, "/rb", true)==0)
{
if (PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2  || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas flic / Membre du FBI / Millitaire !");
return 1;
}
if (PlayerInfo[playerid][pRank] < 5)
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 5 minimum pour utiliser cette commande.");
return 1;
}
if (PlayerInfo[playerid][pRoadblock] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas déployé de barrage routier");
return 1;
}
RemoveRoadblock(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Barrage routier suprimé avec succès");
return 1;
}

if(strcmp(cmdtext, "/retirerbarrageall", true)==0 || strcmp(cmdtext, "/rball", true)==0)
{
if (PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 3)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pRoadblock] != 0)
{
RemoveRoadblock(i);
}
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "HQ: Tous les barrages routier ont été suprimé par ordre de %s.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)
{
SendClientMessage(i, TEAM_BLUE_COLOR, string);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 5 minimum pour utiliser cette commande.");
}
return 1;
}

Lien Pastebin

http://pastebin.gtaonline.fr/pastebin.php?show=808 (http://pastebin.gtaonline.fr/pastebin.php?show=808)

Ce script est à placer dans votre GM là ou il y à d'autre commande (à la suite)
Titre: Re : [Script]Barrage Routier
Posté par: scott1 le 08 Juin 2010, 11:33:54
Pfff même pas capable de bien faire le copier coller.

S'est pris d'un LARP donc ... En plus tu donnes un bout de code, et il est ou le reste?

Le public RemoveRoadblock(playerid)
? ça deviens n'importe quoi ici !
Titre: Re : [Script]Barrage Routier
Posté par: skylive77 le 08 Juin 2010, 11:39:43
Sa ne viens pas de LARP!! sa viens de mon GM

et je le partage, après si t'es pas content vas voir ailleurs, tu trouvera peut être mieux !! &nbsp;:dry

Pourquoi es-que dans cette communauté, à chaque fois que l'on poste un tuto ou un script pour aider des gens on se fait crashé dessus !!

exemple de tuto rejeté :http://www.gtaonline.fr/forums/index.php/topic,10554.0.html (http://www.gtaonline.fr/forums/index.php/topic,10554.0.html)

Franchement, si on veut on ne partage rien et on garde tout pour nous, et tampis pour les autres, si vous continuer dans cette voie la, c'est ce que je ferai !!
Titre: Re : Re : [Script]Barrage Routier
Posté par: Ssk le 08 Juin 2010, 11:59:56
Sa ne viens pas de LARP!! sa viens de mon GM

et je le partage, après si t'es pas content vas voir ailleurs, tu trouvera peut être mieux !! :dry

Pourquoi es-que dans cette communauté, à chaque fois que l'on poste un tuto ou un script pour aider des gens on se fait crashé dessus !!

exemple de tuto rejeté :http://www.gtaonline.fr/forums/index.php/topic,10554.0.html (http://www.gtaonline.fr/forums/index.php/topic,10554.0.html)

Franchement, si on veut on ne partage rien et on garde tout pour nous, et tampis pour les autres, si vous continuer dans cette voie la, c'est ce que je ferai !!



Hum ?

Tuto rejetés ? http://www.gtaonline.fr/forums/index.php/board,75.0.html (http://www.gtaonline.fr/forums/index.php/board,75.0.html)

Regarde ça ce sont des vrais tutoriel ^^

Mais tu aurai pu poster dans code/script utiles ^^
Merci pour la commande sinon ^^


( faut savoir accepté la critique sinon personnes ne peut avancer )
Titre: Re : Re : Re : [Script]Barrage Routier
Posté par: skylive77 le 08 Juin 2010, 12:11:31
Citer
Mais tu aurai pu poster dans code/script utiles ^^
Merci pour la commande sinon ^^

Effectivement, j'aurai pu poster la bas, mais je ne l'avais pas vu

Citer
( faut savoir accepté la critique sinon personnes ne peut avancer )

Oui, bien sûr qu'il faut accepter la critique des autres, mais c'est pas simple pour certain cas.
Titre: Re : [Script]Barrage Routier
Posté par: scott1 le 08 Juin 2010, 13:18:55
De ton GM? Et en plus tu ment.

Voici le cmd du LARP de LordMan que j'ai traduit.

Je vous laisse comparré

// by LordMan
if(strcmp(cmdtext, "/barrage", true)==0 || strcmp(cmdtext, "/bar", true)==0)
{
if (PlayerInfo[playerid][pMember] != 1 && PlayerInfo[playerid][pLeader] != 1) return SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas policier!");
if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "Vous avez déjà déployé un barrage, tappez /eb pour enlever votre barrage.");
//if (roadblocktimer != 0) return SendClientMessage(playerid, COLOR_GREY, "Svp attendez avant de déployé un nouveau barrage!");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
SetPlayerPos(playerid, X, Y, Z+4);
GameTextForPlayer(playerid, "~w~Barrage ~r~En Place", 5000, 5);
SendClientMessage(playerid, COLOR_GREEN, "Barrage déployé avec succes, tappez /enleverbarrage oi /eb pour l'enlever.");
roadblocktimer = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "HQ: Un barrage à été déployé par %s, il à été marquer sur votre map (marqueur rouge).", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
{
SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
SendClientMessage(i, TEAM_BLUE_COLOR, string);
if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1)
{
SendClientMessage(i, COLOR_YELLOW, "Vous pouvez enlever tout les barrages, tappez /ebtous");
}
}
}
}
SetTimer("ResetRoadblockTimer", 60000, false);
return 1;
}

if(strcmp(cmdtext, "/enleverbarrage", true)==0 || strcmp(cmdtext, "/eb", true)==0)
{
if (PlayerInfo[playerid][pMember] != 1 && PlayerInfo[playerid][pLeader] != 1)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas policier!");
return 1;
}
if (PlayerInfo[playerid][pRank] < 5)
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 2 pour pouvoir utiliser cette commande!");
return 1;
}
if (PlayerInfo[playerid][pRoadblock] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas déployé de barrage!");
return 1;
}
RemoveRoadblock(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Barrage enlevé avec succes.");
return 1;
}

if(strcmp(cmdtext, "/enleverbarragetous", true)==0 || strcmp(cmdtext, "/ebtous", true)==0)
{
if (PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pRoadblock] != 0)
{
RemoveRoadblock(i);
}
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "QG: Tout les barrages dans la zone doivent être suprimé, ordre de %s.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
{
SendClientMessage(i, TEAM_BLUE_COLOR, string);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 5+ ou être leader de la police pour pouvoir enlevee tout les barrages de la zone!");
}
return 1;
}
Titre: Re : [Script]Barrage Routier
Posté par: dixon le 08 Juin 2010, 13:48:29
Oui, j'avoue là c'est la cage au folle en ce moment  :lmfao

Une petite questions, tu dit que tu la modifié mais y'a quoi qui change entre celui basé dans les larp et le tient ?

PS : HQ ne veut rien dire en français ^^

++
Titre: Re : [Script]Barrage Routier
Posté par: scott1 le 08 Juin 2010, 14:56:30
Traduit a moitier xD.

Ben si tu utilise son code, tu n'a que des erreur xD

Car il me manque les new et les defines.

roadblocktimer
ResetRoadblockTimer
RemoveRoadblock

Essaye avec autre chose qu'un LARP tu vera ^^
Titre: Re : [Script]Barrage Routier
Posté par: cristab le 08 Juin 2010, 20:46:08
encore un faux tuto (omg c'est l'été qui fait sa dans ce cas vive l'hiver)
Titre: Re : [Script]Barrage Routier
Posté par: skylive77 le 16 Juin 2010, 13:16:14
J'admet que le script comporte des erreurs, et je vous fait par de la version sans erreurs !!


Les timers (dans forward)
forward RemoveRoadblock(playerid);
forward ResetRoadblockTimer();

Suite des timers (dans public)
public ResetRoadblockTimer()
{
roadblocktimer = 0;
return 1;
}

public RemoveRoadblock(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
{
DisablePlayerCheckpoint(i);
}
}
}
DestroyObject(PlayerInfo[playerid][pRoadblock]);
PlayerInfo[playerid][pRoadblock] = 0;
return 1;
}

Les commandes
if(strcmp(cmdtext, "/poserbarrage", true)==0 || strcmp(cmdtext, "/pb", true)==0)
{
if (PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3) return SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas flic / Membre du FBI / Militaire !");
if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas déployer un autre barrage , tapez /rb pour supprimer votre barrage existant.");
if (roadblocktimer != 0) return SendClientMessage(playerid, COLOR_GREY, "Veulliez attendre avant de placer un autre barrage!");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
SetPlayerPos(playerid, X, Y, Z+4);
GameTextForPlayer(playerid, "~w~Barrage ~r~Deploye", 5000, 5);
SendClientMessage(playerid, COLOR_GREEN, "Déployement du barrage, tapez /rb ou /retirerbarrage pour le suprimé.");
roadblocktimer = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "QG: Un barrage routier à été déployé par %s, ce barrage à été marqué sur la carte.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)
{
SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
SendClientMessage(i, TEAM_BLUE_COLOR, string);
if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 3)
{
SendClientMessage(i, COLOR_YELLOW, "Vous pouvez supprimer tous les barrages routiers en tapant /rball");
}
}
}
}
SetTimer("ResetRoadblockTimer", 60000, false);
return 1;
}

if(strcmp(cmdtext, "/retirerbarrage", true)==0 || strcmp(cmdtext, "/rb", true)==0)
{
if (PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2  || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas flic / Membre du FBI / Militaire !");
return 1;
}
if (PlayerInfo[playerid][pRank] < 5)
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 5 minimum pour utiliser cette commande.");
return 1;
}
if (PlayerInfo[playerid][pRoadblock] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas déployé de barrage routier");
return 1;
}
RemoveRoadblock(playerid);
SendClientMessage(playerid, COLOR_GREEN, "Barrage routier suprimé avec succès");
return 1;
}

if(strcmp(cmdtext, "/retirerbarrageall", true)==0 || strcmp(cmdtext, "/rball", true)==0)
{
if (PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 3)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pRoadblock] != 0)
{
RemoveRoadblock(i);
}
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "QG: Tous les barrages routier ont été suprimé par ordre de %s.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 3 || PlayerInfo[i][pLeader] == 3)
{
SendClientMessage(i, TEAM_BLUE_COLOR, string);
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous devez être rang 5 minimum pour utiliser cette commande.");
}
return 1;
}

PS: Ce script ne vien pas de LARP, il vient de GTARP (GM 100% Anglais).
Les modifications aportés

_Le FBI et l'armée peuvent utilisé cette comande
_Traduit en français

PS2: J'ai fait ce poste il y à assez longtemps, et j'ai beaucoup évoluer en script depuis

PS3: Je ne voit Toujours pas pourquoi vous m'avez critiqué dans ce poste, encore une fois, vous auriez pu me dire :

Merci du partage, mais il comporte des erreurs, voici comment les corrigés ...
Titre: Re : [Script]Barrage Routier
Posté par: skylive77 le 16 Juin 2010, 15:45:43
Effectivement, mais bon, en général l'id du FBI et armée est 2 et 3, mais après on peut les changées

j'ai pas changé grand chose, mais je ne voit pas quoi rajouté de plus
Titre: Re : Re : [Script]Barrage Routier
Posté par: Hip-hop le 16 Juin 2010, 23:52:03
Bah si on a fait notre GM a la main il se peut qu'on attribut d'autre ID de faction au FBI

On la bien compris pas besoin de répéter
Titre: Re : Re : Re : [Script]Barrage Routier
Posté par: Barto le 17 Juin 2010, 08:12:11
Bah si on a fait notre GM a la main il se peut qu'on attribut d'autre ID de faction au FBI

On la bien compris pas besoin de répéter

Je vois pas en quoi il répète, il aide une personne. Qu'est ce que vous avez à vous bouffer comme ça sérieux...
Titre: Re : [Script]Barrage Routier
Posté par: Brian Turner le 17 Juin 2010, 08:27:58
Ils ont bouffer du lion  :jesors
 :dejadehors