12
« le: 01 Mai 2008, 22:28:44 »
Bonjour !! Je reviens vous embêter avec mes problèmes lol Cette fois c'est a cause d'une zone pour mon capture de drapeau :
code :
en haut :
new drapeau[MAX_PLAYERS];
new porteur[MAX_PLAYERS];
new drap;
new gang1;
new gang2;
forward drap1();
forward drap2();
forward gang();
dans OnPlayerSpawn :
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;
}
Dans OnPlayerPickUpPickup
script...
if(drapeau[playerid] == 1){
if(porteur[playerid] == 0){
if(pickupid == drap){
new name[256];
new tmpp[256];
GetPlayerName(playerid, name, sizeof(name));
format(tmpp, sizeof(tmpp), "~r~%s est le porte drapeau !! ",name);
GameTextForAll(tmpp, 3000, 3);
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;
}
}
}
return 1;
}
Dans OnPlayerCommandText
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 devea 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 dasn 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 devea 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 dasn la capture de drapeau !!");
SetPlayerPos(playerid, -238.6161,2612.3850,62.7031);
}
drapeau[playerid] = 1;
porteur[playerid] = 0;
DMArena[playerid] = 1;
gang1 = 1;
gang2 = 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);
drap = 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;
}
script...
et la fin :
public drap1()
{
if(countdown == 0)
{
KillTimer(Compte);
PlayAllSound(1057);
}else{
PlayAllSound(1056);
countdown--;
}
return 1;
}
public drap2()
{
if(countdown == 0)
{
KillTimer(Compte);
PlayAllSound(1057);
}else{
PlayAllSound(1056);
countdown--;
}
return 1;
}
public gang(){
new playerid;
gang1 = SetPlayerWorldBounds(playerid,297.2881,295.6295,1748.3870,1735.0648);
gang2 = SetPlayerWorldBounds(playerid,-285.3674,-245.9594,2592.1355,2585.1033);
if(gang1 == 1){
if(porteur[playerid] == 1){
Compte=SetTimer("drap1",1000,1);
countdown = 15;
SendClientMessage(playerid, COLOR_RED,"reste 15 seconde dans ta zone pour la valider");
return 1;
}
if(countdown == 0){
new name[256];
new tmpp[256];
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);
drap = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);
return 1;
}
if(porteur[playerid] == 0){
return 1;
}
if(gang1 == 0){
if(porteur[playerid] == 0){
return 1;
}
if(gang2 == 1){
if(porteur[playerid] == 1){
Compte=SetTimer("drap2",1000,1);
countdown = 15;
SendClientMessage(playerid, COLOR_RED,"reste 15 seconde dans ta zone pour la valider");
return 1;
}
if(countdown == 0){
new name[256];
new tmpp[256];
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);
drap = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);
return 1;
}
if(porteur[playerid] == 1){
return 1;
}
if(gang2 == 0){
if(porteur[playerid] == 0){
return 1;
}
}
}
}
}
return 1;
}
Voila Alors en faite :
Il n'y a pas les zones... De plus, l'objet, quand il est prit par un player, les autres voient toujours le pickup... Le player qui porte l'objet ne vois pas le drapeau qui doit être attaché a lui normalement, je veut qu'il soit visible par tous mais ça ne fonctionne pas...
De plus je n'arrive pas a faire en sorte que quand le player qui porte le drapeau, meurt, que le drapeau reste a l'endroit ou le player qui le portai est mort, et qu'il soit réccupérable par les autres...
Après, bah pour les derniers public, a partir du public gang(){ bah je ne peut savoir si ça fonctionne....
Est ce que vous pouvez m'aider SVP ^^