• 20 Mai 2024, 16:54:59


Auteur Sujet: Couleurs sous YSI  (Lu 1011 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne CarCrasher

  • *
  • Tueur en série
  • Messages: 144
    • Voir le profil
Couleurs sous YSI
« le: 02 Octobre 2013, 02:09:50 »
Bonjour bonjour, je reviens vous importuner !

Alors voilà voilà ^^

Cette fois-ci, sur mon serveur je m'attaque à quelque chose d'assez coriace, mais bon, c'est comme ça qu'on apprend ^^
Je fais donc un système ou les 10 villages de San Andreas seraient des zones capturables par des gangs formés au préalable par les joueurs !
Pour ne pas tout vous dévoiler, et surtout, ne pas écrire plus sur la description que pour la demande d'aide, je vais directement au but.

Chaque gang aurait sa couleur, et dans le fichier recensant toutes les couleurs des zones et leurs propriétaires, j'ai lancé mon serveur avec des codes couleurs au hasard juste pour voir, mais, à ma grande déception, aucune gangzone ne s'affichait. (J'en ai conclu que la valeur ne s'était pas chargée, et vu que la couleur est une variable, la variable restant 0, la couleur ne s'affiche pas, donc gangzone invisible.)

Donc, sur cette base, j'ai cru isoler le problème au niveau du chargement des données.

Cependant, ayant déjà scripté la sauvegarde de ces couleurs, si la variable était 0, elle aurait du s'afficher dans le fichier sauvegardé.

(J'ai testé les couleurs en décimal & hexadécimal, pour ne pas me faire dire qu'une couleur ne doit pas être sauvegardée comme ça)

Donc voici mon code :

En dehors des callbacks

[spoiler]
Code: (pawno) [Sélectionner]
INI:main[examples](name[], value[])
{
INI_Int("NombreDeGangs",nombredegangs);
INI_Int("ColGangzone1",colgang1);
INI_Int("ProprioGangZone1",propriogang1);
INI_Int("ColGangzone2",colgang2);
INI_Int("ProprioGangZone2",propriogang2);
INI_Int("ColGangzone3",colgang3);
INI_Int("ProprioGangZone3",propriogang3);
INI_Int("ColGangzone4",colgang4);
INI_Int("ProprioGangZone4",propriogang4);
INI_Int("ColGangzone5",colgang5);
INI_Int("ProprioGangZone5",propriogang5);
INI_Int("ColGangzone6",colgang6);
INI_Int("ProprioGangZone6",propriogang6);
INI_Int("ColGangzone7",colgang7);
INI_Int("ProprioGangZone7",propriogang7);
INI_Int("ColGangzone8",colgang8);
INI_Int("ProprioGangZone8",propriogang8);
INI_Int("ColGangzone9",colgang9);
INI_Int("ProprioGangZone9",propriogang9);
INI_Int("ColGangzone10",colgang10);
INI_Int("ProprioGangZone10",propriogang10);
return 1;
}
[/spoiler]

[spoiler]
Code: (pawno) [Sélectionner]
new gangzone1;// Angel Pine
new gangzone2; // Bayside
new gangzone3; // El Quebrados
new gangzone4; // Las Barrancas
new gangzone5; // Las Payasadas
new gangzone6; // Blueberry
new gangzone7; // Montgommery
new gangzone8; // Dillimore
new gangzone9; // Palomino Creek
new gangzone10; // Fort Carson
[/spoiler]

Dans OnGameModeInit

[spoiler]
Code: (pawno) [Sélectionner]
            INI_Load("/Gangs/main.ini");
        gangzone1 = GangZoneCreate(-2335.575, -2592.488, -1961.883, -2195.441);// Angel Pine
    gangzone2 = GangZoneCreate(-2662.556, 2148.729, -2137.051, 2545.777);// Bayside
    gangzone3 = GangZoneCreate(-1669.936, 2475.709, -1226.177, 2744.301);// El Quebrados
    gangzone4 = GangZoneCreate(-899.1964, 1401.345, -618.9274, 1634.903);// Las Barrancas
    gangzone5 = GangZoneCreate(-397.0478, 2569.133, -105.1009, 2802.69);// Las Payasadas
    gangzone6 = GangZoneCreate(81.74512, -326.9805, 397.0478, 70.06725);// Blueberry
    gangzone7 = GangZoneCreate(1132.754, 93.423, 1483.09, 490.4708);// Montgommery
    gangzone8 = GangZoneCreate(572.2159, -712.3504, 887.5186, -397.0478);// Dillimore
    gangzone9 = GangZoneCreate(2125.373, -140.1345, 2592.488, 245.2354);// Palomino Creek
    gangzone10 = GangZoneCreate(-373.692, 887.5186, 105.1009, 1284.566);// Fort Carson
[/spoiler]

Dans OnGameModeExit

[spoiler]
Code: (pawno) [Sélectionner]
new INI:File = INI_Open("/Gangs/main.ini");
    INI_SetTag(File,"data");
    INI_WriteInt(File,"NombreDeGangs",nombredegangs);
    INI_WriteInt(File,"ColGangzone1",colgang1);
    INI_WriteInt(File,"ProprioGangZone1",propriogang1);
    INI_WriteInt(File,"ColGangzone2",colgang2);
    INI_WriteInt(File,"ProprioGangZone2",propriogang2);
    INI_WriteInt(File,"ColGangzone3",colgang3);
    INI_WriteInt(File,"ProprioGangZone3",propriogang3);
    INI_WriteInt(File,"ColGangzone4",colgang4);
    INI_WriteInt(File,"ProprioGangZone4",propriogang4);
    INI_WriteInt(File,"ColGangzone5",colgang5);
    INI_WriteInt(File,"ProprioGangZone5",propriogang5);
    INI_WriteInt(File,"ColGangzone6",colgang6);
    INI_WriteInt(File,"ProprioGangZone6",propriogang6);
    INI_WriteInt(File,"ColGangzone7",colgang7);
    INI_WriteInt(File,"ProprioGangZone7",propriogang7);
    INI_WriteInt(File,"ColGangzone8",colgang8);
    INI_WriteInt(File,"ProprioGangZone8",propriogang8);
    INI_WriteInt(File,"ColGangzone9",colgang9);
    INI_WriteInt(File,"ProprioGangZone9",propriogang9);
    INI_WriteInt(File,"ColGangzone10",colgang10);
    INI_WriteInt(File,"ProprioGangZone10",propriogang10);
    INI_Close(File);
[/spoiler]

Dans OnPlayerSpawn

[spoiler]
Code: (pawno) [Sélectionner]
            GangZoneShowForPlayer(playerid, gangzone1, colgang1);
    GangZoneShowForPlayer(playerid, gangzone2, colgang2);
    GangZoneShowForPlayer(playerid, gangzone3, colgang3);
    GangZoneShowForPlayer(playerid, gangzone4, colgang4);
    GangZoneShowForPlayer(playerid, gangzone5, colgang5);
    GangZoneShowForPlayer(playerid, gangzone6, colgang6);
    GangZoneShowForPlayer(playerid, gangzone7, colgang7);
    GangZoneShowForPlayer(playerid, gangzone8, colgang8);
    GangZoneShowForPlayer(playerid, gangzone9, colgang9);
    GangZoneShowForPlayer(playerid, gangzone10, colgang10);
[/spoiler]

Et à tout hasard je vous donne aussi le fichier main.ini

[spoiler][data]
NombreDeGangs = 0
ColGangzone1 = 4278223103
ProprioGangZone1 = 0
ColGangzone2 = 2155905174
ProprioGangZone2 = 0
ColGangzone3 = 2155905174
ProprioGangZone3 = 0
ColGangzone4 = 2155905174
ProprioGangZone4 = 0
ColGangzone5 = 2155905174
ProprioGangZone5 = 0
ColGangzone6 = 2155905174
ProprioGangZone6 = 0
ColGangzone7 = 2155905174
ProprioGangZone7 = 0
ColGangzone8 = 2155905174
ProprioGangZone8 = 0
ColGangzone9 = 2155905174
ProprioGangZone9 = 0
ColGangzone10 = 2155905174
ProprioGangZone10 = 0
[/spoiler]

J'ai suivi un tutoriel en anglais sur l'include YSI (En particulier y_ini), et j'ai essayé de comprendre seul, mais rien n'y fait, je comprends pas mon erreur. Merci de consacrer votre temps à moi *-*

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Couleurs sous YSI
« Réponse #1 le: 02 Octobre 2013, 04:40:33 »
Salut,

petit conseil: commence par bien déterminer d'où vient ton problème en utilisant print et printf!

De cette façon, tu saura la valeur de ta variable et tu pourras vérifier à partir d'où ton problème débute en remontant de la création de la zone à la récupération de la valeur.

Vérifie les valeurs de tes variables associés à tes zones de gang et la valeur retournée par la fonction gangzoneshowforplayer en plus des valeurs de tes couleurs.

Bonne chance

++Sim++





Hors ligne CarCrasher

  • *
  • Tueur en série
  • Messages: 144
    • Voir le profil
Re : Couleurs sous YSI
« Réponse #2 le: 02 Octobre 2013, 15:30:22 »
Ah bah merci ^^

En fait, le fichier se chargeait bien, mais c'était à la fonction INI_Load que ça ne tournait pas rond ^^
J'ai remplacé le tout par une callback, et un INI_ParseFile chargeant le fichier, puis la callback contenant les fonctions chargeant les données du fichier dans les variables, merci le printf, et merci Sim  :tongue: