Sziasztok,
Unatkoztam info órán, ezért összedobtam nektek egy szabályzat szkriptet.
Tulajdonságai:
10 sor van egy nagy méretû dialogban (az egyik tutorialból másoltam). Azokat lehet átírni egy paranccsal. Átíráskor elmenti egy fájlba [RULE_PATH-nél lehet megváltoztatni a nevet], amit a filterszkript legközelebbi betöltésénél be is olvas.
Zcmd, sscanf2 és dFile kell hozzá.
Csak RCON adminisztrátor írhatja át a szabályzatot.
Parancsok:
/editrules <sor> <szöveg>
/rules
Kép:
Letöltés:
http://www.solidfiles.com/d/30632d8e71/Szükséges:
dFile -
http://solidfiles.com/d/c7f403bd6a/sscanf2 plugin, inc -
http://forum.sa-mp.com/showthread.php?t=120356Szkript:
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <dfile>
#define isnull(%1) \\
((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
#define RULE_PATH \"/rules.ini\"
new dstr[2000], str[10][60];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Szabályzat szkript\");
print(\"--------------------------------------\\n\");
if(!fexist(RULE_PATH))
{
dfile_Create(RULE_PATH);
dfile_Open(RULE_PATH);
dfile_MultiSet(\"ssssssssss\",
\"sz\", \"Tilos a Cheat/Hack/Mod!\",
\"sz1\", \"Tilos a DB!\",
\"sz2\", \"Tilos más játékos és adminisztrátor szidalmazása!\",
\"sz3\", \"Tilos a káromkodás!\",
\"sz4\", \"Tilos a HK!\",
\"sz5\", \"Tilos a TK!\",
\"sz6\", \"Tilos az SK!\",
\"sz7\", \"Tilos a WK\",
\"sz8\", \"Tilos a glitch-elés és a játék hibáival való visszaélés!\",
\"sz9\", \"Aki nem tartja be a szabályzatot büntetésre számíthat, a szabályzat nem ismerése nem ment fel a betartása/büntetés alól.\"
);
dfile_SaveFile();
dfile_CloseFile();
}
else
{
dfile_Open(RULE_PATH);
dfile_MultiGet(\"ssssssssss\",
\"sz\",str[0],
\"sz1\", str[1],
\"sz2\", str[2],
\"sz3\", str[3],
\"sz4\", str[4],
\"sz5\", str[5],
\"sz6\", str[6],
\"sz7\", str[7],
\"sz8\",str[8],
\"sz9\",str[9]
);
dfile_CloseFile();
}
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
CMD:editrules(playerid,params[])
{
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,\"Ezt a parancsot csak RCON adminisztrátor használhatja!\");
new editline,editstr[60];
if(sscanf(params,\"ds[60]\",editline,editstr))return SendClientMessage(playerid,-1,\"Használat: /editrules <sor (1-10)> <szöveg (min 1 - max 60 karakter)>\");
if((1 > editline || editline > 10) || (1 > strlen(editstr) || strlen(editstr) > 60) || isnull(editstr))return SendClientMessage(playerid,-1,\"Használat: /editrules <sor (1-10)> <szöveg (min 1 - max 60 karakter)>\");
switch(editline)
{
case 1: format(str[0],60,\"%s\",editstr);
case 2:format(str[1],60,\"%s\",editstr);
case 3:format(str[2],60,\"%s\",editstr);
case 4:format(str[3],60,\"%s\",editstr);
case 5:format(str[4],60,\"%s\",editstr);
case 6:format(str[5],60,\"%s\",editstr);
case 7:format(str[6],60,\"%s\",editstr);
case 8:format(str[7],60,\"%s\",editstr);
case 9:format(str[8],60,\"%s\",editstr);
case 10:format(str[9],60,\"%s\",editstr);
}
dfile_Open(RULE_PATH);
dfile_MultiSet(\"ssssssssss\",
\"sz\",str[0],
\"sz1\", str[1],
\"sz2\", str[2],
\"sz3\", str[3],
\"sz4\", str[4],
\"sz5\", str[5],
\"sz6\", str[6],
\"sz7\", str[7],
\"sz8\",str[8],
\"sz9\",str[9]
);
dfile_SaveFile();
dfile_CloseFile();
return 1;
}
CMD:rules(playerid,params[])
{
format(dstr, sizeof(dstr),\"%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\\n%s\",
str[0],
str[1],
str[2],
str[3],
str[4],
str[5],
str[6],
str[7],
str[8],
str[9]
);
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, \"Szabályzat:\", dstr, \"Elfogadom\",\"Elfogadom\");
return 1;
}