Converter salvamento nativo do samp para dof2 -
Marllun - 03.11.2017
Queria que alguйm de bom coraзгo convertesse esse salvamento nativo para dof2 eu jб tentei varias e varias vezes sу que nгo consegui );
Код:
LoadRaceList()
{
new File:f;
new line[256];
if(fexist("racenames.txt"))
{
f = fopen("racenames.txt", io_read);
while(fread(f,line,sizeof(line),false))
{
new iidx;
gRaceNames[gRaces] = strtok(line,iidx);
new msg[256];
format(msg,256,"%s.race",gRaceNames[gRaces]);
if(fexist(msg))
{
} else {
printf("Linha%d - 404 %s",gRaces,gRaceNames[gRaces]);
}
gRaces++;
}
fclose(f);
}
}
SaveRace(playerid)
{
new msg[256];
new trackname2[256];
format(trackname2,256,"%s.txt",xRaceName[playerid]);
new File:f2;
f2 = fopen(trackname2, io_write);
fclose(f2);
new File:f3;
f3 = fopen("buildlog.txt", io_append);
new hour,mins,year,month,day;
gettime(hour,mins);
getdate(year,month,day);
format(msg,256, "%d/%d/%d %d:%d - %s by %s\n",day,month,year,hour,mins,xRaceName[playerid],xCreatorName[playerid]);
fwrite(f3,msg);
fclose(f3);
new trackname[256];
format(trackname,256,"%s.race",xRaceName[playerid]);
new File:f;
f = fopen(trackname, io_write);
format(msg,256, "15 %d %d %d %d %d %s\n",xTrackTime[playerid],xWorldTime[playerid],xWeatherID[playerid],xRaceType[playerid],xColisao[playerid],xCreatorName[playerid]);
fwrite(f,msg);
if (xCarIds[playerid][0]<300)xCarIds[playerid][0]=565;
format(msg,256, "%d\n",xCarIds[playerid][0]);
fwrite(f,msg);
format(msg,256, "%f %f %f %f\n",xRaceCheckpoints[playerid][0][0],xRaceCheckpoints[playerid][0][1],xRaceCheckpoints[playerid][0][2], xFacing[playerid]);
fwrite(f,msg);
format(msg,256, "%f %f %f %f\n",xRaceCheckpoints[playerid][1][0],xRaceCheckpoints[playerid][1][1],xRaceCheckpoints[playerid][1][2], xFacing[playerid]);
fwrite(f,msg);
new i=2;
while (xRaceCheckpoints[playerid][i][2]>0)
{
new msg2[256];
format(msg2,256, "%f %f %f\n",xRaceCheckpoints[playerid][i][0],xRaceCheckpoints[playerid][i][1],xRaceCheckpoints[playerid][i][2]);
fwrite(f,msg2);
i++;
}
fclose(f);
new msgx[256];
format(msgx,256,"Sucesso! %s Criada. Digite /carregarcorrida para alterar para %s",xRaceName[playerid], xRaceName[playerid]);
SendClientMessage(playerid,COLOR_TEMP,msgx);
printf("SAVED %s",xRaceName[playerid]);
return 1;
}
LoadRace(racename[],playerid)
{
printf("Carregando a corrida%s",racename);
new trackname[256];
format (trackname,256,"%s.race",racename);
if(!fexist(trackname))
{
printf("| ERRO | A corrida %s nгo existe",trackname);
LoadRace(gRaceNames[random(gRaces)],playerid);
return 0;
}
format (gTrackName,256,"%s",racename);
for(new i;i<MAX_RACECHECKPOINTS;i++)
{
RaceCheckpoints[i][0]=0.0;
RaceCheckpoints[i][1]=0.0;
RaceCheckpoints[i][2]=0.0;
RaceCheckpoints[i][3]=0.0;
}
gMaxCheckpoints=0;
new File:f;
new line[256];
f = fopen(trackname, io_read);
fread(f,line,sizeof(line),false);
new idx;
gCountdown = strval(strtok(line,idx));
gTrackTime = strval(strtok(line,idx));
gWorldTime = strval(strtok(line,idx));
gWeather = strval(strtok(line,idx));
gRaceType = strval(strtok(line,idx));
xColisao[playerid] = strval(strtok(line,idx));
gRaceMaker = strtok(line,idx);
fread(f,line,sizeof(line),false);
new iiddxx;
new gCars[5],j;
gCars[0]=strval(strtok(line,iiddxx));
gCars[1]=strval(strtok(line,iiddxx));
gCars[2]=strval(strtok(line,iiddxx));
gCars[3]=strval(strtok(line,iiddxx));
gCars[4]=strval(strtok(line,iiddxx));
for(new i=0;i<5;i++)
{
if(gCars[i])
{
j=i;
}
}
new rand;
if (j) rand = random(j);
else rand = j;
gCarModelID=gCars[rand];
fread(f,line,sizeof(line),false);
iiddxx=0;
gGrid[0]=floatstr(strtok(line,iiddxx));
gGrid[1]=floatstr(strtok(line,iiddxx));
gGrid[2]=floatstr(strtok(line,iiddxx));
gGrid[3]=floatstr(strtok(line,iiddxx));
gGrid2[0]=gGrid[0];
gGrid2[1]=gGrid[1];
gGrid2[2]=gGrid[2];
gGrid2[3]=gGrid[3];
fread(f,line,sizeof(line),false);
iiddxx=0;
gGrid[4]=floatstr(strtok(line,iiddxx));
gGrid[5]=floatstr(strtok(line,iiddxx));
gGrid[6]=floatstr(strtok(line,iiddxx));
gGrid[7]=floatstr(strtok(line,iiddxx));
gGrid2[4]=gGrid[4];
gGrid2[5]=gGrid[5];
gGrid2[6]=gGrid[6];
while(fread(f,line,sizeof(line),false))
{
new idxx;
RaceCheckpoints[gMaxCheckpoints][0] = floatstr(strtok(line,idxx));
RaceCheckpoints[gMaxCheckpoints][1] = floatstr(strtok(line,idxx));
RaceCheckpoints[gMaxCheckpoints][2] = floatstr(strtok(line,idxx));
gMaxCheckpoints++;
}
fclose(f);
for(new i;i<MAX_PLAYERS;i++)
{
gPlayerProgress[i]=0;
PlaySoundForPlayer(i, 1186);
if (i<100)RaceCheckpoints[i][3]=0;
new Menu:Current;
if (IsPlayerConnected(i) && GetPlayerMenu(i) == Current)
{
HideMenuForPlayer(voteMenu,i);
}
}
gFinishOrder=0;
gGridCount=0;
gGrid2Count=0;
KillTimer(gCountdowntimer);
gCountdowntimer = SetTimer("Countdowntimer",1000,1);
SetWorldTime(gWorldTime);
SetWeather(gWeather);
foreach(Player, i)
{
DisableRemoteVehicleCollisions(i, xColisao[i]);
}
gRaceStart=0;
gRaceStarted=0;
gFinished=0;
createVote();
new tempTime[256];
tempTime = HighScore(0);
format(gBestTime,sizeof(gBestTime),"| CORRIDA | %s por %s | %s\n",gTrackName,gRaceMaker, tempTime);
SendClientMessageToAll(Azul,gBestTime);
return 1;
}
Re: Converter salvamento nativo do samp para dof2 -
Skream - 04.11.2017
o dof2 usa o salvamento nativo do sa-mp. na verdade, ele nem vai ser mais rбpido do que esse seu cуdigo.
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
Disso eu nгo sabia, porйm queria dof2 para adicionar alguns salvamento
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
queria salvar algumas coisas na mesma pasta tudo certinho sу que n consigo jб tentei salvar com a nativa, mas nao conseguir
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
Pelo jeito deve ser difнcil demais, eu acho que os unicos que podem conseguir sao os membro antigo
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
Isso eu sei eu queria tudo em dof2
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
jб fiz isso
Re: Converter salvamento nativo do samp para dof2 -
RiqueP - 04.11.2017
Use de base
PHP код:
// Salvar
new str[30];
DOF2_CreateFile(/* Nome Ex: Corridas/Corrida1.txt */);
for(new i; i < MAX_RACECHECKPOINTS; ++i) {
if(xRaceCheckpoints[playerid][i][2] > 0) {
format(str, sizeof(str), "CP%dX", i);
DOF2_SetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str, xRaceCheckpoints[playerid][i][0]);
format(str, sizeof(str), "CP%dY", i);
DOF2_SetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str, xRaceCheckpoints[playerid][i][1]);
format(str, sizeof(str), "CP%dZ", i);
DOF2_SetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str, xRaceCheckpoints[playerid][i][2]);
}
}
DOF2_SaveFile();
// Carregar
new str[30];
for(new i; i < MAX_RACECHECKPOINTS; ++i) {
format(str, sizeof(str), "CP%dX", i);
RaceCheckpoints[gMaxCheckpoints][0] = DOF_GetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str);
format(str, sizeof(str), "CP%dY", i);
RaceCheckpoints[gMaxCheckpoints][1] = DOF_GetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str);
format(str, sizeof(str), "CP%dZ", i);
RaceCheckpoints[gMaxCheckpoints][2] = DOF_GetFloat(/* Nome do arquivo. Ex: Corridas/Corrida1.txt */, str);
}
Antes vou lhe explicar uma coisa. DOF2 nгo й de nenhuma forma mais rбpido que as file functions. DOF2 й como uma ORM, ela sу vai evitar que vocк tenha mais trabalho com manutenзгo e escrita de cуdigo.
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
Muito obrigado vou tentar
Re: Converter salvamento nativo do samp para dof2 -
Marllun - 04.11.2017
PHP код:
SaveRace(playerid)
{
new trackname2[256];
new str[30];
format(trackname2,256,"%s.txt",xRaceName[playerid]);
DOF2_CreateFile(str,trackname2);
/*new File:f2;
DOF2::SetString(f2,trackname2, inputtext);
f2 = fopen(trackname2, io_write);
fclose(f2);
*/
//DOF2_CreateFile(str,trackname2);
//new File:f3;
//f3 = fopen("buildlog.txt", io_append);
new hora2,min2,ano2,mes2,dia2;
gettime(hora2,min2);
getdate(ano2,mes2,dia2);
DOF2_SetInt("buildlog.txt","dia",hora2);
DOF2_SetInt("buildlog.txt","dia",min2);
DOF2_SetInt("buildlog.txt","dia",ano2);
DOF2_SetInt("buildlog.txt","dia",mes2);
DOF2_SetInt("buildlog.txt","dia",dia2);
DOF2_SetString("buildlog.txt", "Race", xRaceName[playerid]);
DOF2_SetString("buildlog.txt", "Criado", xCreatorName[playerid]);
//format(msg,256, "%d/%d/%d %d:%d - %s by %s\n",day,month,year,hour,mins,xRaceName[playerid],xCreatorName[playerid]);
new stringer[256];
new trackname[256];
format(trackname,256,"%s.race",xRaceName[playerid]);
DOF2_CreateFile(trackname,stringer);
DOF2_SetInt(stringer,"Tempo da corrida",xTrackTime[playerid]);
DOF2_SetInt(stringer,"Hora do mundo",xWorldTime[playerid]);
DOF2_SetInt(stringer,"Clima",xWeatherID[playerid]);
DOF2_SetInt(stringer,"Tipo da corrida",xRaceType[playerid]);
DOF2_SetInt(stringer,"Colisao",xColisao[playerid]);
DOF2_SetString(stringer,"Criador",xCreatorName[playerid]);
DOF2_SetInt(stringer,"Carro ID",xCarIds[playerid][0]);
if (xCarIds[playerid][0]<300)xCarIds[playerid][0]=565;
//format(msg,256, "15 %d %d %d %d %d %s\n",xTrackTime[playerid],xWorldTime[playerid],xWeatherID[playerid],xRaceType[playerid],xColisao[playerid],xCreatorName[playerid]);
//fwrite(f,msg);
/*
new stre[30];
format(stre, sizeof(stre), "CP%dX", playerid);
DOF2_SetFloat(stringer, stre, xRaceCheckpoints[playerid][playerid][0]);
format(stre, sizeof(stre), "CP%dY", playerid);
DOF2_SetFloat(stringer, stre, xRaceCheckpoints[playerid][playerid][1]);
format(stre, sizeof(stre), "CP%dZ", playerid);
DOF2_SetFloat(stringer, stre, xRaceCheckpoints[playerid][playerid][2]);
format(stre, sizeof(stre), "CP%dF", playerid);
DOF2_SetFloat(stringer, stre, xFacing[playerid]);
}
format(msg,256, "%f %f %f %f\n",xRaceCheckpoints[playerid][0][0],xRaceCheckpoints[playerid][0][1],xRaceCheckpoints[playerid][0][2], xFacing[playerid]);
fwrite(f,msg);
format(msg,256, "%f %f %f %f\n",xRaceCheckpoints[playerid][1][0],xRaceCheckpoints[playerid][1][1],xRaceCheckpoints[playerid][1][2], xFacing[playerid]);
fwrite(f,msg);
*/
for(new i; i < MAX_RACECHECKPOINTS; ++i)
{
if(xRaceCheckpoints[playerid][i][2] > 0)
{
format(str, sizeof(str), "CP%dX", i);
DOF2_SetFloat(stringer, str, xRaceCheckpoints[playerid][i][0]);
format(str, sizeof(str), "CP%dY", i);
DOF2_SetFloat(stringer, str, xRaceCheckpoints[playerid][i][1]);
format(str, sizeof(str), "CP%dZ", i);
DOF2_SetFloat(stringer, str, xRaceCheckpoints[playerid][i][2]);
format(str, sizeof(str), "CP%dF", i);
DOF2_SetFloat(stringer, str, xFacing[i]);
}
}
new msgx[256];
format(msgx,256,"Sucesso! %s Criada. Digite /carregarcorrida para alterar para %s",xRaceName[playerid], xRaceName[playerid]);
SendClientMessage(playerid,COLOR_TEMP,msgx);
printf("SAVED %s",xRaceName[playerid]);
return 1;
}
Fiz tudo certinho compilou sem erros e avisos, sу que na hora de salvar a corrida o cmd do server fecha