Szerző Téma: .txt fájlból való object betöltés - hiba  (Megtekintve 929 alkalommal)

.txt fájlból való object betöltés - hiba
« Dátum: 2018. Augusztus 07. - 14:37:27 »
0
Sziasztok. Egy mapváltást szeretnék megcsinálni a szerveremen, tehát pl. 5 perc után vált egy mapot egy txt fájlból, viszont ezt még nem nagyon sikerült összehozni. Van egy start parancs amivel ezt az egészet elindítja, és van egy olajospalya.txt nevű fájlom abban vannak az adatok. Először megpróbáltam úgy, hogy a txt fájlban CreateObject is ott volt, aztán már csak RAW Data, tehát csak akkor működik ha a txt fájlban így van beleírva:
 
8210, 287.91364, 1456.87207, 12.66430,   0.00000, 0.00000, 90.00000;
 
model, x pozíció, y, z, forgatásnak x, y, z - tehát jelenleg így működik a betöltés csak, és 55 object van mindegyiket betölti, viszont az lenne a gondom hogy az utolsó forgatási z pozíciót sose tölti be, mindegyiknél 0-át ír, ez mitől lehet? emiatt ugye rosszul is vannak elforgatva
 

CMD:start(playerid, params[])
{
if(JatekosInfo[playerid][Admin] >= 4)
{
    if(inditas == 1) return SCM(playerid, -1,\"{ff0000}[MP-ZM] A játék már el van indítva!\");
    inditas = 1;
    new string[128], masikstring[32];
    new randompaly = random(sizeof(randompalya));
    format(kovipalya, 32, \"%s\", randompalya[randompaly]);
    if(Egyezik(kovipalya, \"olajospalya.txt\")) { format(masikstring, sizeof(masikstring),\"Olajos\"); }
    format(string, sizeof(string),\"{ff0000}[MP-ZM] {008000}JÁTÉK ELINDÍTVA! PÁLYA: %s\", masikstring);
    SCMTA(-1, string);
        new File:handle = fopen(kovipalya, io_read), buf[128];
   if(!handle) return 0;
   new model, count;
   new Float:px, Float:py, Float:pz, Float:rx, Float:ry, Float:rz;
   /*for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))
       {
         nologin = 1;
       }
   }*/
   while(fread(handle, buf))
   {
      if(sscanf(buf, \"p<,>iffffff\", model, px, py, pz, rx, ry, rz))
          {
              count++;
              printf(\"model: %i | px: %f | py: %f | pz: %f | rx: %f | ry: %f | rz: %f\", model, px, py, pz, rx, ry, rz);
             CreateObject(model, px, py, pz, rx, ry, rz);
            }
        }
        fclose(handle);
        printf(\"[ Objectek sikeresen betöltve! | Pálya: %s | Objectek száma: %i ]\",kovipalya, count);
        for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i))//275.3230,1413.0404,10.4401
       {
           if(Egyezik(kovipalya, \"olajospalya.txt\"))
         {
             RemoveBuildingForPlayer(i, 3288, 221.5703, 1374.9688, 9.5859, 0.25);
            RemoveBuildingForPlayer(i, 3257, 221.5703, 1374.9688, 9.5859, 0.25);
            RemoveBuildingForPlayer(i, 3674, 199.3828, 1407.1172, 35.8984, 0.25);
            RemoveBuildingForPlayer(i, 3674, 247.5547, 1471.0938, 35.8984, 0.25);
         }
         SetPlayerPos(i, 275.3230,1413.0404,10.4401);
           tulelo[i] = 1;
       }
   }
}
else
{
    SCM(playerid, -1,\"{ff0000}[MP-ZM] Nem vagy jogosult a parancs használatára!\");
}
return 1;
}

 
 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
.txt fájlból való object betöltés - hiba
« Válasz #1 Dátum: 2018. Augusztus 08. - 14:30:51 »
+1
Töröld ki a pontosvesszőket a fájlból,vagy módosítsd a kódot:
 

while(fread(handle, buf))
{
new pos = strfind(buf,\";\");
    strdel(buf,pos,pos+1);
sscanf(buf, \"p<,>iffffff\", model, px, py, pz, rx, ry, rz);
count++;
printf(\"model: %i | px: %f | py: %f | pz: %f | rx: %f | ry: %f | rz: %f\", model, px, py, pz, rx, ry, rz);
CreateObject(model, px, py, pz, rx, ry, rz);
}

 
 
 
 

.txt fájlból való object betöltés - hiba
« Válasz #2 Dátum: 2018. Augusztus 08. - 15:07:26 »
0
nagyon szépen köszönöm a segítséget :D működik :D
« Utoljára szerkesztve: 2018. Augusztus 08. - 15:07:37 írta Broocean »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal