summaryrefslogblamecommitdiff
path: root/npc/024-7/afking.txt
blob: 68c3008b14cfac0554f1629ad7456a5c8383322d (plain) (tree)
1
2
3
4
5
6
7
8







                                            



                             
                           
 



                                                                
                                      
                            













                                                                                  
                                                                                        




                                                        
                      

                                             
                                                   
                      

                                             
                      


                                                            
                      





                                      
                             
                      
                                    

                                                                

                      




                




































                                                                                                                                     







                                                                                                                          
                                                                           

                                           
                            













                                                         




















                                                                      


                                                                                  
                                          
         


               


                                              
                                                           








                                                     
// TMW2 scripts.
// Author:
//    TMW-BR
//    Jesusalva
// Description:
//    AFK Cap quest (Lv 47)

024-7,40,24,0	script	AF King	NPC_PLAYER,{
	function AFPrologue;
	function AFGrinding;
	function AFKingGelid;
	function AFItemList;
	function AFDeliver;

	if (BaseLevel < 47) {
		npctalkonce l("*AFK: I am Away From Keyboard*");
		end;
	}
	.@q=getq(FrostiaQuest_AFKCap);
	@flag02474024=false;

	switch (.@q) {
	case 0: // Mission not started
		mesn;
		mesq l("I'm back, I'm here, I'm great! I am the AF King Arthur!");
		next;
		do {
			mesn;
			mesq l("But can I help you?");
			next;
			select
				l("Good, I need to talk with the King."),
				l("You have a nice hat."),
				l("Do you know where I can level up?"),
				rif(@flag02474024, l("I would like a hat like yours.")),
				l("Nothing, good bye!");
			mes "";
			switch (@menu) {
			case 1:
				AFKingGelid();
                break;
			case 2:
				AFPrologue();
				@flag02474024=true;
                break;
			case 3:
				AFGrinding();
                break;
			case 4:
				setq FrostiaQuest_AFKCap, 1;
				AFItemList();
                break;
			default:
				close;
			}
		} while (true);
		break;
	case 1: // Mission accepted
		AFItemList();
		break;
	default: // Mission complete
		npctalkonce l("*AFK: I am Away From Keyboard*");
		end;
		break;
	}

    closedialog;
    goodbye;
    close;

function AFPrologue {
	mesn;
	mesq l("No one is more there than here than me! Look at my hat, it symbolizes that I am an useless player!");
	next;
	mesn;
	mesq l("And if you listen to Tulimshar's Professor lecture wearing it, you'll gain more experience!");
	next;
	mesn;
	mesq l("Basically, no one else disturbs me anymore when I'm busy snoring in class! ^.^");
	next;
	return;
}

function AFGrinding {
	mesn;
	mesq l("Uhh... Not really! I love to kill Yetis, but sometimes they are really shy!");
	next;
	mesn;
	mesq l("They must be hiding in some cave... It's a shame!");
	next;
	return;
}

function AFKingGelid {
	mesn;
	mesq l("Uhm, I'm not the king of Frostia, I'm the king of all useless adventurers.");
	next;
	mesn;
	mesq l("I just go out removing swords from rocks, and then throwing them again at the lake. All that while I drink coffee.");
	next;
	mesn;
	mesq l("If you need to talk with King Gelid, he should be in the castle north here.");
	next;
	return;
}

function AFItemList {
	mesn;
	mesq l("Sure, no problem! For this awesome hat which I can make it myself, you'll need to bring me a few items!");
	next;
	mes ".:: "+l("Item List")+" ::.";
	mesc l("@@/@@ @@", countitem(SilkCocoon), 300, getitemlink(SilkCocoon));
	mesc l("@@/@@ @@", countitem(CobaltHerb), 100, getitemlink(CobaltHerb));
	mesc l("@@/@@ @@", countitem(CottonCloth), 25, getitemlink(CottonCloth));
	mesc l("@@/@@ @@", countitem(BlueDye),      1, getitemlink(BlueDye));
	mesc l("@@/@@ @@", format_number(Zeny), format_number(5000), "GP");
	next;
	// FIXME Deprecate .@ scope on flag
	if (@flag02474024) {
		mesn;
		mesq l("Now I'll be waiting!");
		close;
	}
	select
		l("Okay, I'll be back!"),
		l("I have everything you've asked for.");
	mes "";
	if (@menu == 2)
		AFDeliver();
	return;
}

function AFDeliver {
	inventoryplace AFKCap, 1;
	if (
		countitem(SilkCocoon)  < 300 ||
		countitem(CobaltHerb)  < 100 ||
		countitem(CottonCloth) <  25 ||
		countitem(BlueDye)     <   1 ||
		Zeny < 5000) {
			mesn;
			mesq l("I'll feed you to the Moubootaur %%e");
			setparam(MaxHp, readparam(MaxHp)-100);
			percentheal -100, -100;
			close;
	}
	Zeny-=5000;
	delitem SilkCocoon, 300;
	delitem CobaltHerb, 100;
	delitem CottonCloth, 25;
	delitem BlueDye, 1;
	getitem AFKCap, 1;
	setq FrostiaQuest_AFKCap, 2;
	mesn;
	mesq l("As I had the spare materials I've already did yours in advance.");
	next;
	mesn;
	mesq l("There you go. Enjoy it!");
    next;
	return;
}

OnInit:
    .@npcId = getnpcid(.name$);
    setunitdata(.@npcId, UDT_HEADTOP, AFKCap);
    setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); // TODO
    setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 0);
    npcsit;

    .sex = G_MALE;
    .distance = 4;
    end;
}