Re encore ^^ (il y a que des message de moi :P)
Bon s'était pour vous dire que les zones j'ai laissé tombé, j'ai remplacé par des checkpoint, plus facile a faire, moi qui n'est jamais travaillé avec des zones, mais j'aimerais bien savoir comment faire quand même ^^
Voila, donc mon code fonctionne mais il reste de petits détails tel que :
Attacher l'objet au joueur, que je n'arrive toujours pas a faire...
Faire en sorte que quand un joueur a déjà fait la commande /drapeau et qu'un autre player la fasse après, bah que le player qui a fait /drapeau en deuxième, ou troisième, enfin pas le 1er, qu'il prenne la partie en cour, donc, si un player a déjà le drapeau
que le player qui vien de rentrer ne vois pas un nouveau drapeau quand il tapera /drapeau ^^
Voila je mes le code la :
en haut:
new drapeau[MAX_PLAYERS];
new porteur[MAX_PLAYERS];
new drapob;
new drap1;
new drap2;
new drap11;
new drap21;
forward drap();
forward drapb();
forward gang();
public OnPlayerSpawn(playerid)
{
script ....
if(drapeau[playerid] == 1){
if(couleur[playerid] == 1){
SetPlayerPos(playerid, 231.3357,1748.4213,17.6481);
SendClientMessage(playerid, COLOR_RED, "Retourne chercher le drapeau !!! et ramène le dans TON camp");
return 1;
}
}
if(drapeau[playerid] == 1){
if(couleur[playerid] == 2){
SetPlayerPos(playerid, -238.6161,2612.3850,62.7031);
SendClientMessage(playerid, COLOR_RED, "Retourne chercher le drapeau !!! et ramène le dans TON camp");
return 1;
}
}
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid){
script ...
if(pickupid == drapob){
if(drapeau[playerid] == 1){
if(porteur[playerid] == 0){
new name[256];
new tmpp[256];
GetPlayerName(playerid, name, sizeof(name));
format(tmpp, sizeof(tmpp), "%s est le porteur du drapeau !!",name);
GameTextForAll(tmpp,32000,5);
AttachObjectToPlayer(7090, playerid, 1.5, 0.5, 0, 0, 1.5, 2);
GameTextForPlayer(playerid,"~r~Tu es le ~b~porteur ~r~du drapeau", 3000, 3);
porteur[playerid] = 1;
for(new i = 0; i < MAX_PLAYERS; i++)
{
DisablePlayerCheckpoint(i);
DestroyPickup(i);
}
}
}
if(couleur[playerid] == 1){
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i,297.2881,1735.0648,17.6406,5);
}
}
if(couleur[playerid] == 2){
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i,-285.3674,2585.1033,63.5703,5);
}
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[]){
script...
if(strcmp(cmd,"/drapeau", true)==0){
new tmpp[256];
new texte[256];
new name[MAX_PLAYER_NAME];
tmpp = strtok(cmdtext, idx);
if(couleur[playerid] == 0){
SendClientMessage(playerid, COLOR_RED, "Choisi une team avant de rentrer dans la capture de drapeau !!");
SendClientMessage(playerid, COLOR_RED, "team rouge : /DMrouge, team violet : /DMviolet");
return 1;
}
if(couleur[playerid] == 1){
GetPlayerName(playerid, name, sizeof(name));
format(texte, sizeof(texte), " %s est entré dans le DM capture de drapeau en TEAM ROUGE", name);
SendClientMessageToAll(COLOR_YELLOW, texte);
SendClientMessageToAll(COLOR_YELLOW, "Avant de pouvoir le rejoindre vous devez choisir une équipe, soit les rouge soit les violet");
SendClientMessageToAll(COLOR_YELLOW, "Tapez donc /DMrouge pour être rouge et /Dmviolet pour être violet, tapez ensuite /drapeau pour entrer dans la capture de drapeau !!");
SetPlayerPos(playerid, 231.3357,1748.4213,17.6481);
}
if(couleur[playerid] == 2){
GetPlayerName(playerid, name, sizeof(name));
format(texte, sizeof(texte), " %s est entré dans le DM capture de drapeau en TEAM VIOLET", name);
SendClientMessageToAll(COLOR_YELLOW, texte);
SendClientMessageToAll(COLOR_YELLOW, "Avant de pouvoir le rejoindre vous devez choisir une équipe, soit les rouge soit les violet");
SendClientMessageToAll(COLOR_YELLOW, "Tapez donc /DMrouge pour être rouge et /Dmviolet pour être violet, tapez ensuite /drapeau pour entrer dans la capture de drapeau !!");
SetPlayerPos(playerid, -238.6161,2612.3850,62.7031);
}
drapeau[playerid] = 1;
porteur[playerid] = 0;
DMArena[playerid] = 1;
SetPlayerInterior(playerid,0);
SendClientMessage(playerid, COLOR_YELLOW, "te voila donc dans le DM capture de drapeau, ton but est de récupérer avec les autres membres de ta team");
SendClientMessage(playerid, COLOR_YELLOW, "le drapeau qui est signalé par un marqueur rouge sur la minimap et de le ramener dans ton camp a l'endroit indiqué.");
GameTextForPlayer(playerid, "~r~Bonne capture !!!",3000,6);
drapob = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);
SetPlayerCheckpoint(playerid, -155.9434,2287.6399,30.2833, 5);
GivePlayerWeapon(playerid, 29, 9999);
GivePlayerWeapon(playerid, 34, 9999);
SetPlayerHealth(playerid, 100);
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
script ...
if(drapeau[playerid] == 1){
//if(IsPlayerInCheckpoint(playerid) == 1){
if(porteur[playerid] == 1){
if(couleur[playerid] == 1){
SendClientMessage(playerid, COLOR_RED,"reste 15 secondes dans ta zone pour la valider");
drap11=SetTimer("drap",1000,1);
drap1 = 15;
return 1;
}
if(IsPlayerInCheckpoint(playerid) == 0){
KillTimer(drap11);
return 1;
}
}
}
if(drapeau[playerid] == 1){
if(couleur[playerid] == 2){
if(porteur[playerid] == 1){
//if(IsPlayerInCheckpoint(playerid) == 1){
SendClientMessage(playerid, COLOR_RED,"reste 15 secondes dans ta zone pour la valider");
drap21=SetTimer("drapb",1000,1);
drap2 = 15;
return 1;
}
if(IsPlayerInCheckpoint(playerid) == 0){
KillTimer(drap21);
return 1;
}
}
}
return 1;
}
public drap()
{
new playerid;
new name[256];
new tmpp[256];
if(drap1 == 0)
{
KillTimer(drap11);
PlayAllSound(1057);
SendClientMessage(playerid, COLOR_YELLOW, "Tu a réussi a capturer le drapeau");
GetPlayerName(playerid, name, sizeof(name));
format(tmpp, sizeof(tmpp), "~r~%s A reussi a capturer le drapeau ",name);
GameTextForAll(tmpp, 3000, 5);
DestroyPlayerObject(playerid, 7090);
SetPlayerScore(playerid,GetPlayerScore(playerid)+100);
porteur[playerid] = 0;
drapob = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);
for(new i = 0; i < MAX_PLAYERS; i++)
{
DisablePlayerCheckpoint(i);
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i, -155.9434,2287.6399,30.2833, 5);
}
}
if(porteur[playerid] == 0){
return 1;
}
if(IsPlayerInCheckpoint(playerid) == 0){
if(porteur[playerid] == 0){
return 1;
}
}else{
PlayAllSound(1056);
drap1--;
}
return 1;
}
public drapb()
{
new playerid;
new name[256];
new tmpp[256];
if(drap2 == 0)
{
KillTimer(drap21);
PlayAllSound(1057);
SendClientMessage(playerid, COLOR_YELLOW, "Tu a réussi a capturer le drapeau");
GetPlayerName(playerid, name, sizeof(name));
format(tmpp, sizeof(tmpp), "~r~%s A reussi a capturer le drapeau ",name);
GameTextForAll(tmpp, 3000, 3);
DestroyPlayerObject(playerid, 7090);
porteur[playerid] = 0;
SetPlayerScore(playerid,GetPlayerScore(playerid)+100);
drapob = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);
for(new i = 0; i < MAX_PLAYERS; i++)
{
DisablePlayerCheckpoint(i);
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i, -155.9434,2287.6399,30.2833, 5);
}
}
if(porteur[playerid] == 0){
return 1;
}
if(IsPlayerInCheckpoint(playerid) == 0){
if(porteur[playerid] == 0){
return 1;
}
}else{
PlayAllSound(1056);
drap2--;
}
return 1;
}
Voila ^^ J'espère que vous pourrez m'aider pour le peut qu'il me reste ;)