2 Bot Checks in My Server

Other plugins for extending OpenKore's functionality. This forum is only for posting new plugins and commenting on existing plugins. For support, use the Support forum.

Moderator: Moderators

Message
Author
kingkevz
Human
Human
Posts: 25
Joined: 04 Apr 2008, 22:55

2 Bot Checks in My Server

#1 Post by kingkevz »

WORD NUMBERS


Image

As we can see in the image. It's written down as.

Input this number:

gsix Hundred tfortyf knine ----> This is the question.
one of five ----> This is the count of how many times you've failed his questions.

Ninety seconds to respond ----> Time limit of the question.

As we can see in the question it clearly states that it's
Six hundred fourty nine.

Now about the count.

At first it will come out as:
one of five. Once it reaches five of five and still you are unable to answer the question. You will be sent to jail for 30 minutes.

MONSTER CHAT


Image

The monster chat is a world different from the WORD NUMBERS, you will not see the answer in the dialogue box instead the answer will be seen at your chat box.

This is what comes out in the chatbox:

Familiar: ovukoj afew raiirow yag
Kukre: udadok cekiga ve ner
Stem Worm: icoho 958 wajec
Anacondaq: uxepet yic cbo ro

To be honest even i don't know what that means @.@.
But the only important detail there is the number "958".
Help Please !

asangongo10
Noob
Noob
Posts: 3
Joined: 29 Apr 2011, 11:34
Noob?: Yes

Re: 2 Bot Checks in My Server

#2 Post by asangongo10 »

yes sir help us , i check all the plugins here but no one match i think.

hmm0000
Noob
Noob
Posts: 4
Joined: 02 Apr 2011, 03:02
Noob?: Yes

Re: 2 Bot Checks in My Server

#3 Post by hmm0000 »

we have the same problem.. and ive search this forum and all i got is this..

in reactOnNPC.pl

Code: Select all

# =======================
# reactOnNPC v.2.0.0
# =======================
# This plugin is licensed under the GNU GPL
# Copyright 2006 by hakore
#
# http://forums.openkore.com/viewtopic.php?f=34&t=198

package reactOnNPC;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);

Plugins::register('reactOnNPC', "react on NPC messages", \&Unload);

my $hooks = (
   Plugins::addHooks(
            ['packet/npc_talk', \&onNPCTalk, undef],
            ['packet/npc_talk_close', \&onNPCAction, undef],
            ['packet/npc_talk_continue', \&onNPCAction, undef],
            ['packet/npc_talk_number', \&onNPCAction, undef],
            ['packet/npc_talk_responses', \&onNPCAction, undef],
            ['packet/npc_talk_text', \&onNPCAction, undef],
            ['mainLoop_pre', \&onCheckCmd, undef]
   )
);

my %reactOnNPC;
my @reactOnNPC;

sub Unload
{
   Plugins::delHooks($hooks);
};

sub onNPCTalk
{
   my (undef, $args) = @_;
   my $ID = unpack("V", substr($args->{RAW_MSG}, 4, 4));
   my $msg = unpack("Z*", substr($args->{RAW_MSG}, 8));

   $msg = I18N::bytesToString($msg);

   if (!defined %reactOnNPC || $reactOnNPC{action})
   {
      undef %reactOnNPC if defined %reactOnNPC;
      $reactOnNPC{index} = 0;
      $reactOnNPC{ID} = $ID;
      $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
   }
   else
   {
      $reactOnNPC{index}++;
      $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
   }
   debug "[reactOnNPC] NPC message saved ($reactOnNPC{index}): \"$msg\".\n", "reactOnNPC";
}

sub onNPCAction
{
   my $type = substr(shift, 16);
   $reactOnNPC{action} = $type;
   debug "[reactOnNPC] onNPCAction type is: $type.\n", "reactOnNPC";

   if ($type eq 'responses')
   {
      my $args = shift;
      my $msg = unpack("Z*", substr($args->{RAW_MSG}, 8));

      $msg = I18N::bytesToString($msg);

      undef @{$reactOnNPC{responses}};
      my @responses = split /:/, $msg;
      foreach (@responses) {
         push @{$reactOnNPC{responses}}, $_ if $_ ne "";
      }
   }
   
   my $i = 0;
   while (exists $config{"reactOnNPC_$i"}) {
      if (
         !$config{"reactOnNPC_$i"}
         || !main::checkSelfCondition("reactOnNPC_$i")
         || ($config{"reactOnNPC_${i}_type"} && $config{"reactOnNPC_${i}_type"} ne $type)
      ) {
         debug "[reactOnNPC] Conditions for reactOnNPC_$i not met.\n", "reactOnNPC";
         $i++;
         next;
      }
      my $j = 0;
      my $ok = 1;
      while (exists $config{"reactOnNPC_${i}_msg_$j"})
      {
         my $msg;
         if (exists $reactOnNPC{msg}[$j])
         {
            $msg = $reactOnNPC{msg}[$j];
            # Remove RO color codes
            $msg =~ s/\^[a-fA-F0-9]{6}//g unless ($config{"reactOnNPC_${i}_useColors"});
         }

         if (!defined $msg || !match($j, $msg, $config{"reactOnNPC_${i}_msg_$j"}))
         {
            debug "[reactOnNPC] One or more lines doesn't match for \"reactOnNPC_$i\" ($j).\n", "reactOnNPC";
            $ok = 0;
            last;
         }
         $j++;
      }

      if ($ok)
      {
         my $cmd = $config{"reactOnNPC_$i"};
         $cmd =~ s/#(\d+)~(\d+)/$reactOnNPC{match}[$1][$2]/g;
         my $kws = 'eval|resp';
         while (my ($kw, $expr) = $cmd =~ /\@($kws)\(((?:(?!(?<!\@)\@$kws\().)+?)(?<!\@)\)/)
         {
            my $eval;
            my $eval_expr = $expr;
            $eval_expr =~ s/\@(?=[\@)])//g;
            if ($kw eq 'eval')
            {
               $eval = eval $eval_expr;
            }
            elsif ($kw eq 'resp')
            {
               $i = 0;
               foreach (@{$reactOnNPC{responses}}) {
                  if (match(undef, $_, $eval_expr))
                  {
                     last;
                  }
                  $i++;
               }
               $eval = $i;
            }
            $expr = quotemeta $expr;
            $cmd =~ s/\@$kw\($expr\)/$eval/g;
         }
         if (my $delay = $config{"reactOnNPC_${i}_delay"})
         {
            my $params = {
               cmd => $cmd,
               time => time,
               timeout => $delay
            };
            debug "[reactOnNPC] React to NPC with delay. Execute command \"$cmd\" after $delay seconds.\n", "success";
            push @reactOnNPC, $params;
         }
         else
         {
            message "[reactOnNPC] Reacting to NPC. Executing command \"$cmd\".\n", "success";
            Commands::run($cmd);
         }
         last;
      }
      $i++;
   }
   undef %reactOnNPC if $type eq 'close';
}

sub onCheckCmd
{
   for (my $i = 0; $i < @reactOnNPC; $i++)
   {
      my $args = $reactOnNPC[$i];
      if (timeOut($args->{time}, $args->{timeout}))
      {
         message "[reactOnNPC] Reacting to NPC. Executing command \"".$args->{cmd}."\".\n", "success";
         Commands::run($args->{cmd});
      }
   }
}

sub match
{
   my ($line, $subject, $pattern) = @_;
   
   debug "[reactOnNPC] Matching \"$subject\" to \"$pattern\" ($line)... ", "reactOnNPC";
   if (my ($re, $ci) = $pattern =~ /^\/(.+?)\/(i?)$/)
   {
      if (($ci && $subject =~ /$re/i) || (!$ci && $subject =~ /$re/))
      {
         if (defined $line)
         {
            no strict;
            foreach my $index (1..$#-)
            {
               $reactOnNPC{match}[$line][$index] = ${$index};
            }
         }
         debug "regexp ok.\n", "reactOnNPC";
         return 1;
      }
   }
   elsif ($subject eq $pattern)
   {
      debug "ok.\n", "reactOnNPC";
      return 1;
   }
   debug "doesn't match.\n", "reactOnNPC";
}

return 1;
in config.txt

Code: Select all

reactOnNPC talk num @eval("#g0~1" || "#g1~1" || "#g2~1" || "#g3~1") {
msg_0 /\[Police\]/
msg_1 /./
msg_2 /Enter the number who said one of the monsters:/
msg_3 /./
msg_4 / seconds to respond/
guildMsg_0 /^\D*(\d+)?\D*$/
guildMsg_1 /^\D*(\d+)?\D*$/
guildMsg_2 /^\D*(\d+)?\D*$/
guildMsg_3 /^\D*(\d+)?\D*$/
type number
}
that was MONSTER CHAT scenario..
but my bot dont answer anything.. any idea? or anyone could help us here?
btw, i dont have the WORD NUMBER yet..

nicolas0349
Human
Human
Posts: 25
Joined: 14 Feb 2011, 13:34
Noob?: Yes

Re: 2 Bot Checks in My Server

#4 Post by nicolas0349 »

bump.

need help on this server also.

barakuda
Noob
Noob
Posts: 15
Joined: 25 Jun 2008, 21:23
Noob?: Yes

Re: 2 Bot Checks in My Server

#5 Post by barakuda »

Same problem here.

-Saint Seiya-
The Way Of Human
The Way Of Human
Posts: 182
Joined: 11 Apr 2008, 07:03

Re: 2 Bot Checks in My Server

#6 Post by -Saint Seiya- »

how to fix the 1st anti bot? got macro for it? i search for reactonnpc but doesnt seems to work

raymon
Noob
Noob
Posts: 3
Joined: 27 Jan 2012, 11:08
Noob?: Yes

Re: 2 Bot Checks in My Server

#7 Post by raymon »

same problem please help :D

jigazz
Noob
Noob
Posts: 2
Joined: 16 Feb 2012, 00:32
Noob?: Yes

Re: 2 Bot Checks in My Server

#8 Post by jigazz »

i have 100% working macro on that :D

ban123
Noob
Noob
Posts: 1
Joined: 13 Mar 2012, 13:02
Noob?: Yes

Re: 2 Bot Checks in My Server

#9 Post by ban123 »

->help please?post your macro here sir?Thanks and God Bless

jam
Noob
Noob
Posts: 5
Joined: 14 Mar 2012, 09:20
Noob?: No

Re: 2 Bot Checks in My Server

#10 Post by jam »

post screenshots of all the types of questions you guys might have got(from that npc) till now..so that i can find out exactly how these questions are generated
this way, i might be able to fix your problem.. you gotta be patient ..! the earlier you post the screenies, the faster i can help..my motivation doesn't last very long if people can't work together :D

Post Reply