Macro Mods

Forum closed. All further discussion to be discussed at https://github.com/OpenKore/

Moderator: Moderators

Message
Author
Click
Human
Human
Posts: 39
Joined: 15 Apr 2008, 06:08
Noob?: Yes
Location: Russia, Velikiy Novgorod
Contact:

Re: Macro Mods

#11 Post by Click »

Oops, :) Prompt development

Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

Re: Macro Mods

#12 Post by Technology »

Someone linked me to this on IRC:
Can someone please take a look at it?

original source

For Macro v. 2.0.3-svn (27/7/52)

- add @ Npc(</regexp/i or "name">) for find npc by name (return binID)
becuz some server random position [can't find by @npc(xx yy)]




file ../plugins/Macro/Data.pm
find:

Code: Select all

   "npc"      . "|" .

replace with:

Code: Select all

   "[Nn]pc"      . "|" .



file ../plugins/Macro/Data.pm
find:

Code: Select all

use Macro::Utilities qw(refreshGlobal getnpcID getItemIDs getItemPrice getStorageIDs getInventoryIDs
   getPlayerID getVenderID getRandom getRandomRange getInventoryAmount getCartAmount getShopAmount
   getStorageAmount getVendAmount getConfig getWord q4rx q4rx2 getArgFromList getListLenght);

replace with:

Code: Select all

use Macro::Utilities qw(refreshGlobal getnpcID getnpcIDfromName getItemIDs getItemPrice getStorageIDs getInventoryIDs
   getPlayerID getVenderID getRandom getRandomRange getInventoryAmount getCartAmount getShopAmount
   getStorageAmount getVendAmount getConfig getWord q4rx q4rx2 getArgFromList getListLenght);


find:

Code: Select all

   if ($kw eq 'npc')         {$ret = getnpcID($arg)}
      elsif ($kw eq 'cart')      {($ret) = getItemIDs($arg, $::cart{'inventory'})}

replace with:

Code: Select all

      if ($kw eq 'npc')         {$ret = getnpcID($arg)}
      elsif ($kw eq 'Npc')      {$ret = getnpcIDfromName($arg)}
      elsif ($kw eq 'cart')      {($ret) = getItemIDs($arg, $::cart{'inventory'})}


file ../plugins/Macro/Utilities.pm
find:

Code: Select all

our @EXPORT_OK = qw(ai_isIdle q4rx q4rx2 between cmpr match getArgs refreshGlobal getnpcID getPlayerID
   getVenderID getItemIDs getItemPrice getInventoryIDs getStorageIDs getSoldOut getInventoryAmount
   getCartAmount getShopAmount getStorageAmount getVendAmount getRandom getRandomRange getConfig
   getWord callMacro getArgFromList getListLenght sameParty);

replace with:

Code: Select all

our @EXPORT_OK = qw(ai_isIdle q4rx q4rx2 between cmpr match getArgs refreshGlobal getnpcID getnpcIDfromName getPlayerID
   getVenderID getItemIDs getItemPrice getInventoryIDs getStorageIDs getSoldOut getInventoryAmount
   getCartAmount getShopAmount getStorageAmount getVendAmount getRandom getRandomRange getConfig
   getWord callMacro getArgFromList getListLenght sameParty);


find:

Code: Select all

use Macro::Data

add after:

Code: Select all

use Network;


find:

Code: Select all

sub getnpcID {
   my ($tmpx, $tmpy) = split(/ /,$_[0]);
   foreach my $npc (@{$npcsList->getItems()}) {
      return $npc->{binID} if ($npc->{pos}{x} == $tmpx && $npc->{pos}{y} == $tmpy)
   }
   return -1
}

add after:

Code: Select all

sub getnpcIDfromName {
   my $nameNPC = $_[0];
   foreach my $npc (@{$npcsList->getItems()}) {
     if(my($re, $ci) = $nameNPC =~ /^\/(.+?)\/(i?)$/){
      if(($ci && $npc->{name} =~ /$re/i) || (!$ci && $npc->{name} =~ /$re/)){
        return $npc->{binID}
      }
     }elsif($nameNPC =~ /^"(.*?)"$/){
        return $npc->{binID} if $npc->{name} eq $1
     }
   }
   return -1
}
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

ezza
Developers
Developers
Posts: 109
Joined: 04 Apr 2008, 09:50

Re: Macro Mods

#13 Post by ezza »

Done it already with different approach. http://forums.openkore.com/viewtopic.php?f=32&t=6784

Locked