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

Kapu betöltés MYSQL-ből
« Válasz #15 Dátum: 2016. Március 29. - 20:13:35 »
0 Show voters
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á!
« Utoljára szerkesztve: 2016. Március 29. - 20:29:06 írta Brian Harris »

Kapu betöltés MYSQL-ből
« Válasz #16 Dátum: 2016. Március 30. - 04:54:36 »
0 Show voters
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;
}

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Kapu betöltés MYSQL-ből
« Válasz #17 Dátum: 2016. Március 30. - 10:50:59 »
+5 Show voters
Szerintem neked jobb lenne egy \"Írjatok meg egy szervert\" részleg, just for you.
(U.I.: Nem lopott móddal kellene.)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal