Advertisement
zero84ena

Adv Refiner v1.15

Dec 18th, 2011
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. //Made by zero84ena[meru]
  2. //v1.0 [release]
  3. //v1.05 [Bug fixes!]
  4. //v1.1 [added zeny cost] [needs waight chek!]
  5. //v1.15 [refine items are now the same as the official eli/ori refiners + reneval refiner material]
  6.  
  7. prt_in,52,56,7 script Advanced Refiner 86,{
  8.  
  9. //Configuration
  10. set .npc_name$,"^0000FF[Advanced Refiner]^000000";
  11. setarray .inputt[0],756,757,984,985,6224;
  12. setarray .output[0],984,985,6224,6223,6223;
  13. setarray .rate[0],5,5,3,3,1;
  14. setarray .zeny[0],0,0,50000,50000,500000;
  15. set .term$, "refine";
  16. //end of Configuraton
  17.  
  18.  
  19. set .itemsss,0;
  20. mes .npc_name$;
  21. mes "I can "+.term$+" the following:";
  22. for(set .i,0; .i < getarraysize(.inputt); set .i, .i +1){
  23. set .c, .i+1;
  24. setarray .names$[.i],getitemname(.inputt[.i]);
  25. setarray .nameso$[.i],getitemname(.output[.i]);
  26. set .zs$, (.zeny[.i]>0?"^754020"+.zeny[.i]+"z^000000":"");
  27. mes "^000099"+.names$[.i]+"^000000 ^900090("+ .rate[.i]+" /1)^000000 "+.zs$;
  28. }
  29. next;
  30.  
  31. //chking if u have some of the items?!
  32. for(set .ch,0; .ch < getarraysize(.inputt); set .ch,.ch+1) {
  33. if(countitem(.inputt[.ch]) >= .rate[.ch]) set .itemsss, .itemsss+1;
  34. }
  35.  
  36. if(.itemsss == 0) goto No_res;
  37.  
  38. set .menu$, "";
  39. //generating menu;
  40. set .kk,0; //identifying the 1st menu element;
  41. for(set .ko,0; .ko < getarraysize(.inputt); set .ko,.ko+1) {
  42. if(countitem(.inputt[.ko]) >= .rate[.ko] && Zeny >= .zeny[.ko]) {
  43. if(.kk == 0) {
  44. set .menu$,.menu$ + " Make"+getitemname(.output[.ko])+" ^00a000["+(countitem(.inputt[.ko]) / .rate[.ko])+"]^000000";
  45. set .kk,1;
  46. }else{
  47. set .menu$,.menu$ + ":Make " + getitemname(.output[.ko])+" ^00a000["+(countitem(.inputt[.ko]) / .rate[.ko])+"]^000000";
  48. }
  49. }
  50. if(countitem(.inputt[.ko]) < .rate[.ko] || Zeny < .zeny[.ko]) {
  51. set .error$, (Zeny < .zeny[.ko]?"^754020[Nzeny]^000000":"^900090[Nmater]^000000");
  52. if(.kk == 0) {
  53. set .menu$,.menu$ + "Cannot Make "+getitemname(.output[.ko]) + " " + .error$;
  54. set .kk,1;
  55. }else{
  56. set .menu$,.menu$ + ":Cannot Make " + getitemname(.output[.ko]) + " " + .error$;
  57. }
  58. }
  59. }
  60.  
  61. set .id,(select(.menu$)-1);
  62.  
  63. if(Zeny < .zeny[.id]) goto E_needzeny;
  64. if(.zeny[.id] != 0) set .makez, Zeny / .zeny[.id];
  65. else set .makez, Zeny;
  66. set .make,(countitem(.inputt[.id]) / .rate[.id]);
  67. if (.zeny[.id] > 0 && .make > .makez) set .maxx,.makez;
  68. else set .maxx,.make;
  69. if (.make == 0) goto No_res;
  70. mes .npc_name$;
  71. mes "I can make:^000099 "+.maxx+" - "+.nameso$[.id]+"^000000";
  72. mes "Materials required: ";
  73. mes "^000099"+.names$[.id]+"^000000 ^900090[" + .maxx * .rate[.id] + "]^000000";
  74. mes "You have: ^900090["+ countitem(.inputt[.id]) +"]^000000";
  75. if (.zeny[.id] > 0) {
  76. mes "It costs: ["+.zeny[.id]+"] z/ea";
  77. mes "Total: ["+.zeny[.id]*.maxx+"z] z";
  78. }
  79. mes "Do you vant me to make them?";
  80. next;
  81. switch(select("Yes:Yes But Not All:Dont need it")){
  82. case 1:
  83. mes .npc_name$;
  84. mes "Here is your ^000099"+.maxx+" "+.nameso$[.id]+"^000000";
  85. getitem .output[.id],.maxx;
  86. delitem .inputt[.id],.maxx*.rate[.id];
  87. set Zeny, Zeny-(.maxx*.zeny[.id]);
  88. close;
  89.  
  90. case 2:
  91. anew:
  92. mes .npc_name$;
  93. mes "You have: ^009000"+countitem(.inputt[.id])+" "+.names$[.id]+"^000000";
  94. mes "You have: ^500050"+Zeny+"^000000 Z";
  95. mes "The rate is: ^900090"+.rate[.id]+"^000000";
  96. if (.zeny[.id] > 0)
  97. mes "The price is: ^900090"+.zeny[.id]+"^000000 z/ea!";
  98. mes "Max is: ^0000FF"+.maxx+"^000000";
  99. mes "Ok. How Much?";
  100. next;
  101. input .offer;
  102.  
  103. if(Zeny < (.offer*.zeny[.id])) {
  104. mes .npc_name$;
  105. mes "Zeny requierd:^909000"+.offer*.zeny[.id]+"^000000";
  106. next;
  107. goto anew;
  108. }
  109. if(.offer > .maxx) {
  110. mes .npc_name$;
  111. mes "You only have material for ^FF0000"+.maxx+"^000000";
  112. next;
  113. goto anew;
  114. }
  115. if (.offer == 0) goto Seeya;
  116. mes .npc_name$;
  117. mes "Here is your ^000099"+.offer+" "+.nameso$[.id]+"^000000";
  118. if(.zeny[.id] > 0) set Zeny,Zeny-(.offer*.zeny[.id]);
  119. getitem .output[.id],.offer;
  120. delitem .inputt[.id],.offer*.rate[.id];
  121. close;
  122.  
  123. case 3:
  124. goto Seeya;
  125. }
  126. close;
  127.  
  128. Seeya:
  129. mes .npc_name$;
  130. mes "Seeya...";
  131. close;
  132.  
  133. No_res:
  134. mes .npc_name$;
  135. mes "You dont have enough items!";
  136. close;
  137.  
  138. E_needzeny:
  139. mes .npc_name$;
  140. mes "You dont have enough zeny!";
  141. close;
  142. end;
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement