#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#define PLUGIN "Admin Rendszer"
#define VERSION "1.3"
#define AUTHOR "K.O & DeRoiD"
new fh[32][33], jsz[32][33], jog[33], bfh[32][33], bjsz[32][33], irt[33], irt2[33], a_nap[33], a_honap[33], a_ev[33], belepve[33], ev2[32], honap2[32], nap2[32], jogok[32]
new g_iTarget[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("FELHASZNALO", "hasznalo")
register_clcmd("JELSZO", "szo")
register_clcmd("say /login", "admin_menu")
register_clcmd("Indok", "jelentok")
set_task(60.0, "hirdetes", 0, _, _, "b")
register_clcmd("say","handlesay")
register_clcmd("say_team","handlesay")
}
public hirdetes(id)
{
ColorChat(id,GREEN,"[Információ]^1 A szerveren ^3HLMOD.hu^1-s admin rendszer fut! By:^3 K.O & DeRoiD")
}
public admin_menu(id) {
new cim[121], fhm[121], jszm[121]
format(cim, charsmax(cim), "\rHLMOD.HU \wAdmin Rendszer")
new menu = menu_create(cim, "admin_menu_h" )
if(belepve[id] == 0){
if(irt[id] == 0)
format(fhm, charsmax(cim), "\rFelhasználó :")
else
format(fhm, charsmax(cim), "\rFelhasználó :\d %s",bfh[id])
if(irt2[id] == 0)
format(jszm, charsmax(cim), "\rJelszó :^n")
else
format(jszm, charsmax(cim), "\rJelszó : \d%s^n", bjsz[id])
}
if(belepve[id] == 1){
if(jog[id] == 1){
menu_additem(menu,"\r[\wStátusz\r] : \y Tulajdonos","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d abcdefghijklmnoqrstu")
}
else if(jog[id] == 2){
menu_additem(menu,"\r[\wStátusz\r] : \y Konfigos","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d abcdefghijklmnoqrstu")
}
else if(jog[id] == 3){
menu_additem(menu,"\r[\wStátusz\r] : \y Főadmin","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d abcdefghijuklmn")
}
else if(jog[id] == 4){
menu_additem(menu,"\r[\wStátusz\r] : \y Moderátor","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d bcdefjium")
}
else if(jog[id] == 5){
menu_additem(menu,"\r[\wStátusz\r] : \y Admin","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d bcdefjium")
}
else if(jog[id] == 6){
menu_additem(menu,"\r[\wStátusz\r] : \y Ingyen Admin","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d bcdefjium")
}
else if(jog[id] == 7){
menu_additem(menu,"\r[\wStátusz\r] : \y Próbaidő","7",0)
format(fhm, charsmax(fhm), "\rJogok :\d z")
}
static honap[5], nap[5], ev[7]
format_time(honap, sizeof(honap) - 1, "%m")
format_time(nap, sizeof(nap) - 1, "%d")
format_time(ev, sizeof(ev) - 1, "%Y")
new jelenlegi_honap = str_to_num(honap)
new jelenlegi_nap = str_to_num(nap)
new jelenlegi_ev = str_to_num(ev)
if(jog[id] == 7 && a_ev[id] == jelenlegi_ev && a_honap[id] == jelenlegi_honap && a_nap[id]-jelenlegi_nap < 4)
format(jszm, charsmax(cim), "\rProba idő lejárás napja : \r%d.%d.%d^n", a_ev[id], a_honap[id], a_nap[id])
else if(jog[id] == 7 && a_ev[id] == jelenlegi_ev && a_honap[id] == jelenlegi_honap && a_nap[id]-jelenlegi_nap >= 3)
format(jszm, charsmax(cim), "\rProba idő lejárás napja : \y%d.%d.%d^n", a_ev[id], a_honap[id], a_nap[id])
else if(jog[id] != 7 && a_ev[id] == jelenlegi_ev && a_honap[id] == jelenlegi_honap && a_nap[id]-jelenlegi_nap < 4)
format(jszm, charsmax(cim), "\rLejárás napja : \r%d.%d.%d^n", a_ev[id], a_honap[id], a_nap[id])
else
format(jszm, charsmax(cim), "\rLejárás napja : \y%d.%d.%d^n", a_ev[id], a_honap[id], a_nap[id])
}
if(belepve[id] == 0){
menu_additem(menu,fhm, "1",0)
menu_additem(menu,jszm, "2",0)
}
if(belepve[id] == 1){
menu_additem(menu,fhm, "-1",0)
menu_additem(menu,jszm, "-1",0)
}
if(belepve[id] == 1 && jog[id] != 7)
{
menu_additem(menu,"\yAdmin menü","4",0)
menu_additem(menu,"\ySzabályazat","5",0)
menu_additem(menu,"\yAlap Parancsok^n","6",0)
}
else if(belepve[id] == 1) {
menu_additem(menu,"\yJelentés","8",0)
menu_additem(menu,"\ySzabályazat","5",0)
menu_additem(menu,"\yAlap Parancsok^n","6",0)
}
if(belepve[id] == 1)
menu_additem(menu,"Kijelenkezés", "0",0)
else
menu_additem(menu,"Bejelenkezés","3",0)
menu_display(id, menu)
return PLUGIN_HANDLED
}
public admin_menu_h(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case -1: admin_menu(id)
case 0:{
remove_user_flags(id)
belepve[id] = 0
irt[id] = 0
irt2[id] = 0
ColorChat(id,GREEN,"[Információ]^1 Sikeresen kiléptél!")
admin_menu(id)
}
case 1: {
client_cmd(id, "messagemode FELHASZNALO")
}
case 2: {
client_cmd(id, "messagemode JELSZO")
}
case 3: {
if(equal(bfh[id], fh[id]) && equal(bjsz[id], jsz[id]))
{
static honap[5], nap[5], ev[7]
format_time(honap, sizeof(honap) - 1, "%m")
format_time(nap, sizeof(nap) - 1, "%d")
format_time(ev, sizeof(ev) - 1, "%Y")
new jelenlegi_honap = str_to_num(honap)
new jelenlegi_nap = str_to_num(nap)
new jelenlegi_ev = str_to_num(ev)
if(a_ev[id] < jelenlegi_ev || a_ev[id] == jelenlegi_ev && a_honap[id] < jelenlegi_honap || a_ev[id] == jelenlegi_ev && a_honap[id] == jelenlegi_honap && a_nap[id] < jelenlegi_nap)
{
ColorChat(id,RED,"[Információ] Az admin lejárt ^1 %d.%d.%d!", a_ev[id], a_honap[id], a_nap[id])
admin_menu(id)
}
else
{
bfh[id] = ""
bjsz[id] = ""
ColorChat(id,GREEN,"[Információ]^1 Sikeresen beléptél!")
if(jog[id] == 1)
set_user_flags(id, read_flags("abcdefghijklmnoqrstu"))
if(jog[id] == 2)
set_user_flags(id, read_flags("abcdefghijklmnoqrstu"))
if(jog[id] == 3)
set_user_flags(id, read_flags("abcdefghijuklmn"))
if(jog[id] == 4)
set_user_flags(id, read_flags("bcdefjium"))
if(jog[id] == 5)
set_user_flags(id, read_flags("bcdefjium"))
if(jog[id] == 6)
set_user_flags(id, read_flags("bcdefjium"))
if(jog[id] == 7)
set_user_flags(id, read_flags("z"))
belepve[id] = 1
admin_menu(id)
}
}
else
{
bfh[id] = ""
bjsz[id] = ""
ColorChat(id,GREEN,"[Információ]^1 Rossz jelszó!")
admin_menu(id)
}
}
case 4:
{
client_cmd(id, ";^"amxmodmenu^"")
}
case 5:
{
show_motd(id,"addons/amxmodx/configs/szabalyzat.txt","Admin Szabályazat")
}
case 6:
{
show_motd(id,"addons/amxmodx/configs/parancsok.txt","Admin Parancsok")
}
case 7:
{
admin_menu(id)
}
case 8:
{
jelent(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public jelent(id)
{
new jelentmenu[256]
formatex(jelentmenu, charsmax(jelentmenu), "\rHLMOD.HU \wCsaló Jelentése");
new menu = menu_create(jelentmenu, "jelenth")
new players[32], num
new szName[32], szTempid[32]
get_players(players, num, "ach")
for(new i; i < num; i++)
{
get_user_name(players[i], szName, charsmax(szName))
num_to_str(get_user_userid(players[i]), szTempid, charsmax(szTempid))
menu_additem(menu, szName, szTempid, 0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Következő");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu)
}
public jelenth(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback)
g_iTarget[id] = find_player("k", str_to_num(szData))
client_cmd(id, "messagemode Indok")
menu_destroy(menu)
return PLUGIN_HANDLED
}
public jelentok(id)
{
new indok[300]
read_args(indok, charsmax(indok))
remove_quotes(indok)
if(!strlen(indok))
return PLUGIN_HANDLED
new kuldo[32], jelentett[32]
get_user_name(id, kuldo, charsmax(kuldo))
get_user_name(g_iTarget[id], jelentett, charsmax(jelentett))
log_to_file( "jelentesek.ini", "!g[Információ] %s jelentette %s-t. Indok: %s", kuldo, jelentett, indok);
new players[32], num, id
get_players(players, num, "c")
for( new i; i< num; i++ )
{
id = players[i]
if(get_user_flags(id) & ADMIN_KICK)
{
ColorChat(id,GREEN,"[Információ]^3 %s ^1jelentette^4 %s^1-t. Indok: ^4%s", kuldo, jelentett, indok)
}
}
return PLUGIN_CONTINUE
}
public client_connect(id)
{
bfh[id] = ""
bjsz[id] = ""
belepve[id] = 0
irt[id] = 0
irt2[id] = 0
jog[id] = 1
admin_tolt(id)
}
public admin_tolt(id) {
new fajl[64]
formatex(fajl, charsmax(fajl), "addons/amxmodx/configs/admins/admin.ini")
new file
file = fopen(fajl, "r")
if(file)
{
new sor = file_size(fajl, 1)
new buff[256], len
for(new i; i < sor; i++)
{
read_file(fajl, i, buff, charsmax(buff), len)
parse(buff, fh[id], 31, jsz[id], 31, jogok, 31, ev2, 31, honap2, 31, nap2, 31)
if(equal(bfh[id], fh[id]))
{
jog[id] = str_to_num(jogok)
a_honap[id] = str_to_num(honap2)
a_nap[id] = str_to_num(nap2)
a_ev[id] = str_to_num(ev2)
return
}
}
}
fclose(file)
}
public hasznalo(id)
{
new adat[32]
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(equal(adat, ""))
return PLUGIN_HANDLED
bfh[id] = adat
irt[id] = 1
admin_tolt(id)
admin_menu(id)
return PLUGIN_HANDLED
}
public szo(id)
{
new adat[32]
read_args(adat, charsmax(adat))
remove_quotes(adat)
if(equal(adat, ""))
return PLUGIN_HANDLED
bjsz[id] = adat
irt2[id] = 1
admin_menu(id)
return PLUGIN_HANDLED
}
public handlesay(id)
{
new message[192], Name[32], none[2][32], chat[192], rang[32]
read_args(message, 191)
remove_quotes(message)
formatex(none[0], 31, ""), formatex(none[1], 31, " ")
if (message[0] == '@' || message[0] == '#' || message[0] == '!' || equal (message, ""))
return PLUGIN_HANDLED;
if(!equali(message, none[0]) && !equali(message, none[1]))
{
get_user_name(id, Name, 31);
if(jog[id] == 1)
rang = "TULAJDONOS"
else if(jog[id] == 2)
rang = "KONFIGOS"
else if(jog[id] == 3)
rang = "FŐADMIN"
else if(jog[id] == 4)
rang = "MODERÁTOR"
else if(jog[id] == 5)
rang = "ADMIN"
else if(jog[id] == 6)
rang = "INGYEN ADMIN"
else if(jog[id] == 7)
rang = "PRÓBAIDŐ"
if(belepve[id] == 1)
{
formatex(chat, 191, "^4[%s]^3%s^1 :^1 %s",rang, Name, message)
}
else
formatex(chat, 191, "^4[JÁTÉKOS]^3%s^1 :^1 %s",Name, message)
switch(cs_get_user_team(id))
{
case 1: ColorChat(0, RED, chat)
case 2: ColorChat(0, BLUE, chat)
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
ColorChat(0, GREY, chat)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
stock print_color(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
replace_all(msg, 190, "á", "á")
replace_all(msg, 190, "é", "Ă©")
replace_all(msg, 190, "í", "Ă")
replace_all(msg, 190, "ó", "Ăł")
replace_all(msg, 190, "ö", "ö")
replace_all(msg, 190, "ő", "Ĺ‘")
replace_all(msg, 190, "ú", "Ăş")
replace_all(msg, 190, "ü", "ĂĽ")
replace_all(msg, 190, "ű", "ű")
replace_all(msg, 190, "Á", "Ă")
replace_all(msg, 190, "É", "É")
replace_all(msg, 190, "Í", "ĂŤ")
replace_all(msg, 190, "Ó", "Ă“")
replace_all(msg, 190, "Ö", "Ă–")
replace_all(msg, 190, "Ő", "Ĺ")
replace_all(msg, 190, "Ú", "Ăš")
replace_all(msg, 190, "Ü", "Ăś")
replace_all(msg, 190, "Ű", "Ĺ°")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
return PLUGIN_HANDLED
}