• 06 Juin 2026, 13:06:21


Auteur Sujet: Probleme CheckPoint[RÉSOLU]  (Lu 5631 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #15 le: 02 Juin 2010, 19:41:04 »
Salut,


regarde ton tableau de donnée,
combien y a t'il de ligne?
5 ça va, c'est juste ce qu'il faut
Combien y a t'il de données pas ligne?
4 c,est une de trop, à toi de trouver la quelle

ps. quand tu fais un tableau initialité comme ça et ne veut pas t'embêter avec la taille (sachant que les informations ne seront pas changées par la suite), tu peut l'omettre:
new Float:RSPAWN[][] =
{
    {-1500.4679,855.2566,7.1875,155.1493},
    {-1488.8596,827.5113,7.1875,127.2624},
    {-1489.5624,798.7892,7.1853,85.2753},
    {-1527.2998,790.7748,7.1805,332.1610},
    {-1507.3282,826.0363,14.9413,89.0120}
};

++Sim++





Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #16 le: 02 Juin 2010, 19:44:20 »
mon erreur de quoi sa vien ?
Code: (pawn) [Sélectionner]
<?php ...
forward PlayerToPoint(Float:radiplayeridFloat:xFloat:yFloat:z);

public 
OnPlayerEnterCheckpoint(playerid) {
if (
Check1) {
new 
Infernus;
DisablePlayerCheckpoint(playerid);
Infernus CreateVehicle(411,2866.1811523438, -1659.909301757810.524225234985,200,1,1,5000);
PutPlayerInVehicle(playerid,Infernus,0);
SetPlayerCheckpoint(playerid2882.18359375, -1187.704833984410.5242252349858);
SendClientMessage(playerid,0xFFFF00AA"> VOUS ETES SUR LA LIGNE DE DEPART, GOGOGO.");
}
else if(
PlayerToPoint(8playerid,2882.18359375, -1187.704833984410.524225234985)) {
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid2886.9897460938, -662.2823486328111.5242252349858);
SendClientMessage(playerid,0xFFFF00AA"> CheckPoint atteint, au suivant.");

}
else if(
PlayerToPoint(8playerid,2886.9897460938, -662.2823486328111.524225234985)) {
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid2712.0295420156, -264.7633666992228.5242252349858);
SendClientMessage(playerid,0xFFFF00AA"> CheckPoint atteint, au suivant.");
}
else if(
PlayerToPoint(8playerid,2712.0295420156, -264.7633666992228.524225234985)) {
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid,0xFFFF00AA"> CheckPoint atteint, c'est fini.");
}
return 
1;
}

Code: (pawn) [Sélectionner]
C:\Program Files\Rockstar Games\GTA San Andreas\SERVEUR\gamemodes\gm1.pwn(181) : error 004: function "PlayerToPoint" is not implemented
C:\Program Files\Rockstar Games\GTA San Andreas\SERVEUR\gamemodes\gm1.pwn(187) : error 004: function "PlayerToPoint" is not implemented
C:\Program Files\Rockstar Games\GTA San Andreas\SERVEUR\gamemodes\gm1.pwn(192) : error 004: function "PlayerToPoint" is not implemented
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne Hatomalis

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #17 le: 02 Juin 2010, 19:59:08 »
Un grand merci a toi SIM maintenant sa marche =)

Merci du conseille ;)

