GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Lucifer le 12 Décembre 2010, 11:36:01

Titre: Problème plaque
Posté par: Lucifer le 12 Décembre 2010, 11:36:01
Bonjour,

J'ai un soucis quand je compile, je vois pas ce que sait  :-[

Voici les erreurs :

D:\EUROPA~1\SERVEU~1.3B-\GAMEMO~1\EGC.pwn(34165) : error 032: array index out of bounds (variable "Field")
D:\EUROPA~1\SERVEU~1.3B-\GAMEMO~1\EGC.pwn(34166) : error 032: array index out of bounds (variable "Field")
D:\EUROPA~1\SERVEU~1.3B-\GAMEMO~1\EGC.pwn(34167) : error 032: array index out of bounds (variable "Field")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.

Code :

    print("\n-------------[CHARGEMENT VEHICULE]-------------\n");
      new File:VehFile = fopen(VEH_FILENAME, io_read);
      new vehstring[512];
    while(fread(VehFile, vehstring, sizeof(vehstring)))
    {
        if(split2(vehstring, Field, '|') == 34)
        {
VehiculeInfo[NbVeh][VehID] = strval(Field[0]);
VehiculeInfo[NbVeh][Model] = strval(Field[1]);
VehiculeInfo[NbVeh][Faction] = strval(Field[2]);
VehiculeInfo[NbVeh][XSpawn] = floatstr(Field[3]);
VehiculeInfo[NbVeh][YSpawn] = floatstr(Field[4]);
VehiculeInfo[NbVeh][ZSpawn] = floatstr(Field[5]);
VehiculeInfo[NbVeh][ASpawn]   = floatstr(Field[6]);
VehiculeInfo[NbVeh][Couleur1] = strval(Field[7]);
VehiculeInfo[NbVeh][Couleur2] = strval(Field[8]);
VehiculeInfo[NbVeh][Prix]       = strval(Field[9]);
VehiculeInfo[NbVeh][Status]     = strval(Field[10]);
VehiculeInfo[NbVeh][Alarme]   = strval(Field[11]);
VehiculeInfo[NbVeh][Tuning1] = strval(Field[12]);
VehiculeInfo[NbVeh][Tuning2] = strval(Field[13]);
VehiculeInfo[NbVeh][Tuning3] = strval(Field[14]);
VehiculeInfo[NbVeh][Tuning4] = strval(Field[15]);
VehiculeInfo[NbVeh][Tuning5] = strval(Field[16]);
VehiculeInfo[NbVeh][Tuning6] = strval(Field[18]);
VehiculeInfo[NbVeh][Tuning7] = strval(Field[19]);
VehiculeInfo[NbVeh][Tuning8] = strval(Field[20]);
VehiculeInfo[NbVeh][Tuning9] = strval(Field[21]);
VehiculeInfo[NbVeh][Tuning10] = strval(Field[22]);
VehiculeInfo[NbVeh][Tuning11] = strval(Field[23]);
VehiculeInfo[NbVeh][Tuning12] = strval(Field[24]);
VehiculeInfo[NbVeh][Tuning13] = strval(Field[25]);
VehiculeInfo[NbVeh][Tuning14] = strval(Field[26]);
VehiculeInfo[NbVeh][Tuning15] = strval(Field[27]);
VehiculeInfo[NbVeh][Tuning16] = strval(Field[28]);
VehiculeInfo[NbVeh][Tuning17] = strval(Field[29]);
VehiculeInfo[NbVeh][Peinture] = strval(Field[30]);
VehiculeInfo[NbVeh][MaxEssence] = strval(Field[31]);
memcpy(VehiculeInfo[NbVeh][Plaque], Field[32], 0,8*4,8*4);
memcpy(VehiculeInfo[NbVeh][FaussePlaque], Field[33], 0,8*4,8*4);
strmid(VehiculeInfo[NbVeh][Proprio],     Field[34], 0, strlen(Field[34]),128);
strmid(VehiculeInfo[NbVeh][Nom],VehicleName[VehiculeInfo[NbVeh][Model]-400],0,strlen(VehicleName[VehiculeInfo[NbVeh][Model]-400]),64);
VehiculeInfo[NbVeh][Essence] = VehiculeInfo[NbVeh][MaxEssence];
EssenceCount[NbVeh] = 0;

CreateVehicle(VehiculeInfo[NbVeh][Model],VehiculeInfo[NbVeh][XSpawn],VehiculeInfo[NbVeh][YSpawn],VehiculeInfo[NbVeh][ZSpawn],VehiculeInfo[NbVeh][ASpawn],VehiculeInfo[NbVeh][Couleur1],VehiculeInfo[NbVeh][Couleur2],RESPAWN_DELAY);
TuningVehicule(NbVeh);
printf("---- Véhicule %d chargé - Propriétaire : %s - Nom véhicule %s ----",VehiculeInfo[NbVeh][VehID],VehiculeInfo[NbVeh][Proprio],VehiculeInfo[NbVeh][Nom]);
NbVeh++;
}
}
fclose(VehFile);
}
else
{
    printf("Le fichier %s n'existe pas ! Aucun véhicule n'a pu être crée !",VEH_FILENAME);
}

Merci de votre aide
Titre: Re : Problème plaque
Posté par: Foo le 12 Décembre 2010, 11:51:03
if(split2(vehstring, Field, '|') == 35)

C'est certainement ca.
Titre: Re : Problème plaque
Posté par: Xartrick le 12 Décembre 2010, 11:59:36
Foo, cela ne peut venir de là.
Montre nous tes lignes 34165, 34166 et 34167.
Enfaîte, tu as dépassé la taille de ton tableau.
Titre: Re : Problème plaque
Posté par: Lucifer le 12 Décembre 2010, 12:03:26
34166 : VehiculeInfo[NbVeh][MaxEssence] = strval(Field[32]);
34167 : strmid(VehiculeInfo[NbVeh][Proprio],     Field[33], 0, strlen(Field[33]),128);
Titre: Re : Problème plaque
Posté par: Xartrick le 12 Décembre 2010, 14:10:02
Essaye d’augmenter la taille de ton tableau Field à 34.
Titre: Re : Problème plaque
Posté par: Lucifer le 12 Décembre 2010, 14:17:12
Sa change rien...
Titre: Re : Problème plaque
Posté par: Xartrick le 12 Décembre 2010, 14:18:20
Montre nous ton tableau Field.
Titre: Re : Problème plaque
Posté par: Lucifer le 12 Décembre 2010, 14:28:13
C'est bon sa marche, j'avais oublié de changer le static Field :S

Merci quand même :)