/*
PUBLIC SERVER RULES 1.20 ( 2005-08-18 )
Plugin by Priski
HU Language by: Voga.
Usage :
Put rules in rules.txt file in cstrike folder
and set rules_speed and rules_interval whatever you like
Commands :
rules_show - shows rules listed in rules.txt
rules_enable - set this to 0 to disable automatic rules display
say /rules - displays rules to normal user
CVARS :
rules_interval - interval between automatic rules display
rules_admin_only - disables say /rules command from regular users
rules_join - if set 1 displays rules after player have joined server
rules_hudmessage_time - time how long hudmessage is displayed
rules_join_timeout - delay to show rules when joining to the server
Changelog :
1.20 / 2005-08-18
- removed client chat rules
- fixed major bugs
1.11 / 2005-08-15
- fixed some bugs
1.10 / 2005-08-14
- new CVARs : rules_hudmessage, rules_hudmessage_time
rules_join_timeout
- Rules in hudmessage mode also
1.03 / 2005-08-12
- rules_enable command fix.
- new CVAR "rules_join" set 1 to show rules
to players when they join server
1.02 / 2005-08-11
- optimized code
- rules_enable is now a command
- default interval is now 10 minutes
1.01 / 2005-08-11
- added rules_admin_only & say /rules command
- variables are global now
1.0 / 2005-08-11
- first release
*/
#include <amxmodx>
#include <amxmisc>
new base[] = "szabaly.txt"
new i, num, text[127], hudmsg[440] //a hud üzenetnek max 439 karaktere lehet
public plugin_init()
{
register_plugin("AMXX Public server rules", "1.20", "Priski")
// register command
register_concmd("rules_show", "rules", ADMIN_KICK, "- mutassa a szabályokat mindenkinek")
register_concmd("rules_enable", "r_enable", ADMIN_KICK, "- <1|0> autó üzenet ki/be kapcsolása")
register_cvar("rules_admin_only", "0") //Sima játékosok nem használhatják a /szabaly parancsot | 1 - Bekapcsol
register_cvar("rules_join", "1") //Ha ez bevan kapcsolva akkor ahogy fellép az adott játékos a szerverre a lenti cvarral beállított másodperc után már mutatja a hud üzenetet
register_cvar("rules_join_timeout", "5") //Mennyit késsen a hud üzenet behozása,mikor a játékos feljön a szerverre (másodperc)
register_cvar("rules_hudmessage_time", "10") //Idő ammenyi ideig mutassa a HUD üzenetet a bal felső sarokban (másodperc)
register_cvar("rules_interval", "600") //Időköz az automatikus szabályok között
register_clcmd("say /szabaly", "clientrules", ADMIN_ALL, "- szabályok megtekintése")
}
public plugin_cfg() {
if (!file_exists(base)) {
write_file(base, "; Ez az alap szabály fájl, amit a plugin generál")
write_file(base, "; Próbálj ne 439-nél több karaktert írni")
write_file(base, "; Üdvözlettel: Voga. | HLMOD.hu")
write_file(base, " ")
write_file(base, "Ide írd a szabályzatot")
console_print(0, "%s fájl nem található...új létrehozása folyamatban ...", base)
}
}
public client_authorized ( id ) {
// on join display rules
if (get_cvar_num("rules_join")) {
new tmp[1]
tmp[0] = id
set_task(1.0, "showrules",id,tmp,1)
console_print(0, "[user %d] client auth!", tmp[0])
}
return PLUGIN_HANDLED
}
public showrules (pid[]) {
new id = pid[0]
if ( get_user_team(id) != 1 && get_user_team(id) != 2 ) {
if (id) {
new tmp[1]
tmp[0] = id
set_task(2.0, "showrules",id,tmp,1) // not yet in server
console_print(0, "[user %d] várakozás míg csapatba csatlakozik ...", id)
}
return PLUGIN_HANDLED
}
new tmp[1]
tmp[0] = id
console_print(0, "[user %d] csapatba csatlakozott : %d", id, get_user_team(id))
console_print(0, "[user %d] printing rules after %d seconds", id, get_cvar_num("rules_join_timeout"))
set_task(get_cvar_float("rules_join_timeout"), "printrules", id, tmp, 1) // not yet in server
return PLUGIN_HANDLED
}
public printrules(pid[])
{
new id = pid[0]
if (file_exists(base))
{
console_print(0, "[user] adott játékosnak mutatja a szabályzatot: %d", id)
set_hudmessage ( 200, 150, 0, 0.02, 0.25, 2, 0.1, get_cvar_float("rules_hudmessage_time"), 0.05, 1.0, 1) //Itt testre szabhatod a HUD üzenetedet
format(hudmsg, 439, "")
// read all the rules
for(i=0; read_file(base, i, text, 127, num); i++) {
if (num > 0 && text[0] != ';') {
// display with predefined delay
add(hudmsg,439,text)
add(hudmsg,439,"^n")
}
}
// show hudmessages
show_hudmessage(id, hudmsg)
}
return PLUGIN_HANDLED
}
public r_enable(id, level, cid)
{
if (!cmd_access(id, level, cid, 0)) { // NOT ADMIN
return PLUGIN_HANDLED
}
new arg[3]
read_argv(1, arg, 2)
new value = str_to_num(arg)
if (!isalnum(arg[0]))
value = -1
if (value == 0) {
if (task_exists(2)) // close task
remove_task(2)
console_print(id, "Te kikapcsoltad az autó HUD üzenetet")
return PLUGIN_HANDLED
}
if (value == 1) {
// activate task, reload if already exist
if (task_exists(2)) {
change_task(2, get_cvar_float("rules_interval"))
} else {
set_task(get_cvar_float("rules_interval"), "rules", 2, "", 0, "b")
}
console_print(id, "Te bekapcsoltad az autó HUD üzenetet")
return PLUGIN_HANDLED
}
if (task_exists(2)) {
console_print(id, "autoüzenet : ON.")
} else {
console_print(id, "autoüzenet : OFF.")
}
console_print(id, "rules_enable <1|0> (1 = ON, 0 = OFF)")
return PLUGIN_HANDLED
}
public clientrules(id, level, cid) {
new pID[1]
pID[0] = id
console_print(0,"[user %d]Mutassa a szabályzatot csak nekem",pID[0])
printrules(pID[0])
}
public rules(id, level, cid)
{
new pID[1]
pID[0] = id
if (!cmd_access(id, level, cid, 0)) { // NOT ADMIN
return PLUGIN_HANDLED
}
// read file to all users
pID[0] = 0
console_print(0,"[user %d]Mutassa a szabályzatot mindenkinek",id)
printrules(pID[0])
// Reset scheduled task after display
if (get_cvar_float("rules_interval") > 0) {
if (task_exists(2)) {
change_task(2, get_cvar_float("rules_interval"))
} else {
set_task(get_cvar_float("rules_interval"), "rules", 200, "", 0, "b")
}
}
return PLUGIN_HANDLED
}