Henrybk

Macro Quest Condition Final

Aug 26th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.56 KB | None | 0 0
  1. Index: Macro/Automacro.pm
  2. ===================================================================
  3. --- Macro/Automacro.pm  (revision 8990)
  4. +++ Macro/Automacro.pm  (working copy)
  5. @@ -670,6 +670,33 @@
  6.     return 0
  7.  }
  8.  
  9. +sub checkQuest {
  10. +    my ($args) = @_;
  11. +    if ($_[0] =~ /,/) {
  12. +        my @key = split(/\s*,\s*/, $_[0]);
  13. +        foreach my $e (@key) {return 1 if checkQuest($e)}
  14. +        return 0
  15. +    }
  16. +    my $questID;
  17. +    if ($args =~ /^(\d+)/) { $questID = $1; } else { return 0; }
  18. +    $args =~ s/^\d+\s+//;
  19. +    if ($args eq "active" || $args eq "inactive") {
  20. +        my $WantedStatus = ($args eq "active")?1:0;
  21. +        return 1 if (($::questList->{$questID}->{'active'} == 1 && $WantedStatus == 1) || ($::questList->{$questID}->{'active'} == 0 && $WantedStatus == 0) || (!$::questList->{$questID}->{'active'} && $WantedStatus == 0));
  22. +    } elsif ($args eq "killed") {
  23. +        my @MobIds = keys %{($questList->{$questID})->{missions}};
  24. +        return 0 if ($::questList->{$questID}->{'active'} != 1);
  25. +        foreach my $MobId (@MobIds) {
  26. +            return 0 unless ($::questList->{$questID}->{missions}->{$MobId}->{count} == $::questList->{$questID}->{missions}->{$MobId}->{goal});
  27. +        }
  28. +        return 1;
  29. +    } elsif ($args eq "time over" || $args eq "time inside") {
  30. +        my $WantedTime = ($args eq "time inside")?1:0;
  31. +        return 1 if ($::questList->{$questID}->{'active'} == 1 && (($::questList->{$questID}->{'time'} > time && $WantedTime == 1) || ($::questList->{$questID}->{'time'} < time && $WantedTime == 0)));
  32. +    }
  33. +    return 0;
  34. +}
  35. +
  36.  # parses automacros and checks conditions #################
  37.  sub automacroCheck {
  38.     my ($trigger, $args) = @_;
  39. @@ -788,6 +815,7 @@
  40.         foreach my $i (@{$automacro{$am}->{storage}})    {next CHKAM unless checkItem("stor", $i)}
  41.         foreach my $i (@{$automacro{$am}->{shop}})       {next CHKAM unless checkItem("shop", $i)}
  42.         foreach my $i (@{$automacro{$am}->{cart}})       {next CHKAM unless checkItem("cart", $i)}
  43. +       foreach my $i (@{$automacro{$am}->{quest}})      {next CHKAM unless checkQuest($i)}
  44.  
  45.         message "[macro] automacro $am triggered.\n", "macro";
  46.  
  47. Index: Macro/Data.pm
  48. ===================================================================
  49. --- Macro/Data.pm   (revision 8990)
  50. +++ Macro/Data.pm   (working copy)
  51. @@ -70,6 +70,7 @@
  52.     'storage' => 1,      # check: item amount in storage
  53.     'shop' => 1,         # check: item amount in shop
  54.     'cart' => 1,         # check: item amount in cart
  55. +   'quest' => 1,        # check: player quests
  56.     'localtime' => 1     # check: localtime
  57.  );
Advertisement
Add Comment
Please, Sign In to add comment