Advertisement
Guest User

Untitled

a guest
Jun 8th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. OnBuyItem:
  2. if(.BuildQuest) {
  3. for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
  4. npcshopadditem "quest_shop1",getarg(.e+2),0;
  5. setarray .Shop[.i],getarg(.e+2);
  6. set .i,.i+1;
  7. goto Quest_Setup;
  8. }
  9. 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; }
  10. for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
  11. mes "[Shop Quest NPC]";
  12. mes "I require the following:";
  13. 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) + "]";
  14. if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
  15. mes "^000000In exchange, I will give you:^0000FF";
  16. for(set @i,@i+2; getarg(@i); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
  17. switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {
  18. case 1:
  19. for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
  20. next;
  21. mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
  22. mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
  23. close;
  24. }
  25. if(Zeny<getarg(@i)) {
  26. next;
  27. mes "You do not have enough Zeny.";
  28. mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";
  29. close;
  30. }
  31. for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
  32. set Zeny,Zeny-getarg(@i);
  33. for(set @i,@i+2; getarg(@i); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
  34. close;
  35. case 2:
  36. set @bottomview, getlook(3);
  37. set @topview, getlook(4);
  38. set @midview, getlook(5);
  39. addtimer 1000, strnpcinfo(3)+"::On_Leave";
  40. set @equip,getiteminfo(@bought_nameid, 5);
  41. set @view, getiteminfo(@bought_nameid, 11);
  42. if(@equip != -1 && @view > 0) {
  43. if(@equip & 1) atcommand "@changelook 3 " + @view;
  44. if(@equip & 256) atcommand "@changelook 1 " + @view;
  45. if(@equip & 512) atcommand "@changelook 2 " + @view;
  46. }
  47. next;
  48. goto OnBuyItem;
  49. case 3:
  50. close;
  51. }
  52. On_Leave:
  53. atcommand "@changelook 1 " + @topview;
  54. atcommand "@changelook 2 " + @midview;
  55. atcommand "@changelook 3 " + @bottomview;
  56. set @equip,0;
  57. set @view,0;
  58. set @topview,0;
  59. set @midview,0;
  60. set @bottomview,0;
  61. end;
  62. OnInit:
  63. npcshopitem "quest_shop1",0,0;
  64. set .BuildQuest,1;
  65. set .i,1;
  66. Quest_Setup:
  67. switch(.i) {
  68. default: set .BuildQuest,0; set .e,0; set .i,0; end;
  69. case 1: callsub OnBuyItem,7588,12,12,"Zeny",2357,1,0;
  70. case 2: callsub OnBuyItem,7588,8,8,"Zeny",2115,1,0;
  71. case 3: callsub OnBuyItem,7588,8,8,"Zeny",2421,1,0;
  72. case 4: callsub OnBuyItem,7588,10,10,"Zeny",2524,1,0;
  73. case 5: callsub OnBuyItem,7599,10,10,"Zeny",2646,1,0;
  74. case 6: callsub OnBuyItem,7599,14,14,"Zeny",2410,1,0;
  75. case 7: callsub OnBuyItem,7588,12,12,"Zeny",5706,1,0;
  76. case 8: callsub OnBuyItem,7588,12,12,"Zeny",5704,1,0;
  77. case 9: callsub OnBuyItem,7588,14,14,"Zeny",5705,1,0;
  78. case 10: callsub OnBuyItem,7588,50,50,"Zeny",5707,1,0;
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement