Advertisement
KujiUn

FE Level Up Bot Code

Jun 18th, 2014
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.33 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Scalar::Util qw(looks_like_number);
  5. Xchat::register("FE Level Up","2014.06.25","Bot to level up FE characters");
  6. Xchat::print("Fire Emblem Level Up Script loaded!");
  7. Xchat::hook_print('Channel Message', "roll");
  8. Xchat::hook_print('Your Message', "roll");
  9. Xchat::hook_print('Private Message to Dialog', "roll");
  10.  
  11. my @stats = ("HP", "STR", "MAG", "SKL", "LUK", "DEF", "RES", "SPD");
  12.  
  13. sub roll {
  14.     my @pubwords = split(/ /, Xchat::strip_code($_[0][1]));
  15.     return Xchat::EAT_NONE if ($#pubwords eq -1);
  16.     if ($pubwords[0] eq '!felp') {
  17.         if (not $pubwords[1]) {
  18.             return Xchat::EAT_NONE;
  19.         } elsif ($pubwords[1] eq 'help') {
  20.             Xchat::command("SAY Use ROLL after !felp to just roll 8 d100s or input PROG and your progression, separated by spaces, to have the bot compare each one. Use the order listed below: (Type !felp ORDER to check the order again.)");
  21.             Xchat::command("SAY " . join(" ", @stats));
  22.             return Xchat::EAT_PLUGIN;
  23.         } elsif ($pubwords[1] eq 'order') {
  24.             Xchat::command("SAY " . join(" ", @stats));
  25.             return Xchat::EAT_PLUGIN;
  26.         } elsif ($pubwords[1] eq 'roll' or $pubwords[1] eq 'prog') {
  27.             my @results;
  28.            
  29.             for (my $i = 0; $i < 8; $i++) {
  30.                 $results[$i] = int(rand(100)) + 1;
  31.             }
  32.            
  33.             my $output = join(" ", @results);
  34.             Xchat::command("SAY ROLL results: " . $output);
  35.            
  36.             if ($pubwords[1] eq 'roll') {
  37.                 return Xchat::EAT_PLUGIN;
  38.             } elsif ($pubwords[1] eq 'prog') {
  39.                 my $statresults = '';
  40.                 for (my $i = 0; $i < 8; $i++) {
  41.                     my $numstats = int($pubwords[$i+2] / 100);
  42.                     if ($pubwords[$i+2] % 100 > $results[$i]) {
  43.                         $numstats++;
  44.                     }
  45.                    
  46.                     if ($numstats > 1) {
  47.                         $statresults .= $stats[$i] . "x$numstats ";
  48.                     } elsif ($numstats == 1) {
  49.                         $statresults .= $stats[$i] . " ";
  50.                     }
  51.                 }
  52.                
  53.                 if ($statresults) {
  54.                     chop $statresults;
  55.                 } else {
  56.                     $statresults = 'None';
  57.                 }
  58.                
  59.                 my $charname = "";
  60.                 for (my $j = 10; $j <= $#pubwords; $j++) {
  61.                     $charname .= $pubwords[$j] . " ";
  62.                 }
  63.                
  64.                 my $cmd;
  65.                 if ($charname) {
  66.                     chop $charname;
  67.                     $cmd = "SAY " . $charname . "'s STATS UP: " . $statresults;
  68.                 } else {
  69.                     $cmd = "SAY STATS UP: " . $statresults;
  70.                 }   Xchat::command($cmd);
  71.                
  72.                 return Xchat::EAT_PLUGIN;
  73.             }
  74.         }
  75.     }
  76.    
  77.     return Xchat::EAT_NONE;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement