Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.
Itt az egyedi és kidolgozott Drift módom mysql táblákkal együtt (segítek beüzemelni ha van rá igény) http://sampforum.hu/index.php?topic=54900.0 Olcsón adom mivel a Drift megnevezésbõl ítélve nem lehet túl sok minden van benne mint egy RP vagy egy fun módban.
Üdv mindenkinek! Régóta foglalkoztat a dolog hogy vajon miért törlõdik afk visszajövetelbõl a jármûvem ha benne ülök. Sokszor van olyan hogy például ülök egy infernusba és lerakom tálcára a játékot majd egy kis idõ múlva vissza megyek a játékba és törlõdik a jármûvem. Szerintem a jármûhöz kapcsolódó kódokkal nincs gond. Valaki valami ötlet?
@Nukerdog: Ez a szkript megkönnyíti a szerver adatainak módosítását. Elismerem nincs akkor nagy haszna mint kéne és nem volt nagy kunszt megírni, de ha továbbfejlesztem, sokkal nagyobb sikere lesz. Gondoltam most egy játékos rekord mérõre is és ha pl az jelenleg 28 és felcsatlakozik a 29. játékos akkor új játékos rekord és azt letárolni. @BoOy: Köszi szépen, igyekszem!
Mivel már elég régen töltöttem fel ide munkámat ezért úgy gondoltam talán készítek egy kis hasznos filterscriptet a kezdõ/haladó scriptereknek. Elsõsorban üdvözlök mindenkit ebben a témában! Ne várjatok nagy dolgot ettõl a szkripttõl, hiszen nem rég kezdtem el
komolyabban foglalkozni a MySQL legújabb verziójával, bár ebben a szkriptben ez nem nagyon mutatkozik be mivel itt csak próbálgattam a mentést/betöltést stb..
Spoiler for V1:
A szkriptrõl:
Ez egy játékban állítható Szerver Control Panel melyben átmódosítható a:
Szervered neve, Szervered módjáténak neve, Mapjának neve, végül a Szerver Rcon jelszó. Logikai alapon azt a parancsot mellyel megnyitjuk a dialogos ablakot, kizárólag csak RCON admin használhatja. A dialogban mutatja a lehetõségeket hogy mit szeretnél változtatni plusz mellette a jelenlegni beállított adatot!
#define FILTERSCRIPT #include a_samp #include a_mysql #include zcmd #define function%0(%1) forward%0(%1);public%0(%1) enum { DIALOG_FOMENU=1500, DIALOG_SCP } enum serveradat { servername[64], modename[32], mapname[32], rcon_pass[64], Float:grav, precord }; new string[1024], query[512], line[512], escape[256], sInfo[serveradat], nowplayers ; new sql; public OnFilterScriptInit() { sql = mysql_connect(\"localhost\", \"root\", \"few\", \"\"); mysql_function_query(sql, \"SELECT * FROM `serverinfos`\", true, \"THREAD_LoadServerInfos\", \"\"); return 1; } public OnFilterScriptExit() { mysql_close(sql); return 1; } public OnPlayerConnect(playerid) { nowplayers ++; if(nowplayers > sInfo[precord]) { string[0] = EOS; format(string, sizeof(string), \"Újabb játékos rekord született a szerveren: %i játékos!\", nowplayers); SendClientMessageToAll(-1, string); sInfo[precord] ++; } format(query, sizeof(query), \"UPDATE `serverinfos` SET pRecord = \'%i\' WHERE pRecord = \'%i\'\", nowplayers, sInfo[precord]-1); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); return 1; } public OnPlayerDisconnect(playerid, reason) { nowplayers --; return 1; } CMD:scp(playerid) { if(!IsPlayerAdmin(playerid)) return 0; string[0] = EOS; line[0] = EOS; format(line, sizeof(line), \"{ffffff}Szerver neve\\t{00aaff}[%s]\\n\", sInfo[servername]); strcat(string, line); format(line, sizeof(line), \"{ffffff}Mód neve\\t{30aaff}[%s]\\n\", sInfo[modename]); strcat(string, line); format(line, sizeof(line), \"{ffffff}Map neve\\t{60aaff}[%s]\\n\", sInfo[mapname]); strcat(string, line); format(line, sizeof(line), \"{ffffff}RCON jelszó\\t{90aaff}[%s]\\n\", sInfo[rcon_pass]); strcat(string, line); strcat(string, \"{ff0000}Szerver újraindítása\\n\"); strcat(string, \"{ffffff}Chat szöveg küldése\\n\"); format(line, sizeof(line), \"{ffffff}Gravitáció\\t{90aaff}[%f]\\n\", sInfo[grav]); strcat(string, line); format(line, sizeof(line), \"{ffffff}Játékos rekord\\t{90aaff}[%i]\\n\", sInfo[precord]); strcat(string, line); ShowPlayerDialog(playerid, DIALOG_FOMENU, 2, \"{ff0000}Szerver Control Panel\", string, \"Tovább\", \"Kilépés\"); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_FOMENU: { if(!response) return 0; SetPVarInt(playerid, \"sinfoItem\", listitem); switch(listitem) { case 0: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Szerver név\", \"Írd lentre a szervered új nevét\", \"Változtat\", \"Vissza\"); case 1: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Mód név\", \"Írd lentre a szervered új módnevét\", \"Változtat\", \"Vissza\"); case 2: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Map név\", \"Írd lentre a szervered új mapnevét\", \"Változtat\", \"Vissza\"); case 3: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Rcon Jelszó\", \"Írd lentre a szervered új Rcon jelszavát\", \"Változtat\", \"Vissza\"); case 4: { SendClientMessageToAll(-1, \"A szerver 10 másodperc múlva újraindul! {ff0000}(RESTART)\"); SetTimer(\"ServerRestart\", 10000, false); } case 5: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Rcon kiírás\", \"Írd lentre a a kívánt szöveget ami a chaten fog megjelenni\", \"Küld\", \"Vissza\"); case 6: ShowPlayerDialog(playerid, DIALOG_SCP, DIALOG_STYLE_INPUT, \"{ffff66}Gravitáció\", \"Írd lentre az új gravitáció értékét\", \"Változtat\", \"Vissza\"); } } case DIALOG_SCP: { if(!response) return cmd_scp(playerid); mysql_real_escape_string(inputtext, escape); switch(GetPVarInt(playerid, \"sinfoItem\")) { case 0: { if(!(0 < strlen(inputtext) < 65)) return SendClientMessage(playerid, 0xff6666ff, \"A szerver neve min. 1, max. 64 karakterbõl állhat!\"), cmd_scp(playerid); format(query, sizeof(query), \"UPDATE `serverinfos` SET ServerName = \'%s\' WHERE ServerName = \'%s\'\", escape, sInfo[servername]); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); format(sInfo[servername], 64, escape); format(line, sizeof(line), \"hostname %s\", escape); SendRconCommand(line); } case 1: { if(!(0 < strlen(inputtext) < 33)) return SendClientMessage(playerid, 0xff6666ff, \"A szerver módjának neve min. 1, max. 32 karakterbõl állhat!\"), cmd_scp(playerid); format(query, sizeof(query), \"UPDATE `serverinfos` SET ModeName = \'%s\' WHERE ModeName = \'%s\'\", escape, sInfo[modename]); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); format(sInfo[modename], 32, escape); SetGameModeText(escape); } case 2: { if(!(0 < strlen(inputtext) < 33)) return SendClientMessage(playerid, 0xff6666ff, \"A szerver mapjának neve min. 1, max. 32 karakterbõl állhat!\"), cmd_scp(playerid); format(query, sizeof(query), \"UPDATE `serverinfos` SET MapName = \'%s\' WHERE MapName = \'%s\'\", escape, sInfo[mapname]); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); format(sInfo[mapname], 32, escape); format(line, sizeof(line), \"mapname %s\", escape); SendRconCommand(line); } case 3: { if(!(0 < strlen(inputtext) < 65)) return SendClientMessage(playerid, 0xff6666ff, \"A szerver Rcon jelszava min. 1, max. 64 karakterbõl állhat!\"), cmd_scp(playerid); format(query, sizeof(query), \"UPDATE `serverinfos` SET RconPassword = \'%s\' WHERE RconPassword = \'%s\'\", escape, sInfo[rcon_pass]); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); format(sInfo[rcon_pass], 64, escape); format(line, sizeof(line), \"rcon_password %s\", escape); SendRconCommand(line); } // case 4 = gmx (restart) case 5: { if(!(0 < strlen(inputtext) < 129)) return SendClientMessage(playerid, 0xff6666ff, \"A beirandó Rcon szöveg mérete min. 1, max. 128 karakterbõl állhat!\"), cmd_scp(playerid); format(line, sizeof(line), \"say %s\", inputtext); SendRconCommand(line); } case 6: { if(!strlen(inputtext) || !(strval(inputtext) <= 50 && strval(inputtext) >= -50)) return SendClientMessage(playerid, 0xff6666ff, \"A beirandó gravitációs érték min. -50.0, max. 50.0 közötti értéket kell megadnia!\"), cmd_scp(playerid); format(query, sizeof(query), \"UPDATE `serverinfos` SET gravity = \'%f\' WHERE gravity = \'%f\'\", escape, sInfo[grav]); mysql_function_query(sql, query, true, \"THREAD_Finish\", \"\"); sInfo[grav] = floatstr(escape); SetGravity(sInfo[grav]); } } cmd_scp(playerid); } } return 1; } function THREAD_Finish() return 1; function THREAD_LoadServerInfos() { new rows = cache_num_rows(sql); for(new i; i < rows; i++) { cache_get_row(i, 0, sInfo[servername], sql, 64); cache_get_row(i, 1, sInfo[modename], sql, 32); cache_get_row(i, 2, sInfo[mapname], sql, 32); cache_get_row(i, 3, sInfo[rcon_pass], sql, 64); sInfo[grav] = cache_get_row_float(i, 4, sql); sInfo[precord] = cache_get_row_int(i, 5, sql); } format(line, sizeof(line), \"hostname %s\", sInfo[servername]); SendRconCommand(line); SetGameModeText(sInfo[modename]); format(line, sizeof(line), \"mapname %s\", sInfo[mapname]); SendRconCommand(line); format(line, sizeof(line), \"rcon_password %s\", sInfo[rcon_pass]); SendRconCommand(line); format(line, sizeof(line), \"gravity %f\", sInfo[grav]); SendRconCommand(line); return 1; } function ServerRestart() { SendClientMessageToAll(-1, \"A szerver újraindul...\"); SendRconCommand(\"exit\"); return 1; }
Használjátok egészséggel a szkriptet, ez a 4 beállítás még bõvülni fog, és ehhez kérném szépen leírni az ötleteiteket hogy tovább tudjam fejleszteni a szkriptet! A MySQL-hez értõ emberkéktõl meg várom a kritikákat.