Sziasztok,most szeretném bõvíteni az adminscriptemet,avval hogy elmentem egy játékosnak a szerveren töltött idõjét!Itt a h, m, s akar lenni amit felül szeretnék írni a táblában,de nem csinál semmit,semmit nem változtat meg(még a többit sem),de ha kiveszem akkor jó(a h,m,s-t)!Nincs semmi QueryError![pawn]if(GetPVarInt(playerid, \"Logged\")){ new Query[180]; new year, month, day, hour, minute, second; getdate(year, month, day); gettime(hour, minute, second); GetPlayerName(playerid, Query, MAX_PLAYER_NAME); mysql_real_escape_string(Query, Query); format(Query, sizeof Query, \"UPDATE `accounts` SET `Admin` = %i, `Money` = %i, `Score` = %i, `Kills` = %i, `Deaths` = %i, `h` = %02d, `m` = %02d, `s` = %02d, `LastOn` = \'%02d.%02d.%02d/%02d.%02d.%02d\' WHERE Name = \'%s\'\", GetPVarInt(playerid, \"Admin\"), // Admin GetPlayerMoney(playerid), // Money GetPlayerScore(playerid), //Score GetPVarInt(playerid, \"Kills\"), //Kills GetPVarInt(playerid, \"Deaths\"), //Deaths year, // És ez hol szerepel? month, // Meg ez? day, // És ez? 3 plusz adat eddig de SET utasítás után nem szerepel. hour, // } minute, // } second, // } Hour_ini[playerid], // } Formázott idõ lenne ha jól látom 6 adat egy stringbe ágyazva. Minute_ini[playerid], // } Second_ini[playerid], // } Query); // És ez itt minek van a végén? mysql_query(Query);}[/pawn]Tábla:[pawn]`h` int(9) NOT NULL default \'0\', `m` int(9) NOT NULL default \'0\', `s` int(9) NOT NULL default \'0\',[/pawn]
Meg amúgy azt se értem hogy minek akarsz minden adatot frissíteni ha egy játékos bejelentkezve van.Én csak azokat az adatokat frissíteném mysql-en amelyik adat éppen megváltozott és nem az összeset azokat minek frissíteni amelyek nem változtak közben.Pl.: Mikor megváltozik a Score pontja akkor csak azt az egy adatot frissíteném OnPlayerDeath alatt ha az Admin szintje változik meg akkor azt magában a /setlevel parancsban frissíteném az adatbázisban, és így tovább. [/quote]Köszi azért,mindjárt elolvasom,amit küldtél!Félreértesz ez csak az OnPlayerDisconnect callback-hoz kéne!Amúgy kiszedtem a LuxAdmin-ból is a szerveren töltött idõ mentését régebben,és azt le tudtam menteni,csak folytatni nem!Na és ebben tudnal segíteni egy kicsit nekem és zárok?!Én ezt úgy gondoltam hogy kiolvasom,és lementem egy enumba,csak itt elakadt a tudományom!
CREATE TABLE IF NOT EXISTS `connectedlog` ( `Count` int(5) NOT NULL AUTO_INCREMENT, `ConnectedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `Ip` varchar(20) COLLATE utf8_hungarian_ci NOT NULL, `PlayerName` varchar(30) COLLATE utf8_hungarian_ci NOT NULL, PRIMARY KEY (`Count`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci AUTO_INCREMENT;
Amúgy a laston azt jelenti mikor csatlakozott a szerverhez és nem azt amikor kilépett.Én csak egy sql példát írnék ide pontosabban a saját connectedlog sql szerkezetét ami talán segít egy kicsit, vagy még több fejtörést fog okozni. CREATE TABLE IF NOT EXISTS `connectedlog` ( `Count` int(5) NOT NULL AUTO_INCREMENT, `ConnectedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `Ip` varchar(20) COLLATE utf8_hungarian_ci NOT NULL, `PlayerName` varchar(30) COLLATE utf8_hungarian_ci NOT NULL, PRIMARY KEY (`Count`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci AUTO_INCREMENT; Itt a ConnectedTime lenne a te Laston kifejezésed, így egybõl mentené az idõt persze lehet változtatni a formátumokon.
[18:00:04] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = 10, `Money` = 729900, `Score` = 0, `Kills` = 0, `Deaths` = 1, `LastOn` = \'2011.09.12/18.00.04\', `h` = 00 WHERE Name = \'Preston_Marlowe\') - Successfully executed.
[18:00:04] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = 10, `Money` = 729900, `Score` = 0, `Kills` = 0, `Deaths` = 1, `LastOn` = \'2011.09.12/18.00.04\', `h` = 00 WHERE Name = \'Preston_Marlowe\') - Successfully executed.[/quote]Ebben hol szerepel a 3 változó amit sikeresen felírt sehol nem szerepel benne akkor mirõl beszélsz?Hozz létre 3 mezõt hour minute second szöveggel.Majd az OnPlayerDisconnectnél lévõ mysql UPDATE részhez írd be õket, hogy elmentse a a TotalGameTime függvény által kreált 3 adatot.
Milyen debug?Erre gondoltál? [18:00:04] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = 10, `Money` = 729900, `Score` = 0, `Kills` = 0, `Deaths` = 1, `LastOn` = \'2011.09.12/18.00.04\', `h` = 00 WHERE Name = \'Preston_Marlowe\') - Successfully executed.Ebben hol szerepel a 3 változó amit sikeresen felírt sehol nem szerepel benne akkor mirõl beszélsz?Hozz létre 3 mezõt hour minute second szöveggel.Majd az OnPlayerDisconnectnél lévõ mysql UPDATE részhez írd be õket, hogy elmentse a a TotalGameTime függvény által kreált 3 adatot. [/quote]Nálam a mezõk úgy vannak hogy:hmsh mint hourm mint minutes mint secondmivel nem írja fel ezért végeztem egy tesztet,hogy legalább 1 változót fel ír-e(a h mezõbe),de nem írta fel adatabázisba,csak egy darab 0-volt ott,és 2 kéne hogy legyenmivel: [18:00:04] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = 10, `Money` = 729900, `Score` = 0, `Kills` = 0, `Deaths` = 1, `LastOn` = \'2011.09.12/18.00.04\', `h` = 00 WHERE Name = \'Preston_Marlowe\') - Successfully executed.[/quote]
[18:00:04] CMySQLHandler::Query(UPDATE `accounts` SET `Admin` = 10, `Money` = 729900, `Score` = 0, `Kills` = 0, `Deaths` = 1, `LastOn` = \'2011.09.12/18.00.04\', `h` = 00 WHERE Name = \'Preston_Marlowe\') - Successfully executed.[/quote]