#include <amxmodx>
#define PLUGIN "DeRoiD Reg. System"
#define VERSION "1.0"
#define AUTHOR "DeRoiD"
#define VilagHaboru 1914
#pragma semicolon 1
new Felhasznalo[3][33][32], Jelszo[3][33][32], MenuMod[33], bool:Bejelentkezve[33], BeviteliMod[33], Ellenorizve[33];
new FajlUt[] = "addons/amxmodx/configs/deroidsregmenu.ini";
new FajlUtParancsok[] = "addons/amxmodx/configs/parancsok.ini";
new Prefix[] = "[Infó]";
new Menuk[4], Cvarok[2];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("REGFELHASZNALO", "Adatok");
register_clcmd("REGJELSZO", "Adatok");
register_clcmd("LOGFELHASZNALO", "Adatok");
register_clcmd("LOGJELSZO", "Adatok");
register_clcmd("say", "Parancsok");
register_clcmd("say_team", "Parancsok");
Menuk[0] = register_menuid("FoMenu");
register_menucmd(Menuk[0], 1023, "FoMenu");
Menuk[1] = register_menuid("RegMenu");
register_menucmd(Menuk[1], 1023, "RegMenu");
Menuk[2] = register_menuid("LogMenu");
register_menucmd(Menuk[2], 1023, "LogMenu");
Menuk[3] = register_menuid("KiMenu");
register_menucmd(Menuk[3], 1023, "KiMenu");
Cvarok[0] = register_cvar("AdatHossz", "0");
Cvarok[1] = register_cvar("SotetKepernyo", "0");
set_task(random_float(110.0, 150.0), "Hirdetes", VilagHaboru, _, _, "b");
Ellenorzes();
}
public Hirdetes()
{
print_color(0, "!g%s!y Ha le szeretnéd védeni a neved írd be:!g/reg", Prefix);
print_color(0, "!g%s!y Ha elfelejtetted a jelszavadat vedd fel velünk a kapcsolatot skypen:!gzo.om12", Prefix);
}
public Parancsok(id)
{
new Parancs[32];
read_args(Parancs, 31);
remove_quotes(Parancs);
if(equal(Parancs, "/reg") || equal(Parancs, "/register"))
{
Menu(id);
}
new TiltottParancsok[128], Fajl, Sor, Lekeres[2][32];
while((Fajl = read_file(FajlUtParancsok, Fajl, TiltottParancsok, 127, Sor)) != 0)
parse(TiltottParancsok, Lekeres[0], 31, Lekeres[1], 31);
if(equal(Parancs, Lekeres[0]) && !Bejelentkezve[id])
{
print_color(id, "!g[%s]!y Jelentkezz be!!t /reg", Prefix);
if(str_to_num(Lekeres[1]) == 1)
{
Menu(id);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public Ellenorzes()
{
if(!fopen(FajlUt, "r"))
{
log_amx("DeRoiD Reg. System adatbazis letrehozva!");
write_file(FajlUt, "");
}
if(!fopen(FajlUtParancsok, "r"))
{
log_amx("Parancs adatbazis letrehozva!");
write_file(FajlUtParancsok, "");
}
fclose(fopen(FajlUt, "r"));
}
public Menu(id)
{
if(!Bejelentkezve[id] && get_pcvar_num(Cvarok[1]) == 1)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, id);
write_short(100000);
write_short(100000);
write_short(1<<2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
new String[5][128], MenuString[512], Gomb;
format(String[0], 127, "\r.:[R\w4Z3\yR]:. \w|\yPaintball\w|^n\wRegisztráció^n^n");
if(MenuMod[id] == 1 && !Bejelentkezve[id])
{
format(String[1], 127, "\y1. \rFelhasználónév:\d %s^n", Felhasznalo[0][id]);
format(String[2], 127, "\y2. \rJelszó:\d %s^n^n", Jelszo[0][id]);
format(String[3], 127, "\y3. \rRegisztrálok!^n^n");
format(String[4], 127, "\y0. \dVissza a főmenübe!");
add(MenuString, 511, String[0]);
add(MenuString, 511, String[1]);
add(MenuString, 511, String[2]);
add(MenuString, 511, String[3]);
add(MenuString, 511, String[4]);
Gomb = (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<9);
show_menu(id, Gomb, MenuString, -1, "RegMenu");
}
else if(MenuMod[id] == 2 && !Bejelentkezve[id])
{
format(String[1], 127, "\y1. \rFelhasználónév:\d %s^n", Felhasznalo[1][id]);
format(String[2], 127, "\y2. \rJelszó:\d %s^n^n", Jelszo[1][id]);
format(String[3], 127, "\y3. \rBelépek!^n^n");
format(String[4], 127, "\y0. \dVissza a főmenübe!");
add(MenuString, 511, String[0]);
add(MenuString, 511, String[1]);
add(MenuString, 511, String[2]);
add(MenuString, 511, String[3]);
add(MenuString, 511, String[4]);
Gomb = (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<9);
show_menu(id, Gomb, MenuString, -1, "LogMenu");
}
else if(!Bejelentkezve[id])
{
format(String[1], 127, "\y1. \rRegisztrálok^n");
format(String[2], 127, "\y2. \rBelépek^n^n");
format(String[3], 127, "\y0. \dKilépés");
add(MenuString, 511, String[0]);
add(MenuString, 511, String[1]);
add(MenuString, 511, String[2]);
add(MenuString, 511, String[3]);
Gomb = (1<<0 | 1<<1 | 1<<2 | 1<<9);
show_menu(id, Gomb, MenuString, -1, "FoMenu");
}
else
{
format(String[1], 127, "\y1. \rKijelentkezés^n^n");
format(String[2], 127, "\y0. \dKilépés");
add(MenuString, 511, String[0]);
add(MenuString, 511, String[1]);
add(MenuString, 511, String[2]);
Gomb = (1<<0 | 1<<9);
show_menu(id, Gomb, MenuString, -1, "KiMenu");
}
}
public KiMenu(id, Gomb)
{
Gomb++;
switch(Gomb)
{
case 1:{
JatekosNullazas(id);
Menu(id);
}
default:{
show_menu(id, 0, "^n", 1);
}
}
}
public FoMenu(id, Gomb)
{
Gomb++;
switch(Gomb)
{
case 1:{
MenuMod[id] = 1;
Menu(id);
}
case 2:{
MenuMod[id] = 2;
Menu(id);
}
default:{
BeviteliMod[id] = 0;
MenuMod[id] = 0;
show_menu(id, 0, "^n", 1);
}
}
}
public LogMenu(id, Gomb)
{
Gomb++;
switch(Gomb)
{
case 1:{
BeviteliMod[id] = 3;
MenuMod[id] = 2;
Menu(id);
client_cmd(id, "messagemode LOGFELHASZNALO");
}
case 2:{
BeviteliMod[id] = 4;
MenuMod[id] = 2;
Menu(id);
client_cmd(id, "messagemode LOGJELSZO");
}
case 3:{
if(strlen(Felhasznalo[1][id][id]) < get_pcvar_num(Cvarok[0]) && strlen(Jelszo[1][id][id]) < get_pcvar_num(Cvarok[0]))
{
print_color(id, "!g%s!y Sikertelen belépés!", Prefix);
Menu(id);
}
else if(equal(Felhasznalo[2][id][id], Felhasznalo[1][id][id]) && equal(Jelszo[2][id][id], Jelszo[1][id][id]))
{
Bejelentkezve[id] = true;
Felhasznalo[1][id] = "";
Jelszo[1][id] = "";
print_color(id, "!g%s!y Sikeresen beléptél!", Prefix);
if(get_pcvar_num(Cvarok[1]) == 1)
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, id);
write_short(0);
write_short(0);
write_short(1<<2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
}
}
}
default:{
BeviteliMod[id] = 0;
MenuMod[id] = 0;
Menu(id);
}
}
}
public RegMenu(id, Gomb)
{
Gomb++;
switch(Gomb)
{
case 1:{
BeviteliMod[id] = 1;
MenuMod[id] = 1;
Menu(id);
client_cmd(id, "messagemode REGFELHASZNALO");
}
case 2:{
BeviteliMod[id] = 2;
MenuMod[id] = 1;
Menu(id);
client_cmd(id, "messagemode REGJELSZO");
}
case 3:{
if(strlen(Felhasznalo[0][id][id]) < get_pcvar_num(Cvarok[0]) && strlen(Jelszo[0][id][id]) < get_pcvar_num(Cvarok[0]))
{
print_color(id, "!g%s!y Sikertelen regisztráció!", Prefix);
BeviteliMod[id] = 0;
MenuMod[id] = 0;
Menu(id);
}
else
{
new Sor[256], Lekeres[32], Fajl, Talalat;
Fajl = fopen(FajlUt, "rt");
while(!feof(Fajl))
{
fgets(Fajl, Sor, 255);
if(Sor[0] == ';' || strlen(Sor) < 3)
continue;
parse(Sor, Lekeres, 31);
if(equal(Lekeres, Felhasznalo[0][id]))
{
Talalat++;
}
}
fclose(Fajl);
if(Talalat > 0)
{
print_color(id, "!g%s!t %s!y felhasználónév már foglalt!", Prefix, Felhasznalo[0][id]);
SikertelenBevitel(id);
return PLUGIN_HANDLED;
}
else if(Talalat == 0)
{
Felhasznalo[2][id] = Felhasznalo[0][id];
Jelszo[2][id] = Jelszo[0][id];
print_color(id, "!g%s!y Sikeres regisztráció! !g[Felhasználónév:!t %s!g & Jelszó:!t %s!g]", Prefix, Felhasznalo[2][id], Jelszo[2][id]);
MenuMod[id] = 0;
Menu(id);
Mentes(id);
}
}
}
default:{
BeviteliMod[id] = 0;
MenuMod[id] = 0;
Menu(id);
}
}
return PLUGIN_HANDLED;
}
public Adatok(id)
{
if(Bejelentkezve[id] || BeviteliMod[id] == 0)
return PLUGIN_HANDLED;
new Adat[32];
read_args(Adat, charsmax(Adat));
remove_quotes(Adat);
if(strlen(Adat[id]) < get_pcvar_num(Cvarok[0]))
{
if(BeviteliMod[id] == 1 || BeviteliMod[id] == 2)
print_color(id, "!g%s!y Felhasználónak minimum!t %d!y karakterből kell, hogy álljon!", Prefix, get_pcvar_num(Cvarok[0])+1);
if(BeviteliMod[id] == 3 || BeviteliMod[id] == 4)
print_color(id, "!g%s!y Jelszónak minimum!t %d!y karakterből kell, hogy álljon!", Prefix, get_pcvar_num(Cvarok[0])+1);
if(!equal("", Adat))
SikertelenBevitel(id);
}
else
{
if(BeviteliMod[id] == 1)
{
new Sor[256], Lekeres[32], Fajl, Talalat;
Fajl = fopen(FajlUt, "rt");
while(!feof(Fajl))
{
fgets(Fajl, Sor, 255);
if(Sor[0] == ';' || strlen(Sor) < 3)
continue;
parse(Sor, Lekeres, 31);
if(equal(Lekeres, Adat))
{
Talalat++;
}
}
fclose(Fajl);
if(Talalat > 0)
{
print_color(id, "!g%s!t %s!y felhasználónév már foglalt!", Prefix, Adat);
SikertelenBevitel(id);
return PLUGIN_HANDLED;
}
else if(Talalat == 0)
{
Felhasznalo[0][id] = Adat;
}
}
else if(BeviteliMod[id] == 2)
{
Jelszo[0][id] = Adat;
}
else if(BeviteliMod[id] == 3)
{
Felhasznalo[1][id] = Adat;
Betoltes(id);
}
else if(BeviteliMod[id] == 4)
{
Jelszo[1][id] = Adat;
Betoltes(id);
}
}
Menu(id);
return PLUGIN_CONTINUE;
}
public SikertelenBevitel(id)
{
if(BeviteliMod[id] == 1)
client_cmd(id, "messagemode REGFELHASZNALO");
else if(BeviteliMod[id] == 2)
client_cmd(id, "messagemode REGJELSZO");
else if(BeviteliMod[id] == 3)
client_cmd(id, "messagemode LOGFELHASZNALO");
else if(BeviteliMod[id] == 4)
client_cmd(id, "messagemode LOGJELSZO");
}
public Mentes(id)
{
new FajlMentes[128], Fajl;
Fajl = fopen(FajlUt, "at+");
format(FajlMentes, sizeof FajlMentes - 1, "^"%s^" ^"%s^"^n", Felhasznalo[0][id], Jelszo[0][id]);
fprintf(Fajl, FajlMentes);
fclose(Fajl);
}
public Betoltes(id)
{
new Sor[256], Lekeres[2][32], Fajl;
Fajl = fopen(FajlUt, "rt");
while(!feof(Fajl))
{
fgets(Fajl, Sor, 255);
if(Sor[0] == ';' || strlen(Sor) < 3)
continue;
parse(Sor, Lekeres[0], 31, Lekeres[1], 31);
if(equal(Lekeres[0], Felhasznalo[1][id]))
{
Felhasznalo[2][id] = Lekeres[0];
Jelszo[2][id] = Lekeres[1];
break;
}
}
fclose(Fajl);
}
public client_connect(id)
{
JatekosNullazas(id);
}
public client_disconnect(id)
{
JatekosNullazas(id);
}
public JatekosNullazas(id)
{
Ellenorizve[id] = 0;
MenuMod[id] = 0;
Bejelentkezve[id] = false;
BeviteliMod[id] = 0;
for(new Szam; Szam < 2; Szam++)
{
Felhasznalo[Szam][id] = "";
Jelszo[Szam][id] = "";
}
}
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");
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;
}