hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 05:36



Jelenlévő felhasználók

Jelenleg 310 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 310 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 11 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: Model precache SQL-ből
HozzászólásElküldve: 2018.11.14. 21:10 
Offline
Újonc
Avatar

Csatlakozott: 2013.08.08. 17:31
Hozzászólások: 12
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 1 alkalommal
Sziasztok!

Elkezdtem írogatni egy plugint és megakadtam. A lényeg hogy adatbázisban tárolok szinte mindent, a modelek elérésu utját is és a plugin_precache() rész előtt szeretném lekérni őket. És itt a probléma, hibát ír:
Kód:
L 11/14/2018 - 21:05:43: [MySQL] Invalid info tuple handle: 0
L 11/14/2018 - 21:05:43: [AMXX] Displaying debug trace (plugin "fegyverskin_sql.amxx")
L 11/14/2018 - 21:05:43: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 11/14/2018 - 21:05:43: [AMXX]    [0] fegyverskin_sql.sma::sql_precache (line 320)
L 11/14/2018 - 21:05:43: [AMXX]    [1] fegyverskin_sql.sma::plugin_precache (line 359)


Viszont ha nem a precache részben kérem le az adatokat, hanem később, gond nélül le tud kérni mindent hiba nélkül. Azért bemásolom, hogy lássátok:

Kód:
public sql_precache() 
{
   static Query[10048];
 
   formatex(Query, charsmax(Query), "SELECT * FROM fs_skins ORDER BY tipus, skinnev");
   SQL_ThreadQuery(g_SqlTuple, "SqlQueryPrecache", Query);
}
public SqlQueryPrecache(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
   if(FailState == TQUERY_CONNECT_FAILED)
   {
      set_fail_state("[SQL-ERROR] Nem sikerült csatlakozni az adatbázishoz.");
      return;
   }
   else if(FailState == TQUERY_QUERY_FAILED)
   {
      set_fail_state("[SQL-ERROR] Hiba a lekérdezésben");
      return;
   }
   
   if(Errcode)
   {
      log_amx("[SQL-ERROR] %s",Error);
      return;
   }
 
   osszskin = SQL_NumRows(Query);
 
   for (new i = 1; i <= SQL_NumRows(Query); i++)
   {
      skininfo[i][fegyoid] = SQL_ReadResult(Query, 0);
      SQL_ReadResult(Query, 1, skininfo[i][fegyonev], 199);
      skininfo[i][fegyotipus] = SQL_ReadResult(Query, 2);
      skininfo[i][fegyoar] = SQL_ReadResult(Query, 3);
      SQL_ReadResult(Query, 4, skininfo[i][fegyoelerut], 199);
      
      skinmenny[skininfo[i][fegyotipus]] = skinmenny[skininfo[i][fegyotipus]] + 1;
      
      SQL_NextRow(Query);
   }
}

public plugin_precache()
{
   sql_precache();
   for (new i = 1; i <= osszskin; i++)
   {   
      log_amx("PRECACHED: %s", skininfo[i][fegyoelerut]);
      precache_model(skininfo[i][fegyoelerut]);
   }
}


A kérdés az lenne, hogy itt az-e a probléma, hogy a prechache részben nem lehet sql-es dolgokat csinálni és azért nem jó? Ha rosszul gondolom, akkor valaki legyen szíves világosítson fel.
Előre is köszönöm a válaszokat :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 00:46 
Offline
Fanatikus

Csatlakozott: 2017.02.14. 23:05
Hozzászólások: 193
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 18 alkalommal
Hali!

Szerintem azért nem jó, mert 2 cucc van a: precache_model(skininfo[i][fegyoelerut]); -nál...

ide úgy kellene át add az infót, hogy csak az elérése, legyen ott... én legalábbis így gondolom. Bár igaz én most sourcemod-ban dolgozok, de ott nekem is volt hasonló problémám...
Azóta amióta precache_model parancsom csak 1 infót kap, azóta tökéletesen jó., mert ott nem teljesen így van, hanem ott így: PrecacheModel én megoldottam, hogy mindenkinek az éppen aktuális skinje legyen a precachemodel paranccsal pl:PrecacheModel(model);
és a model már itt az elérési úttal együtt van... pl: models/szerveremneve/sapka/santaclaus.mdl
Oda úgy kell prechachelni.
De ez csak az én ötletem, én megoldásom, remélem tudtam segíteni.
Bár nem 1 a két játék, de majdnemhogy ua.-z ha megnézed a két parancs között a alsóvonal, meg a két szó kezdőbetűje a különbség, bár lehet kisbetűvel is menne, azt nem próbáltam. Szerintem nálad is ez a gond, ezt abból gondolom, mert nekem is ua. a hiba üzi volt kb, csak invalid query handle: 0-t írt :D Szóval 1 próbát megér úgy gondolom! :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 09:28 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
JohanCorn írta:
norbee.16 írta:
Az ilyen privát üzeneteket hanyagoljátok...

