Jump to content

Hatake Kakashi

Members
  • Posts

    825
  • Joined

  • Last visited

Community Answers

  1. Hatake Kakashi's post in [Request] Multi Quest NPC with attached Cash Shop as Preview was marked as the answer   
    ow sorry. wrong post.
    that is pods donation npc with preview.
    here's dynamic quest npc.

    - shop quest_shop -1,501:50 turbo_room,119,87,5, script Dynamic Quest NPC 899,{ set @i,0; mes "[shop Quest NPC]"; mes "Which item do you wish to obtain?"; mes "Select only one."; callshop "quest_shop",1; npcshopattach "quest_shop"; end; OnBuyItem: if(.BuildQuest) { for(set .e,0; !compare(getarg(.e+1) + "","Zeny"); set .e,.e+2) {} npcshopadditem "quest_shop",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_all; 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: npcshopdelitem "quest_shop",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,7206,1,742,1,752,1,7212,1,7268,1,7277,1,741,1,754,1,743,1,753,1,750,1,751,1,1000000,"SZeny",2630,1,"announce"; case 2: callsub OnBuyItem,7179,100,2223,1,978,2,982,5,7063,300,1000000,"SZeny",5379,1,"announce"; case 3: callsub OnBuyItem,7179,100,2268,1,7114,10,7035,1,6023,10,1000000,"SZeny",5377,1,"announce"; case 4: callsub OnBuyItem,7179,200,7798,20,6022,3,7108,10,7799,10,7562,2,7450,5,1000000,"SZeny",1530,1,"announce"; case 5: callsub OnBuyItem,7179,100,5003,1,641,200,983,1,1020,200,737,100,1000000,"SZeny",30129,1,"announce"; case 6: callsub OnBuyItem,7179,10,7226,8,1061,100,7188,1000,1095,1000,7036,6,7300,10,727,20,7450,3,1000000,"SZeny",4145,1,"announce"; case 7: callsub OnBuyItem,7179,30,5493,1,7222,500,1061,400,1000000,"SZeny",5138,1,"announce"; case 8: callsub OnBuyItem,5305,1,7022,2,7207,100,7066,2000,12374,200,6089,6,674,20,1000000,"SZeny",30064,1,"announce"; case 9: callsub OnBuyItem,7214,200,939,200,7015,5,2280,1,1000000,"SZeny",30018,1,"announce"; case 10: callsub OnBuyItem,7298,150,712,500,521,500,1000000,"SZeny",5303,1,"announce"; case 11: callsub OnBuyItem,723,5,728,25,733,100,969,150,7095,500,2235,1,1000000,"SZeny",5396,1,"announce"; case 12: callsub OnBuyItem,7511,250,7340,100,7023,100,5131,1,1000000,"SZeny",5363,1,"announce"; case 13: callsub OnBuyItem,4351,200,4350,200,4349,200,4348,200,4347,200,4346,200,1000000,"SZeny",5536,1,"announce"; case 14: callsub OnBuyItem,7340,100,7020,5,2235,1,7568,2500,923,250,1000000,"SZeny",5564,1,"announce"; case 15: callsub OnBuyItem,7063,500,970,200,982,15,2254,15,1000000,"SZeny",5210,1,"announce"; case 16: callsub OnBuyItem,983,30,2202,2,914,500,7063,500,7298,200,1000000,"SZeny",5401,1,"announce"; case 17: callsub OnBuyItem,1040,200,949,500,916,500,7115,500,2286,1,1000000,"SZeny",5402,1,"announce"; case 18: callsub OnBuyItem,705,700,706,10,1019,500,7151,200,1000000,"SZeny",5596,1,"announce"; case 19: callsub OnBuyItem,1013,500,7097,500,5064,500,969,1000,1000000,"SZeny",5463,1,"announce"; case 20: callsub OnBuyItem,923,1000,1038,1000,969,1000,978,100,7179,300,1000000,"SZeny",5518,1,"announce"; case 21: callsub OnBuyItem,7097,500,2678,1,4430,1,7122,300,1000000,"SZeny",5421,1,"announce"; } }
×
×
  • Create New...