Szerző Téma: Kapu betöltés MYSQL-ből  (Megtekintve 2073 alkalommal)

Kapu betöltés MYSQL-ből
« Dátum: 2016. március 27. - 23:42:13 »
0 Show voters
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);
}

Kapu betöltés MYSQL-ből
« Válasz #1 Dátum: 2016. március 28. - 16:13:31 »
0 Show voters
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\"

Kapu betöltés MYSQL-ből
« Válasz #2 Dátum: 2016. március 28. - 18:15:18 »
0 Show voters
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

Kapu betöltés MYSQL-ből
« Válasz #3 Dátum: 2016. március 28. - 18:37:57 »
0 Show voters

#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

Kapu betöltés MYSQL-ből
« Válasz #4 Dátum: 2016. március 28. - 19:09:06 »
0 Show voters
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];

Kapu betöltés MYSQL-ből
« Válasz #5 Dátum: 2016. március 28. - 19:12:30 »
0 Show voters
behelyettesíted :)

Kapu betöltés MYSQL-ből
« Válasz #6 Dátum: 2016. március 28. - 19:15:08 »
0 Show voters
Idézetet írta: baglion02 date=1459185150\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_Topic
behelyettesíted :)
 
Légyszives csináld meg mer nem igen tudom mi helyére mit kell betenni nem akarom mégjobban elrontani :(

Kapu betöltés MYSQL-ből
« Válasz #7 Dátum: 2016. március 28. - 19:25:27 »
0 Show voters
A te kapu infodat írd be abba amit én küldtem és ami az enyém azt töröld ki

Kapu betöltés MYSQL-ből
« Válasz #8 Dátum: 2016. március 28. - 19:30:45 »
0 Show voters
Idézetet írta: baglion02 date=1459185927\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_Topic
A 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

Kapu betöltés MYSQL-ből
« Válasz #9 Dátum: 2016. március 28. - 19:38:48 »
0 Show voters
ha ennyire nem tudod akkor miért csinálod? szedd le  second generation modot és szedd ki abból

Kapu betöltés MYSQL-ből
« Válasz #10 Dátum: 2016. március 29. - 15:29:50 »
0 Show voters
Áá szét szenvedtem már magam vele de valamiért nem akar jó lenni :\'(
Valaki legyen szives nekem ezt megcsinálni.

Kapu betöltés MYSQL-ből
« Válasz #11 Dátum: 2016. március 29. - 15:36:28 »
0 Show voters
Fotózd le a kapuk tábla tartalmát...

Kapu betöltés MYSQL-ből
« Válasz #12 Dátum: 2016. március 29. - 16:39:40 »
0 Show voters
Idézetet írta: Brian Harris date=1459258588\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59981\" data-ipsquote-contentclass=\"forums_Topic
Fotózd le a kapuk tábla tartalmát...
 
Tessék:
\"ouiamvoz5f3cc5lxba9f.png\"
http://kepkezelo.com/images/ouiamvoz5f3cc5lxba9f.png

Kapu betöltés MYSQL-ből
« Válasz #13 Dátum: 2016. március 29. - 17:02:01 »
0 Show voters
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á.
« Utoljára szerkesztve: 2016. március 29. - 17:14:12 írta Brian Harris »

Kapu betöltés MYSQL-ből
« Válasz #14 Dátum: 2016. március 29. - 17:36:54 »
0 Show voters
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

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal