• 06 Juin 2026, 19:00:52


Auteur Sujet: prob avec checkpoint et téléportation  (Lu 3045 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 checkpoint et téléportation
« le: 18 Avril 2008, 21:38:51 »
Bonjour ^^ est ce que vous pouvez m'aider pour un petit prob avec deux checkpoints qui doivent téléporter :

J'ai fait un zone Dm, mais dans cette zone il y a une porte qui me gène, (dans le caligulas pour aller au coffre près des bureaux) avec la possibilité de passer de l'autre coté puisque dans une mission on le fait ;)
Alors j'ai mis un checkpoint d'un coté de la porte qui me TP de l'autre coté, et de l'autre coté j'ai fait un autre checkpoint, pour me TP de l'autre coté, le prob, c'est que quand je prend le 1er checkpoint, j'arrive bien de l'autre coté, mais le deuxième checkpoint me TP au même endroit que le 1er, de plus, quand un player se déco du dm, les checkpoints disparaissent tous les deux....

Voici mon code :

//en haut du script

new check;
new check2;


//dans OnPlayerSpawn


script....
    else if(DM[playerid] == 9)
    {
    SetPlayerInterior(playerid,1);
    new rand = random(sizeof(Dm9));
    SetPlayerPos(playerid, Dm9[rand][0], Dm9[rand][1], Dm9[rand][2]);// place le joueur
    GivePlayerWeapon(playerid, 29, 9999);
    GivePlayerWeapon(playerid, 34, 9999);
    SetPlayerArmour(playerid, 100);
    check = SetPlayerCheckpoint(playerid, 2167.0818,1618.6169,999.9771, 2);
    }
script.....

//dans OnPlayerCommandText

script....

    if(strcmp(cmdtext,"/DM9", true)==0){
    new playerdm[MAX_PLAYER_NAME];
    new PlayerConnecteddm[256];
    DM[playerid] = 9;
    DMArena[playerid] = 1;
    GetPlayerName(playerid, playerdm, sizeof(playerdm));
    format(PlayerConnecteddm, sizeof(PlayerConnecteddm), "Le player %s est entré dans la zone DM9, tapez /DM9 pour le rejoindre", playerdm);
    SendClientMessageToAll(COLOR_YELLOW, PlayerConnecteddm);
    GameTextForPlayer(playerid, "~r~DM du Caligulas~n~Faites vos equipes et combattez !!",9000,6);
    SetPlayerInterior(playerid,1);
    new rand = random(sizeof(Dm9));
    SetPlayerPos(playerid, Dm9[rand][0], Dm9[rand][1], Dm9[rand][2]);// place le joueur
    GivePlayerWeapon(playerid, 29, 9999);
    GivePlayerWeapon(playerid, 34, 9999);
    SetPlayerArmour(playerid, 100);
    check = SetPlayerCheckpoint(playerid, 2167.0818,1618.6169,999.9771, 2);
}

    if(strcmp(cmdtext,"/qDM9", true)==0){//si il tape la cmd /qDM3
    if(DM[playerid]==0){/* Si aucun DM n'est activé pour le joueur */
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone DM, tu ne peut donc pas quitter de zone");
    }else if(DM[playerid]==9){//si il est dans la zone 9
    SendClientMessageToAll(COLOR_BLUE,"Un joueur a quitté la zone DM9");
    SetPlayerInterior(playerid,0);
    DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
DisablePlayerCheckpoint(check);
DisablePlayerCheckpoint(check2);
    if(couleur[playerid]==1){
SetPlayerColor(playerid, DMrouge[playerid]);
SendClientMessage(playerid,COLOR_RED,"Tu viens de quitter une zone, tu était en Team Dm Rouge, tu est redevenu player normale, pour retourner dans une team, utilise les commandes /dmviolet ou /dmrouge.");
    DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
DisablePlayerCheckpoint(check);
DisablePlayerCheckpoint(check2);
}
if(couleur[playerid]==2){
SetPlayerColor(playerid, DMviolet[playerid]);
SendClientMessage(playerid,COLOR_RED,"Tu viens de quitter une zone, tu était en Team Dm Violet, tu est redevenu player normale, pour retourner dans une team, utilise les commandes /dmviolet ou /dmrouge.");
DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
    DisablePlayerCheckpoint(check);
DisablePlayerCheckpoint(check2);
}
if(couleur[playerid] == 0){
DM[playerid] = 0;
DMArena[playerid] = 0;
DisablePlayerCheckpoint(check);
DisablePlayerCheckpoint(check2);
}
    new rand = random(sizeof(PlayerSpawns));
    SetPlayerPos(playerid, PlayerSpawns[rand][0], PlayerSpawns[rand][1], PlayerSpawns[rand][2]);// place le joueur
    }else if(DM[playerid]==1){//on le remplace par 1
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==2){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DMcar[playerid]==3){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }else if(DM[playerid]==4){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==5){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==6){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==7){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==8){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DMcar[playerid]==1){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }else if(DMcar2[playerid]==1){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }
}
script...

// dans OnPlayerEnterCheckpoint

script...
if(IsPlayerInCheckpoint(check)){
SetPlayerPos(playerid, 2174.0752,1618.7267,999.9766);
check2 = SetPlayerCheckpoint(playerid, 2171.0745,1618.7510,999.9766, 2);
return 1;
}
else if(IsPlayerInCheckpoint(check2)){
SetPlayerPos(playerid, 2163.6257,1618.6069,999.9724);
check = SetPlayerCheckpoint(playerid, 2167.0818,1618.6169,999.9771, 2);
}
return 1;
}

Voila.... Si vous pouviez m'éclairer ;) Merci d'avance :)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #1 le: 19 Avril 2008, 00:33:05 »
Deja tu pourrait utiliser ceci: DisableInteriorEnterExits(); dans gamemodeinit, se qui te desactivera les téléport du jeu solo. Ensuite réessaye peut-etre qu'il y'a un petit conflit entre tes checkpoint et le téléport. Si ca marche pas utilise un playertopoint je pense que c'est plus efficace que les checkpoints.

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #2 le: 19 Avril 2008, 10:50:26 »
Oui mais ce que tu peu faire aussi pour eviter de te faire teleporter dans tout les sens, décale les checkpoint de 1m pour éviter de revenir ...

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #3 le: 19 Avril 2008, 12:43:33 »
Salut ^^

pour le DisableInteriorEnterExits(); , je pense que c'est une mauvaise idée du fait que j'en est besoin ;) Mais pour le PlayerToPoint j'en avais jamais entendu parler xD

Sinon oui je pense que je vais faire en sorte de ne pas placer les checkpoint sur le même axe dessins :

    TP du check2

      check
_____________   (porte)

     check2

    Tp du check


Je pense que je vais faire comme ça :


  Tp check2         check

_______________________ (porte)

 check 2            tp check

Je vais voir si sa fonctionne
^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 checkpoint et téléportation
« Réponse #4 le: 19 Avril 2008, 12:46:38 »
Je prendrait l'option 2 car si tu les met tous alignés bah a peine t'avance tu retourne de l'autre coté ....  :bangin

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #5 le: 19 Avril 2008, 17:36:05 »
Les checkpoints ne sont pas convainquant alors j'ai mes un PickUp  (ID : 1314) pour me TP, le prob c'est qu'il ne me TP pas xD :


//en haut du script

new check;
new check2;


//dans OnPlayerSpawn


script....
    else if(DM[playerid] == 9)
    {
    SetPlayerInterior(playerid,1);
    new rand = random(sizeof(Dm9));
    SetPlayerPos(playerid, Dm9[rand][0], Dm9[rand][1], Dm9[rand][2]);// place le joueur
    GivePlayerWeapon(playerid, 29, 9999);
    GivePlayerWeapon(playerid, 34, 9999);
    SetPlayerArmour(playerid, 100);
    check = CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
    }
script.....

//dans OnPlayerCommandText

script....

    if(strcmp(cmdtext,"/DM9", true)==0){
    new playerdm[MAX_PLAYER_NAME];
    new PlayerConnecteddm[256];
    DM[playerid] = 9;
    DMArena[playerid] = 1;
    GetPlayerName(playerid, playerdm, sizeof(playerdm));
    format(PlayerConnecteddm, sizeof(PlayerConnecteddm), "Le player %s est entré dans la zone DM9, tapez /DM9 pour le rejoindre", playerdm);
    SendClientMessageToAll(COLOR_YELLOW, PlayerConnecteddm);
    GameTextForPlayer(playerid, "~r~DM du Caligulas~n~Faites vos equipes et combattez !!",9000,6);
    SetPlayerInterior(playerid,1);
    new rand = random(sizeof(Dm9));
    SetPlayerPos(playerid, Dm9[rand][0], Dm9[rand][1], Dm9[rand][2]);// place le joueur
    GivePlayerWeapon(playerid, 29, 9999);
    GivePlayerWeapon(playerid, 34, 9999);
    SetPlayerArmour(playerid, 100);
    check = CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
}

    if(strcmp(cmdtext,"/qDM9", true)==0){//si il tape la cmd /qDM3
    if(DM[playerid]==0){/* Si aucun DM n'est activé pour le joueur */
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone DM, tu ne peut donc pas quitter de zone");
    }else if(DM[playerid]==9){//si il est dans la zone 9
    SendClientMessageToAll(COLOR_BLUE,"Un joueur a quitté la zone DM9");
    SetPlayerInterior(playerid,0);
    DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
DestroyPickup(check);
DestroyPickup(check2);
    if(couleur[playerid]==1){
SetPlayerColor(playerid, DMrouge[playerid]);
SendClientMessage(playerid,COLOR_RED,"Tu viens de quitter une zone, tu était en Team Dm Rouge, tu est redevenu player normale, pour retourner dans une team, utilise les commandes /dmviolet ou /dmrouge.");
    DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
DestroyPickup(check);
DestroyPickup(check2);
}
if(couleur[playerid]==2){
SetPlayerColor(playerid, DMviolet[playerid]);
SendClientMessage(playerid,COLOR_RED,"Tu viens de quitter une zone, tu était en Team Dm Violet, tu est redevenu player normale, pour retourner dans une team, utilise les commandes /dmviolet ou /dmrouge.");
DM[playerid] = 0;
couleur[playerid] = 0;
DMArena[playerid] = 0;
DestroyPickup(check);
DestroyPickup(check2);
}
if(couleur[playerid] == 0){
DM[playerid] = 0;
DMArena[playerid] = 0;
DestroyPickup(check);
DestroyPickup(check2);
}
    new rand = random(sizeof(PlayerSpawns));
    SetPlayerPos(playerid, PlayerSpawns[rand][0], PlayerSpawns[rand][1], PlayerSpawns[rand][2]);// place le joueur
    }else if(DM[playerid]==1){//on le remplace par 1
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==2){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DMcar[playerid]==3){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }else if(DM[playerid]==4){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==5){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==6){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==7){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DM[playerid]==8){
    SendClientMessage(playerid,COLOR_RED,"Tu n'est pas en zone 9");
    }else if(DMcar[playerid]==1){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }else if(DMcar2[playerid]==1){
    SendClientMessage(playerid, COLOR_RED,"Tu n'es pas en zone 9");
    }
}
script...

//dans OnPlayerPickUpPickup(playerid, pickupid){
if(pickupid == check){
if(check == 1){
SetPlayerPos(playerid, 2171.0181,1621.4159,999.9781);
check2 = CreatePickup(1314, 2, 2170.3132,1615.8646,999.9801);
check = 0;
check2 = 1;
return 1;
}
}
if(pickupid == check2){
if(check2 == 1){
SetPlayerPos(playerid, 2164.4460,1617.9716,999.9727);
check = CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
check = 0;
check2 = 1;
return 1;
}
}
return 1;
}


Voila.... xD
^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 checkpoint et téléportation
« Réponse #6 le: 19 Avril 2008, 22:57:01 »
Désolé du double poste, mais Help please ^^

Je ne vois pas d'où ça peut venir.. Je pense que c'est dans OnPlayerPickUpPickup mais j'en sur pas sur... :s  :wall
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #7 le: 19 Avril 2008, 23:17:51 »
Je pense que tu a zappé de mettre dans ta commande qui emmene au DM: check = 1;. Mais ca serait mieu de faire :
new check[MAX_PLAYERS];
new check2[MAX_PLAYERS];

{
    if(strcmp(cmdtext,"/DM9", true)==0)
   {
    new playerdm[MAX_PLAYER_NAME];
    new PlayerConnecteddm[256];
    DM[playerid] = 9;
    DMArena[playerid] = 1;
    GetPlayerName(playerid, playerdm, sizeof(playerdm));
    format(PlayerConnecteddm, sizeof(PlayerConnecteddm), "Le player %s est entré dans la zone DM9, tapez /DM9 pour le rejoindre", playerdm);
    SendClientMessageToAll(COLOR_YELLOW, PlayerConnecteddm);
    GameTextForPlayer(playerid, "~r~DM du Caligulas~n~Faites vos equipes et combattez !!",9000,6);
    SetPlayerInterior(playerid,1);
    new rand = random(sizeof(Dm9));
    SetPlayerPos(playerid, Dm9[rand][0], Dm9[rand][1], Dm9[rand][2]);// place le joueur
    GivePlayerWeapon(playerid, 29, 9999);
    GivePlayerWeapon(playerid, 34, 9999);
    SetPlayerArmour(playerid, 100);
    check = CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
    check[playerid] = 1;
    }
}

Je pense que ca devrait mieu marcher puisque pour ton pickuppickup t'a mis un if(check == 1) mais tu ne donne pas la valeur 1 quand il arrive dans la zone. Et avec le playerid ca ciblera uniquement la personne qui viendra dans le DM.

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #8 le: 19 Avril 2008, 23:28:16 »
Merci lol Maintenant quand je rentre dans le pickup le deuxième s'active, mais aucun des deux ne téléporte... enfin le 1er du moin... (check)... Erf ça peut venir d'où ??
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #9 le: 20 Avril 2008, 00:08:14 »
As-tu bien corrigé ceci:

if(check //// [playerid] == 1){
SetPlayerPos(playerid, 2171.0181,1621.4159,999.9781);
check2 = CreatePickup(1314, 2, 2170.3132,1615.8646,999.9801);
check /// [playerid] = 0;
check2 /// [playerid] = 1;
return 1;
}
if(pickupid == check2){
if(check2 ////[playerid] == 1){
SetPlayerPos(playerid, 2164.4460,1617.9716,999.9727);
check = CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
check ///[playerid] = 0;
check2 ///[playerid] = 1;
return 1;
}

Au pire remplace pickupid "check2" par "pick2" pour pas que le pickup se mette sur la meme variable que le reste. ( new pick; , new pick2;)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #10 le: 20 Avril 2008, 00:21:11 »
Mais pour le check[playerid] = 1;
et le check2[playerid] = 1;

Je met un

new check[MAX_PLAYERS];
et un new check2[MAX_PLAYERS];

??

Parce que j'avais déjà

new check;
et
new check2;

et du coup sa me faisais plein d'erreurs, du coup j'ai supprimé le "new check," et le "new check2" lol
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #11 le: 20 Avril 2008, 01:09:31 »
Tu laisse les new check[MAX_PLAYERS] et les check/check2 = Createobject tu les change en pickup/pickup2 = Createobject en haut tu rajoute : new pickup; et new pickup2; tu enleve les new check; tu garde:

new check[MAX_PLAYERS]
new check2[MAX_PLAYERS]
new pickup;
new pickup2;

pickup = Createobject(machinbidule...);
pickup2 = Createobject(machinbidule...);


Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #12 le: 20 Avril 2008, 14:19:05 »
compilation Ok....

Téléportation OK....

code :

public OnPlayerPickUpPickup(playerid, pickupid){
if(pickupid == pickup){
if(check[playerid] == 1){
SetPlayerPos(playerid, 2171.0181,1621.4159,999.9781);
pickup2 = CreatePickup(1314, 2, 2170.3132,1615.8646,999.9801);
check[playerid] = 0;
check2[playerid] = 1;
return 1;
}
}
if(pickupid == pickup2){
if(check2[playerid] == 1){
SetPlayerPos(playerid, 2164.4460,1617.9716,999.9727);
pickup= CreatePickup(1314, 2, 2167.5403,1620.1072,999.9767);
check[playerid] = 1;
check2[playerid] = 0;
return 1;
}
}
return 1;
}
« Modifié: 20 Avril 2008, 14:28:38 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : prob avec checkpoint et téléportation
« Réponse #13 le: 20 Avril 2008, 14:52:05 »
Nikel alors ^^

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : prob avec checkpoint et téléportation
« Réponse #14 le: 20 Avril 2008, 15:06:16 »
Oui nickel ^^ Et merci beaucoup Feldbrau ;)

a++
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|