sql = mysql_connect(\"localhost\", \"root\", \"database\", \"password\");
CREATE TABLE IF NOT EXISTS `serverinfos` ( `ServerName` varchar(64) NOT NULL, `ModeName` varchar(128) NOT NULL, `MapName` varchar(128) NOT NULL, `RconPassword` varchar(128) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;INSERT INTO `serverinfos` (`ServerName`, `ModeName`, `MapName`, `RconPassword`, `gravity`, `pRecord`) VALUES (\'Szerverem\', \'teszt mód\', \'Stunt Andreas\', \'ez-az-rcon-jelszo\')
CREATE TABLE IF NOT EXISTS `serverinfos` ( `ServerName` varchar(64) NOT NULL, `ModeName` varchar(128) NOT NULL, `MapName` varchar(128) NOT NULL, `RconPassword` varchar(128) NOT NULL, `gravity` float NOT NULL DEFAULT \'0.008\', `pRecord` int(11) NOT NULL DEFAULT \'0\') ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;INSERT INTO `serverinfos` (`ServerName`, `ModeName`, `MapName`, `RconPassword`, `gravity`, `pRecord`) VALUES (\'Szerverem\', \'teszt mód\', \'Stunt Andreas\', \'ez-az-rcon-jelszo\', \'0.008\', \'0\')
#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]};newstring[1024],query[512],line[512],escape[256],sInfo[serveradat];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;}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);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 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); } } 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);}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);return 1;}
#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};newstring[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;}
ehhez kérném szépen leírni az ötleteiteket hogy tovább tudjam fejleszteni a szkriptet![/quote]Szerintem nem nagyon lesz. Ezek alap RCON parancsok. Ha bõvíteni szeretnéd akkor már bele kell nyúlni a játékos módjába szerintem (például hogy csak a \"hármas admin\" használhassa).
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!
Akkor már mehetnének tovább az RCON parancsok, pl.: szerver idõjárás állítása, szerver jelszavának állítása, weburl állítása stb.
Flösh nem Lepõdtem meg!Ezt Várjuk tõled ...Szép munka Grat! [/quote]Köszi szépen, mindent megteszek! Várható Ingame beállítások: Játékos rekord, Gravitáció, Szerver idõ, Szerver idõjárás, Szerverre jelszó rakása, weboldal link állítása