regener írta:
Próbáld ki így:
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 <= osszskin; 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);
log_amx("[SQL-Precache]: %s skin betoltve (%s)", skininfo[i][fegyonev], skininfo[i][fegyoelerut]);
precache_model(skininfo[i][fegyoelerut]);
skinmenny[skininfo[i][fegyotipus]] = skinmenny[skininfo[i][fegyotipus]] + 1;
SQL_NextRow(Query);
}
}
public plugin_precache()
{
sql_precache();
}
Bármelyik skin alkalmazásakor kifagy vagy csak adottaknál?
Így sem lett jó ugyan az a hiba, de nagyon köszönöm. Szerintem ezzel a fajta sql kezeléssel nem fog ez működni, valamiért ilyen korán nem tud lefutni a lekérdezés. JohanCorn légyszíves küld el a másik verziót, kerestem már én is (mondjuk csak itt) mást de sajna nem találtam.
Az alap ötlet az lenne, hogy a skinekkel kapcsolatos infókat is sql ben tárolom és majd vagy a játékban (menüs megoldással) vagy majd egy külön 'weboldalacskát' (esetleg mind2-t) csinálok ahol fel lehet vinni a skineket. Ezzel lehetőséget adok a pluginokhoz nem értő embereknek, hogy tudja variálni a skineket. Tehát nem letölt egy plugint és ami benne van azt használja, hanem keres megának felviszi és használja.