//===== eAthena Script ======================================= //= IP Ban NPC //===== By =================================================== //= lllchrislll //===== Version ============================================== //= 1.0 Remake of a older version // Re-making the time calculation //===== Compatible With ====================================== //= Every eAthena Version //===== Description ========================================== //= Allows you the IP Ban someone. //===== Comments ============================================= //= None... //============================================================ help_lobby,133,159,4 script Mikey 948,{ set .@n$,"[Mikey]"; set .@gm_access,60; set @day_feb,28; set @time$,gettimestr("%Y-%m/%d %H:%M:%S",21); set @day,gettimestr("%d",10); set @month,gettimestr("%m",10); set @year,gettimestr("%Y",10); set @day_calc,@day + 7; if(@day_calc > 31 && (@month == 1 || @month == 3 || @month == 5 || @month == 7 || @month == 8 || @month == 10 || @month == 12)) { set @day_calc,@day_calc - 31; if(@month != 12) { set @month,@month + 1; } else if(@month == 12) { set @month,1; } } else if(@day_calc > @day_feb && (@month == 2)) { set @day_calc,@day_calc - @day_feb; } else if(@day_calc > 30 && (@month == 4 || @month == 6 || @month == 9 || @month == 11)) { set @day_calc,@day_calc - 30; } set @month_calc,@month + 1; if(@month_calc > 12) { set @month_calc,@month_calc - 12; set @year,@year + 1; } set @year_calc1,@year + 1; set @year_calc2,@year + 2; set @list$,""; set @rtime$,""; set @reason$,""; setarray @ban_time$[1],gettimestr(""+@year+"-"+@month+"/"+@day_calc+" %H:%M:%S",21), gettimestr(""+@year+"-"+@month_calc+"/"+@day+" %H:%M:%S",21), gettimestr(""+@year_calc1+"-"+@month+"/"+@day+" %H:%M:%S",21), gettimestr(""+@year_calc2+"-"+@month+"/"+@day+" %H:%M:%S",21); if(getgmlevel() < .@gm_access) { mes .@n$; mes "Sorry, but I can't help you."; close; } else if(getgmlevel() >= .@gm_access) { if(getgmlevel() >= 99) { mes "Actual Time:"; mes @time$; mes "(Test Time for 1 Week:)"; mes "("+@day_calc+") (Day)"; mes @ban_time$[1]; mes "(Test Time for 1 Month:)"; mes "("+@month_calc+") (Month)"; mes @ban_time$[2]; mes "(Test Time for 1 Year:)"; mes "("+@year_calc1+") (Year)"; mes @ban_time$[3]; mes "(Test Time for 2 Year:)"; mes "("+@year_calc2+") (Year's)"; mes @ban_time$[4]; next; } mes .@n$; mes "Hello, "+strcharinfo(0)+"!"; mes "I can make an IP Ban for you."; mes "As well, I can display the current"; mes "IP Ban's and delete them."; mes "Valid duration's are:"; mes "1 Week, 1 Month, 1 Year, 2 Year's"; next; mes .@n$; mes "What do you like to do?"; switch(select("- Show IP List:- Add an Ban:- Delete an Ban")) { case 1: next; mes .@n$; mes "I will list now"; mes "the current IP Ban's"; mes "in your Chat Box."; close2; query_sql "SELECT `list` , `rtime` , `reason` FROM `ipbanlist` ORDER BY `list` DESC", @list$, @rtime$, @reason$; if(@list$ == "") { mes .@n$; mes "There are no entrys in the IP Ban List."; close; } dispbottom " IP / Ban Expire / Reason"; for(set @ei,0; @ei < getarraysize(@list$); set @ei,@ei + 1) { dispbottom ""+@list$[@ei]+" / "+@rtime$[@ei]+" / "+@reason$[@ei]+""; } end; case 2: next; mes .@n$; mes "Now type the Account Name or"; mes "Account ID of the Account"; mes "you want to ban and I will"; mes "search the IP logged to it."; next; t_again: if(select("- Account Name:- Account ID") == 1) { input @acc_n$; next; mes .@n$; if(@acc_n$ == "") { mes "Invalid Name, try again."; goto t_again;} mes "The inserted name is: "+@acc_n$+"."; mes "Is that correct?"; if(select("- Yes, it is.:- No, again please.") == 2) { goto t_again; } else { next; query_sql "SELECT `userid` FROM `login` WHERE `userid` = '"+@acc_n$+"'", @check_id$; if(@acc_n$ != @check_id$ || @check_id$ == "") { mes "Invalid Name, try again."; goto t_again;} dispbottom "Account Name: "+@acc_n$; } } else { input @acc_id; if(!@acc_id || @acc_id < 2000000) { mes "Invalid Value, try again."; goto t_again;} mes .@n$; mes "The inserted name is: "+@acc_id+"."; mes "Is that correct?"; if(select("- Yes, it is.:- No, again please.") == 2) { goto t_again; } else { next; query_sql "SELECT `account_id` FROM `login` WHERE `account_id` = '"+@acc_id+"'", @check_aid; if(@acc_id != @check_aid || !@check_aid) { mes "Invalid Account ID, try again."; goto t_again;} query_sql "SELECT `userid` FROM `login` WHERE `account_id` = '"+@acc_id+"'",@acc_n$; dispbottom "Account ID: "+@acc_id; } } next; mes .@n$; mes "Alright, so how"; mes "long do you want"; mes "to ban him/her?"; switch(select("- 1 Week Ban:- 1 Month Ban:- 1 Year Ban:- 2 Year's Ban")) { default: set @rtime$,@ban_time$[@menu]; break; } next; mes .@n$; mes "Now I need a reason, why do"; mes "you want to ban that Account."; input @reason$; if(@reason$ == "") { mes "Invalid Reason, try again."; goto t_again;} dispbottom "Reason: "+@reason$+""; mes "After the calculation, I will"; mes "need a confirmation again."; next; mes .@n$; mes "The Account \"" + @acc_n$+"\""; mes "will be banned until"; mes @rtime$; mes "duo the reason "+@reason$+"."; menu "Correct",-,"Not correct",t_again; next; mes .@n$; mes "Your IP Ban Request has been sent."; close2; query_sql "SELECT `last_ip` FROM `login` WHERE `userid` = '"+@acc_n$+"'", @last_ip$; query_sql "INSERT INTO `ipbanlist` ( `list` , `btime` , `rtime` , `reason`) VALUES ('"+@last_ip$+"' ,'"+@time$+"' , '"+@rtime$+"' , '"+@reason$+"')"; end; case 3: next; mes .@n$; mes "Please choose, which one"; mes "you want to delete:"; mes " "; query_sql "SELECT `list` , `rtime` , `reason` FROM `ipbanlist`", @list$, @rtime$, @reason$; if(@list$ == "") { mes "There are no entrys in the IP Ban List."; close; } set @ban_menu$,""; for(set @ei,0; @ei < getarraysize(@list$); set @ei,@ei + 1) { mes "Banned IP Nr. ^FF0000"+(@ei+1)+"^000000"; mes @list$[@ei]; mes "----Ban Expire:-----"; mes @rtime$[@ei]; mes "-----Reason:------"; mes @reason$[@ei]; mes "================"; set @ban_menu$,@ban_menu$ + "- "+ @list$[@ei]+":"; } set @ban_menu$,@ban_menu$ + "- Nothing"; if((prompt(@ban_menu$) - getarraysize(@list$)) > 0) { break; } else { next; set @ip,@menu - 1; mes .@n$; mes "You have choosen:"; mes " "; mes "Banned IP Nr. ^FF0000"+(@ip+1)+"^000000"; mes @list$[@ip]; mes "----Ban Expire:-----"; mes @rtime$[@ip]; mes "-----Reason:------"; mes @reason$[@ip]; mes "================"; mes " "; mes "Wanna delete this Entry?"; if(select("- Yes, please:- No, don't") - 1) { close; } else { next; mes .@n$; mes "I'll delete it now."; query_sql "DELETE FROM `ipbanlist` WHERE `list` = '"+@list$[@ip]+"'"; close; } } } } }