Advertisement
Angst

TStone [+20]

Dec 11th, 2011
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.82 KB | None | 0 0
  1. function    script  AMRA    {
  2. //Tier Stone ID's 1-20
  3. set .ts0, 32100;
  4. set .ts1, 32101;
  5. set .ts2, 32102;
  6. set .ts3, 32103;
  7. set .ts4, 32104;
  8. set .ts5, 32105;
  9. set .ts6, 32106;
  10. set .ts7, 32107;
  11. set .ts8, 32108;
  12. set .ts9, 32109;
  13. set .ts10, 32110;
  14. set .ts11, 32111;
  15. set .ts12, 32112;
  16. set .ts13, 32113;
  17. set .ts14, 32114;
  18. set .ts15, 32115;
  19. set .ts16, 32116;
  20. set .ts17, 32117;
  21. set .ts18, 32118;
  22. set .ts19, 32119;
  23. set .ts20, 32120;
  24. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  25.     set .@id, getarg(0);
  26.     if (.@id == .ts0) {
  27.         if (countitem(.@id) > 2) {
  28.             set .@del, ((countitem(.@id)/3)*3);
  29.             getitem (1 + .@id), (countitem(.@id)/3);
  30.             delitem .@id, .@del;
  31.         }
  32.         end;
  33.     }
  34.     if (.@id >= .ts1 && .@id <= .ts19) {
  35.         prompt "Merge 3 "+getitemname(.@id)+"'s","Apply "+getitemname(.@id)+" to Equipment.";
  36.         if (@menu == 1) {
  37.             if (countitem(.@id) == 2) {
  38.                 message strcharinfo(0), "Merge Failed: "+(3 - countitem(.@id))+" more "+getitemname(.@id)+" is needed to merge.";
  39.                 close;
  40.             }
  41.             if (countitem(.@id) == 1) {
  42.                 message strcharinfo(0), "Merge Failed: "+(3 - countitem(.@id))+" more "+getitemname(.@id)+"'s are needed to merge.";
  43.                 close;
  44.             } else {
  45.                 set .@del, ((countitem(.@id)/3)*3);
  46.                 getitem (1 + .@id), (countitem(.@id)/3);
  47.                 delitem .@id, .@del;
  48.                 if (countitem(.@id) == 1) {
  49.                     dispbottom "One "+getitemname(.@id)+" could not merge.";
  50.                 }
  51.                 if (countitem(.@id) == 2) {
  52.                     dispbottom "Two "+getitemname(.@id)+"'s could not merge.";
  53.                 }
  54.             }
  55.             close;
  56.         }
  57.         if (@menu == 2) goto AMRACOMB;
  58.         if (@menu == 255) close;
  59.     }
  60.     if (.@id == .ts20) {
  61.         prompt "Apply "+getitemname(.@id)+" to Equipment.";
  62.         if (@menu == 1) goto AMRACOMB;
  63.        
  64.     }
  65. AMRACOMB:
  66.     set .@id, getarg(0);
  67.     mes "Select what you wish to refine.";
  68.     mes " ";
  69.     mes "You can refine an item up to +"+(.@id - .ts0)+" using this stone.";
  70.     setarray .@position$[1], "Head (Upper)","Armor","Left hand","Right hand","Robe","Shoes","Accessory (Left)","Accessory (Right)","Head (Mid)","Head (Lower)";
  71.     set .@menu$,"";
  72.     for (set .@i, 1; .@i <= 10; set .@i, .@i + 1) {
  73.         if (getequipisequiped(.@i))
  74.             if (getequiprefinerycnt(.@i) > 0) {
  75.                 set .@menu$, .@menu$ + .@position$[.@i] + " - " + "[+" + getequiprefinerycnt(.@i) + " " + getequipname(.@i) + "]";
  76.             } else {
  77.                 set .@menu$, .@menu$ + .@position$[.@i] + " - " + "[" + getequipname(.@i) + "]";
  78.             }
  79.         set .@menu$, .@menu$ + ":";
  80.     }
  81.     set .@part, select(.@menu$);
  82.     if (!getequipisequiped(.@part)) {
  83.         next;
  84.         mes "Nothing equipped in that slot.";
  85.         close;
  86.     }
  87.     if (!getequipisenableref(.@part)) {
  88.         next;
  89.         mes "This item is not refineable.";
  90.         close;
  91.     }
  92.     if (!getequipisidentify(.@part)) {
  93.         next;
  94.         mes "This has not been identified. Please identify it before attempting to refine.";
  95.         close;
  96.     }
  97.     if (getequiprefinerycnt(.@part) >= 20) {
  98.         next;
  99.         mes "Max level reached, the process has failed.";
  100.         close;
  101.     }
  102. close2;
  103.     if (.@id >= 1) {
  104.         set .@tlevel, (.@id - .ts0);
  105.         set .@currefine, getequiprefinerycnt(.@part);
  106.         if (getequiprefinerycnt(.@part) > 0) {
  107.             if (.@currefine == .@tlevel) {
  108.                 mes "You cannot use this stone on your "+getequipname(.@part)+".";
  109.                 mes "Current equipment's refinement is equal to the stone's power.";
  110.                 close;
  111.             }
  112.             if (.@currefine > .@tlevel) {
  113.                 mes "You cannot use this stone on your "+getequipname(.@part)+".";
  114.                 mes "Current equipment's refinement is higher than the stone's power.";
  115.                 close;
  116.             }
  117.             if (.@currefine < .@tlevel) {
  118.                 delitem .@id, 1;
  119.                 set .@r, 1;
  120.                 set .@diff, .@tlevel - .@currefine;
  121.                 while(.@r <= .@diff) {
  122.                     successrefitem .@part;
  123.                     set .@r, .@r + 1;
  124.                 }
  125.                 close;
  126.             }
  127.         }
  128.         if (getequiprefinerycnt(.@part) == 0) {
  129.             delitem .@id, 1;
  130.             set .@r, 1;
  131.             while(.@r <= .@tlevel) {
  132.                 successrefitem .@part;
  133.                 set .@r, .@r + 1;
  134.             }
  135.             close;
  136.         }
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement