summaryrefslogblamecommitdiff
path: root/world/map/npc/042-1/valon.txt
blob: ab14ad7c573491f670dbcc1a5f84cd6842d61831 (plain) (tree)
1
2
3
4
5
6
                                    



                          
 







































































                                                                                                                    
 









                                                                                           
 







                                                             





                                                                            
                                                                                                        
         






























                                                                                   
 






                                                                                                                                              
                  
                                                                                             
         



                                                                                                                           
 
            
                  



                                                                             
 






                                                                             
 
// This file is part of the Tutorial
// Author: Jenalya, Wushin
-|script|#ValonConfig|-1,
{
    end;

OnInit:
    set $@ValonStartBit, (1 << 6);
    set $@ValonEndBit, (1 << 7);
    setarray $@ValonMob, 1002,1050,1046,1003;
    setarray $@ValonMobName$, "Maggots","House Maggots","Tame Scorpions","Scorpion";
    setarray $@ValonMobCnt, 10,5,3,1;
    end;
}
function|script|ValonState|,
{
    set @valon_mob, ((TUTORIAL & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
    set @valon_count, ((TUTORIAL & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
    set @valon_start, (TUTORIAL & $@ValonStartBit);
    set @valon_end, (TUTORIAL & $@ValonEndBit);
    return;
}
function|script|AddValonMobMask|,
{
    set @valon_tmp, (@valon_mob + 1);
    if (@valon_tmp > 15)
        set @valon_tmp, 15;
    set TUTORIAL, (TUTORIAL & ~(NIBBLE_2_MASK) | (@valon_tmp << NIBBLE_2_SHIFT));
    set @valon_tmp, 0;
    return;
}
function|script|ResetValonCntMask|,
{
    set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (0 << NIBBLE_3_SHIFT));
    return;
}
function|script|AddValonCntMask|,
{
    set @valon_tmp, (@valon_count + 1);
    if (@valon_tmp > 15)
        set @valon_tmp, 15;
    set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (@valon_tmp << NIBBLE_3_SHIFT));
    set @valon_tmp, 0;
    callfunc "ValonProgress";
    return;
}
function|script|ValonProgress|,
{
    callfunc "ValonState";
    if ((@valon_start) && (!(@valon_end)))
        message strcharinfo(0), $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob];
    return;
}
042-1.gat,51,111,0|script|ValonDebug|156,
{
    mes "[Valon Debug]";
    mes "Reset?";
    menu
        "Yes.", L_Reset,
        "No.", L_End;

L_Reset:
    set TUTORIAL, (TUTORIAL & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT));
    set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (0 << NIBBLE_3_SHIFT));
    set TUTORIAL, TUTORIAL &~ $@ValonStartBit;
    set TUTORIAL, TUTORIAL &~ $@ValonEndBit;
    mes "Reset!";
    goto L_End;

L_End:
    end;

OnInit:
    if (!debug)
        disablenpc "ValonDebug";
    end;
}
042-1.gat,48,111,0|script|Valon|156,
{
    callfunc "ValonState";
    if (@valon_end)
        goto L_QuestComplete;
    if (!(@valon_start) && (@valon_count))
        goto L_QuestAskAgain;
    if (((@valon_start) && (!(@valon_end))) && (@valon_count >= $@ValonMobCnt[@valon_mob]))
        goto L_NextMob;
    if ((@valon_start) && (!(@valon_end)))
        goto L_QuestStarted;
    goto L_QuestAsk;

L_QuestAskAgain:
    mes "[Valon]";
    mes "\"Hello, Adventurer! Have you come back to help?\"";
    menu
        "Yes. I will help with the desert beasts.", L_Accept,
        "Maybe some other time.", L_NoThanks;

L_QuestAsk:
    mes "[Valon]";
    mes "\"Hello!";
    mes "You're looking for adventures, right?\"";
    next;
    mes "\"But you shouldn't underestimate this desert, it is dangerous.\"";
    next;
    mes "\"It's crawling with scorpions, and the heat has overcome adventurers tougher than you are.\"";
    next;
    mes "\"I should know I gaurd this gate from all manner of desert beasts.\"";
    next;
    mes "\"Maybe you would like help and earn your stripes?\"";
    next;
    mes "\"The Council of Wizard's does offer a reward for helping...\"";
    menu
        "YES!!! let me at them!", L_Accept,
        "Maybe some other time.", L_NoThanks;

L_NoThanks:
    callfunc "AddValonCntMask";
    goto L_Close;

L_Accept:
    callfunc "ResetValonCntMask";
    set TUTORIAL, TUTORIAL | $@ValonStartBit;
    goto L_NewMob;

L_NextMob:
    getexp 40, 0;
    mes "\"I see you killed all the " + $@ValonMobName$[@valon_mob] + " needed.\"";
    next;
    mes "\"The Wizard's thank thee as well.\"";
    set Zeny, Zeny + 25;
    next;
    callfunc "ResetValonCntMask";
    callfunc "AddValonMobMask";
    callfunc "ValonState";
    if (@valon_mob == getarraysize($@ValonMob))
        goto L_QuestOver;
    goto L_NewMob;

L_NewMob:
    mes "\"Let's see whats on the list. Ah ok, I need you to kill me " + $@ValonMobCnt[@valon_mob] + " " + $@ValonMobName$[@valon_mob] + "\"";
    next;
    mes "\"I'll be waiting here, come back and see after you've kulled those mobs.\"";
    goto L_Close;

L_QuestStarted:
    mes "[Valon]";
    mes "Hail adventurer! You are well on your way to mastering the beasts of the desert.\"";
    next;
    mes "\"You need to kill " + $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob] + "\"";
    next;
    mes "\"Come back and see me when the job is done.\"";
    goto L_Close;

L_QuestOver:
    mes "[Valon]";
    mes "\"Thanks once again for helping with the monsters in the desert.\"";
    getexp 50, 0;
    set TUTORIAL, TUTORIAL | $@ValonEndBit;
    goto L_Close;

L_QuestComplete:
    mes "[Valon]";
    mes "\"Thanks once again for helping with the monsters in the desert.\"";
    goto L_Close;

L_Close:
    close;
}