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 ...