GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Jim Toretto - 2016. március 27. - 23:42:13

Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 27. - 23:42:13
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);
}
Cím: Kapu betöltés MYSQL-ből
Írta: Athos005 - 2016. március 28. - 16:13:31
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\"
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 28. - 18:15:18
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
Cím: Kapu betöltés MYSQL-ből
Írta: baglion02 - 2016. március 28. - 18:37:57

#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
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 28. - 19:09:06
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];
Cím: Kapu betöltés MYSQL-ből
Írta: baglion02 - 2016. március 28. - 19:12:30
behelyettesíted :)
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 28. - 19:15:08
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 :(
Cím: Kapu betöltés MYSQL-ből
Írta: baglion02 - 2016. március 28. - 19:25:27
A te kapu infodat írd be abba amit én küldtem és ami az enyém azt töröld ki
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 28. - 19:30:45
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
Cím: Kapu betöltés MYSQL-ből
Írta: baglion02 - 2016. március 28. - 19:38:48
ha ennyire nem tudod akkor miért csinálod? szedd le  second generation modot és szedd ki abból
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 29. - 15:29:50
Áá szét szenvedtem már magam vele de valamiért nem akar jó lenni :\'(
Valaki legyen szives nekem ezt megcsinálni.
Cím: Kapu betöltés MYSQL-ből
Írta: Brian Harris - 2016. március 29. - 15:36:28
Fotózd le a kapuk tábla tartalmát...
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 29. - 16:39:40
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
Cím: Kapu betöltés MYSQL-ből
Írta: Brian Harris - 2016. március 29. - 17:02:01
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á.
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 29. - 17:36:54
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
Cím: Kapu betöltés MYSQL-ből
Írta: Brian Harris - 2016. március 29. - 20:13:35
Akkor próbáld így:
 

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(Info[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]);
 
   sscanf(mezo[5],\"p<,>a<f>[3]\",Kapu[idx][kPos]);
   sscanf(mezo[6],\"p<,>a<f>[3]\",Kapu[idx][kNPos]);
   sscanf(mezo[7],\"p<,>a<f>[3]\",Kapu[idx][kNRPos]);
   sscanf(mezo[8],\"p<,>a<f>[3]\",Kapu[idx][kZPos]);
   sscanf(mezo[9],\"p<,>a<f>[3]\",Kapu[idx][kZRPos]);
   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(Kapu[idx][kObjectID],Kapu[idx][kPos][0],Kapu[idx][kPos][1],KapuInfo[idx][kPos][2],Kapu[idx][kZRPos][0],Kapu[idx][kZRPos][1],Kapu[idx][kZRPos][2]);
   KapuLoaded ++;
}
idx++;
}
printf(\"Kapuk betöltve! Betöltött kapuk száma: %d\",KapuLoaded);
return 1;
}

 
sscanf include és plugin szükséges hozzá!
Cím: Kapu betöltés MYSQL-ből
Írta: Jim Toretto - 2016. március 30. - 04:54:36
Hát nem tudom de nem akar jó lenni az eredeti betöltő sript az valahogy így néz ki:
Ezt kéne nekem egy fügvénybe megoldani az én mysq-el verziómmal.
 
stock KapuAkcio(akcio = KAPU_BETOLT, uid = NINCS, bool: preQuery = true) // by Martin & DrAke
{
new id, db, idx, tmp[20], data[14][128], data2[3][32], egesz[512], query[256], string[64];
switch(akcio)
{
case KAPU_BETOLT:
{
   id = 0;
   if( preQuery )
   {
      //format( query, 256, \"SELECT ID, Nev, Model, Tav, Speed, Pos, NPos, NRPos, ZPos, ZRPos, Hasznalo, Nyit, VW, Kod FROM %s\", SQL_DB_Kapu );
      format( query, 256, \"SELECT * FROM %s\", SQL_DB_Kapu );
      doQuery( query, SQL_SYSTEM_KAPU, akcio, uid );
      return 1;
   }
   //SQLResult( true );
   if(mysql_num_rows() > 0)
   {
       new fetchline[2048], kapuid, kapunev[32], kapumodel, Float:kaputav, Float:kapuspeed, kapupos[5][128], kapuhasznalo[128], kapunyit, kapuvw, kapukod;
      while(mysql_fetch_row(fetchline))
      {
          sscanf(fetchline, \"p<|>ds[32]dffs[128]s[128]s[128]s[128]s[128]s[128]ddd\", kapuid, kapunev, \\
          kapumodel, kaputav, kapuspeed, kapupos[0], kapupos[1], kapupos[2], kapupos[3], kapupos[4], \\
         kapuhasznalo, kapunyit, kapuvw, kapukod);
         Kapu[id][kVan] = true;
         Kapu[id][kUID] = kapuid;
         Kapu[id][kNev] = kapunev;
         Kapu[id][kModel] = kapumodel;
         Kapu[id][kTav] = kaputav;
         Kapu[id][kSpeed] = kapuspeed;
         if(Kapu[id][kSpeed] <= 0.0) Kapu[id][kMozgo] = false;
         else Kapu[id][kMozgo] = true;
         split(kapupos[0], data2, \',\'); StrToPos(data2, Kapu[id][kPos]);
         split(kapupos[1], data2, \',\'); StrToPos(data2, Kapu[id][kNPos]);
         split(kapupos[2], data2, \',\'); StrToPos(data2, Kapu[id][kNRPos]);
         split(kapupos[3], data2, \',\'); StrToPos(data2, Kapu[id][kZPos]);
         split(kapupos[4], data2, \',\'); StrToPos(data2, Kapu[id][kZRPos]);
         idx = 0; db = 0;
         while( db < MAX_KAPU_HASZNALO && (tmp = strtok_vesszo(kapuhasznalo, idx), strlen(tmp)) )
         {
             if(strval(tmp) > 0)
             {
               Kapu[id][kHasznalo][db] = strval(tmp);
               db++;
            }
         }
         if(!db) Kapu[id][kBarki] = true;
         Kapu[id][Vw] = kapuvw;
         Kapu[id][kKod] = kapukod;
         Kapu[id][kOID] = CreateDynamicObject(Kapu[id][kModel], PosExt(Kapu[id][kZPos]), PosExt(Kapu[id][kZRPos]),Kapu[id][Vw]);
         Kapu[id][nyit] = kapunyit;
         id++;
      }
   }
   /*if(mysql_num_rows() > 0)
   {
      while(id < MAX_KAPU && mysql_fetch_row(egesz))
      {
         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++;
      }
   }*/
   //SQLResult( false );
   if(id) printf(\"Szerver info: %d kapu sikeresen betöltve!\\n\", id);
   else printf(\"Szerver info: Egyetlen kapu se került betöltésre!\\n\");
   new ennyike = 0;
   for(new k = 0; k < MAX_KAPU; k++)
   {
         if(Kapu[k][nyit] ==1)
         {
            //printf(\"Kapu nyitása: %d\",k);
            if(Kapu[k][kMozgo])
               MoveDynamicObject(Kapu[k][kOID], PosExt(Kapu[k][kNPos]), Kapu[k][kSpeed]);
            else
            {
               SetDynamicObjectPos(Kapu[k][kOID], PosExt(Kapu[k][kNPos]));
               SetDynamicObjectRot(Kapu[k][kOID], PosExt(Kapu[k][kNRPos]));
            }
            ennyike++;
         }      
   }
   printf(\"Szerver info: %d kapu sikeresen kinyitva!\\n\", ennyike);
}
case KAPU_BETOLT_EX:
{
   id = NINCS;
   for(new k = 0; k < MAX_KAPU; k++)
   {
      if(!Kapu[k][kVan])
      {
         id = k;
         break;
      }
   }
   if(uid != NINCS && id != NINCS)
   {
      if( preQuery )
      {
         format(query, 256, \"SELECT ID, Nev, Model, Tav, Speed, Pos, NPos, NRPos, ZPos, ZRPos, Hasznalo, VW, Kod FROM %s WHERE ID=\'%d\'\", SQL_DB_Kapu, uid);
         doQuery( query, SQL_SYSTEM_KAPU, akcio, uid );
         return 1;
      }
      printf(\"[CMD] %d. kapu betöltése...\", id);
      format(string, sizeof(string), \"* [CMD] %d. kapu betöltése...\", id);
      SendFAdminMessage(TEAM_ORANGE_COLOR, string);
      //SQLResult( true );
      if(mysql_num_rows())
      {
         if(mysql_fetch_row(egesz))
         {
            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)) )
            {
               Kapu[id][kHasznalo][db] = strval(tmp);
               db++;
            }
            if(!db) Kapu[id][kBarki] = true;
            Kapu[id][Vw]=strval(data[11]);
            Kapu[id][kKod] = strval(data[12]);
            Kapu[id][kOID] = CreateDynamicObject(Kapu[id][kModel], PosExt(Kapu[id][kZPos]), PosExt(Kapu[id][kZRPos]),Kapu[id][Vw]);
            printf(\"[CMD] %d. kapu betöltve\", id);
            format(string, sizeof(string), \"[CMD] %d. kapu betöltve\", id);
            SendFAdminMessage(TEAM_ORANGE_COLOR, string);
         }
      }
      //SQLResult( false );
   }
}
case KAPU_TOROL:
{
   id = NINCS;
   for(new k = 0; k < MAX_KAPU; k++)
   {
      if(Kapu[k][kUID] == uid)
      {
         id = k;
         break;
      }
   }
   if(id < 0 || id >= MAX_KAPU || !Kapu[id][kVan])
      return 1;
   if( preQuery )
   {
      printf(\"[CMD] %d. kapu törlése...\", id);
      DestroyDynamicObject(Kapu[id][kOID]);
      Kapu[id][kVan] = false;
      printf(\"[CMD] %d. kapu törölve\", id);
      format(string, sizeof(string), \"[CMD] %d. kapu törölve\", id);
      SendFAdminMessage(TEAM_ORANGE_COLOR, string);
      format(query, 256, \"SELECT ID FROM %s WHERE ID=\'%d\'\", SQL_DB_Kapu, uid);
      doQuery( query, SQL_SYSTEM_KAPU, akcio, uid );
   }
   else
   {
      //SQLResult( true );
      db = mysql_num_rows();
      //SQLResult( false );
      if(db)
      {
         format(query, 256, \"DELETE FROM %s WHERE ID=\'%d\'\", SQL_DB_Kapu, uid);
         doQuery( query );
         printf(\"[CMD] %d. kapu SQL törlése megvan (SQL ID: %d)\", id, uid);
      }
   }
}
case KAPU_RELOAD:
{
   id = NINCS;
   for(new k = 0; k < MAX_KAPU; k++)
   {
      if(Kapu[k][kUID] == uid)
      {
         id = k;
         break;
      }
   }
   if(id < 0 || id >= MAX_KAPU || !Kapu[id][kVan])
      return 1;
   if(uid != NINCS && id != NINCS)
   {
      if( preQuery )
      {
         format(string, sizeof(string), \"[CMD] %d. kapu újratöltése... fázis: előtöltés\", id);
         SendFAdminMessage(TEAM_ORANGE_COLOR, string);
         printf(\"[CMD] %d. kapu újratöltése... fázis: előtöltés\", id);
         format(query, 256, \"SELECT ID, Model, Tav, Speed, Pos, NPos, NRPos, ZPos, ZRPos, Hasznalo, VW FROM %s WHERE ID=\'%d\'\", SQL_DB_Kapu, uid);
         doQuery( query, SQL_SYSTEM_KAPU, akcio, uid );
         return 1;
      }
      else
      {
         format(string, sizeof(string), \"[CMD] %d. kapu újratöltése... fázis: kapu újratöltése\", id);
         SendFAdminMessage(TEAM_ORANGE_COLOR, string);
         printf(\"[CMD] %d. kapu újratöltése... fázis: kapu újratöltése\", id);
         //SQLResult( true );
         if(mysql_num_rows())
         {
            if(mysql_fetch_row(egesz))
            {
               split(egesz, data, \'|\');
               Kapu[id][kVan] = true;
               Kapu[id][kUID] = strval(data[0]);
               Kapu[id][kModel] = strval(data[1]);
               Kapu[id][kTav] = floatstr(data[2]);
               Kapu[id][kSpeed] = floatstr(data[3]);
               if(Kapu[id][kSpeed] <= 0.0) Kapu[id][kMozgo] = false;
               else Kapu[id][kMozgo] = true;
               // Kapu közepe
               split(data[4], data2, \',\'); StrToPos(data2, Kapu[id][kPos]);
               // Nyitási pozíció
               split(data[5], data2, \',\'); StrToPos(data2, Kapu[id][kNPos]);
               // Nyitási rotáció
               split(data[6], data2, \',\'); StrToPos(data2, Kapu[id][kNRPos]);
               // Zárási pozíció
               split(data[7], data2, \',\'); StrToPos(data2, Kapu[id][kZPos]);
               // Zárási rotáció
               split(data[8], data2, \',\'); StrToPos(data2, Kapu[id][kZRPos]);
               idx = 0; db = 0;
               while( db < MAX_KAPU_HASZNALO && (tmp = strtok_vesszo(data[9], idx), strlen(tmp)) )
               {
                  Kapu[id][kHasznalo][db] = strval(tmp);
                  db++;
               }
               if(!db) Kapu[id][kBarki] = true;
               Kapu[id][Vw]=strval(data[10]);
               DestroyDynamicObject(Kapu[id][kOID]);
               Kapu[id][kOID] = CreateDynamicObject(Kapu[id][kModel], PosExt(Kapu[id][kZPos]), PosExt(Kapu[id][kZRPos]),Kapu[id][Vw]);
               printf(\"[CMD] %d. kapu betöltve\", id);
               format(string, sizeof(string), \"[CMD] %d. kapu újra betöltve\", id);
               SendFAdminMessage(TEAM_ORANGE_COLOR, string);
            }
         }
         //SQLResult( false );
      }
   }
}
}
return 1;
}
Cím: Kapu betöltés MYSQL-ből
Írta: DrAkE - 2016. március 30. - 10:50:59
Szerintem neked jobb lenne egy \"Írjatok meg egy szervert\" részleg, just for you.
(U.I.: Nem lopott móddal kellene.)