summaryrefslogblamecommitdiff
path: root/npc/029-1/valon.txt
blob: d8b3a0c62379d4917c7d03ba10a9d9cc7757cb14 (plain) (tree)








































































































































                                                                                                                                              
-	script	#ValonConfig	NPC32767,{
    end;

OnInit:
    setarray $@ValonMob, 1002,1050,1046,1003;
    setarray $@ValonMobName$, "Maggots","House Maggots","Tame Scorpions","Scorpion";
    setarray $@ValonMobCnt, 10,5,3,1;
    end;
}
function	script	ValonCount	{
    @valon_mob = 0;
    if (QL_VALON >= 2)
        @valon_mob = (QL_VALON - 2);
    @valon_count = ((STARTAREA & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
    return;
}
function	script	ResetValonCntMask	{
    STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT));
    return;
}
function	script	AddValonCntMask	{
    @valon_tmp = (@valon_count + 1);
    if (@valon_tmp > $@ValonMobCnt[@valon_mob])
        @valon_tmp = $@ValonMobCnt[@valon_mob];
    STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (@valon_tmp << NIBBLE_2_SHIFT));
    @valon_tmp = 0;
    callfunc "ValonProgress";
    return;
}
function	script	ValonProgress	{
    callfunc "ValonCount";
    if ((QL_VALON > 1) && (QL_VALON < 6))
        message strcharinfo(0), $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob];
    return;
}
029-1,74,86,0	script	ValonDebug	NPC156,{
    mes "[Valon Debug]";
    mes "Reset?";
    menu
        "Yes.", L_Reset,
        "No.", L_close;

L_Reset:
    QL_VALON = 0;
    STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT));
    mes "Reset!";
    goto L_close;

L_close:
    close;

OnInit:
    if (!debug)
        disablenpc "ValonDebug";
    end;
}
029-1,72,86,0	script	Valon	NPC156,{
    callfunc "PCtoNPCRange";
    if(@npc_check) end;

    callfunc "ValonCount";
    if (QL_VALON >= 6)
        goto L_QuestComplete;
    if (QL_VALON == 1)
        goto L_QuestAskAgain;
    if (@valon_count >= $@ValonMobCnt[@valon_mob])
        goto L_NextMob;
    if ((QL_VALON >= 2) && (QL_VALON < 6))
        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 island beasts.", L_Accept,
        "Maybe some other time.", L_close;

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

L_Accept:
    QL_VALON = 2;
    callfunc "ValonCount";
    goto L_NewMob;

L_NextMob:
    getexp 40, 0;
    mes "\"I see you killed all the " + $@ValonMobName$[@valon_mob] + " needed.\"";
    mes "\"The Wizard's thank thee as well.\"";
    Zeny = Zeny + 25;
    QL_VALON = (QL_VALON + 1);
    callfunc "ResetValonCntMask";
    callfunc "ValonCount";
    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] + "\"";
    mes "\"I'll be waiting here, come back and see after you've killed those mobs.\"";
    goto L_close;

L_QuestStarted:
    mes "[Valon]";
    mes "Hail adventurer! You are well on your way to mastering the beasts of the island.\"";
    mes "\"You need to kill " + $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob] + "\"";
    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 island.\"";
    getexp 50, 0;
    QL_VALON = (QL_VALON + 1);
    goto L_close;

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

L_close:
    close;
}