summaryrefslogblamecommitdiff
path: root/npc/019-2/guards.txt
blob: 21fa1b7715e0a55c4f65ed7e626fc29d8fbede41 (plain) (tree)
1
2
3
4
5
6
7
8
9




                     

                                 

                                                    

                              



                                                                             
                                                                                                  
             
                                  


                                 
                                           










                                                   
                                             
                        

                               

                                                       
                                            











                                                                                              
                                                    


                                            
                                

                                                                        
                     
                                                                  
                                              
                                                
     





                                                               












                                                                        


          
















                                                                                                                                
          
 



                                                               


          


                                             


                  





                     




                                                                                                  
            
                       
            
                                    
                                       

        

 
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Protect Nivalis
//    Q_NivalisLibday
//    Day, Score, Temporary Time;

019-2,44,54,0	script	Guard#019-2.1	NPC_GUARD1,{
    .@q=getq(Q_NivalisLibday);

    if ($NIVALIS_LIBDATE) {
        mesn;
        mesq l("Nivalis was liberated @@ ago.", FuzzyTime($NIVALIS_LIBDATE));
        // TODO
        mesc l("Due town state, you cannot visit it. Do you want to cross to the other side?"), 1;
        next;
        if (askyesno() == ASK_YES)
            warp "019-1", 70, 30;
        close;
    } else if ($NLIB_DAY > 0) {
        if (.@q == $NLIB_DAY) goto L_Delay;
        if (BaseLevel < 40) goto L_Noob;
        if (BaseLevel >= 40) goto L_Veteran;
        close;
    } else if (is_admin()) {
        mesc "Initiate Nivalis Liberation Day?", 1;
        mesc "Event will last 7 days.", 1;
        select
            "Not yet.",
            "Yes",
            "No";
        if (@menu == 2) {
            addmapmask "019-3", MASK_MATTACK;
            $NLIB_DAY=1;
            $NLIB_HIGHTIME=0;
            $NLIB_HIGHNAME$="";
            setmapflagnosave("019-3", "000-1", 22, 22);
            setmapflag("019-3",mf_bexp,25);
            setmapflag("020-1",mf_bexp,150);
            channelmes("#world", "Nivalis Liberation Day has started.");
            announce "Nivalis Liberation Day has started.", bc_all|bc_npc;
        }
        close;
    } else {
        legiontalk; end;
    }
    end;
// Event Selectors
L_Noob:
    mesn;
    mesq l("Hey, you! We need help to get rid from some remaining monsters at Nivalis City.");
    mesq l("No need to kill the Fluffies, though.");
    next;
    mesn;
    mesq l("Are you up for the challenge?");
    if (askyesno() == ASK_YES) {
        // Begin quest. Logout/Death will cause loss of the current day.
        setq1 Q_NivalisLibday, $NLIB_DAY;
        @nlib_wave=0;
        @nlib_time=300; // This makes sure that wave 1 will start.
        addtimer(5000, "#NLib_Siege::OnLoop");
        warp "020-1", rand(69,82), rand(78, 91);
    }
    close;

L_Veteran:
    if ($NLIB_DAY >= 7) goto L_MK;
    mesn;
    mesq l("Hey, you! We need help to find the Monster King.");
    next;
    mesn;
    mesq l("Could you head deep in the woods and track him down?");
    if (askyesno() == ASK_YES) {
        // Control if you already found the Monster King
        @QNL3=0;
        // Begin quest. Logout/Death will cause loss of the current day.
        setq1 Q_NivalisLibday, $NLIB_DAY;
        setq3 Q_NivalisLibday, gettimetick(2);
        warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27);
        doevent("Guard#019-3.1::OnBegin");
        closedialog;
    }
    close;

L_MK:
    if (gettime(3) != 18) {
        mesn;
        mesq l("Today at 16:30 UTC we are going to attack the Monster King by surprise. There will be no delays, so be there.");
    } else {
        mesn;
        mesq l("Do you want to go against the Monster King now? The event will start 16:30 UTC sharply.");
        if (askyesno() == ASK_YES) {
            // Control if you already found the Monster King
            @QNL3=0;
            // Begin quest. Logout/Death will cause loss of the current day.
            setq1 Q_NivalisLibday, $NLIB_DAY;
            setq3 Q_NivalisLibday, gettimetick(2);
            warp "019-3", any(128, 129, 130, 131, 132), any(24, 25, 26, 27);
            doevent("Guard#019-3.1::OnAdvise");
            closedialog;
        }
    }
    close;

// Misc
L_Delay:
    mesn;
    mesq l("You already helped us today. Come back tomorrow.");
    close;

OnInit:
    if ($NLIB_DAY)
            addmapmask "019-3", MASK_MATTACK;

    .sex = G_MALE;
    .distance = 5;
    end;

OnHour00:
    if ($NLIB_DAY)
        $NLIB_DAY+=1;
    end;

OnClock1825:
    if ($NLIB_DAY == 7)
        announce "All players, Nivalis Liberation Day starting in five minutes.", bc_all | bc_npc;
    end;

OnClock1830:
    if ($NLIB_DAY != 7)
        end;
    setmapflag("023-2",mf_bexp,200);
    disablenpc "The Monster King#NLib";

    end;
}