GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Xolokos le 29 Juin 2014, 15:35:07

Titre: Problème d'affichage de checkpoints ?
Posté par: Xolokos le 29 Juin 2014, 15:35:07
Salutation,
alors je vous exposes mon problème, j'ai fais une array comme ceci :
Code: (PAWN) [Sélectionner]
new MISSIONSINFORMATIONS[][] = {
{float:2756.3959, float:-1180.1185, float:69.3980, 2, 19, "Si quelqu'un sur la frequence, vous pouvez nous apporter de la nourriture aux coordonnees suivantes ? !"},
{float:2422.8034, float:-1499.6334, float:23.9922, 2, 7, "Yoh, c'est Aaron, il nous faut de la bouffe, genre quelques boites aux coordonnees de base quoi, j'te rappelle si on a du neuf."},
{float:2544.3420, float:-1929.5655, float:13.3828, 2, 19, "Si quelqu'un sur la frequence, vous pouvez nous apporter de la nourriture aux coordonnees suivantes ? !"},
{float:2622.3186, float:-1926.7315, float:13.5398, 2, 7, "Yoh, c'est Aaron, il nous faut de la bouffe, genre quelques boites aux coordonnees de base quoi, j'te rappelle si on a du neuf."},
{float:2178.0734, float:-2257.4667, float:14.7734, 2, 19, "Si quelqu'un sur la frequence, vous pouvez nous apporter de la nourriture aux coordonnees suivantes ? !"},
{float:1944.5148, float:-2109.5192, float:13.5514, 2, 19, "Si quelqu'un sur la frequence, vous pouvez nous apporter de la nourriture aux coordonnees suivantes ? !"},
{float:1830.9154, float:-1835.2354, float:13.5781, 6, 7, "Yoh, c'est Aaron, il nous faut de l'essence, genre quelques bidons aux coordonnees de base quoi, j'te rappelle si on a du neuf."},
{float:1838.1622, float:-1853.7764, float:-9.2843, 6, 36, "On a presque plus d'essence ici, si y'a une personne sur la frequence, qu'il rapporte de l'essence aux coordonnees suivantes."},
{float:1848.1700, float:-1832.5231, float:-9.2843, 6, 37, "On a presque plus d'essence ici, si y'a une personne sur la frequence, qu'il rapporte de l'essence aux coordonnees suivantes."},
{float:1844.9556, float:-1313.4174, float:13.3915, 6, 34, "On a presque plus d'essence ici, si y'a une personne sur la frequence, qu'il rapporte de l'essence aux coordonnees suivantes."},
{float:1425.2603, float:-1334.3057, float:13.5804, 4, 70, "Je suis un scientifique je m'appelle Kalvin, je cherche des echantillons d'antidote afin de les etudier a des fin purement scientifique, biensure..."},
{float:948.6664, float:-1334.0847, float:13.5440, 4, 70, "Je suis un scientifique je m'appelle Kalvin, je cherche des echantillons d'antidote afin de les etudier a des fin purement scientifique, biensure..."},
{float:929.9186, float:-1313.6406, float:13.5468, 4, 70, "Je suis un scientifique je m'appelle Kalvin, je cherche des echantillons d'antidote afin de les etudier a des fin purement scientifique, biensure..."},
{float:1468.0228, float:-1158.3093, float:23.7736, 7, 125, "Je m'appelle Byron, on a un grave blesse ici, il nous faut des soins d'urgence s'il vous plait !"},
{float:1495.3537, float:-1170.3220, float:24.0781, 7, 7, "Yoh, c'est Aaron il nous faut des soins histoire d'avoir du stock on est presque a sec ici."},
{float:1627.8031, float:-1168.9003, float:24.0781, 7, 7, "Yoh, c'est Aaron il nous faut des soins histoire d'avoir du stock on est presque a sec ici."},
{float:1724.3446, float:-1154.3293, float:23.8281, 7, 22, "Mon nom est Brock, ma femme est dans un grave etat il me faut des soins s'il vous plait !"},
{float:1818.2336, float:-1143.2508, float:24.1307, 7, 16, "On a de multiples personnes dans de sales etats, il nous faut des soins aux coordonnees suivante !"},
{float:1493.5216, float:-1001.7049, float:-15.1816, 7, 14, "Je suis Connor, je suis dans un sale etat, si quelqu'un m'entend qu'il apporte des soins aux coordonnees suivantes."},
{float:939.7910, float:-1156.7177, float:23.6562, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."},
{float:548.5765, float:-1489.8874, float:14.4535, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."},
{float:739.1079, float:-1584.8927, float:14.2259, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."},
{float:792.3465, float:-1596.5723, float:13.3828, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."},
{float:925.3761, float:-1560.7775, float:13.5450, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."},
{float:1136.0245, float:-1297.2871, float:-12.3571, 9, 7, "Yoh, c'est Aaron, on a besoin de materiel, du metal, adhesif et d'autres truc, apporte moi ca aux coordonnees de base."}
};

Pour sortir les coordonnées et mettre un checkpoint j'ai fais ceci :
Code: (PAWN) [Sélectionner]
new RD = random(sizeof(MISSIONSINFORMATIONS));
printf("%d, %f, %f, %f", RD, MISSIONSINFORMATIONS[RD][0], MISSIONSINFORMATIONS[RD][1], MISSIONSINFORMATIONS[RD][2]);
SetPlayerCheckpoint(playerid, MISSIONSINFORMATIONS[RD][0], MISSIONSINFORMATIONS[RD][1], MISSIONSINFORMATIONS[RD][2], 3.0);
SetPlayerMapIcon(playerid, 0, MISSIONSINFORMATIONS[RD][0], MISSIONSINFORMATIONS[RD][1], MISSIONSINFORMATIONS[RD][2], 19, 0, MAPICON_GLOBAL_CHECKPOINT);

Et donc le problème est simple quand j'affiche avec mon printf, j'obtiens les bonnes coordonnées, mais quand je les places dans les SetPlayerCheckpoint ou SetPlayerMapIcon ils se retrouvent sur les positions extravagantes ( 1541214651, 14165161, -64121541 ) par exemple, je pense que le SetPlayerMapIcon et SetPlayerCheckpoint prennent la suite du tableau...
Et donc je me retrouve avec un point dans la mer a 5000k kilomètres.

Merci à vous.
Titre: Re : Problème d'affichage de checkpoints ?
Posté par: Gzsume le 29 Juin 2014, 17:02:48
Salut,

Je pense que le problème vient du fait que tu utilises deux types de variables dans un seul et même tableau (float et string). Tentes de séparer ça en deux tableaux, ou d'utiliser un énumérateur.
Titre: Re : Problème d'affichage de checkpoints ?
Posté par: Xolokos le 29 Juin 2014, 17:15:03
Je pense que ça va marcher, mais je cherche a faire le moins de tableau possible.
Bref, je vais faire comme ça au pire.
Titre: Re : Problème d'affichage de checkpoints ?
Posté par: Gzsume le 29 Juin 2014, 22:05:12
Au final, deux tableaux ça consomme exactement la même place en mémoire qu'un seul tableau plus grand. Et avec une fonction tu peux binder l'ajout de données dans ces derniers plutôt facilement. On peut imaginer que tu crées une fonction du genre :

Code: (pawn) [Sélectionner]
stock AddMission(float:fPosX, float:fPosY, float:fPosZ, szDescription[]);
Titre: Re : Problème d'affichage de checkpoints ?
Posté par: Xolokos le 04 Juillet 2014, 20:28:00
Au final j'ai remplacer les float par des intergrer, plus rapide et pratique ( moins précis mais les checkpoints se placent directement au sol ).