-

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #18 le: 02 Juin 2010, 21:49:58 »
Il est extrêmement dangereux de ne pas mettre la taille d'un tableau.
 >:( >:( >:( Je condamne à l'exil définitif tous les scripteurs qui osent mettre des [] sans valeur à l'intérieur  >:( >:( >:(!!!

Regardez bien les deux bouts de code ci-dessous :
new Float:RSPAWN[][] =
{
    {-1500.4679,855.2566,7.1875,155.1493},
    {-1488.8596,827.5113,7.1875,127.2624},
    {-1489.5624,798.7892,7.1853,85.2753},
    {-1527.2998,790.7748,7.1805,332.1610},
    {-1507.3282,826.0363,14.9413,89.0120}
};

new Float:RSPAWN[][] =
{
    {-1500.4679,855.2566,7.1875,155.1493},
    {-1488.8596,827.5113,7.1875,127.2624},
    {-1489.5624,798,7892,7.1853,85.2753},
    {-1527.2998,790.7748,7.1805,332.1610},
    {-1507.3282,826.0363,14.9413,89.0120}
};

Ces deux bouts de codes se compilent et s'utilisent de la même manière.
Et pourtant, avec le deuxième, tout va très vite partir en sucette et il deviendra pratiquement impossible de savoir pourquoi alors que l'erreur est minime.

D'ailleurs, je vous mets au défi de trouver rapidement (voire de trouver tout court) ce qui cloche dans le deuxième bout de code.

++
Syg

Courtesy of GtaManiac

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #19 le: 02 Juin 2010, 22:17:09 »
erreure troisieme ligne

{-1489.5624,798,7892,7.1853,85.2753},


{-1489.5624,798.7892,7.1853,85.2753},


mais il est vrais que pawn ne renverras pas d'erreur car le tableau n'as pas eu de limite est donc on peu lui inserer des erreure par megarde et pour la rettrouver la misere
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #20 le: 03 Juin 2010, 16:41:56 »
Je suis donc le seul à mettre des espaces après les virgules ?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #21 le: 03 Juin 2010, 17:21:25 »
Je suis donc le seul à mettre des espaces après les virgules ?
je fais exactement la même chose en temps normal





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #22 le: 03 Juin 2010, 18:15:20 »
Selon notre façon de coder il sera plus ou moins difficile de trouver des erreurs, mais je trouve astucieux de mettre des espaces après chaque virgule ( faut que je m'y mette ) ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #23 le: 03 Juin 2010, 19:18:05 »
jamais moi ^^ mais par contre j'essaie au max d'aérer mes script
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Hatomalis

  • *
  • Tueur en série
  • Messages: 121
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #24 le: 03 Juin 2010, 21:53:47 »
Syg quesque tu entend par " EXTREMENT DANGEUREUX " et " Partir en sucète " ??

Parceque moi ne pas mettre la Taille d'un tableau c'est le seul moyen qui marche pour faire disparaitre mon érreur !!

-

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #25 le: 03 Juin 2010, 22:08:40 »
look sont deuxieme tableau faux mais qui envoie aucune erreure


est ce transparent ce qu'on post des fois ??
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #26 le: 04 Juin 2010, 15:50:48 »
Oui, la troisième ligne du deuxième tableau contient 5 valeurs alors que les autre lignes n'en ont que 4.

Les valeurs voulues sont :
-1489.5624   798.7892   7.1853   85.2753

Les valeurs retenues par le compilateur seront :
-1489.5624   798   7892   7.1853

Ce qui n'a rien à voir.
Donc si chaque ligne représente une position, dans le deuxième cas, il y aura certainement un problème.

Quand je dit "extrêmement dangereux", je ne veux pas dire que la vie du scripteur est en danger. Mais ça peut conduire à des plantages inexpliqués du serveur (le serveur part en sucette) qui risquent de remettre en cause la totalité du script puisque l'erreur est quasiment introuvable (car il faut imaginer ce tableau noyé dans plusieurs dizaines de milliers de lignes de codes).

Sinon, en français comme en C ou en PAWN, je mets toujours un espace après un virgule.
Mais ça n'empêchera pas l'erreur commise d'être très difficile à trouver (peut-être même plus difficile encore) : 
new Float:RSPAWN[][] =
{
    {-1500.4679, 855.2566,  7.1875, 155.1493},
    {-1488.8596, 827.5113,  7.1875, 127.2624},
    {-1489.5624, 798,7892,  7.1853,  85.2753},
    {-1527.2998, 790.7748,  7.1805, 332.1610},
    {-1507.3282, 826.0363, 14.9413,  89.0120}
};
Ci dessus, la virgule mal placée n'est pas plus facilement détectable que dans le bout de code précédent.

++
Syg
Courtesy of GtaManiac

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #27 le: 04 Juin 2010, 16:00:36 »
Salut,

perso dans mes scripts souvent les positions sont chargées depuis des fichiers. Et je fait presque toujours un print des données chargées (parce que je suis conscient que ça peut être problématique), donc dans le print c'est vachement visible ce genre de truc.
Vive les systèmes automatisés (même si c moins flexible).
EDIT: après vérification, il n'y a aucune position dans mon gm (faudrait vérifier en profondeur mais après un coup d'œil rapide je n'ai rien vu)
EDIT2: le seul tableau initialisé ne porte pas trop à ce genre d'erreur:
enum questions_generales_enum
{
question[96],
reponse[32],
prix
}

new QuestionsGenerales[][questions_generales_enum] =
{
{"Quelle est la couleur du cheval blanc de Napoléon?", "Blanc", 5000},
{"Quel est le nom des zones vertes du serveur?", "Safe-Zone", 5000}
};
j'ai enlevé les lignes qui pourraient ressembler à de la pub

++Sim++
« Modifié: 04 Juin 2010, 16:04:47 par Sim »





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #28 le: 04 Juin 2010, 16:20:28 »
Sim, il y a une erreur dans ton script, la cheval blanc, c'était celui d'Henri IV .....

Sinon, initialiser les dimensions d'un tableau est une habitude à prendre qui ne coute rien.
Plus on maîtrise ce que l'on fait, moins il y a de chance pour que le compilateur l'interprète de manière erronée.

Maintenant, concernant ton exemple, ne pas mettre la première dimension t'obligera à utiliser sizeof (qui, par chance, renvoie un nombre d'éléments et non pas un vraie taille comme en C ou en C++).

Sinon, Hatomalis, pour ton erreur de compilation lorsque tu mets la taille du tableau, montre nous le tableau en question, on trouvera la raison.

++
Syg
Courtesy of GtaManiac

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Probleme CheckPoint[ENCORE UN PROBLEME]
« Réponse #29 le: 04 Juin 2010, 16:44:19 »
Ouais toujours mettre la taille du tableau c'est mieux ^^


Car par exemple dans un string de ce genre

new Array[][128] =
{
"Salut tout le monde =)",
"Hey un tableau initialiser !",
"=)"
};

C'est un tableau tout à fait normal, mais maintenant si on veut le nombre de string qui la compose naturellement on utilise un sizeof()
or, sizeof() dans ce car la renverra

384 et non pas 3 ^^

Et cela peut se régler avec un define du genre

#define NOMBRE_DE_STRING    3

new Array[NOMBRE_DE_STRING][128] =
{
"Salut tout le monde =)",
"Hey un tableau initialiser !",
"=)"
};

pour éviter le sizeof()

ou bien sizeof() / 128 ( si on connait pas le nombre de string)




Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog