Jump to content

myieee

Members
  • Posts

    83
  • Joined

  • Last visited

Posts posted by myieee

  1. Hi . I would like to request an event warper here are the info

     

    1st. GM Activation
    2nd. it should be hide/enable when it activates or whisper by the GM

    3rd. There will be 2 warps in the same map with different coordinates (ex : prontera 123 123 and prontera 124 124)

    4th. When the players are entering the Event Warper. there will be a chance to go to the destination (50% chance at prontera 123 123) and (50% chance at prontera 124 124)

    5th. Im using eAthena

     

    thanks rathena and scripter

  2. Yes its possible just need to add a special case in the src with a switch(rnd()%4){} or something similar leading to 4 different locations.

    if it is then how to add a special case in the src ? or can you give me an example btw im using eathena emulator 

  3. I was looking for Capture the Flag Event script that works in eathena. and it seems like it doesnt exist anymore. so if there's a CTF Script that works in eathena .i like the script of Memory Killer CTC with auto reward  thank you 

  4. Is it possible to have 4 different coordinates in @go ? for example when i use @go 0 . my spawn coordinate is 145 , 155 so I want to add a different coordinate so it wont be stuck or stay in the same spawn point. 

  5. prontera,165,174,4	script	WoE Information	835,{ //If you wish to change the name, search for all 'WoE Information' and replace them with the desired name.
    //To do:
    //GM:
    //Player: Warp to treasury when WoE isn't active?
     
            if (getgmlevel()>=$woe_mingmlv) goto L_Main;
    L_View:
            mes "[WoE Information]";
            mes "Welcome to the WoE Information NPC, the current WoE times are as follows:";
            callsub S_Listing2;
            set @temp$, "";
            for (set @i, 0; @i < getarraysize($@woes3_pl_player$); set @i, @i+1) {
                    set @temp$, @temp$+":"+$@woes3_pl_playermenu$[@i];
            }
            menu @temp$,-,"Exit",L_Exit;
            next;
            if (getmapxy(@ignore$,@ignore,@ignore,1,"WoES3Pl_R"+$@woes3_pl_player$[@menu-2]) != -1) { callfunc("WoES3Pl_"+$@woes3_pl_player$[@menu-2]); } else { mes "Critical error. Please report this to a GM!"; }
            next; goto L_View;
    L_Exit:
            close;
    S_Listing:
            deletearray @ar_id[0], 128; deletearray @ar_town[0], 128; deletearray @ar_castle[0], 128; deletearray @ar_sday[0], 128; deletearray @ar_shour[0], 128;
            deletearray @ar_smin[0], 128; deletearray @ar_stick[0], 128; deletearray @ar_svar[0], 128; deletearray @ar_eday[0], 128; deletearray @ar_ehour[0], 128;
            deletearray @ar_emin[0], 128; deletearray @ar_etick[0], 128; deletearray @ar_evar[0], 128;
            set @results, query_sql("select * from `woe_times` order by `st` ASC",@ar_id,@ar_town,@ar_castle,@ar_sday,@ar_shour,@ar_smin,@ar_stick,@ar_svar,@ar_eday,@ar_ehour,@ar_emin,@ar_etick,@ar_evar,@ignore);
            for (set @temp,0; @temp<@results; set @temp, @temp+1) {
                    set @temp$, "";
                    if (gettimetick(2) >= @ar_stick[@temp] && gettimetick(2) < @ar_etick[@temp]) { set @temp$, @temp$+"^339900+"; } else { set @temp$, @temp$+"^FF0000-"; }
                    if (@ar_town[@temp]==127) { set @temp$, @temp$+"^000000All"; } else {
                            set @temp_, @ar_town[@temp];
                            if (@temp_>=64) { set @temp$, @temp$+"^FFFF00Ar"; set @temp_, @temp_-64; }
                            if (@temp_>=32) { set @temp$, @temp$+"^FF0000Sc"; set @temp_, @temp_-32; }
                            if (@temp_>=16) { set @temp$, @temp$+"^9900CCNo"; set @temp_, @temp_-16; }
                            if (@temp_>=8) { set @temp$, @temp$+"^808080Pr"; set @temp_, @temp_-8; }
                            if (@temp_>=4) { set @temp$, @temp$+"^339900Pa"; set @temp_, @temp_-4; }
                            if (@temp_>=2) { set @temp$, @temp$+"^0066FFGe"; set @temp_, @temp_-2; }
                            if (@temp_==1) set @temp$, @temp$+"^FF9900Al";
                            set @temp$, @temp$+"^000000";
                    }
                    set @temp$, @temp$+" ";
                    if (@ar_castle[@temp]==31) { set @temp$, @temp$+"All"; } else {
                            set @temp_, @ar_castle[@temp];
                            set @tmp, 16;
                            for (set .@i, 5; .@i>0; set .@i,.@i-1) { if (@temp_>=@tmp) { set @temp$, @temp$+.@i; set @temp_,@temp-@tmp; } set @tmp, @tmp/2; }
                    }
                    set @temp$, @temp$+" ";
                    for (set .@i, 1; .@i<3; set .@i, .@i+1) {
                            set @temp$, @temp$+callfunc("daytostr",0,getd("@ar_"+((.@i==1)?"s":"e")+"day["+@temp+"]"));
                            if (.@i==1) { set @temp$, @temp$+((@ar_shour[@temp]<10)?"0":"")+@ar_shour[@temp]+";"+((@ar_smin[@temp]<10)?"0":"")+@ar_smin[@temp]+"-"; } else { set @temp$, @temp$+((@ar_ehour[@temp]<10)?"0":"")+@ar_ehour[@temp]+";"+((@ar_emin[@temp]<10)?"0":"")+@ar_emin[@temp]; }
                    }
                    set @results$,@results$+@temp$+":";
            }
            return;
    S_Listing2:
            deletearray @ar_id[0], 128; deletearray @ar_town[0], 128; deletearray @ar_castle[0], 128; deletearray @ar_sday[0], 128; deletearray @ar_shour[0], 128;
            deletearray @ar_smin[0], 128; deletearray @ar_stick[0], 128; deletearray @ar_svar[0], 128; deletearray @ar_eday[0], 128; deletearray @ar_ehour[0], 128;
            deletearray @ar_emin[0], 128; deletearray @ar_etick[0], 128; deletearray @ar_evar[0], 128;
            set @results, query_sql("select * from `woe_times` order by `st` ASC",@ar_id,@ar_town,@ar_castle,@ar_sday,@ar_shour,@ar_smin,@ar_stick,@ar_svar,@ar_eday,@ar_ehour,@ar_emin,@ar_etick,@ar_evar,@ignore);
            if (!@results) { mes "There are no current WoE times!"; return; }
            for (set @temp,0; @temp<@results; set @temp, @temp+1) {
                    mes "--";
                    set @temp$, "";
                    if (gettimetick(2) >= @ar_stick[@temp] && gettimetick(2) < @ar_etick[@temp]) { set @temp$, @temp$+"^339900Active: ^000000Towns-"; } else { set @temp$, @temp$+"^FF0000Unactive: ^000000Towns-"; }
                    if (@ar_town[@temp]==127) { set @temp$, @temp$+"^000000All "; } else {
                            set @temp_, @ar_town[@temp];
                            if (@temp_>=64) { set @temp$, @temp$+"^FFFF00Arunafeltz "; set @temp_, @temp_-64; }
                            if (@temp_>=32) { set @temp$, @temp$+"^FF0000Schwartzvelt "; set @temp_, @temp_-32; }
                            if (@temp_>=16) { set @temp$, @temp$+"^9900CCNovice "; set @temp_, @temp_-16; }
                            if (@temp_>=8) { set @temp$, @temp$+"^808080Prontera "; set @temp_, @temp_-8; }
                            if (@temp_>=4) { set @temp$, @temp$+"^339900Payon "; set @temp_, @temp_-4; }
                            if (@temp_>=2) { set @temp$, @temp$+"^0066FFGeffen "; set @temp_, @temp_-2; }
                            if (@temp_==1) set @temp$, @temp$+"^FF9900Aldebaran ";
                            set @temp$, @temp$+"^000000";
                    }
                    mes @temp$;
                    set @temp$, "";
                    if (@ar_castle[@temp]==31) { set @temp$, @temp$+"All Castles "; } else {
                            set @temp_, @ar_castle[@temp];
                            set @tmp, 16;
                            mes "Castles-";
                            for (set .@i, 5; .@i>0; set .@i,.@i-1) { if (@temp_>=@tmp) { set @temp$, @temp$+.@i; set @temp_,@temp-@tmp; } set @tmp, @tmp/2; }
                    }
                    mes @temp$;
                    set @temp$, "";
                    for (set .@i, 1; .@i<3; set .@i, .@i+1) {
                            set @temp$, @temp$+callfunc("daytostr",1,getd("@ar_"+((.@i==1)?"s":"e")+"day["+@temp+"]"));
                            if (.@i==1) { set @temp$, @temp$+" "+((@ar_shour[@temp]<10)?"0":"")+@ar_shour[@temp]+":"+((@ar_smin[@temp]<10)?"0":"")+@ar_smin[@temp]+"-"; } else { set @temp$, @temp$+" "+((@ar_ehour[@temp]<10)?"0":"")+@ar_ehour[@temp]+":"+((@ar_emin[@temp]<10)?"0":"")+@ar_emin[@temp]; }
                    }
                    mes @temp$;
            }
            return;
    L_Main:
            mes "[WoE Time Setter]";
            mes "Hello there, how can I help you GM?";
            next;
            menu "Manage WoE Times",L_ModifyListing,"Start/Stop WoE",L_ManualWoE,"Plug-ins",L_Plugins,"Settings",L_Settings,"Test Player View",L_View,"Exit",-;
            close;
    L_Plugins:
            set @temp$, "";
            for (set @i, 0; @i < getarraysize($@woes3_pl_gm$); set @i, @i+1) {
                    set @temp$, @temp$+":"+$@woes3_pl_gmmenu$[@i];
            }
            menu @temp$,-,"Reinitialize Plugins",L_Reinit,"Back",L_Main;
            if (getmapxy(@ignore$,@ignore,@ignore,1,"WoES3Pl_R"+$@woes3_pl_gm$[@menu-2]) != -1) { callfunc("WoES3Pl_"+$@woes3_pl_gm$[@menu-2]); } else { mes "Error loading function. Please make sure the plugin is named properly!"; }
            next; goto L_Plugins;
    L_Reinit:
            deletearray $@woes3_pl_playermenu$[0], 128;
            deletearray $@woes3_pl_player$[0], 128;
            deletearray $@woes3_pl_gmmenu$[0], 128;
            deletearray $@woes3_pl_gm$[0], 128;
            donpcevent "::OnLoadPlugins";
            dispbottom "Plugins initialized";
            sleep2 500;
            goto L_Plugins;
    L_ModifyListing:
            set @results$, "";
            callsub S_Listing;
            menu @results$,-,"Add new time",L_ModifyAdd,"Back",L_Main;
            set @sel_modify, @menu-1;
            set @adding, 0;
            menu "Modify time",L_ModifyTown_Main,"Delete time",-,"Back",L_ModifyListing;
            if (gettimetick(2)>=@ar_stick[@sel_modify]&&gettimetick(2)<@ar_etick[@sel_modify]) {
                    dispbottom "The selected WoE is currently active, if you delete it it will automatically stop! Proceed?";
                    menu "Yes",-,"No",L_ModifyAdd;
                    callfunc("WoE_Status",0,@ar_town[@sel_modify],@ar_castle[@sel_modify]);
            }
            query_sql("delete from `woe_times` where `id` = '"+@ar_id[@sel_modify]+"'");
            dispbottom "WoE time deleted!";
            set $woe_chatinfo, 0;
            goto L_ModifyListing;
    L_ModifyAdd:
            set @adding, 1;
    L_ModifyTown_Main: //@sel_modify is passed from the selection of what exisitng time to modify...
            if (@adding) {
                    set @sel, 0;
                    setarray @sel_town[1], 0, 0, 0, 0, 0, 0, 0;
                    set @set_castle, 0;
                    set @set_time, 0;
            } else {
                    set @set_castle, 1;
                    set @set_time, 1;
                    set @temp__, 7;
                    set @temp_, @ar_town[@sel_modify];
                    set @temp, 64;
                    set @sel, 0;
                    for (set .@i, 7; .@i>0; set .@i, .@i-1) { if (@temp_>=@temp) { set @sel_town[.@i], 1; set @temp_, @temp_-@temp; set @sel, @sel+1; } else { set @sel_town[.@i], 0; } set @temp, @temp/2; }
                    set @temp_, @ar_castle[@sel_modify];
                    set @temp, 16;
                    set @sel2, 0;
                    for (set .@i, 5; .@i>0; set .@i, .@i-1) { if (@temp_>=@temp) { set @sel_castle[.@i], 1; set @temp_, @temp_-@temp; set @sel2, @sel2+1; } else { set @sel_castle[.@i], 0; } set @temp, @temp/2; }
                    set @sday, @ar_sday[@sel_modify];
                    set @shour, @ar_shour[@sel_modify];
                    set @smin, @ar_smin[@sel_modify];
                    set @svar, @ar_svar[@sel_modify];
                    set @eday, @ar_eday[@sel_modify];
                    set @ehour, @ar_ehour[@sel_modify];
                    set @emin, @ar_emin[@sel_modify];
                    set @evar, @ar_evar[@sel_modify];
            }
            dispbottom "Select the town(s) you wish this WoE time to apply to. If the name is green it means it's enabled, red means disabled.";
    L_ModifyTown_Sub:
            menu ((@sel_town[1])?"^339900":"^FF0000")+$woe_towns$[1]+":"+((@sel_town[2])?"^339900":"^FF0000")+$woe_towns$[2]+":"+((@sel_town[3])?"^339900":"^FF0000")+$woe_towns$[3]+":"+((@sel_town[4])?"^339900":"^FF0000")+$woe_towns$[4]+":"+((@sel_town[5])?"^339900":"^FF0000")+$woe_towns$[5]+":"+((@sel_town[6])?"^339900":"^FF0000")+$woe_towns$[6]+":"+((@sel_town[7])?"^339900":"^FF0000")+$woe_towns$[7]+":"+((@sel==7)?"^339900":"^FF0000")+$woe_towns$[8],-,"^000000Proceed",L_ModifyCastle_Main,"Back",L_ModifyListing;
            if (@menu==8) if (@sel<7) { setarray @sel_town[1], 1, 1, 1, 1, 1, 1, 1; set @sel, 7; goto L_ModifyTown_Sub; } else { setarray @sel_town[1], 0, 0, 0, 0, 0, 0, 0; set @sel, 0; goto L_ModifyTown_Sub; }
            if (!@sel_town[@menu]) { set @sel_town[@menu], 1; set @sel, @sel+1; goto L_ModifyTown_Sub; } else { set @sel_town[@menu], 0; set @sel, @sel-1; goto L_ModifyTown_Sub; }
    L_ModifyCastle_Main:
            if (!@sel) { dispbottom "You must first select at least one town!"; goto L_ModifyTown_Sub; }
            set @town_code, 0;
            set @set_town, 0;
            if (@sel_town[1]) { set @town_code, @town_code+1; if (@sel==1) set @set_town, 1; }
            set @temp, 2;
            for (set .@i, 2; .@i<8; set .@i, .@i+1) { if (@sel_town[.@i]) { set @town_code, @town_code+@temp; if (@sel==1) set @set_town, .@i; } set @temp, @temp*2; }
            if (!@set_castle) { set @sel2, 5; setarray @sel_castle[1], 1, 1, 1, 1, 1; if (@sel==1 && @sel_town[5]) { set @sel2, 4; set @sel_castle[5], 0; } }
            set @set_castle, 1;
    L_ModifyCastle_Sub:
            if (@sel>1) {
                    menu ((@sel_castle[1])?"^339900":"^FF0000")+"Castle 1:"+((@sel_castle[2])?"^339900":"^FF0000")+"Castle 2:"+((@sel_castle[3])?"^339900":"^FF0000")+"Castle 3:"+((@sel_castle[4])?"^339900":"^FF0000")+"Castle 4:"+((@sel_castle[5])?"^339900":"^FF0000")+"Castle 5",-,"^000000Proceed",L_ModifyTime_Main,"Back",L_ModifyTown_Sub;
                    if (!@sel_castle[@menu]) { set @sel_castle[@menu], 1; set @sel2, @sel2+1; } else { set @sel_castle[@menu], 0; set @sel2, @sel2-1; }
                    goto L_ModifyCastle_Sub;
            } else {
                    menu ((@sel_castle[1])?"^339900":"^FF0000")+getd("$woe_cas"+@set_town+"_1$[1]")+":"+((@sel_castle[2])?"^339900":"^FF0000")+getd("$woe_cas"+@set_town+"_1$[2]")+":"+((@sel_castle[3])?"^339900":"^FF0000")+getd("$woe_cas"+@set_town+"_1$[3]")+":"+((@sel_castle[4])?"^339900":"^FF0000")+getd("$woe_cas"+@set_town+"_1$[4]")+((@set_town!=5)?":"+((@sel_castle[5])?"^339900":"^FF0000")+getd("$woe_cas"+@set_town+"_1$[5]"):""),-,"^000000Proceed",L_ModifyTime_Main,"Back",L_ModifyTown_Sub;
                    if (!@sel_castle[@menu]) { set @sel_castle[@menu], 1; set @sel2, @sel2+1; } else { set @sel_castle[@menu], 0; set @sel2, @sel2-1; }
                    goto L_ModifyCastle_Sub;
            }
            dispbottom "Select the castle(s) within the previously selected town(s) you wish this WoE time to apply to. If the name is green it means it's enabled, red means disabled.";
    L_ModifyTime_Main:
            if (!@sel2) { dispbottom "You must first select at least one castle!"; goto L_ModifyCastle_Sub; }
            set @cas_code, 0;
            if (@sel_castle[1]) set @cas_code, @cas_code+1;
            set @temp, 2;
            for (set .@i, 2; .@i<6; set .@i, .@i+1) { if (@sel_castle[.@i]) set @cas_code, @cas_code+@temp; set @temp, @temp*2; }
            if (!@set_time) {
                    set @sday, 0; set @shour, 0; set @smin, 0; set @svar, 0; set @eday, 0; set @ehour, 0; set @emin, 0; set @evar, 0;
            }
            dispbottom "Select the starting and ending time for the WoE, note the hour is in military time, i.e. 0=12AM, 10=10AM, 22=10PM. Variance is the total amount in seconds to make the time be randomized, ex: setting start to 60 would make the start time either start up to 30 seconds earlier, or start up to 30 seconds later.";
    L_ModifyTime_Sub:
            for (set .@i, 1; .@i<3; set .@i, .@i+1) setd("@temp"+.@i+"$", callfunc("daytostr",1,getd(((.@i==1)?"@sday":"@eday"))));
            menu "Start Day [^0066FF"+@temp1$+"^000000]:Start Hour [^0066FF"+@shour+"^000000]:Start Minute [^0066FF"+@smin+"^000000]:End Day [^0066FF"+@temp2$+"^000000]:End Hour [^0066FF"+@ehour+"^000000]:End Minute [^0066FF"+@emin+"^000000]:Start Variance [^0066FF"+@svar+"^000000]:End Variance [^0066FF"+@evar+"^000000]",-,"Proceed",L_ModifyFinish,"Back",L_ModifyCastle_Sub;
            switch(@menu) {
                    case 1: menu "Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday",-,"Cancel",L_ModifyTime_Sub; set @sday, @menu-1; break;
                    case 2: input @shour; if (@shour>23) set @shour, 0; break;
                    case 3: input @smin; if (@smin>59) set @smin, 0; break;
                    case 4: menu "Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday",-,"Cancel",L_ModifyTime_Sub; set @eday, @menu-1; break;
                    case 5: input @ehour; if (@ehour>23) set @ehour, 0; break;
                    case 6: input @emin; if (@emin>59) set @emin, 0; break;
                    case 7: input @svar; break;
                    case 8: input @evar; break;
            }
            goto L_ModifyTime_Sub;
    L_ModifyFinish:
            if (@sday==@eday) if (@shour==@ehour) if (@smin==@emin) { dispbottom "Your start time cannot be your end time!"; goto L_ModifyTime_Sub; }
            set $woe_chatinfo, 0;
            set @temp1, callfunc("WoE_TickCounter",@sday,@shour,@smin,@svar);
            set @temp2, callfunc("WoE_TickCounter",@eday,@ehour,@emin,@evar);
            if (@temp1>@temp2) set @temp2,@temp2+604800;
            if (@adding) {
                    query_sql("insert into `woe_times` (town,castle,sd,sh,sm,st,sv,ed,eh,em,et,ev,active) values ('"+@town_code+"', '"+@cas_code+"', '"+@sday+"', '"+@shour+"', '"+@smin+"', '"+@temp1+"','"+@svar+"','"+@eday+"', '"+@ehour+"', '"+@emin+"', '"+@temp2+"','"+@evar+"','0')");
            } else {
                    query_sql("update `woe_times` set town='"+@town_code+"', castle='"+@cas_code+"', sd='"+@sday+"', sh='"+@shour+"', sm='"+@smin+"',st='"+@temp1+"',sv='"+@svar+"',ed='"+@eday+"',eh='"+@ehour+"',em='"+@emin+"',et='"+@temp2+"',ev='"+@evar+"', active='0'  where `id` = '"+@ar_id[@sel_modify]+"'");
            }
            dispbottom "WoE time "+((@adding)?"added!":"modified!");
            goto L_ModifyListing;
    L_ManualWoE:
            dispbottom "Select the castle(s) to start or stop WoE for.";
            menu (($woe_cas1_2[1]||$woe_cas1_2[2]||$woe_cas1_2[3]||$woe_cas1_2[4]||$woe_cas1_2[5])?"^339900":"^FF0000")+$woe_towns$[1]+":"+(($woe_cas2_2[1]||$woe_cas2_2[2]||$woe_cas2_2[3]||$woe_cas2_2[4]||$woe_cas2_2[5])?"^339900":"^FF0000")+$woe_towns$[2]+":"+(($woe_cas3_2[1]||$woe_cas3_2[2]||$woe_cas3_2[3]||$woe_cas3_2[4]||$woe_cas3_2[5])?"^339900":"^FF0000")+$woe_towns$[3]+":"+(($woe_cas4_2[1]||$woe_cas4_2[2]||$woe_cas4_2[3]||$woe_cas4_2[4]||$woe_cas4_2[5])?"^339900":"^FF0000")+$woe_towns$[4]+":"+(($woe_cas5_2[1]||$woe_cas5_2[2]||$woe_cas5_2[3]||$woe_cas5_2[4]||$woe_cas5_2[5])?"^339900":"^FF0000")+$woe_towns$[5]+":"+(($woe_cas6_2[1]||$woe_cas6_2[2]||$woe_cas6_2[3]||$woe_cas6_2[4]||$woe_cas6_2[5])?"^339900":"^FF0000")+$woe_towns$[6]+":"+(($woe_cas7_2[1]||$woe_cas7_2[2]||$woe_cas7_2[3]||$woe_cas7_2[4])?"^339900":"^FF0000")+$woe_towns$[7],-,"^339900Enable all",-,"^FF0000Disable all",-,"^000000Back",L_Main;
            if (@menu==8) { set $woe_manual, 0; callfunc("WoE_Status",1,127,31); set $woe_manual, 1; goto L_ManualWoE; }
            if (@menu==9) { set $woe_manual, 0; callfunc("WoE_Status",0,127,31); set $woe_manual, 1; goto L_ManualWoE; }
            set @temp, 64;
            for (set .@i, 7; .@i>0; set .@i,.@i-1) { if (.@i==@menu) { set @town, @temp; set @town_, .@i; } set @temp, @temp/2; }
    L_ManualCastles:
            menu ((getd("$woe_cas"+@town_+"_2[1]"))?"^339900":"^FF0000")+getd("$woe_cas"+@town_+"_1$[1]")+":"+((getd("$woe_cas"+@town_+"_2[2]"))?"^339900":"^FF0000")+getd("$woe_cas"+@town_+"_1$[2]")+":"+((getd("$woe_cas"+@town_+"_2[3]"))?"^339900":"^FF0000")+getd("$woe_cas"+@town_+"_1$[3]")+":"+((getd("$woe_cas"+@town_+"_2[4]"))?"^339900":"^FF0000")+getd("$woe_cas"+@town_+"_1$[4]")+((@set_town!=5)?":"+((getd("$woe_cas"+@town_+"_2[5]"))?"^339900":"^FF0000")+getd("$woe_cas"+@town_+"_1$[5]"):""),-,"^339900Enable all",-,"^FF0000Disable all",-,"^000000Back",L_ManualWoE;
            if (@menu==6) { set $woe_manual, 0; callfunc("WoE_Status",1,@town,31); set $woe_manual, 1; goto L_ManualCastles; }
            if (@menu==7) { set $woe_manual, 0; callfunc("WoE_Status",0,@town,31); set $woe_manual, 1; goto L_ManualCastles; }
            set @temp, 16;
            for (set .@i, 5; .@i>0; set .@i,.@i-1) { if (.@i==@menu) { set @cas, @temp; set @cas_,.@i; } set @temp, @temp/2; }
            set $woe_manual, 0; callfunc("WoE_Status",((getd("$woe_cas"+@town_+"_2["+@cas_+"]"))?0:1),@town,@cas); set $woe_manual, 1;
            goto L_ManualCastles;
    L_Settings:
            menu (($woe_mobspawn)?"^339900":"^FF0000")+"Monster Spawns",-,(($woe_timerdisp)?"^339900":"^FF0000")+"Chatroom Timer Display",-,(($woe_tannounce)?"^339900":"^FF0000")+"Announce Treasure Spawns [Plug-in]",-,(($woe_announcebreaker)?"^339900":"^FF0000")+"Announce Emperium Breaker",-,"^000000Back",L_Main;
            switch(@menu) {
                    case 1: if ($woe_mobspawn) { set $woe_mobspawn, 0; } else { set $woe_mobspawn, 1; } break;
                    case 2: if ($woe_timerdisp) { set $woe_timerdisp, 0; } else { set $woe_timerdisp, 1; set $woe_chatinfo, 0; donpcevent "WoE Information::OnChatInfo"; } break;
                    case 3: if ($woe_tannounce) { set $woe_tannounce, 0; } else { set $woe_tannounce, 1; } break;
                    case 4: if ($woe_announcebreaker) { set $woe_announcebreaker, 0; } else { set $woe_announcebreaker, 1; } break;
            }
            goto L_Settings;
    OnInit:
            query_sql("CREATE TABLE IF NOT EXISTS `woe_times` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `town` TINYINT UNSIGNED NOT NULL, `castle` TINYINT UNSIGNED NOT NULL, `sd` TINYINT UNSIGNED NOT NULL, `sh` TINYINT UNSIGNED NOT NULL, `sm` TINYINT UNSIGNED NOT NULL, `st` BIGINT UNSIGNED NOT NULL, `sv` INTEGER UNSIGNED NOT NULL, `ed` TINYINT UNSIGNED NOT NULL, `eh` TINYINT UNSIGNED NOT NULL, `em` TINYINT UNSIGNED NOT NULL, `et` BIGINT UNSIGNED NOT NULL, `ev` INTEGER UNSIGNED NOT NULL, `active` TINYINT UNSIGNED NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;");
            set $woe_manual, 1; //Variable to know whether WoE was started by atcommand/manually through NPC, or through automatic timer.
            set $woe_mingmlv, 80; //The minimum GM level able to use the NPC
            setarray $woe_towns$[1], "Aldebaran", "Geffen", "Payon", "Prontera", "Novice Castles", "Schwartzvalt", "Arunafeltz", "All Castles"; //These are the town names, mostly for announcements
            setarray $woe_cas1_1$[1], getcastlename("aldeg_cas01"), getcastlename("aldeg_cas02"), getcastlename("aldeg_cas03"), getcastlename("aldeg_cas04"), getcastlename("aldeg_cas05"); //These are the  castle names
            setarray $woe_cas1_2[1], 0, 0, 0, 0, 0; //Aldebaran's agit status
            setarray $woe_cas1_3$[1], "aldeg_cas01", "aldeg_cas02", "aldeg_cas03", "aldeg_cas04", "aldeg_cas05";
            setarray $woe_cas2_1$[1], getcastlename("gefg_cas01"), getcastlename("gefg_cas02"), getcastlename("gefg_cas03"), getcastlename("gefg_cas04"), getcastlename("gefg_cas05"); //These are the castle names
            setarray $woe_cas2_2[1], 0, 0, 0, 0, 0; //Geffen's agit status
            setarray $woe_cas2_3$[1], "gefg_cas01", "gefg_cas02", "gefg_cas03", "gefg_cas04", "gefg_cas05";
            setarray $woe_cas3_1$[1], getcastlename("payg_cas01"), getcastlename("payg_cas02"), getcastlename("payg_cas03"), getcastlename("payg_cas04"), getcastlename("payg_cas05"); //These are the castle names
            setarray $woe_cas3_2[1], 0, 0, 0, 0, 0; //Payon's agit status
            setarray $woe_cas3_3$[1], "payg_cas01", "payg_cas02", "payg_cas03", "payg_cas04", "payg_cas05";
            setarray $woe_cas4_1$[1], getcastlename("prtg_cas01"), getcastlename("prtg_cas02"), getcastlename("prtg_cas03"), getcastlename("prtg_cas04"), getcastlename("prtg_cas05"); //These are the castle names
            setarray $woe_cas4_2[1], 0, 0, 0, 0, 0; //Prontera's agit status
            setarray $woe_cas4_3$[1], "prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "prtg_cas05";
            setarray $woe_cas5_1$[1], "Aldebaran Castle", "Geffen Castle", "Payon Castle", "Prontera Castle", "-"; //These are the castle names
            setarray $woe_cas5_2[1], 0, 0, 0, 0, 0; //Novice's agit status
            setarray $woe_cas6_1$[1], getcastlename("schg_cas01"), getcastlename("schg_cas02"), getcastlename("schg_cas03"), getcastlename("schg_cas04"), getcastlename("schg_cas05"); //These are the castle names
            setarray $woe_cas6_2[1], 0, 0, 0, 0, 0; //Schwartzvalt's agit status
            setarray $woe_cas6_3$[1], "schg_cas01", "schg_cas02", "schg_cas03", "schg_cas04", "schg_cas05";
            setarray $woe_cas7_1$[1], getcastlename("arug_cas01"), getcastlename("arug_cas02"), getcastlename("arug_cas03"), getcastlename("arug_cas04"), getcastlename("arug_cas05"); //These are the castle names
            setarray $woe_cas7_2[1], 0, 0, 0, 0, 0; //Arunafeltz's agit status
            setarray $woe_cas7_3$[1], "arug_cas01", "arug_cas02", "arug_cas03", "arug_cas04", "arug_cas05";
            agitend;
            query_sql "update `woe_times` set `active` = '0' where `active` = '1'";
            callfunc("WoE_Update");
            donpcevent "WoE Information::OnChatInfo";
            deletearray $@woes3_pl_playermenu$[0], 128;
            deletearray $@woes3_pl_player$[0], 128;
            deletearray $@woes3_pl_gmmenu$[0], 128;
            deletearray $@woes3_pl_gm$[0], 128;
            donpcevent "::OnLoadPlugins";
            while(1) callfunc("WoE_Init");
            end;
    OnChatInfo:
            while (1) {
                    delwaitingroom; //Memory vortex restraining bolt, please don't remove it for the sake of humanity.
                    if (!$woe_timerdisp) end;
                    if (.@woe_e-gettimetick(2) <= 0 || !$woe_chatinfo) { set .@timeset, query_sql("select st,et from `woe_times` order by `st` ASC",.@woe_s,.@woe_e); set $woe_chatinfo, 1; }
                    if (.@timeset) {
                            if (gettimetick(2)>.@woe_s) {
                                    set .@sec, .@woe_e-gettimetick(2);
                                    set .@day, .@sec / 86400;
                                    set .@hr, .@sec % 86400 / 3600;
                                    set .@min, .@sec % 3600 / 60;
                                    set .@sec, .@sec % 60;
                                    waitingroom "Ends: "+.@day+"d "+((.@hr<10)?"0":"")+.@hr+":"+((.@min<10)?"0":"")+.@min+((!.@hr&&!.@min&&.@sec<60)?":"+((.@sec<10)?"0":"")+.@sec:""),0;
                            } else {
                                    set .@sec, .@woe_s-gettimetick(2);
                                    set .@day, .@sec / 86400;
                                    set .@hr, .@sec % 86400 / 3600;
                                    set .@min, .@sec % 3600 / 60;
                                    set .@sec, .@sec % 60;
                                    waitingroom "Next: "+.@day+"d "+((.@hr<10)?"0":"")+.@hr+":"+((.@min<10)?"0":"")+.@min+((!.@hr&&!.@min&&.@sec<60)?":"+((.@sec<10)?"0":"")+.@sec:""),0;
                            }
                            if (.@hr||.@min>1) { sleep 60000-(gettime(1)*1000); } else { sleep 1000; }
                    } else { waitingroom "Next: N/A, none set!",0; sleep 60000-(gettime(1)*1000); }
            }
            end;
    OnAgitStart:
            if ($woe_manual) { callfunc("WoE_Status",1,31,31); }
            end;
    OnAgitStart2:
            if ($woe_manual) { callfunc("WoE_Status",1,96,31); }
            end;
    OnAgitEnd:
            if ($woe_manual) { callfunc("WoE_Status",0,31,31); }
            end;
    OnAgitEnd2:
            if ($woe_manual) { callfunc("WoE_Status",0,96,31); }
            end;
    OnWhisperGlobal:
            if (getgmlevel() < $woe_mingmlv) end;
            if (@whispervar0$ == "start") {
                    if (@whispervar1$ == "" && @whispervar2$ == "") dispbottom "Invalid syntax, type 'start#help' for assistance.";
                    else if (@whispervar1$ == "help") dispbottom "start#town_code#castle_code - Starts WoE for the specified town(s) and castle(s).";
                    else callfunc("WoE_Status",1,@whispervar1$,@whispervar2$);
            } else if (@whispervar0$ == "stop") {
                    if (@whispervar1$ == "" && @whispervar2$ == "") dispbottom "Invalid syntax, type 'stop#help' for assistance.";
                    else if (@whispervar1$ == "help") dispbottom "stop#town_code#castle_code - Stops WoE for the specified town(s) and castle(s).";
                    else callfunc("WoE_Status",0,@whispervar1$,@whispervar2$);
            } else if (@whispervar0$ == "talk") goto L_Main;
            else if (@whispervar0$ == "help") {
                    dispbottom "Welcome to the War of Emperium Setter 3 whisper help system.";
                    dispbottom "The following are commands that you can whisper to the NPC...";
                    dispbottom "    start#town_code#castle_code - Starts WoE for the specified town(s) and castle(s).";
                    dispbottom "    stop#town_code#castle_code - Stops WoE for the specified town(s) and castle(s).";
                    dispbottom "    talk - Opens dialog with the WoE Setter 3 NPC.";
                    dispbottom "    help - Displays this help information.";
                    dispbottom "Town code: A bitmask (Add them together to use multiple towns) code to specify what towns the command affects.";
                    dispbottom "Aldebaran=1, Geffen=2, Payon=4, Prontera=8, Novice=16, Schwartvalt=32, Arunafeltz=64, All=127.";
                    dispbottom "Castle code: A bitmask code to specify what castles the command affects.";
                    dispbottom "Castle 1=1, Castle 2=2, Castle 3=4, Castle 4=8, Castle 5=16, All=31.";
            } else dispbottom "Invalid syntax, type 'help' for assistance.";
            end;
    }
     
    //Returns the day name from a day #
    //arg0=Mode, 0=short, 1=full
    //arg1=Day #
    function	script	daytostr	{
            switch(getarg(1)) {
                    case 0: return ((getarg(0))?"Sunday":"Sun");
                    case 1: return ((getarg(0))?"Monday":"Mon");
                    case 2: return ((getarg(0))?"Tuesday":"Tue");
                    case 3: return ((getarg(0))?"Wednesday":"Wed");
                    case 4: return ((getarg(0))?"Thursday":"Thu");
                    case 5: return ((getarg(0))?"Friday":"Fri");
                    case 6: return ((getarg(0))?"Saturday":"Sat");
            }
            return;
    }
     
    //Function to acquire the time difference between now and the arguments in seconds
    //arg0=Start/end day
    //arg1=Start/end hour
    //arg2=Start/end minute
    //arg3=Random time variance
    function	script	WoE_TickCounter	{
            if	((getarg(0)>gettime(4))||(getarg(0)==gettime(4)&&getarg(1)>gettime(3))||(getarg(0)==gettime(4)&&getarg(1)==gettime(3)&&getarg(2)>gettime(2))) { set .@day, getarg(0)-gettime(4); } else { set .@day, 7-(gettime(4)-getarg(0));	}
            set .@hour, getarg(1)-gettime(3);
            set .@minute, getarg(2)-gettime(2);
            return gettimetick(2)+(.@day*86400)+(.@hour*3600)+(.@minute*60)+rand(-getarg(3)/2,getarg(3)/2)-gettime(1);
    }
     
    //Function to update the tick columns of past WoE times so that they may occur again!
    function	script	WoE_Update	{
            deletearray .@id[0], 128; deletearray .@sd[0], 128; deletearray .@sh[0], 128; deletearray .@sm[0], 128; deletearray .@st[0], 128; deletearray .@sv[0], 128;
            deletearray .@ed[0], 128; deletearray .@eh[0], 128; deletearray .@em[0], 128; deletearray .@et[0], 128; deletearray .@ev[0], 128;
            set .@results, query_sql("select  id,sd,sh,sm,st,sv,ed,eh,em,et,ev from `woe_times` where `et` <= '"+gettimetick(2)+"'",.@id,.@sd,.@sh,.@sm,.@st,.@sv,.@ed,.@eh,.@em,.@et,.@ev);
            set .@i, 0;
            for (set .@i,0; .@i<.@results; set .@i,.@i+1) { query_sql("update `woe_times` set `st` = '"+callfunc("WoE_TickCounter",.@sd[.@i],.@sh[.@i],.@sm[.@i],.@sv[.@i])+"', `et` = '"+callfunc("WoE_TickCounter",.@ed[.@i],.@eh[.@i],.@em[.@i],.@ev[.@i])+"', `active` = '0' where `id` = '"+.@id[.@i]+"'"); }
            return;
    }
     
    //Function to either start WoE or end it, depending on if the current time tick fits a valid time frame found in the SQL table
    function	script	WoE_Init	{
            deletearray .@stown[0], 128; deletearray .@scastle[0], 128; deletearray .@etown[0], 128; deletearray .@ecastle[0], 128;
            set .@ends, query_sql("select town,castle from `woe_times` where `et` <= '"+gettimetick(2)+"' and `active` = '1'",.@etown,.@ecastle);
            if (.@ends) { set $woe_chatinfo, 0; query_sql("update `woe_times` set `active` = '0' where `et` <= '"+gettimetick(2)+"'"); callfunc("WoE_Update"); }
            set .@starts, query_sql("select town,castle from `woe_times` where `st` <= '"+gettimetick(2)+"' and `et` > '"+gettimetick(2)+"' and `active` = '0'",.@stown,.@scastle);
            if (.@starts) query_sql("update `woe_times` set `active` = '1' where `st` <= '"+gettimetick(2)+"' and `et` > '"+gettimetick(2)+"'");
            set $woe_manual, 0;
            for (set .@i1, 0; .@i1<.@ends; set .@i1,.@i1+1 ) { //WOE END STUFF
                    callfunc("WoE_Status",0,.@etown[.@i1],.@ecastle[.@i1]);
            }
            for (set .@i1, 0; .@i1<.@starts; set .@i1,.@i1+1 ) { //WOE START STUFF
                    callfunc("WoE_Status",1,.@stown[.@i1],.@scastle[.@i1]);
            }
            set $woe_manual, 1;
            sleep 60000-(1000*gettime(1));
            return;
    }
     
    //The actual function that starts/stops WoE, called by other NPCs/Functions
    //arg0=Stop(0) or start(1)?
    //arg1=Town(s) bitmask, 127=All
    //arg2=Castle(s) bitmask, 31=All
    function	script	WoE_Status	{
            set .@tcode, getarg(1); set .@tcurrent, 64;
            for (set .@i_, 7; .@i_>0; set .@i_,.@i_-1) {
                    if (.@tcode>=.@tcurrent) {
                            if (.@i_>5) { if (!agitcheck2()&&getarg(0)) { agitstart2; } } else { if (!agitcheck()&&getarg(0)) { agitstart; }	}
                            set .@temp$, ""; set .@ccode, getarg(2); set .@ccurrent, 16;
                            for (set .@i, 5; .@i>0; set .@i,.@i-1) { if (.@ccode>=.@ccurrent) { if (getarg(0)) { if (.@i_!=6&&.@i_!=7) { if(.@tcurrent!=16) donpcevent "Agit#"+getd("$woe_cas"+.@i_+"_3$["+.@i+"]")+"::OnAgitStart_"; } else if (.@i_==7) { donpcevent "Manager#aru0"+.@i+"_02::OnAgitStart2_"; } else { donpcevent "Manager#sch0"+.@i+"_02::OnAgitStart2_"; } } else { if (.@i_!=6&&.@i_!=7) { if (.@tcurrent!=16) donpcevent "Agit#"+getd("$woe_cas"+.@i_+"_3$["+.@i+"]")+"::OnAgitEnd_"; } else if (.@i_==7) {donpcevent "Manager#aru0"+.@i+"_02::OnAgitEnd2_"; } else { donpcevent "Manager#sch0"+.@i+"_02::OnAgitEnd2_"; } } setd "$woe_cas"+.@i_+"_2["+.@i+"]", getarg(0); set .@temp$, .@temp$+getd("$woe_cas"+.@i_+"_1$["+.@i+"]")+((.@ccode>.@ccurrent)?", ":" "); set .@ccode, .@ccode-.@ccurrent; } set .@ccurrent, .@ccurrent/2; }
                            if (getarg(1)!=127&&.@tcurrent!=16) announce "WoE has "+((getarg(0))?"begun":"ended")+" for "+$woe_towns$[.@i_]+" ( Castle(s): "+((getarg(2)==31)?"All":.@temp$)+" )!",bc_all|bc_yellow;
                            set .@tcode, .@tcode-.@tcurrent;
                    }
                    set .@tcurrent,.@tcurrent/2;
            }
            if (getarg(1)==127) {
                    set .@temp$, ""; set .@ccode, getarg(2); set .@ccurrent, 16;
                    for (set .@i, 5; .@i>0; set .@i,.@i-1) { if (.@ccode>=.@ccurrent) set .@temp$, .@temp$+.@i+((.@ccode>.@ccurrent)?", ":" "); set .@ccode, .@ccode-.@ccurrent; set .@ccurrent, .@ccurrent/2; }
                    announce "WoE has "+((getarg(0))?"begun":"ended")+" for All Towns ( Castle(s): "+((getarg(2)==31)?"All":.@temp$)+" )!",bc_all|bc_yellow;
            }
            if (!getarg(0)) {
                    set .@agit1, 0; set .@agit2, 0;
                    for (set .@i_, 7; .@i_>0; set .@i_,.@i_-1) { for (set .@i, 5; .@i>0; set .@i, .@i-1) { if (getd("$woe_cas"+.@i_+"_2["+.@i+"]")==1) setd(".@agit"+((.@i_>5)?"2":"1"),1); } }
                    if (!.@agit1&&agitcheck()) agitend;
                    if (!.@agit2&&agitcheck2()) agitend2;
            }
            return;
    }
    

    this script has a lot of errors. can someone fix me for this i tried to fix it by myself but its not good enough. thanks

  6. 
    prontera,155,181,5	script	Sample	757,{
    mes "I am Party Match Manager.";
    mes "Party Leader may create a PVP Match here.";
    next;
    switch( select( ( .Created )?"Join Game[ ^FF0000"+.No+"vs"+.No+"^000000 ]":"Create Game",
    				( ( getgmlevel() >= .GMLevel || getcharid(0) == getpartyleader( getcharid(1),2 ) ) && .Created )?"^FF0000Remove Game^000000":"" )){
    
    Case 1:
    	switch( .Created ){
    		Case 0:
    			getpartymember getcharid(1),1;
    			if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){
    				mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here.";
    			}else{
    				mes "How many Players for each Party Team ?";
    				mes "Min = 1    Max = "+$@partymembercount;
    				mes "Because you only have "+$@partymembercount+" member right now.";
    				next;
    				input .No,1,$@partymembercount;
    				announce "[ "+.No+"vs"+.No+" Party Match ] created by "+strcharinfo(0)+", you may register to join.",0;
    				set .Team[0],getcharid(1);
    				set .Created,1;
    			}
    			close;
    		Case 1:
    			if( !.Team[1] && getcharid(1) == .Team[0] ){
    				mes "Please wait for ^FF0000Team 2^000000 to Register.";
    			}else{
    				if( getcharid(0) != getpartyleader( getcharid(1),2 ) || !getcharid(1) ){
    					mes "Sorry, but only a ^FF0000Party Leader^000000 can register a game here.";
    					close;
    				}
    				getpartymember getcharid(1),1;
    				if( $@partymembercount < .No ){
    					mes "You didnt have enough of "+.No+" Member for the Game.";
    					mes "You only have "+$@partymembercount+" Member.";
    				}else{
    					mes "Confirm Registration ?";
    					if( select("Yes:No") == 1 ){
    						set .Team[1],getcharid(1);
    						set .Created,2;
    						setarray .Members[0],.No,.No;
    						for( set .@party,0; .@party < 2; set .@party,.@party + 1 ){
    							getpartymember .Team[.@party],1;
    							for( set .@i,0; .@i < .No; set .@i,.@i + 1 )
    								warpchar .Map$,0,0,$@partymembercid[.@i];
    						}
    						end;
    					}
    				}
    			}
    			close;
    		Case 2:
    			mes "^FF0000The Game is in Progress.^000000";
    			mes "[ A "+.No+" vs "+.No+" Game ]";
    			mes "Team ^FF0000"+getpartyname( .Team[0] )+"^000000 vs Team ^FF0000"+getpartyname( .Team[1] )+"^000000 .";
    			close;
    		}
    		close;
    Case 2:
    		mes "Done, Match will be terminated right away.";
    		mapannounce .Map$,"Match has been Cancelled by a GM.",0;
    		close2;
    	OnReset:
    		deletearray .Team[0],getarraysize( .Team );
    		deletearray .Members[0],getarraysize( .Members );
    		if( .Winner ){
    			getpartymember .Winner,2;
    			for( set .@i,0; .@i < .No; set .@i,.@i + 1 ){
    				getitem 512,100,$@partymemberaid[.@i];
    				getitem 607,1,$@partymemberaid[.@i];
    			}
    		set .Winner,0;
    		}
    		sleep2 2000;
    		set .Created,0;
    		mapwarp .Map$,"prontera",155,181;
    		end;
    }
    close;
    		
    OnPCDieEvent:
    OnPCLogoutEvent:
    if( strcharinfo(3) == .Map$ && .Created ){
    	for( set .@i,0; .@i < 2; set .@i,.@i + 1 )	
    		if( getcharid(1) == .Team[.@i] )
    			set .Members[.@i],.Members[.@i] - 1;
    			
    	if( .Members[0] < 1 ) set .Winner,.Team[1];
    	else if( .Members[1] < 1 ) set .Winner,.Team[0];
    			
    	if( .Winner ){
    		mapannounce .Map$,"Team "+getpartyname( .Winner )+" Win the "+.No+"vs"+.No+" Game.",0;
    		donpcevent strnpcinfo(0)+"::OnReset";
    	}else{
    		warp "prontera",155,181;
    	}
    }
    end;
    				
    OnInit:
    set .GMLevel,80;
    set .Map$,"pvp_y_1-1";
    end;
    }
    

    Hi . i found this script and i want some changes here.

    - Only GM can activate this event

    - GM can set how many players in this party (3x3) , (4x4) , (5x5), (10x10)

    -  the npc will show up for the reward  and The winning party can claim the reward and the party name will be announced in the server

    thanks in advance

  7.  

    as the title says. I am requesting an Hourly Reward but it has a NPC . for example they need to register to the npc first and if they played for 1 hour . the players can get their reward to the npc (tcg) and when they are done. they need to register again so they can use the Hourly Reward NPC. . vending,AFK,chatting,Pub are okay since they need to talk to the npc.

     

     

     

    Try this, I found it somewhere

    //====================================================================
    //===== Hourly Points Script =========================================
    //===== By: ==========================================================
    //= GorthexTiger modified by Nibi
    //===== Current Version: =============================================
    //= 1.0
    //===== Compatible With: =============================================
    //= Any eAthena Version / rAthena
    //===== Description: =================================================
    //= Get Points every successful hours of gameplay, you cannot get
    //= the points even if you miss a second or a minute. A player will
    //= get a very big bonus if they played 12 hours consecutively
    //= or without logging out of the game. If the player is vending
    //= the script will then stop.
    //===== Additional Comments: =========================================
    //= You can modify the script to your liking.
    //= The default points is Kafrapoints change it anyway if you like.
    //= 1.1 = Check Chatting too
    //= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
    //= 1.3 = Corrected the current balance line on 12 Hours Consecutive
    //====================================================================
    
    
    - script hourlypoints -1,{
    OnPCLoginEvent:
        attachnpctimer ""+strcharinfo(0)+"";
        initnpctimer;
        end;
    
    
    OnTimer30000:
        if(checkvending() || checkchatting() || checkidle()) {
            dispbottom "The hourly points event stopped because you were vending / chatting / afk. Please relog if you wish to start again.";
            stopnpctimer;
            end;
        }
        end;
    
    
    OnTimer60000:
        set @minute, @minute + 1;
        if(@minute == 60){
            set @minute,0;
            set .@point_amt, 1;
            getitem 7179 .@point_amt;
            set @consecutive_hour, @consecutive_hour + 1;
        }
        if(@consecutive_hour == 6) {
            set @consecutive_hour,0;
            set .@cpoint_amt, 10;
            getitem 7179 .@cpoint_amt;
        }
        stopnpctimer;
        initnpctimer;
        end;
    }

     

    @Haxzor

    As per the first post, he wants a clickable NPC that needs registration to start recording playing time without checking if anybody is in idle, vending or chatting. =]

     

    hi again. i tested this script and it seems like the players didnt get their reward .

  8.  

    use the 'atcommand' script command  /no1

    *atcommand "<command>";
    
    This command will run the given command line exactly as if it was typed in from 
    the keyboard by the player connected to the invoking character, and that 
    character belonged to an account which had GM level 99.
    
        // This will ask the invoker for a character name and then use the '@nuke'
        // GM command on them, killing them mercilessly.
        input @player$;
        atcommand "@nuke "+@player$;
    
    Note that for atcommands bound using 'bindatcmd', this command will execute the
    original atcommand, not the script-bound atcommand.
    

    so for example 

    if(countitem(7227) < 50 || countitem(720) < 500 || countitem(995) < 500) GOTO L_NOITEM;
     delitem 7227,50;
     delitem 720,500;
     delitem 995,500;
     atcommand "@costumeitem",getitem 5512,1;
    

    is like this ?

    btw im using eathena 

  9.  

    Hey myieee, how are you?

    I'm going to do your request, please wait a minute so I can edit this answer with your script.

    I'll be back soon!

    EDIT--

    Here is your request, let me know if it works or not! C ya!

    // Author: _Okuz_
    prontera,150,150,5	script	Hourly Reward	84,{
    
    	if (hourly_reward < gettimetick(2) && !received) {
    		set received, 1;
    		
    		// Rewards here!
    		// getitem item_id, amount;
    		// Zeny, Zeny + amount;
    	}
    
    	mes "[Samuel]";
    	mes "Hello buddy! Have you alredy registered to get your free hourly reward?";
    	next;
    	if (select("I did it!:Not yet...") == 1) close;
    	if (!received) {
    		mes "[Samuel]";
    		mes "Hmmm... I think you already have a register for this, don't you?";
    		close;
    	}
    	else {
    		set received, 0;
    		set hourly_reward, gettimetick(2) + 3600;
    		mes "[Samuel]";
    		mes "You have successfully registered to get your free hourly reward, don't forget to come back to register again once you get your reward.";
    		close;
    	}
    }
    

    so how i can set the reward ? like 1 tcg card and i just want a simple registration with no fees 

  10.  

     

    Hello myieee, how are you?

    Let me see if I got what you want. Players will be able to heal only by touching the NPC area and not by clicking the NPC.

     

    prontera,150,150,5	script	Healer	79,5,5,{
        end;
    
    OnTouch:
    if (@lastTick < gettimetick(2)) {
    	set @lastTick, (gettimetick(2) + .delay * 60);
    	percentheal 100, 100;
    }
    end;
    
    OnInit:
    	set .delay, 5; // delay in minutes
    }
    

    The above script is intended to heal 100% of  HP/SP once the players touch its area. There's a 5 minutes delay on each touch so you'll be protected from spams, adjust as needed.

    I hope it works, good luck.

    hi thanks for the script btw im using eathena. okay when the player walk to healer npc they will be healed and when they want to heal be healed again they need to walk to heal npc again. so its not abuse on PK map . 

     

    Alright then! This NPC will heal players when they came within 5 cells of distance from her (Female Sprite). To be healed again players will need to get out the touching area and then came back again. Besides that, they need to wait 5 minutes of cooldown to be healed again. If you want to remove that cooldown, please set the .delay variable to 0.

    Let me know if it works, please! Bye!

     

    hi. thanks so much for the scripts and it works.. 

  11. Hello myieee, how are you?

    Let me see if I got what you want. Players will be able to heal only by touching the NPC area and not by clicking the NPC.

     

    prontera,150,150,5	script	Healer	79,5,5,{
        end;
    
    OnTouch:
    if (@lastTick < gettimetick(2)) {
    	set @lastTick, (gettimetick(2) + .delay * 60);
    	percentheal 100, 100;
    }
    end;
    
    OnInit:
    	set .delay, 5; // delay in minutes
    }
    

    The above script is intended to heal 100% of  HP/SP once the players touch its area. There's a 5 minutes delay on each touch so you'll be protected from spams, adjust as needed.

    I hope it works, good luck.

    hi thanks for the script btw im using eathena. okay when the player walk to healer npc they will be healed and when they want to heal be healed again they need to walk to heal npc again. so its not abuse on PK map . 

  12. Hi . i need a custom healer. when the players walk to the healer npc they will get healed and then if they want to heal again . they need to walk to the npc again. its just like areaheal thx. im using goddameit script but its kinda abused tho for PK Server even tho i adjust the delay time .. thanks in advance

×
×
  • Create New...