• 29 Juin 2025, 02:28:04


Auteur Sujet: prob avec zone et capture de drapeau  (Lu 4115 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
prob avec zone et capture de drapeau
« 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 ^^
« Modifié: 02 Mai 2008, 16:41:31 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #1 le: 02 Mai 2008, 15:20:21 »
up les gens   :(  :angelnot

Edit : J'ai fais un truk, et quand le player prend le drapeau, il a soit une ramp bleu, pour les bateaux, soit une route qui s'attache a lui, c'est pas trop ce que je veut faire lol mais je m'en rapproche xD :


AttachObjectToPlayer(drap, playerid, 1.5, 0.5, 0, 0, 1.5, 2);


Alors qu'avant j'avais mis :

AttachObjectToPlayer(7090, playerid, 1.5, 0.5, 0, 0, 1.5, 2); donc l'ID de l'objet directement, a savoir que dans mon OnGameModeInit j'ai mis aussi

drap = CreatePickup(7090, 22, -155.9434,2287.6399,30.2833);

Voila... :s
« Modifié: 02 Mai 2008, 16:16:23 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #2 le: 02 Mai 2008, 19:00:25 »
Bon allé, un petit triple poste....  :-X

help please !!! J'ai passé un temps fou a essayer pleins de trucs mais en vain...
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #3 le: 04 Mai 2008, 00:07:35 »
Svp les mecs... J'ai pas arrêter de chercher et je trouve pas....  :wall  :(
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : prob avec zone et capture de drapeau
« Réponse #4 le: 04 Mai 2008, 13:58:49 »
Salut,

Mais ton truc de capturé le drapeux cest un mode entier ???

[HS] Mdr 4 posts d'affilés  :rules ^^ [HS]

++
nikko

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #5 le: 04 Mai 2008, 14:55:31 »
Bah pratiquement oui, c'est assez énorme, puis ça ma pris pas mal de temps pour tout faire !! ...

Oui 4 postes a suivre c'est abuser, mais j'ai vraiment besoin d'aide...  :(

Edit : plus d'infos la : http://staffteam.clanfree.net/new.html
« Modifié: 04 Mai 2008, 15:58:58 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #6 le: 10 Mai 2008, 20:53:03 »
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 ;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Re : prob avec zone et capture de drapeau
« Réponse #7 le: 10 Mai 2008, 21:05:04 »
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 ^^
Mdr un peu compliquer ta phrase je trouver Oo  :blink
Mais bon chui dsl jpeu pas t'aider, mais perd pas espoir ^^  :jesors

++
nikko

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #8 le: 11 Mai 2008, 02:07:32 »
Compliqué mais je pense compréhensible ^^ Quelqu'un qui sait peut m'aider ^^ svp ;)  :D

Et j'ai oublier de dire que j'arrive pas a faire en sorte que l'objet soit attaché au player...
Et que quand le player meurt, l'objet soit positionné a l'endroit ou il meurt et que les autres players puissent le prendre a leur tour
« Modifié: 11 Mai 2008, 02:11:42 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : prob avec zone et capture de drapeau
« Réponse #9 le: 11 Mai 2008, 11:14:02 »
Je pense que ca ce joue avec des timer...

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Re : prob avec zone et capture de drapeau
« Réponse #10 le: 11 Mai 2008, 11:21:16 »
Compliqué mais je pense compréhensible ^^ Quelqu'un qui sait peut m'aider ^^ svp ;)  :D

Et j'ai oublier de dire que j'arrive pas a faire en sorte que l'objet soit attaché au player...
Et que quand le player meurt, l'objet soit positionné a l'endroit ou il meurt et que les autres players puissent le prendre a leur tour

Yosh

Tu utilises AttachObjectToPlayer, ensuite quand le player meurt tu récupères sa position puis tu met un pickup là où est le cadavre :laugh

Ensuite tu refait le tralala...

;)

++
Alexandre

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #11 le: 11 Mai 2008, 12:45:23 »
bah oui c'est ce que je fais pour le AttachToPlayer !! Mais ça ne fonctionne pas, on ne vois pas le drapeau  :ohmy Regarde :

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;
}

J'ai mis l'ID de l'objet mais quand on est en jeu, une fois qu'on est rentré dans le pickup, bah le pickup disparait normale, mais il n'y a pas d'objet qui s'attache au joueur...
Sinon je vais faire comme tu ma dis pour récupérer l'objet quand un player meurt ;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec zone et capture de drapeau
« Réponse #12 le: 12 Mai 2008, 23:09:48 »
heu alors s'était juste pour savoir ou je doit mettre le bout de code pour quand le player meurt ^^ parce que je l'avais mis la dedans mais ça ne fonctionne pas :



if(drapeau[playerid] == 1){
if(porteur[playerid] == 1){
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
DestroyPlayerObject(i, 7090);
DisablePlayerCheckpoint(i);
porteur[i] = 0;
}
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
CreatePickup(7090, 22, x, y, z);
SetPlayerCheckpoint(i, x, y, z, 1);
return 1;
}
}
}
}
    return 1;
}


Dans OnPlayerDeath mais ça ne fonctionne pas :s
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : prob avec zone et capture de drapeau
« Réponse #13 le: 13 Mai 2008, 17:14:06 »
Yosh.

Il y a 2 returns ;D essaye d'en enlever un. :)

++
Alexandre

PS: Si tu pouvais indenter ton code se serait pas mal. :happy

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : prob avec zone et capture de drapeau
« Réponse #14 le: 14 Mai 2008, 01:33:03 »
salut,

bon j'aperçois tout de suite au moins deux problèmes......


premièrement, tu essai d'attacher un Pickup à l'aide d'une fonction prévue pour les Objets....

ça ne peut fonctionner....

par la suite, afin d'empecher les autres de partir avec un deuxième drapeau, fait une variable, quand le premier joueur prend le pickup,  la variable est a 1 et les autres ne peuvent plus prendre le pickup....

je vais regarder un peu plus au cas ou...

EDIT:

pourquoi tu as fait 2 boucles?
public OnPlayerDeath(playerid,reason)
{
if(drapeau[playerid] == 1){
if(porteur[playerid] == 1){
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
DestroyPlayerObject(i, 7090);
DisablePlayerCheckpoint(i);
porteur[i] = 0;
CreatePickup(7090, 22, x, y, z);
SetPlayerCheckpoint(i, x, y, z, 1);
               //pas de return ici, comme le disait -Alexandre
}
    return 1;
            }
      }
    return 1;
}

je crois que c'est déja mieu....

++Sim++
« Modifié: 14 Mai 2008, 01:36:45 par Sim »