moc_para01,28,35,5 script Quest Inquirer 952,{ mes "Hey there ^FF0000"+strcharinfo(0)+"^000000,"; mes "Interested in taking up quest ?"; mes "Well you're in the right place."; mes "^FFA500____________________________^000000"; mes "So which ^008000Quest Shop^000000 would you like to take a quest ?"; switch (select ("^0033CCHeadgears^000000:^0033CCArmors and Weapons^000000")) { Case 1: doevent "Shop1::OnShop"; end; Case 2: doevent "Shop2::OnShop"; end; } } // -- ***************************************** F I R S T S H O P ********************************************** - shop quest_shop1 -1,501:50 - script Shop1 -1,{ OnShop: set @i,0; mes "[Quest Shop NPC]"; mes "Which item do you wish to obtain?"; mes "Select only one."; next; callshop "quest_shop1",1; npcshopattach "quest_shop1"; close; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(""+getarg(.e+1),"Zeny"); set .e,.e+2) {} npcshopadditem "quest_shop1",getarg(.e+2),getarg(.e)*compare(""+getarg(.e+1),"SZeny"); setarray .Shop[.i],getarg(.e+2); set .i,.i+1; goto Quest_Setup; } if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; } for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; } mes "[Shop Quest NPC]"; mes "I require the following:"; for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]"; if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny"; mes "^000000In exchange, I will give you:^0000FF"; for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i)); switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) { case 1: for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) { next; mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + "."; mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000."; close; } if(Zeny < getarg(@i)) { next; mes "You do not have enough Zeny."; mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000."; close; } for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1); set Zeny,Zeny-getarg(@i); for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1); if (compare(""+getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_blue|bc_all; specialeffect2 699; close; case 2: set @bottomview, getlook(3); set @topview, getlook(4); set @midview, getlook(5); addtimer 1000, strnpcinfo(3)+"::On_Leave"; set @equip,getiteminfo(@bought_nameid, 5); set @view, getiteminfo(@bought_nameid, 11); if(@equip != -1 && @view > 0) { if(@equip & 1) atcommand "@changelook 3 " + @view; if(@equip & 256) atcommand "@changelook 1 " + @view; if(@equip & 512) atcommand "@changelook 2 " + @view; } next; goto OnBuyItem; case 3: close; } On_Leave: atcommand "@changelook 1 " + @topview; atcommand "@changelook 2 " + @midview; atcommand "@changelook 3 " + @bottomview; set @equip,0; set @view,0; set @topview,0; set @midview,0; set @bottomview,0; end; OnInit: npcshopitem "quest_shop1",0,0; npcshopdelitem "quest_shop1",0,0; npcshopdelitem "quest_shop1",501; set .BuildQuest,1; set .i,1; Quest_Setup: switch(.i) { default: set .BuildQuest,0; set .e,0; set .i,0; end; case 1: callsub OnBuyItem,5019,1,719,200,2284,1,15000000,"SZeny",5359,1; case 2: callsub OnBuyItem,2249,1,7300,5,2258,1,25000000,"SZeny",5805,1; case 3: callsub OnBuyItem,4115,50,2225,1,7292,5,10000000,"SZeny",5383,1; case 4: callsub OnBuyItem,5019,1,7219,10,7445,10,7446,10,7447,10,7448,10,5000000,"SZeny",5395,1; case 5: callsub OnBuyItem,7446,250,15000000,"SZeny",5506,1; case 6: callsub OnBuyItem,7447,250,15000000,"SZeny",5507,1; case 7: callsub OnBuyItem,4120,20,720,300,7446,200,7441,100,5000000,"SZeny",5465,1; case 8: callsub OnBuyItem,720,300,7446,200,10000000,"SZeny",5469,1; case 9: callsub OnBuyItem,7047,200,661,100,7513,1,5141,1,15000000,"SZeny",5137,1; case 10: callsub OnBuyItem,7063,50,949,500,982,1,5172,1,15000000,"SZeny",5170,1; case 11: callsub OnBuyItem,5027,1,1006,500,7294,3,25000000,"SZeny",5379,1; case 12: callsub OnBuyItem,1039,150,7064,100,5047,1,5000000,"SZeny",5357,1; case 13: callsub OnBuyItem,4307,20,11002,150,2299,5,7190,200,15000000,"SZeny",5312,1; case 14: callsub OnBuyItem,1059,300,2288,1,5000000,"SZeny",5314,1,"announce"; case 15: callsub OnBuyItem,2203,1,1049,300,7511,50,5000000,"SZeny",2204,1; case 16: callsub OnBuyItem,2201,1,949,500,7511,50,5000000,"SZeny",2202,1; case 17: callsub OnBuyItem,1059,300,2218,1,15000000,"SZeny",5156,1; case 18: callsub OnBuyItem,1059,300,2241,1,15000000,"SZeny",5155,1; case 19: callsub OnBuyItem,2265,1,2263,1,7563,200,10019,1,7439,20,15000000,"SZeny",5361,1; case 20: callsub OnBuyItem,1027,300,919,150,7563,200,15000000,"SZeny",5462,1; } } // -- ***************************************** S E C O N D S H O P ********************************************** - shop quest_shop2 -1,501:50 - script Shop2 -1,{ OnShop: set @i,0; mes "[Quest Shop NPC]"; mes "Which item do you wish to obtain?"; mes "Select only one."; next; callshop "quest_shop2",1; npcshopattach "quest_shop2"; close; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(""+getarg(.e+1),"Zeny"); set .e,.e+2) {} npcshopadditem "quest_shop2",getarg(.e+2),getarg(.e)*compare(""+getarg(.e+1),"SZeny"); setarray .Shop[.i],getarg(.e+2); set .i,.i+1; goto Quest_Setup; } if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; } for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; } mes "[Shop Quest NPC]"; mes "I require the following:"; for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]"; if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny"; mes "^000000In exchange, I will give you:^0000FF"; for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i)); switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) { case 1: for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) { next; mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + "."; mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000."; close; } if(Zeny < getarg(@i)) { next; mes "You do not have enough Zeny."; mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000."; close; } for(set @i,0; !compare(""+getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1); set Zeny,Zeny-getarg(@i); for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1); if (compare(""+getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_blue|bc_all; specialeffect2 699; close; case 2: set @bottomview, getlook(3); set @topview, getlook(4); set @midview, getlook(5); addtimer 1000, strnpcinfo(3)+"::On_Leave"; set @equip,getiteminfo(@bought_nameid, 5); set @view, getiteminfo(@bought_nameid, 11); if(@equip != -1 && @view > 0) { if(@equip & 1) atcommand "@changelook 3 " + @view; if(@equip & 256) atcommand "@changelook 1 " + @view; if(@equip & 512) atcommand "@changelook 2 " + @view; } next; goto OnBuyItem; case 3: close; } On_Leave: atcommand "@changelook 1 " + @topview; atcommand "@changelook 2 " + @midview; atcommand "@changelook 3 " + @bottomview; set @equip,0; set @view,0; set @topview,0; set @midview,0; set @bottomview,0; end; OnInit: npcshopitem "quest_shop2",0,0; npcshopdelitem "quest_shop2",0,0; set .BuildQuest,1; set .i,1; Quest_Setup: switch(.i) { default: set .BuildQuest,0; set .e,0; set .i,0; end; case 1: callsub OnBuyItem,7098,200,7096,100,7097,200,10000000,"SZeny",2345,1,"announce"; case 2: callsub OnBuyItem,7561,200,995,200,749,100,10000000,"SZeny",2347,1,"announce"; case 3: callsub OnBuyItem,992,200,7115,200,4345,50,693,50,10000000,"SZeny",2349,1,"announce"; case 4: callsub OnBuyItem,1055,200,623,200,7054,100,10000000,"SZeny",2351,1,"announce"; case 5: callsub OnBuyItem,7292,5,5000000,"SZeny",13032,1,"announce"; case 6: callsub OnBuyItem,7297,5,5000000,"SZeny",13031,1,"announce"; case 7: callsub OnBuyItem,7295,5,5000000,"SZeny",1266,1,"announce"; case 8: callsub OnBuyItem,7289,5,5000000,"SZeny",1264,1,"announce"; case 9: callsub OnBuyItem,922,50,931,20,5000000,"SZeny",1309,1,"announce"; } }