Bonjour,
Je poste ici aujourd'hui maintenant car je suis dans la plus haute urgence !!
C30 ma fait un up de son fs mais le problème ces qu'il a oublier de me faire un truc me modifier le loadrace.
voila le code :
public LoadRace(playerid)
{
new race_name[32], templine[512];
format(CRaceName,sizeof(CRaceName), "%d",select);
format(race_name,sizeof(race_name), "Courses/%03d.%s",select,veh);
if(!fexist(race_name)) return SendClientMessage(playerid, COLOR_GREEN, "systéme sécuriter anti-crash a arréter le processus");
CFile=race_name;
LCurrentCheckpoint=-1; RLenght=0; RLenght=0;
new File:f, i;
f = fopen(race_name, io_read);
fread(f,templine,sizeof(templine));
if(templine[0] == 'Y') //Checking if the racefile is v0.2+
{
new fileversion;
strtok(templine,i); // read off YRACE
fileversion = strval(strtok(templine,i)); // read off the file version
if(fileversion > RACEFILE_VERSION) return -2; // Check if the race is made with a newer version of the racefile format
CBuilder=strtok(templine,i); // read off RACEBUILDER
ORacemode = strval(strtok(templine,i)); // read off racemode
ORacelaps = strval(strtok(templine,i)); // read off amount of laps
if(fileversion > 1)
{
Airrace = strval(strtok(templine,i)); // read off airrace
CPsize = floatstr(strtok(templine,i)); // read off CP size
}
else // v1 file format, set to default
{
Airrace = 0;
CPsize = 8.0;
}
OAirrace = Airrace;
OCPsize = CPsize;
Racemode=ORacemode; Racelaps=ORacelaps; //Allows changing the modes, but disables highscores if they've been changed.
fread(f,templine,sizeof(templine)); // read off best race times
i=0;
for(new j=0;j<5;j++)
{
TopRacers[j]=strtok(templine,i);
TopRacerTimes[j]=strval(strtok(templine,i));
}
fread(f,templine,sizeof(templine)); // read off best lap times
i=0;
for(new j=0;j<5;j++)
{
TopLappers[j]=strtok(templine,i);
TopLapTimes[j]=strval(strtok(templine,i));
}
}
else //Otherwise add the lines as checkpoints, the file is made with v0.1 (or older) version of the script.
{
LCurrentCheckpoint++;
RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
Racemode=0; ORacemode=0; Racelaps=0; ORacelaps=0; //Enables converting old files to new versions
CPsize = 8.0; Airrace = 0; // v2 additions
OCPsize = CPsize; OAirrace = Airrace; // v2 additions
CBuilder="UNKNOWN";
for(new j;j<5;j++)
{
TopLappers[j]="A"; TopLapTimes[j]=0; TopRacers[j]="A"; TopRacerTimes[j]=0;
}
}
while(fread(f,templine,sizeof(templine),false))
{
LCurrentCheckpoint++;
i=0;
RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
if(LCurrentCheckpoint >= 1)
{
RLenght+=Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[LCurrentCheckpoint-1][0],
RaceCheckpoints[LCurrentCheckpoint-1][1],RaceCheckpoints[LCurrentCheckpoint-1][2]);
}
}
LLenght = RLenght + Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[0][0],RaceCheckpoints[0][1],
RaceCheckpoints[0][2]);
fclose(f);
// if(!IsValidMenu(MRace)) CreateRaceMenus();
if(Airrace == 0) SetMenuColumnHeader(MRace,0,"Air race: off");
else SetMenuColumnHeader(MRace,0,"Air race: ON");
TogglePlayerControllable(playerid,0);
ShowMenuForPlayer(MRace,playerid);
return 1;
}
Enfaite mon probleme c'est que quand je fait /loadrace puis je selectionne le type de course dans le menu je reste freezer et sa me marque chargement en coure
Et aussi je voudrai rajouter que le probleme pour moi vien du chargemnt des cheackpoint donc voila le code saverace :
public SaveRace(playerid)
{
new race_name[32], i = 0;
do
{
i++;
format(race_name, sizeof(race_name), "Courses/%03d.%s", i, Sselect);
}
while(dini_Exists(race_name));
if(dini_Exists(race_name))
{
format(ystring,sizeof(ystring), "[INFO] \"%s\"EREURE DE SAUVEGARDE !! ",i);
SendClientMessage(playerid, COLOR_RED, ystring);
return 1;
}
SendClientMessage(playerid, COLOR_BLEU, "test1");
format(ystring, sizeof(ystring), "[INFO] Procédure de sauvegarde en cours !", race_name);
SendClientMessage(playerid, COLOR_BLEU, ystring);
new Float:x,Float:y,Float:z;
dini_Create(race_name);
dini_IntSet(race_name,"C30_race",RACEFILE_VERSION);//
dini_Set(race_name,"Createur",name[playerid]);//
// dini_Set(Rname,"Checkpoint",BCPsize[b(playerid)]);//
dini_Set(race_name,"Mode",Bracemode[b(playerid)]);//
// dini_Set(Rname,"cpMode",BCPsize[b(playerid)]);//
new Rname = i;
new cpx[30] ,cpy[30] ,cpz[30];
for(i = 0; i < BCurrentCheckpoints[b(playerid)];i++)
{
x=BRaceCheckpoints[b(playerid)][i][0];
y=BRaceCheckpoints[b(playerid)][i][1];
z=BRaceCheckpoints[b(playerid)][i][2];
format(cpx,sizeof(cpx), "Cpx%d",i);
format(cpy,sizeof(cpy), "Cpy%d",i);
format(cpz,sizeof(cpz), "Cpz%d",i);
dini_FloatSet(race_name, cpx, x );
dini_FloatSet(race_name, cpy, y );
dini_FloatSet(race_name, cpz, z );
}
format(ystring, sizeof(ystring), "La course %03d a été sauvegarder avec succès, félicitation!", Rname);
SendClientMessage(playerid, COLOR_GREEN, ystring);
SendClientMessage(playerid, COLOR_BLEU, "Vous pouvez encore sauvegarder cette course dans un autre mod /saverace ou nettoyer le parcourt /clearrace !");
return 1;
}
Merci d'avance de votre aide
PS : je dit que c'est d'une extreme urgence car j'ai une grande soiree de course qui comment a 21 heure !! et pas moyens d'annuler !!