• 28 Mars 2024, 22:36:52


Auteur Sujet: [TUTO] Les CheckPoints  (Lu 27785 fois)

0 Membres et 2 Invités sur ce sujet

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : [TUTO] Les CheckPoints
« Réponse #45 le: 23 Juin 2008, 18:05:19 »
Désolé de ne pas répondre souvent sur le forum je suis un peux (beaucoup) occupé ces temps-ci (Menteur  :dry)

Enfin bref, j'en sais vraiment rien car j'utilise des Filterscript pour ce genre de choses mais j'ai quand même une idée.

Comme t'a dit -Alexandre essaye de faire un timer avec un GetPlayerPos. En gros il y à un minuteur qui vérifie toutes les X secondes que le joueur est dans la zone ou pas. Si oui le checkpoint s'affiche, si non tu connais la suite...

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne lepompier

  • *
  • Bandit
  • Messages: 422
    • Voir le profil
Re : [TUTO] Les CheckPoints
« Réponse #46 le: 23 Juin 2008, 23:13:55 »
D'accord merci les mecs je vais essayer sa si j'ai un blem je revient :)

Hors ligne garderer

  • *
  • Bandit
  • Messages: 271
    • Voir le profil
Re : [TUTO] Les CheckPoints
« Réponse #47 le: 07 Juillet 2008, 18:17:01 »
Perso pour mon serveur et éviter les bug regarde on cré un seule variable c'est aussi bien.

http://fight-international.com/forums/index.php?showtopic=139

Dites mois ce que vous en pensez  ???

Edit :

http://pastebin.com/f5a376120

Pour faire plaizir a coco76
« Modifié: 07 Juillet 2008, 20:02:09 par garderer »

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : [TUTO] Les CheckPoints
« Réponse #48 le: 07 Juillet 2008, 18:49:26 »
La tu fait surtout une pub pour ton site tu aurais donné sa http://pastebin.com/f5a376120 sa nous aurais suffit .
En plus y manque des choses return1; et des paranthèse j'ai corrigé sa

public OnPlayerEnterCheckpoint(playerid)
{
switch(desbomb[playerid])
{
case 1:
{

    //Commande
}
case 2:
{

//commande
}
}

return 1;
}
Voila la pres le reste est pas mâle

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [TUTO] Les CheckPoints
« Réponse #49 le: 16 Décembre 2008, 03:46:37 »
Salut,

désolé de remonté ce "vieux" topic mais je tien à effectué une précision,

comme on peut le voir dans le script de UrbanGhetto :
public OnPlayerEnterCheckpoint(playerid)
LA CALLBACK NE COMPORTE PAS DE PARAMÈTRE CHECKPOINTID, alors tous vos test sur check1, check 2 etc.. ne servent à rien, du moins, pas de la façon dont vous le faites

vous pourriez utiliser un checkpoint streamer comme celui-ci ou encore celui-ci

pas contre, si vous faites de vous même un "streamer", ce qui serait effectivement recommandé si vous avez peu de checkpoint...
utilisez plutôt la fonction IsPlayerToPoint (comme mentionné plus tôt) ou IsPlayerInArea afin de décider si un joueur peut voir ou non un checkpoint,
dans ce streamer, vous devriez faire une variable informant le script si le joueur voit un checkpoint ou non, à ce moment, le test ne sera plus le même, il serait même possible de faire un streamer qui montre tout simplement le checkpoint le plus près...

bref:

au lieu de faire des tests du genre:
public OnPlayerEnterCheckpoint(playerid)
{
switch(desbomb[playerid])
{
case 1:
{

    //Commande
}
case 2:
{

//commande
}
}

return 1;
}
Pensez plutôt a un test du genre:
public OnPlayerEnterCheckpoint(playerid)
{
if(IsPlayerToPoint(playerid,X,Y,Z,DISTANCE))//les paramètres X,Y,Z pourraient provenir d'un tableau de données et distance devrait être une constante défini au haut du script
{
....
}else if(IsPlayerToPoint(playerid,X,Y,Z,DISTANCE))
}
...
}
return 1;
}

P.S. un tableau de donnéee serait un code du genre:

enum CHECKPOINT_ENUM
{
Float:X,
Float:Y,
Float:Z,
Float:Taille,//le rayon(ou diamètre) du checkpoint
Float:Distance,//distance pour le voir
}
new CheckpointList[][CHECKPOINT_ENUM] = {
{123.32,432.12,3.231,12,250},//checkpoint ID 0
{123.32,432.12,3.231,12,250},//CheckPoint ID 1
{123.32,432.12,3.231,12,250},//.....
{123.32,432.12,3.231,12,250}
};
new PlayerCheckpointID[MAX_PLAYERS];

new TimerCheckStreamer;
forward StreamCheck();

public OnGameModeInit()
{
TimerCheckStreamer = SetTimer("StreamCheck",1000,1);
return 1;
}

public OnGameModeExit()
{
KillTimer(TimerCheckStreamer);
return 1;
}

public StreamCheck()
{
for(new i; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
for(new o; o<sizeof(CheckpointList);o++){
if(IsPlayerToPoint(i,CheckpointList[o][X],CheckpointList[o][Y],CheckpointList[o][Z],CheckpointList[o][Distance]){
CreatePlayerCheckPoint(i,CheckpointList[o][X],CheckpointList[o][Y],CheckpointList[o][Z],CheckpointList[o][Taille]);
PlayerCheckpointID[i] = o;
break;//on stoppe la seconde boucle
}
}
}
}
}

//ET FINALEMENT

public OnPlayerEnterCheckPoint(playerid)
{
if(PlayerCheckpointID[playerid] == ...)
{
.....
}
......
return 1;
}

en espérant que le code fonctionne ou presque (composé sur le forum)

++Sim++
« Modifié: 16 Décembre 2008, 03:49:04 par Sim »





Hors ligne darklp23

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [TUTO] Les CheckPoints
« Réponse #50 le: 16 Janvier 2012, 20:57:22 »
Bonjour j'ai besoin d'aide avec un de mes métiers, celui de la job du fermier,je voudrais que quand ils arrive au checkpoint 22 sa retourne au 1 et en continue a place de terminer comme sa je peut faire la job tout le temps sans attendre au prochain paycheck.Comment est-ce que je peut faire sa? j'avais penser a enlever le disabledcheckpoint mais quoi mettre a la place sa j'ai pas trouver.Merci d'avance et bonne journée a vous.


case 21:
                 {
                     SetPlayerCheckpoint(playerid, -376.7750,-1437.6874,25.7266, 5.0);
                     if(JustStarted[playerid] != 0)
                        {
                           JustStarted[playerid] = 0;
                   }
               }
               case 22:
                 {
                     DisablePlayerCheckpoint(playerid);
                     TogglePlayerControllable(playerid, 0);
                        new cashes=(random(35-10)+100);
                        format(string, sizeof(string), "Utilisez /sortir pour sortir. Vous gagnez %d$",cashes);
                       SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                       SafeGivePlayerMoney(playerid, cashes);
               }
              }
              FarmerPickup[playerid][0]++;
              PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
          }
      }
      return 1;

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [TUTO] Les CheckPoints
« Réponse #51 le: 16 Janvier 2012, 21:19:43 »
On ne peut pas t'aider avec juste cette portion de code, montre nous tout ce qui concerne ceci en séparent correctement les différentes parties du code.

PS: Pense à utiliser la balise code.
PS2: Ne fait pas l'erreur de poster un code trop grand sur le forum.

Hors ligne darklp23

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [TUTO] Les CheckPoints
« Réponse #52 le: 16 Janvier 2012, 21:33:23 »
Okay mais il a 22 cases donc je vais devoir montrer le début et la fin tout simplement ce sont les meme code que un 2ieme monde.Desoler j'ai enlever les parathese et les espace pour que le code soit moins gros. sa part de ceci et sa continue jusqu'au case 22 comme mon message précédant.J'aimerais que apres le 22 case sa recommence au case 1

P.s Comment étuliser la balise code le mien donne sa.

if(FarmerVar[playerid] == 1)
       if (IsPlayerInAnyVehicle(playerid))
          new carid = GetPlayerVehicleID(playerid);
          //new cash=(random(70-20)+50);
          if(IsAHarvest(carid))
              switch(FarmerPickup[playerid]
  • )

                  case 0:
                     SetPlayerCheckpoint(playerid, -205.9348,-1332.2749,10.4056, 5.0);
                     if(JustStarted[playerid] != 0)
                           JustStarted[playerid] = 0;
               case 1:
                     SetPlayerCheckpoint(playerid, -376.7750,-1437.6874,25.7266, 5.0);
                     if(JustStarted[playerid] != 0)
                           JustStarted[playerid] = 0;
               case 2:
                     if(JustStarted[playerid] != 1)
                            new cashes=(random(15-10)+50);
                            format(string, sizeof(string), "Vous gagnez %d$",cashes);
                           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                           SafeGivePlayerMoney(playerid, cashes);
                     else
                         JustStarted[playerid] = 0;
                     SetPlayerCheckpoint(playerid, -548.5396,-1329.0653,19.6210, 5.0);
« Modifié: 16 Janvier 2012, 22:52:37 par darklp23 »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [TUTO] Les CheckPoints
« Réponse #53 le: 17 Janvier 2012, 18:43:39 »
Tu ne connait apparemment pas l'existence des blocs d'instructions (encadrés par des accolades).