1. Nem értek a scripteléshez, max minimális átírás vagy javítás.
2. Nem privát üzenet dolog egy random emberrel. Ha egy jó ismerősnek külditek oké, de ezzel legyetek szívesek nem zargatni senkit ha csak nincs megbeszélve.
3. Van nekem is szerverem, nem is egy. Mellé egy közösség amivel van bőven dolgom. Ha lenne hozzá értésem sem biztos más dolgát helyezném az első helyre a sajátom helyett. Akkor a saját tevékenységem mikor haladna előre?

Nem lecseszés csak felhívás. Ha valaki akar segíteni az fog is, de nem hiszem, hogy privátban, hanem téma formába ami értelmesen van megfogalmazva és minden kellő dolog mellékelve van. Ha pedig nagyon titkos mód és privát akkor érdemesebb a fejlesztőnél jelezni és javíttatni vele.(Ezt már csak azért is írtam le mert manapság kevesen csatolják a már amúgyis publikus módot. Esetlegesen 1-2 minimális dolog van benne változtatva, ha pedig az ügyes téma nyitó változtatta akkor meg is tudja oldani a problémát.) :P

Idézet:
Szia!

Egy egyszerű kérdésem lenne. Vagy egy adatbázis ahova felvittem fegyverekhez tartozó modelek elérési utját. Szeretném a plugin_precache() előtt lekérni az adatokat, errort ír. A lekérdezéssel nincs baj. Tehát lehetséges egyáltalán a precache előtt lekérdezni a dolgokat?

Így próbálkoztam:
Kód:
public plugin_precache() 
{
   sql_precache();
   for (new i = 1; i <= osszskin; i++)
   {   
      precache_model(skininfo[i][fegyoelerut]);
   }
}


Köszönöm előre is :)


A kérdésre válaszolva ezen a módon szerintem nem lehetséges, mert amikor lefut a precache, akkor intéz egy SQL kérést aminek a Thread részében vissza érkező részen kellene feldolgozni a kapott információt. Érdekes felvetés viszont. Ez a saját véleményem. Ha valaki tud jobbat és már így téma lett, akkor hallgatom. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 20:31 
Offline
Újonc
Avatar

Csatlakozott: 2013.08.08. 17:31
Hozzászólások: 12
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 1 alkalommal
JohanCorn írta:

A kérdésre válaszolva ezen a módon szerintem nem lehetséges, mert amikor lefut a precache, akkor intéz egy SQL kérést aminek a Thread részében vissza érkező részen kellene feldolgozni a kapott információt. Érdekes felvetés viszont. Ez a saját véleményem. Ha valaki tud jobbat és már így téma lett, akkor hallgatom. :)


Értem. Próbáltam már, hogy a Thread rész lefutása után hívom meg a precache-t de nem jött be. Amint kiválasztottam a adott skint a szerver lefagyott, mert nem lett "precachelve" a skin. Más fajta sql kezelés nem létezik? Hátha működne.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 21:01 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Mutass egy példát erre ha már naplóztatod:
Kód:
log_amx("PRECACHED: %s", skininfo[i][fegyoelerut]);


Illetve egy valós példát hogy az SQL-ben hogyan szerepel az elérés.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 21:12 
Offline
Újonc
Avatar

Csatlakozott: 2013.08.08. 17:31
Hozzászólások: 12
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 1 alkalommal
regener írta:
Mutass egy példát erre ha már naplóztatod:
Kód:
log_amx("PRECACHED: %s", skininfo[i][fegyoelerut]);


Illetve egy valós példát hogy az SQL-ben hogyan szerepel az elérés.


log_amx("[SQL-Precache]: %s skin betoltve (%s)", skininfo[i][fegyonev], skininfo[i][fegyoelerut]);

L 11/15/2018 - 21:09:43: [fegyverskin_sql.amxx] [SQL-Precache]: Karambit | Damaszkuszi skin betoltve (models/csgo_skins/Karambit/damaszkuszi.mdl)
L 11/15/2018 - 21:09:43: [fegyverskin_sql.amxx] [SQL-Precache]: Karambit | Doppler skin betoltve (models/csgo_skins/Karambit/doppler.mdl)
L 11/15/2018 - 21:09:43: [fegyverskin_sql.amxx] [SQL-Precache]: Karambit | Edzett skin betoltve (models/csgo_skins/Karambit/edzett.mdl)
L 11/15/2018 - 21:09:43: [fegyverskin_sql.amxx] [SQL-Precache]: Karambit | Karmazsin skin betoltve (models/csgo_skins/Karambit/karmazsin.mdl)

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.15. 23:00 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Próbáld ki így:
  1. public sql_precache()
  2. {
  3.    static Query[10048];
  4.  
  5.    formatex(Query, charsmax(Query), "SELECT * FROM fs_skins ORDER BY tipus, skinnev");
  6.    SQL_ThreadQuery(g_SqlTuple, "SqlQueryPrecache", Query);
  7. }
  8. public SqlQueryPrecache(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
  9. {
  10.    if(FailState == TQUERY_CONNECT_FAILED)
  11.    {
  12.       set_fail_state("[SQL-ERROR] Nem sikerült csatlakozni az adatbázishoz.");
  13.       return;
  14.    }
  15.    else if(FailState == TQUERY_QUERY_FAILED)
  16.    {
  17.       set_fail_state("[SQL-ERROR] Hiba a lekérdezésben");
  18.       return;
  19.    }
  20.    
  21.    if(Errcode)
  22.    {
  23.       log_amx("[SQL-ERROR] %s",Error);
  24.       return;
  25.    }
  26.  
  27.    osszskin = SQL_NumRows(Query);
  28.  
  29.    for (new i = 1; i <= osszskin; i++)
  30.    {
  31.       skininfo[i][fegyoid] = SQL_ReadResult(Query, 0);
  32.       SQL_ReadResult(Query, 1, skininfo[i][fegyonev], 199);
  33.       skininfo[i][fegyotipus] = SQL_ReadResult(Query, 2);
  34.       skininfo[i][fegyoar] = SQL_ReadResult(Query, 3);
  35.       SQL_ReadResult(Query, 4, skininfo[i][fegyoelerut], 199);
  36.  
  37.       log_amx("[SQL-Precache]: %s skin betoltve (%s)", skininfo[i][fegyonev], skininfo[i][fegyoelerut]);
  38.       precache_model(skininfo[i][fegyoelerut]);
  39.  
  40.       skinmenny[skininfo[i][fegyotipus]] = skinmenny[skininfo[i][fegyotipus]] + 1;
  41.      
  42.       SQL_NextRow(Query);
  43.    }
  44. }
  45.  
  46. public plugin_precache()
  47. {
  48.    sql_precache();
  49. }


Bármelyik skin alkalmazásakor kifagy vagy csak adottaknál?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.16. 09:25 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Továbbra is tartom magam a leírtakhoz. Ezt így nem tudod kezelni, mert a válasz később érkezik ás a precache részben már adatokkal kell szolgálnod. Ha jól gondolom, a precache_ model, sound, etc. funkciók viszont csak a plugin_precache ág alatt érvényesülnek.

Cáfoljatok meg, ha tévedek. Viszont ha igazam van és nem fog menni elméletileg tudok rá egy ún. másik lekérést. A különbség annyi, hogy a parancssor indításakor még az adott blokkban kap visszatérési értéket, így nem kell különbontani thread részre. Hogy miért nem ezt használják az emberek? Mert ha nem érkezik edőben válasz konkrétan befagy a szerver addig ameddig nem kap választ, vagy nem timeoutol.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.16. 15:25 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
JohanCorn írta:
Továbbra is tartom magam a leírtakhoz. Ezt így nem tudod kezelni, mert a válasz később érkezik ás a precache részben már adatokkal kell szolgálnod. Ha jól gondolom, a precache_ model, sound, etc. funkciók viszont csak a plugin_precache ág alatt érvényesülnek.

Cáfoljatok meg, ha tévedek. Viszont ha igazam van és nem fog menni elméletileg tudok rá egy ún. másik lekérést. A különbség annyi, hogy a parancssor indításakor még az adott blokkban kap visszatérési értéket, így nem kell különbontani thread részre. Hogy miért nem ezt használják az emberek? Mert ha nem érkezik edőben válasz konkrétan befagy a szerver addig ameddig nem kap választ, vagy nem timeoutol.

Éppen ezért írtam át a fentire a kódot, így lekérésenként rögtön precachel (elméletben :D).


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Model precache SQL-ből
HozzászólásElküldve: 2018.11.16. 16:26 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Nem így értettem. :D Amit írtál az a szokásos mindehol mindeki ezt használja már. Azonban egy 2005-ös forrásban láttam ettől eltérőt. Ott a kérés és annak fogadása egy blokkban volt ha szükséges előkeresem. De ennél már külön van szedve. Lehet, hogy erre a célra az sem felel meg. De egynlőre ez mind egy is. Várom erre a te páldádra való reagálását a felhasználónak. Kíváncsi vagyok, hogy működött-e.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 11 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 26 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole