summaryrefslogblamecommitdiff
path: root/npc/test/npc1.txt
blob: 0727e27c7c0282c984f26cce739b177d30942ec0 (plain) (tree)
1
2
3
4
5
6
7





                
                                                        






                              
                                               











                                                                                          
 
        
                                                                                                  
     



                     

                    



















                                                                              
             
                  
 
               

                    
                                                                                                










                                      
                                   

                              


                                                



                                     

                  


                                          
                           


                     
               










                                            
                  















                                                            
                  
               

                    
                                                               

                           






















                                                                                            

                              
























                                                                       

                              












                                                                                  

                              












                                                              
                              


                                     

                 



                           


                    
                                                                                                                  




                                                                    
                                                                  

                              
                                                                    

                              
                                         

                              





                                         




                                     

                            
                                     

















                                                            
     
 


          
              
 
          



                

       
                  
                  
                          
                                                        
        



                                


                                                      
        




                                                                                  
                         
                                      
 
// Evol scripts.
// Authors:
//    4144
// Description:
//    test npc1

test,10,10,0	script	npc1#door	NPC_HIDDEN,0,1,{
OnTouch:
    warp "test", 20, 20;
    close;
OnUnTouch:
    doevent "npc1::OnUnTouch";
}

test,10,10,0	script	npc1	NPC_TEST1,3,3,{
    function areatest
    {
        mesn;
        mes "getareausers(\"test\", 7, 7, 13, 13): " + getareausers("test", 7, 7, 13, 13);
        mes "getareausers(7, 7, 13, 13): " + getareausers(7, 7, 13, 13);
        mes "getareausers(\"test\"): " + getareausers("test");
        mes "getareausers(): " + getareausers();
        mes "getareausers(\"test\", 1): " + getareausers("test", 1);
        mes "getareausers(1): " + getareausers(1);
        next;
        return;
    }

L_Start:
    switch (select("show area:map:pc:change npc direction:quest test:cart:items:chat:wall:craft"))
    {
        case 1:
            areatest;
            break;
        case 2:
            while(1)
            {
                .@mask = getmapmask("test");
                mes "current mask: " + str(.@mask);
                switch (select("show sand:show grass:show fog:hide fog:back"))
                {
                    case 1:
                        addremovemapmask "test", 4, 8;
                        break;
                    case 2:
                        addremovemapmask "test", 8, 4;
                        break;
                    case 3:
                        addmapmask "test", 2;
                        break;
                    case 4:
                        removemapmask "test", 2;
                        break;
                    case 5:
                        goto L_Start;
                        break;
                }
            }
            break;

        case 3:
            while(1)
            {
                switch (select("change sex:setmount 0:setmount 1:setmount 2:test command:back"))
                {
                    case 1:
                        changecharsex;
                        break;
                    case 2:
                        setmount 0;
                        break;
                    case 3:
                        setmount 1;
                        break;
                    case 4:
                        setmount 2;
                        break;
                    case 5:
                        clientcommand "emote 1";
                        break;
                    case 6:
                        goto L_Start;
                        break;
                }
            }
            break;
        case 4:
            for (.@f = 0; .@f < 9; .@f ++)
            {
                mes "" + .@f;
                .dir = .@f;
                next;
            }
            break;
        case 5:
            mes "current";
            .@val0 = getq(ShipQuests_Gugli);
            mes "val=" + .@val0;
            setq ShipQuests_Gugli, 10;
            next;
            mes "test 10";
            next;
            .@val = getq(ShipQuests_Gugli);
            mes "val=" + .@val;
            setq ShipQuests_Gugli, .@val0;
            next;
            break;
        case 6:
            while(1)
            {
                switch (select("add cart:remove cart:back"))
                {
                    case 1:
                        setcart 1;
                        break;
                    case 2:
                        setcart 0;
                        break;
                    case 3:
                        goto L_Start;
                        break;
                }
            }
            break;
        case 7:
            while(1)
            {
                switch (select("refine:rent:bound:named:back"))
                {
                    case 1:
                        .@item = -1;
                        while(1)
                        {
                            switch (select("set item:refine +1:refine -1:refine fail:back"))
                            {
                                case 1:
                                    requestitemindex .@item;
                                    mes "Item index selected: " + str(.@item);
                                    break;
                                case 2:
                                    successrefindex .@item, 1;
                                    break;
                                case 3:
                                    downrefindex .@item, 1;
                                    break;
                                case 4:
                                    failedrefindex .@item;
                                    break;
                                case 5:
                                    goto L_Start;
                                    break;
                            }
                        }
                        break;
                    case 2:
                        while(1)
                        {
                            switch (select("rent vneck for 10 seconds",
                                "rent vneck for 30 seconds",
                                "rent vneck for 1 minute",
                                "rent vneck for 5 minutes",
                                "back"))
                            {
                                case 1:
                                    rentitem 1301, 10;
                                    break;
                                case 2:
                                    rentitem 1301, 30;
                                    break;
                                case 3:
                                    rentitem 1301, 60;
                                    break;
                                case 4:
                                    rentitem 1301, 300;
                                    break;
                                case 5:
                                    goto L_Start;
                                    break;
                            }
                        }
                        break;
                    case 3:
                        while(1)
                        {
                            switch (select("get bound vneck",
                                "back"))
                            {
                                case 1:
                                    getitembound2 1301, 1, 1, 0, 0, 0, 0, 0, 0, 1;
                                    break;
                                case 2:
                                    goto L_Start;
                                    break;
                            }
                        }
                        break;
                    case 4:
                        while(1)
                        {
                            switch (select("get named vneck",
                                "back"))
                            {
                                case 1:
                                    getnameditem 1301, "4144";
                                    break;
                                case 2:
                                    goto L_Start;
                                    break;
                            }
                        }
                        break;
                    case 5:
                        goto L_Start;
                        break;
                }
            }
            break;
        case 8:
            chatjoin .chat;
            close;
        case 9:
            while(1)
            {
                switch (select("set wall 1:set wall 2:set wall 3:delete wall 1:delete wall 2:delete wall 3:back"))
                {
                    case 1:
                        setcells "test", 14, 11, 17, 11, 3, "wall1";
                        break;
                    case 2:
                        setcells "test", 14, 7, 21, 8, 1, "wall2";
                        break;
                    case 3:
                        setcells "test", 13, 15, 13, 21, 3, "wall3";
                        break;
                    case 4:
                        delcells "wall1";
                        break;
                    case 5:
                        delcells "wall2";
                        break;
                    case 6:
                        delcells "wall3";
                        break;
                    case 7:
                        goto L_Start;
                        break;
                }
            }
            break;
        case 10:
            setskin "test2";
            .@var$ = requestcraft(9);
            mes .@var$;
            .@craft = initcraft(.@var$);
            mes "craft id: " + str(.@craft);
            mes "is craft valid: " + validatecraft(.@craft);
            .@id = getcraftslotid(.@craft, 0);
            .@amount = getcraftslotamount(.@craft, 0);
            mes "first item id: " + .@id;
            mes "first item name: " + getitemlink(.@id);
            mes "first item amount: " + .@amount;

            .@id = getcraftslotid(.@craft, 1);
            .@amount = getcraftslotamount(.@craft, 1);
            mes "second item id: " + .@id;
            mes "second item name: " + getitemlink(.@id);
            mes "second item amount: " + .@amount;
//            dumpcraft .@craft;
            deletecraft .@craft;
            break;
    }

    close;

OnTouch:
    doorTouch;

OnUnTouch:
    doorUnTouch;

OnTimer340:
    doorTimer;

OnInit:
    .sex = G_MALE;
    .distance = 5;
    .alwaysVisible = true;
    waitingroom "test room", 2, "npc1::OnReadyCheck", 1;
    end;

OnWhisperGlobal:
    mes "cmd: " + @whispervar0$;
    close;

OnSkillInvoke:
    skillInvoke[@skillId] = skillInvoke[@skillId] + 1;
    end;

OnReadyCheck:
    debugmes "OnReadyCheck";
    $@bgid1 = waitingroom2bg("testbg", 10, 10, "bgnpc1::OnLogout","bgnpc1:OnDie");
    debugmes "bgid=" + str($@bgid1);
    setbgteam $@bgid1, 1;
    bg_warp $@bgid1, "testbg", 10, 10;
}