Advertisement
Guest User

item upgrade

a guest
Mar 17th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 6.77 KB | None | 0 0
  1. sub UpgradeItem {
  2.     my $client = plugin::val('$client');
  3.     my $yel = plugin::PWColor("Yellow");
  4.     my $gold = plugin::PWColor("Goldenrod");
  5.     my $red = plugin::PWColor("Red");
  6.     my $orange = plugin::PWColor("Orange");
  7.     my $break = ("---------------------------------------");
  8.     my $indent = plugin::PWIndent();
  9.     my $item_name1 = "";
  10.     my $item_name2 = "";
  11.     my $percentage = 0;
  12.     my %first_slot = (
  13.         22 => 251,
  14.         23 => 261,
  15.         24 => 271,
  16.         25 => 281,
  17.         26 => 291,
  18.         27 => 301,
  19.         28 => 311,
  20.         29 => 321
  21.     );
  22.     my %upgrade_items = (
  23.      #rank  #itemid  #count  #chance
  24.         0 => [13006, 5, 80],
  25.         1 => [13006, 5, 70],
  26.         2 => [13006, 5, 60],
  27.         3 => [13006, 5, 50],
  28.         4 => [13006, 5, 40],
  29.         5 => [13006, 5, 35],
  30.         6 => [13006, 5, 30],
  31.         7 => [13006, 5, 25],
  32.         8 => [13006, 5, 20]
  33.     );
  34.    
  35.     my $bag_slot = plugin::find_container($client,17021);
  36.     if(!$bag_slot) { return; }
  37.     #$client->Message(335, "Bag is in slot $bag_slot");
  38.     my $item1 = $client->GetItemAt($first_slot{$bag_slot});
  39.     my $item2 = $client->GetItemAt($first_slot{$bag_slot} + 1);
  40.     my $item_id1 = 0;
  41.     my $item_id2 = 0;
  42.     my $ITEMNAME1 = "";
  43.     my $ITEMNAME2 = "";
  44.     my $rank = "";
  45.    
  46.     if($item1 && $item2) {
  47.         $item_id1 = $item1->GetID();
  48.         $item_id2 = $item2->GetID();
  49.         $ITEMNAME1 = $item1->GetName();
  50.         $ITEMNAME2 = $item2->GetName();
  51.         #$client->Message(335, "$item_id1 Item1: " . $item1->GetName() . " $item_id2 Item2: " . $item2->GetName());
  52.         $item_name1 = substr($item1->GetName(), -2);
  53.         $rank = substr($item_name1, -1);
  54.        
  55.         if($item_name1 =~/\+9/i) {
  56.             $client->Message(13, "This item is fully upgraded");
  57.             return;
  58.         } elsif ($item_name1 =~/\+6|\+7|\+8/i) {
  59.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  60.                 $percentage = $upgrade_items{$rank}[2];
  61.             }
  62.         } elsif ($item_name1 =~/\+3|\+4|\+5/i) {
  63.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  64.                 $percentage = $upgrade_items{$rank}[2];
  65.             }
  66.         } elsif ($item_name1 =~/\+0|\+1|\+2/i) {
  67.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  68.                 $percentage = $upgrade_items{$rank}[2];
  69.             }
  70.         }
  71.        
  72.         if($percentage > 0) {
  73.             quest::popup("Would you like to upgrade?","$yel Item to Upgrade:</c> $ITEMNAME1 <br>
  74.                          $yel Material Required:</c> $ITEMNAME2 <br>
  75.                          $yel Material Amount Required:</c> $upgrade_items{$rank}[1] <br>
  76.                          $orange You have a $percentage% chance to upgrade this item.</c> <br>
  77.                          $break <br>
  78.                          $red !!!! DISCLAIMER !!!! </c> Please make sure all augments are removed from the item as they will $red NOT </c> be returned
  79.                          if the item successfully upgrades. Any tinkered effects will be lost. <br><br><br>
  80.                          $gold Click 'Yes' to attempt to upgrade your item.
  81.                          ",10006,1,0);
  82.         } else {
  83.             $client->Message(13, "Items do not match.");
  84.         }
  85.     } else {
  86.         $client->Message(13, "Items missing from container.");
  87.     }
  88. }
  89.  
  90. sub UpgradeItemConfirm {
  91.     my $client = plugin::val('$client');
  92.     my $item_name1 = "";
  93.     my $item_name2 = "";
  94.     my $percentage = 0;
  95.     my %first_slot = (
  96.         22 => 251,
  97.         23 => 261,
  98.         24 => 271,
  99.         25 => 281,
  100.         26 => 291,
  101.         27 => 301,
  102.         28 => 311,
  103.         29 => 321
  104.     );
  105.     my %upgrade_items = (
  106.      #rank  #itemid  #count  #chance
  107.         0 => [13006, 5, 80],
  108.         1 => [13006, 5, 70],
  109.         2 => [13006, 5, 60],
  110.         3 => [13006, 5, 50],
  111.         4 => [13006, 5, 40],
  112.         5 => [13006, 5, 35],
  113.         6 => [13006, 5, 30],
  114.         7 => [13006, 5, 25],
  115.         8 => [13006, 5, 20]
  116.     );
  117.    
  118.     my $bag_slot = plugin::find_container($client,17021);
  119.     if(!$bag_slot) { return; }
  120.     #$client->Message(335, "Bag is in slot $bag_slot");
  121.     my $item1 = $client->GetItemAt($first_slot{$bag_slot});
  122.     my $item2 = $client->GetItemAt($first_slot{$bag_slot} + 1);
  123.     my $item_id1 = 0;
  124.     my $item_id2 = 0;
  125.     my $ITEMNAME1 = "";
  126.     my $ITEMNAME2 = "";
  127.     my $charges = 0;
  128.     my $aug1 = 0;
  129.     my $aug2 = 0;
  130.     my $aug3 = 0;
  131.     my $aug4 = 0;
  132.     my $aug5 = 0;
  133.     my $rank = "";
  134.    
  135.     if($item1 && $item2) {
  136.         $item_id1 = $item1->GetID();
  137.         $item_id2 = $item2->GetID();
  138.         $ITEMNAME1 = $item1->GetName();
  139.         $ITEMNAME2 = $item2->GetName();
  140.         #$client->Message(335, "$item_id1 Item1: " . $item1->GetName() . " $item_id2 Item2: " . $item2->GetName());
  141.         $item_name1 = substr($item1->GetName(), -2);
  142.         $rank = substr($item_name1, -1);
  143.         #$client->Message(335, "substr is $item_name1");
  144.        
  145.         if($item_name1 =~/\+9/i) {
  146.             $client->Message(13, "This item is fully upgraded");
  147.             return;
  148.         } elsif ($item_name1 =~/\+6|\+7|\+8/i) {
  149.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  150.                 $percentage = $upgrade_items{$rank}[2];
  151.                 $charges = $upgrade_items{$rank}[1];
  152.             }
  153.         } elsif ($item_name1 =~/\+3|\+4|\+5/i) {
  154.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  155.                 $percentage = $upgrade_items{$rank}[2];
  156.                 $charges = $upgrade_items{$rank}[1];
  157.             }
  158.         } elsif ($item_name1 =~/\+0|\+1|\+2/i) {
  159.             if($item_id2 == $upgrade_items{$rank}[0] && $item2->GetCharges() >= $upgrade_items{$rank}[1]) {
  160.                 $percentage = $upgrade_items{$rank}[2];
  161.                 $charges = $upgrade_items{$rank}[1];
  162.             }
  163.         }
  164.        
  165.         if($percentage > 0) {
  166.             my $random = int(rand(100)+1);
  167.             if ($random <= $percentage) {
  168.                 $aug1 = $client->GetAugmentIDAt($first_slot{$bag_slot}, 0) > 0 && $client->GetAugmentIDAt($first_slot{$bag_slot}, 0) < 2000000 ? $client->GetAugmentIDAt($first_slot{$bag_slot}, 0) : 0;
  169.                 $aug2 = $client->GetAugmentIDAt($first_slot{$bag_slot}, 1) > 0 && $client->GetAugmentIDAt($first_slot{$bag_slot}, 1) < 2000000 ? $client->GetAugmentIDAt($first_slot{$bag_slot}, 1) : 0;
  170.                 $aug3 = $client->GetAugmentIDAt($first_slot{$bag_slot}, 2) > 0 && $client->GetAugmentIDAt($first_slot{$bag_slot}, 2) < 2000000 ? $client->GetAugmentIDAt($first_slot{$bag_slot}, 2) : 0;
  171.                 $aug4 = $client->GetAugmentIDAt($first_slot{$bag_slot}, 3) > 0 && $client->GetAugmentIDAt($first_slot{$bag_slot}, 3) < 2000000 ? $client->GetAugmentIDAt($first_slot{$bag_slot}, 3) : 0;
  172.                 $aug5 = $client->GetAugmentIDAt($first_slot{$bag_slot}, 4) > 0 && $client->GetAugmentIDAt($first_slot{$bag_slot}, 4) < 2000000 ? $client->GetAugmentIDAt($first_slot{$bag_slot}, 4) : 0;
  173.                
  174.                 $client->DeleteItemInInventory($first_slot{$bag_slot},0,1);
  175.                 $client->DeleteItemInInventory($first_slot{$bag_slot} + 1,$charges,1);
  176.                 $client->SummonItem($item_id1 + 1, 1, 0, $aug1, $aug2, $aug3, $aug4, $aug5, $first_slot{$bag_slot});
  177.                 $client->Message(15,"Upgrade Succeeded. Congratulations on your new " . quest::varlink($item_id1 +1) ."!");
  178.             } else {
  179.                 $client->DeleteItemInInventory($first_slot{$bag_slot} + 1,$charges,1);
  180.                 $client->Message(15, "Upgrade failed.");
  181.             }
  182.         } else {
  183.             $client->Message(13, "Items do not match.");
  184.         }
  185.     } else {
  186.         $client->Message(13, "Items missing from container.");
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement