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
-
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)
-
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 !
-
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 !!
-
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 )
-
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
( 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.
-
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;
}
-
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 ^^
++
-
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 ^^
-
encore un faux tuto (omg c'est l'été qui fait sa dans ce cas vive l'hiver)
-
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 ...
-
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
-
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
-
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...
-
Ils ont bouffer du lion :jesors
:dejadehors