Kapu betöltés MYSQL-ből

Indította Jim Toretto, 2016. március 27. - 23:42:13

Előző téma - Következő téma

Jim Toretto

Sziasztok!
Egy kapu rendszer betöltésével lenne gondom \"SeeRPG Mód Kapurendszere\".
Elmenteni elmenti a kapukat szépen az adatbázisba viszont betölteni már nem igen akarja mivel nekem más a mysql verzióm így nekem nem jó úgy ahogy a seerpg módba van.
Megpróbáltam így megoldani de valamiért nem tölti be a kapukat. A print-ek pedig lefutnak a szerver logba.
Aki tud kérem segítsen! Köszönöm!
 
forward KapuBetoltes();
public KapuBetoltes()
{
new id = 0;
printf(\"\\nKapukBetöltése\");
while(id < sizeof(Kapu))
{
                new db, idx, tmp[20], data[14][128], data2[3][32], egesz[512];
         new where[32];
         Format(where, \"id=\'%d\'\", idx);
         if(Mysql_Num(SQL_DB_Kapu, where) == 1)
            Kapu[id][kVan] = true;
         else
            Kapu[id][kVan] = false;
         split(egesz, data, \'|\');
         //Kapu[id][kVan] = true;
         Kapu[id][kUID] = strval(data[0]);
         format(Kapu[id][kNev], 32, data[1]);
         Kapu[id][kModel] = strval(data[2]);
         Kapu[id][kTav] = floatstr(data[3]);
         Kapu[id][kSpeed] = floatstr(data[4]);
         if(Kapu[id][kSpeed] <= 0.0) Kapu[id][kMozgo] = false;
         else Kapu[id][kMozgo] = true;
         // Kapu közepe
         split(data[5], data2, \',\'); StrToPos(data2, Kapu[id][kPos]);
         // Nyitási pozíció
         split(data[6], data2, \',\'); StrToPos(data2, Kapu[id][kNPos]);
         // Nyitási rotáció
         split(data[7], data2, \',\'); StrToPos(data2, Kapu[id][kNRPos]);
         // Zárási pozíció
         split(data[8], data2, \',\'); StrToPos(data2, Kapu[id][kZPos]);
         // Zárási rotáció
         split(data[9], data2, \',\'); StrToPos(data2, Kapu[id][kZRPos]);
         idx = 0; db = 0;
         while( db < MAX_KAPU_HASZNALO && (tmp = strtok_vesszo(data[10], idx), strlen(tmp)) )
         {
             if(strval(tmp) > 0)
             {
               Kapu[id][kHasznalo][db] = strval(tmp);
               db++;
            }
         }
         if(!db) Kapu[id][kBarki] = true;
         Kapu[id][Vw] = strval(data[12]);
         Kapu[id][kKod] = strval(data[13]);
         Kapu[id][kOID] = CreateDynamicObject(Kapu[id][kModel], PosExt(Kapu[id][kZPos]), PosExt(Kapu[id][kZRPos]),Kapu[id][Vw]);
         Kapu[id][nyit] = strval(data[11]);
         id++;
}
printf(\"Kapuk Sikeresen Betöltve! Betöltött Kapuk Száma: %d\", id);
}

Athos005

Server LOG-ba kijelzi hogy betöltött valamit,vagy GameModeInit -nél belevan írva hogy lefusson?
vagy próbáld meg ezzel a fügvénnyel: \"stock\"

Jim Toretto

Hmm az is gondot okoz hogy a szerver logba azt írja hogy betöltött 250 db kaput holott csak 3 van az adatbázisba :O De mégsem tölt be egyet sem :O

baglion02


#define forpublic%0(%1) forward%0(%1); public%0(%1)
forpublic LoadKapu()
{
new idx = 0, KapuLoaded = 0;
printf(\"\\nKapuk Betöltése Folyamatban\");
while (idx < sizeof(KapuInfo))
{
new where[32], query[128], mezoadatok[256], mezo[25][MAX_PLAYER_NAME];
Format(where, \"Id=\'%d\'\", idx);
if(Mysql_Num(SQL_DB_Kapuk, where) == 1)
   KapuInfo[idx][Van] = 1;
else
   KapuInfo[idx][Van] = 0;
if(KapuInfo[idx][Van] == 1)
{
   Format(query, \"SELECT * FROM %s WHERE %s\", SQL_DB_Kapuk, where);
   mysql_query(query);
   mysql_store_result();
   mysql_fetch_row(mezoadatok, \"|\");
   mysql_free_result();
   split(mezoadatok, mezo, \'|\');
   KapuInfo[idx][kObjectID] = strval(mezo[1]);
   KapuInfo[idx][kPos][0] = floatstr(mezo[2]);
   KapuInfo[idx][kPos][1] = floatstr(mezo[3]);
   KapuInfo[idx][kPos][2] = floatstr(mezo[4]);
   KapuInfo[idx][kAngle][0] = floatstr(mezo[5]);
   KapuInfo[idx][kAngle][1] = floatstr(mezo[6]);
   KapuInfo[idx][kAngle][2] = floatstr(mezo[7]);
   KapuInfo[idx][kFrakcio] = strval(mezo[8]);
   KapuInfo[idx][kTulaj] = mezo[9];
   strmid(KapuInfo[idx][kJelszo], mezo[10], 0, strlen(mezo[10]), 32);
   KapuInfo[idx][kNyitottPos][0] = floatstr(mezo[11]);
   KapuInfo[idx][kNyitottPos][1] = floatstr(mezo[12]);
   KapuInfo[idx][kNyitottPos][2] = floatstr(mezo[13]);
   KapuInfo[idx][kNyitottAngle][0] = floatstr(mezo[14]);
   KapuInfo[idx][kNyitottAngle][1] = floatstr(mezo[15]);
   KapuInfo[idx][kNyitottAngle][2] = floatstr(mezo[16]);
}
if(KapuInfo[idx][Van] == 1)
{
    KapuInfo[idx][kObject] = CreateDynamicObject(KapuInfo[idx][kObjectID],KapuInfo[idx][kPos][0],KapuInfo[idx][kPos][1],KapuInfo[idx][kPos][2],KapuInfo[idx][kAngle][0],KapuInfo[idx][kAngle][1],KapuInfo[idx][kAngle][2]);
   KapuLoaded ++;
}
idx++;
}
printf(\"Kapuk Betöltve! Betöltött Kapuk száma: %d\",KapuLoaded);
return 1;
}

 
Tessék

Jim Toretto

Idézetet írta: baglion02 date=1459183077\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_Topic

#define forpublic%0(%1) forward%0(%1); public%0(%1)
forpublic LoadKapu()
{
new idx = 0, KapuLoaded = 0;
printf(\"\\nKapuk Betöltése Folyamatban\");
while (idx < sizeof(KapuInfo))
{
new where[32], query[128], mezoadatok[256], mezo[25][MAX_PLAYER_NAME];
Format(where, \"Id=\'%d\'\", idx);
if(Mysql_Num(SQL_DB_Kapuk, where) == 1)
   KapuInfo[idx][Van] = 1;
else
   KapuInfo[idx][Van] = 0;
if(KapuInfo[idx][Van] == 1)
{
   Format(query, \"SELECT * FROM %s WHERE %s\", SQL_DB_Kapuk, where);
   mysql_query(query);
   mysql_store_result();
   mysql_fetch_row(mezoadatok, \"|\");
   mysql_free_result();
   split(mezoadatok, mezo, \'|\');
   KapuInfo[idx][kObjectID] = strval(mezo[1]);
   KapuInfo[idx][kPos][0] = floatstr(mezo[2]);
   KapuInfo[idx][kPos][1] = floatstr(mezo[3]);
   KapuInfo[idx][kPos][2] = floatstr(mezo[4]);
   KapuInfo[idx][kAngle][0] = floatstr(mezo[5]);
   KapuInfo[idx][kAngle][1] = floatstr(mezo[6]);
   KapuInfo[idx][kAngle][2] = floatstr(mezo[7]);
   KapuInfo[idx][kFrakcio] = strval(mezo[8]);
   KapuInfo[idx][kTulaj] = mezo[9];
   strmid(KapuInfo[idx][kJelszo], mezo[10], 0, strlen(mezo[10]), 32);
   KapuInfo[idx][kNyitottPos][0] = floatstr(mezo[11]);
   KapuInfo[idx][kNyitottPos][1] = floatstr(mezo[12]);
   KapuInfo[idx][kNyitottPos][2] = floatstr(mezo[13]);
   KapuInfo[idx][kNyitottAngle][0] = floatstr(mezo[14]);
   KapuInfo[idx][kNyitottAngle][1] = floatstr(mezo[15]);
   KapuInfo[idx][kNyitottAngle][2] = floatstr(mezo[16]);
}
if(KapuInfo[idx][Van] == 1)
{
    KapuInfo[idx][kObject] = CreateDynamicObject(KapuInfo[idx][kObjectID],KapuInfo[idx][kPos][0],KapuInfo[idx][kPos][1],KapuInfo[idx][kPos][2],KapuInfo[idx][kAngle][0],KapuInfo[idx][kAngle][1],KapuInfo[idx][kAngle][2]);
   KapuLoaded ++;
}
idx++;
}
printf(\"Kapuk Betöltve! Betöltött Kapuk száma: %d\",KapuLoaded);
return 1;
}

 
Tessék
 
Köszönöm de nekem ilyenek a cuccok hozzá és így nem jó errort ír :(
 
enum kapuInfo
{
kNev[32],
bool:kVan,
bool:kSzerkeszt,
kUID,
kModel,
Float:kTav,
Float:kSpeed,
Float:kPos[3],
Float:kNPos[3],
Float:kNRPos[3],
Float:kZPos[3],
Float:kZRPos[3],
bool:kBarki,
kHasznalo[MAX_KAPU_HASZNALO],
bool:kMozgo,
nyit,
Vw,
kOID,
kKod
}
new Kapu[MAX_KAPU][kapuInfo];

baglion02


Jim Toretto

Idézetet írta: baglion02 date=1459185150\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_Topicbehelyettesíted :)
 
Légyszives csináld meg mer nem igen tudom mi helyére mit kell betenni nem akarom mégjobban elrontani :(

baglion02

A te kapu infodat írd be abba amit én küldtem és ami az enyém azt töröld ki

Jim Toretto

Idézetet írta: baglion02 date=1459185927\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_TopicA te kapu infodat írd be abba amit én küldtem és ami az enyém azt töröld ki
 
De pl az ilyen hogy khasznalo meg ezeket mi helyére kell tenni az ilyeneket nem tudom

baglion02

ha ennyire nem tudod akkor miért csinálod? szedd le  second generation modot és szedd ki abból

Jim Toretto

Áá szét szenvedtem már magam vele de valamiért nem akar jó lenni :\'(
Valaki legyen szives nekem ezt megcsinálni.

Brian Harris

Fotózd le a kapuk tábla tartalmát...

Jim Toretto

Idézetet írta: Brian Harris date=1459258588\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_TopicFotózd le a kapuk tábla tartalmát...
 
Tessék:
http://kepkezelo.com/images/ouiamvoz5f3cc5lxba9f.png\" alt=\"ouiamvoz5f3cc5lxba9f.png\" />
http://kepkezelo.com/images/ouiamvoz5f3cc5lxba9f.png\" rel=\"external nofollow\">http://kepkezelo.com/images/ouiamvoz5f3cc5lxba9f.png

Brian Harris

#13
Lehet nem jó rég csináltam r6-os rendszer betöltést, de egy alapnak jó.
 
fuggveny LoadKapu()
{
new idx = 0, KapuLoaded = 0;
printf(\"\\nKapuk betöltése folyamatban...\");
while (idx < MAX_KAPU)
{
new where[32], query[128], mezoadatok[256], mezo[25][MAX_PLAYER_NAME];
Format(where, \"ID=\'%d\'\", idx);
if(Mysql_Num(SQL_DB_Kapuk, where) == 1)
   Kapu[idx][kVan] = true;
else
   Kapu[idx][kVan] = false;
if(Kapu[idx][kVan] == true)
{
   Format( query, \"SELECT * FROM %s WHERE %s\", SQL_DB_Kapuk, where);
   mysql_query(SQL, query);
   mysql_store_result();
   mysql_fetch_row_format(mezoadatok, \"|\");
   mysql_free_result();
   split(mezoadatok, mezo, \'|\');
   strmid(Kapu[idx][kNev], mezo[1], 0, strlen(mezo[1]), 32);
   Kapu[idx][kModel] = strval(mezo[2]);
   Kapu[idx][kTav] = floatstr(mezo[3]);
   Kapu[idx][kSpeed] = floatstr(mezo[4]);
   new Float:KapuPozAlap[3];
   split(mezo[5],KapuPozAlap,\',\');
   for(new i=0; i < 4; i++)
       Kapu[idx][kPos] = floatstr(KapuPozAlap);
   new Float:KapuPozN[3];
   split(mezo[6],KapuPozN,\',\');
   for(new i=0; i < 4; i++)
       Kapu[idx][kNPos] = floatstr(KapuPozN);
   new Float:KapuPozNR[3];
   split(mezo[7],KapuPozNR,\',\');
   for(new i=0; i < 4; i++)
       Kapu[idx][kNRPos] = floatstr(KapuPozNR);
   new Float:KapuPozZ[3];
   split(mezo[8],KapuPozZ,\',\');
   for(new i=0; i < 4; i++)
       Kapu[idx][kZPos] = floatstr(KapuPozZ);
   new Float:KapuPozZR[3];
   split(mezo[9],KapuPozZR,\',\');
   for(new i=0; i < 4; i++)
       Kapu[idx][kZRPos] = floatstr(KapuPozZR);            
   strmid(Kapu[idx][kHasznalo], mezo[10], 0, strlen(mezo[10]), 32);            
 
   Kapu[idx][nyit] = strval(mezo[11]);
   Kapu[idx][Vw] = strval(mezo[12]);
   Kapu[idx][kKod] = strval(mezo[13]);
}
if(Kapu[idx][kVan] == true)
{
    Kapu[idx][kObject] = CreateDynamicObject(KapuInfo[idx][kObjectID],KapuInfo[idx][kPos][0],KapuInfo[idx][kPos][1],KapuInfo[idx][kPos][2],Kapu[idx][kZRPos][0],Kapu[idx][kZRPos][1],Kapu[idx][kZRPos][2], Kapu[idx][kVW]);
   KapuLoaded ++;
}
idx++;
}
printf(\"Kapuk betöltve! Betöltött kapuk száma: %d\",KapuLoaded);
return 1;
}

 
Edit: Szerkesztettem a zár Angel Kordinátát és a VW-t nem írtam hozzá.

Jim Toretto

Hmm már cska ezek a sorok nem tetszenek neki:
split(mezo[7],KapuPozNR,\',\');

 
Mindegyik ilyen split sorra ezt írja hibának:
 
error 048: array dimensions do not match
warning 213: tag mismatch