Jump to content


  ยินดีต้อนรับเข้าสู่เว็บไซต์ Thaibuzz.com : ลงชื่อเข้าใช้ : สมัครสมาชิก


Photo

PL. ปลั๊กอิน QUESTION IN ONE


  • Please log in to reply
60 replies to this topic

#1 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 05 November 2007 - 11:56 PM

รับเปิดบอททุก SERVER (OpenKORE) ( Private SERVER)

-ไม่มีเวลาเปิด
-เปิดได้ไม่ต่อเนื่อง
-เสป็กคอมไม่ดี

เงื่อนใข
-เปิดอย่างเดียว คล้ายๆๆกับเอาไฟล์มาฝากเปิด
-ถ้ามีแอนตี้แก้มาให้เรียบร้อย (ถ้ากลัวรั่วใช้โปรแกรมเข้ารหัสตัวอักษรใว้เปิดมาก็ อ่านไม่ออก)
-คำสั่งพิเศษ เช่น การรีโมต ควบคุมระยะไกล การพิมสั่งปิดบอท (สั่งlog out 10 นาทีทำนองนี้) ต้องSETมาเอง
-ถ้าไม่รีโมตสั่งปิดได้เปิดได้แต่ต้องโทรมาบอกหรือmsn

-หาก AS มันไม่จับไปฮ่องกง จะเขียนเวปสั่งปิด-เปิดการใช้งานบอท

เสป๊กบอท-เครื่อง
บอท
ความละเอียดตัวบอท ค่าSleep time 10,000 - 100,000
หยุด/รีเลย/และอื่นๆ มาโคร-ปลั๊กอิน 1 วินาที ขึ้นไป ( เช่น pause 1 ในมาโคร และอื่นๆ)
TIME OUT ต่ำสุดแค่ 0.0X วินาที (0.00001 ตั้งเพื่ออะไร 0.1ตาก็มองไม่ทันแล้ว)


เครื่อง
P D 3.6 G
HDD 250 G 12,000 รอบ (12,000 RPM) เขียนไฟล์ใวมากกว่า HDD ปรกติ 1.5 เท่า
RAM 4G RD RAM BUS 1200
NET 3M ไม่แชร์

ใช้พลังงาน อินเวอร์เอตร์ ทู คอนเวอเตอร์ ลดค่าใช้ไฟฟ้าลง 60% (ชมละ 15-25 สตางค์)
สำรองไฟได้ 6 ชั่วโมง หากเกิดไฟดับหรือจนกว่าแบตเตอรี่อินเวอร์เตอร์จะหมด



จำกัดเครื่องละ 15 ตัว ( SLEEP 50,000 )
จำกัดเครื่องละ 10 ตัว ( SLEEP 10,000 )

เปิด 3 ตัว 300/เดือน
เปิด 5 ตัว 460/เดือน

ทดลองเปิดฟรีได้ 1 วันเต็ม (1 ตัว)

สนใจติดต่อ

-085 139 8639 (ท๊อป)

[email protected]

-วิทยาลัยเทคนิคสมุทรปราการ ห้อง 511 +ท๊อป+ (ห้องหุ่นยนต์)

-วิทยาลัยเทคนิคสมุทรปราการ ห้อง 512 +ท๊อป+ (ห้องโครงงาน)



-------------------------------------------------------------------------------------------------------






ใช้สำหรับ SERVER ที่ถามแบบในรูปนะครับ^^




CODE
Thx.www.thaikore.com


CODE
###########################
# Name of Plugin: responseOnASCIInumber.pl
# Version: 2.1 (3/8/2550)
# Version of Openkore Required: OpenKore 1.9.x (test in Opk 1.9.4)
#
# Description: for response BotKiller #1 - Method 4: ASCII number. (http://www.eathena.ws/board/index.php?showtopic=120522)
#
# ***************************************************************
# *    For read my note : Editplus > tools > preferences.. fonts "Tahoma" size 9    *
# ***************************************************************
# *         NOTE 01 : This plugin meant to be use with hakore's reactOnNPC            *
# ***************************************************************
#
# Ex. ../control/config.txt
#        reactOnNPC ASCIInumber num {
#            type number
#                msg_0 /.*/
#                msg_1 /.*/
#                msg_2 /.*/
#                msg_3 /.*/
#                msg_4 /.*/
#                msg_5 /.*/
#                msg_6 /.*/
#        }
#
# ***************************************************************
# *         NOTE 02 : This plugin meant to be modify you server by youselft            *
# ***************************************************************
#
# A. How to get number and lenght of number
# - set ../control/config.txt : debug 2, logConsole 1
# - use plugins reactOnNPC.pl ,responseOnASCIInumber.pl
# - look at you ../logs/console.txt
# B. How to Change lenght of number (defult = 8) [ex. Creamsoda-RO = 25, Rookie-RO = 8]
# - look at line(51) my $lengthCharNumber =8; (8 is length of number)
#
# C. How to add another number [ suport A-Z, if you can :) ]
# - look at line(160) my %digit =  ('##########====####====####====##########' => 0,
#
# ex. number 0                =       ##########====####====####====##########
# 1 number = 8 character=    ######## ##====## ##====## ##====## ########
#                                    =            1                    2                  3                     4                    5
#                                                V                    |                  |                      |                    |
#  1 ########    <- -    -    ########            V                  |                      |                    |
#  2 ##====##    <- -    -    -    -    -    -    -  ##====##          V                  |                    |
#  3 ##====##    <- -    -    -    -    -    -    -    -    -    -    -    -    ##====##          V                |
#  4 ##====##    <- -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    ##====##            V
#  5 ########    <-    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    -    ########
#
#    ***************************************************************
#    :::: Thank For :::::
#    LogConsole : krrado,Shyshio,zeruelx [Forums, PM]
#    Tester : Shyshio [VanRO]
#

package reactOnNPCASCIInumber;

use strict;
use Plugins;
use Utils;
use Globals qw(%talk);
use Commands qw(run register unregister);
use Log qw(message debug);
use I18N qw(bytesToString);

my %reactOnNPC;
my $line_msg;
my @num_0;
my @num_1;
my @num_2;
my @num_3;
my $startLine;    
my $line_msgNum;
my $lengthCharNumber =8;

Plugins::register('responseOnASCIInumber', 'response On ASCII number', \&onUnload);
my $cmd = Commands::register(['ASCIInumber', 'talk response On ASCII number', \&onASCIICmd]);
my $hooks = Plugins::addHooks(
            ['packet/npc_talk', \&onNPCTalk],
            ['packet/npc_talk_close', \&onUndef]
);

sub onUnload {
    Plugins::delHooks($hooks);
    Commands::unregister($cmd);
    undef %reactOnNPC;
    undef @num_0;
    undef @num_1;
    undef @num_2;
    undef @num_3;
}

sub onUndef {
    undef %reactOnNPC;
}

sub onNPCTalk {
    my (undef, $args) = @_;
    my $msg = I18N::bytesToString(unpack("Z*", substr($args->{RAW_MSG}, 8)));
    #message "[Hex color] $msg\n", "success";

    my @npcMsg = '';
    @npcMsg = split(/\^/,$msg);
    $msg ='';
        foreach my $line (@npcMsg) {
        # Convert ASCII Background to =    
            if ($line =~ s/^[E|F|C|D|c|d|e|f][A-Fa-f0-9][C-Fc-f][A-Fa-f0-9]{3}//) {
                $line =~ s/./=/g;
            } else {
        # Convert ASCII Number to #
                $line =~ s/^[A-Fa-f0-9]{6}//;
                $line =~ s/./#/g;
            }
                $msg .= $line;
        }
    debug "[Convert NPC message] to : $msg\n", "success";
    if (!defined %reactOnNPC || $reactOnNPC{action}) {
        undef %reactOnNPC if defined %reactOnNPC;
        $reactOnNPC{index} = 1;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    } else {
        $reactOnNPC{index}++;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    }
}

sub onCheckASCII {
    my (undef, $args) = @_;
    
    # For Disply ASCII number [set "debug 2" to see detail]
    @num_0 ='';
    @num_1 ='';
    @num_2 ='';
    @num_3 ='';
    $line_msg =0;
    $line_msgNum =0;
    my $i =0;
    my $j =0;

    for ($i=1;$i < $reactOnNPC{index}+1;$i++) {
            message "[$i] : $reactOnNPC{msg}[$i]\n", "success";
            $line_msg += 1;
    }

    #get num & position
    for ($i = 0;$i <= length($reactOnNPC{msg}[$line_msg-1]);$i++) {
        for ($j=0;$j <= length($reactOnNPC{msg}[$line_msg-1]) - $lengthCharNumber;$j++) {
                $num_0[$i]  = substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-1], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg], $i, $lengthCharNumber);

                $num_1[$i]  = substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-1], $i, $lengthCharNumber);

                $num_2[$i]  = substr($reactOnNPC{msg}[$line_msg-6], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);                
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);

                $num_3[$i]  = substr($reactOnNPC{msg}[$line_msg-7], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-6], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
        }
            $line_msgNum += 1;
    }

    undef %reactOnNPC if defined %reactOnNPC;
    &onDebug;
}

sub onASCIICmd {
    my (undef, $args) = @_;
    &onCheckASCII;
    my %digit =  ('######===##===##===######' => 0,
                        '==####==##==######====######==##==####==' => 0,
                        '==####==##====####====####====##==####==' => 0,
                        '##########====####====####====##########' => 0,
                        '==#===##====#====#==#####' => 1,
                        '==#====#====#====#====#==' => 1,
                        '==##====#====#====#====#=' => 1,
                        '==####======##======##======##==########' => 1,
                        '==####==##==##======##======##==########' => 1,
                        '#####====#######====#####' => 2,
                        '==####==##====##====##====##====########' => 2,
                        '######========##==########======########' => 2,
                        '########======############======########' => 2,
                        '#####====######====######' => 3,
                        '########======##########======##########' => 3,
                        '######========##==####========########==' => 3,
                        '#===##===######====#====#' => 4,
                        '===#===##==#=#=#####===#=' => 4,
                        '====####==##==####====##########======##' => 4,
                        '======##====####==##==##########======##' => 4,
                        '##====####====##########======##======##' => 4,
                        '######====#####====######' => 5,
                        '##########======########======##########' => 5,
                        '==########======######========########==' => 5,
                        '##########========######======##########' => 5,
                        '#====#====######===######' => 6,
                        '######====######===######' => 6,
                        '====##====##====##########====##==####==' => 6,
                        '##########======##########====##########' => 6,
                        '==####==##======##########====##==####==' => 6,
                        '#####====#====#====#====#' => 7,        
                        '#####===#===#===#====#===' => 7,
                        '##########====##==######====##==####====' => 7,
                        '########======##====##====##====##======' => 7,
                        '########======##==######====##====##====' => 7,
                        '########======##======##======##======##' => 7,
                        '######===#######===######' => 8,
                        '##########====##==####==##====##########' => 8,
                        '##########====############====##########' => 8,
                        '==####==##====##==####==##====##==####==' => 8,
                        '######===######====######' => 9,
                        '##########====##########======##########' => 9,
                        '==####==##====##==######====##====##====' => 9,
                        '##############################===============##########===============######
###===============##############################' => '0',
                        '==========##########====================#####====================#####======
=============#####====================#####=====' => '1',
                        '==========##########==========#####==========#####===============#####======
========#####===============####################' => '2',
                        '####################=========================#####=====###############======
==================#########################=====' => '3',
                        '===============#####===============##########==========#####=====#####=====#
#######################===============#####=====' => '4',
                        '##############################====================####################======
==================#########################=====' => '5',
                        '##############################====================##########################
###===============##############################' => '6',
                        '=====###############=====#####====================####################=====#
###===============#####=====###############=====' => '6',
                        '#########################===============#####===============#####===========
===#####====================#####===============' => '7',
                        '##############################===============###############################
###===============##############################' => '8',
                        '=====###############=====#####===============#####=====###############=====#
###===============#####=====###############=====' => '8',
                        '##############################===============##############################=
==================##############################' => '9',
                        '=====###############=====#####===============#####=====####################=
===####################=====###############=====' => '9',
                        '==========#####===============#####=====#####=====#####===============######
############################===============#####' => 'A',
                        '=====###############=====#####====================#####====================#
###=========================###############=====' => 'C',
                        '##############################====================####################=====#
###====================#########################' => 'E',
                        '##############################====================####################=====#
###====================#####====================' => 'F',
                        '#####===============##########===============###############################
###===============##########===============#####' => 'H',
                        '===============#####====================#####====================#####=====#
###==========#####==========##########==========' => 'J',
                        '=====#####==========#####=====#####=====#####==========##########===========
===#####=====#####==========#####==========#####' => 'K',
                        '#####====================#####====================#####====================#
###====================#########################' => 'L',
                        '#####===============###############=====###############=====#####=====######
###===============##########===============#####' => 'M',
                        '#####===============###############==========##########=====#####=====######
###==========###############===============#####' => 'N',
                        '###############==========#####==========#####=====###############==========#
###====================#####====================' => 'P',
                        '###############==========#####==========#####=====###############==========#
###==========#####=====#####===============#####' => 'R',
                        '#########################==========#####====================#####===========
========#####====================#####==========' => 'T',
                        '#####===============##########===============##########===============######
###===============#####=====###############=====' => 'U',
                        '#####===============##########===============##########===============#####=
===#####=====#####===============#####==========' => 'V',
                        '#####===============##########===============##########=====#####=====######
########=====###############===============#####' => 'W',
                        '#####===============#####=====#####=====#####===============#####===========
===#####=====#####=====#####===============#####' => 'X',
                        '#####===============#####=====#####=====#####===============#####===========
========#####====================#####==========' => 'Y',
                        '#########################===============#####===============#####===========
===#####===============#########################' => 'Z'
                        );

    my @result_ = '';
    my $k =0;
    my $ans = '';
    
    foreach (keys %digit) {
        for ($k =0;$k <= $line_msgNum;$k++) {
            if ($_ eq $num_0[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_1[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_2[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_3[$k] ) {
                $result_[$k] = $digit{$_};
            }
        }
    }

    for ($k=0;$k <[email protected]_;$k++) {
            $ans .= $result_[$k]
    }
            $cmd = "talk $args ".$ans;
            message "[ASCIInumber v2.1] Executing command \"$cmd\".\n", "success";

            #add Delay 1-3 sec before $cmd
            message "[ASCIInumber] *** Delay 1-3 sec. before $cmd ***.\n", "success";
            my $startTime = time;
            while (1) {
                last if (timeOut($startTime,3));
            }
            Commands::run($cmd);
            #Commands::run("tele");
            undef @result_;
            undef @num_0;
            undef @num_1;
            undef @num_2;
            undef @num_3;
}

sub onDebug {
    my (undef, $args) = @_;
    my $length_line = $line_msgNum-1;
    debug "\tline =  $line_msg \n", "success";
    debug "\tlength line =  $length_line \n", "success";
}

return 1;



CODE
# =======================
# reactOnNPC v.1.1.1
# =======================
# This plugin is licensed under the GNU GPL
# Copyright 2006 by hakore
#
# http://forums.openkore.com/viewtopic.php?t=19973

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 = ((substr($Settings::VERSION, 0, 3) >= 1.9) ?
    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]
    ) :
    Plugins::addHooks(
            ['parseMsg/pre', \&onParseMsg,
                {
                    '00B4' => [\&onNPCTalk, 'packet/npc_talk'],
                    '00B5' => [\&onNPCAction, 'packet/npc_talk_continue'],
                    '00B6' => [\&onNPCAction, 'packet/npc_talk_close'],
                    '00B7' => [\&onNPCAction, 'packet/npc_talk_responses'],
                    '0142' => [\&onNPCAction, 'packet/npc_talk_number'],
                    '01D4' => [\&onNPCAction, 'packet/npc_talk_text']
                }
            ]
    )
);

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));
    if ((substr($Settings::VERSION, 0, 3) >= 1.9) && (substr($Settings::VERSION, 4) >= 1))
    {
        $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));
        if ((substr($Settings::VERSION, 0, 3) >= 1.9) && (substr($Settings::VERSION, 4) >= 1))
        {
            $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;
            }
            message "[reactOnNPC] Reacting to NPC. Executing command \"$cmd\".\n", "success";
            Commands::run($cmd);
            last;
        }
        $i++;
    }
    undef %reactOnNPC if $type eq 'close';
}

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";
}

sub onParseMsg
{
    my (undef, $args, $handlers) = @_;
    
    if ($handlers->{$args->{switch}})
    {
        my $handler = $handlers->{$args->{switch}};
        $handler->[0]->($handler->[1], ($args->{switch} eq '00B4' || $args->{switch} eq '00B7') ? {RAW_MSG => $args->{msg}} : undef);
    }
}

return 1;



ใช้สำหรับ SERVER ที่ถามแบบในรูปนะครับ^^



เงื่อนใขการรับ PL ฟรี

CODE
XXX





ใช้สำหรับ SERVER ที่ถามแบบในรูปนะครับ^^




สำหรับ CODE นั้นเราจะใช้ระบบ " วางยา " แทนเพื่อให้มีการพัฒนาใน PL ของตัวเองซึ่งจะทำให้ผู้ที่โหลดไปใช้เกิดความคิดสร้างสรรค์

การบ้านที่ทุกคนต้องไปทำต่อ
CODE ที่ได้วางยานี้จะมีประสิทธิภาพประมาณ 80% ที่เหลือ 20% ต้อง คิดเองนะ[บางทีสามารถใช้งานได้จนกระทั่งไม่เห็นข้อผิดพลาดเลยด้วยซ้ำไป]


สิ่งที่ต้องเพิ่มเติม
ในคอนฟิคเพิ่ม

CODE
ReActOnNPCText 1


CODE
package ReActOnNPCText;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);
use encoding 'iso-8859-11';

Plugins::register('ReActOnNPCText', "ReActOnNPCText Function", \&Unload);

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

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

my %reactOnNPC;
my $code;
my $str;

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


    my @npcMsg = '';
    @npcMsg = split(/\^/,$msg);
    $msg ='';
        foreach my $line (@npcMsg) {
        # Convert ASCII Background to =    
            if ($line =~ s/^[E|F|e|f][A-Fa-f0-9][D-Fd-f][A-Fa-f0-9]{3}//) {
                $line =~ s/./=/g;
            } else {
        # Convert ASCII Number to #
                $line =~ s/^[A-Fa-f0-9]{6}//;
                $line =~ s/(d+)//g;
            }
                $msg .= $line;
        }
    debug "[Convert NPC message] to : $msg\n", "success";
    if (!defined %reactOnNPC || $reactOnNPC{action}) {
        undef %reactOnNPC if defined %reactOnNPC;
        $reactOnNPC{index} = 1;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    } else {
        $reactOnNPC{index}++;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    }
}

sub onNPCAction {
    if($config{ReActOnNPCText}) {
            $code = reply();
    message "[ReActOnNPCText] Reacting to NPC. type Message \"$code\".\n", "success";
    message " www.thaibuzz.com\n", "success";
    my $cmd = "talk num $code";
    message "... delay 10 sec.\n", "success";
            sleep 5;
            Commands::run($cmd);
    } else {
            message "[ReActOnNPCText] You must read MANUAL befor use this Plugins\n", "success";
            #Commands::run("relog");
    }
}

sub onClo {
    undef %reactOnNPC if defined %reactOnNPC;    
}

my $total;
sub onCon {

        message "[Text] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
        message "[Text] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
        message "[Text] 5 \"$reactOnNPC{msg}[5]\".\n", "success";
        message "[Text] 6 \"$reactOnNPC{msg}[6]\".\n", "success";
$total = ($reactOnNPC{msg}[3]);
$total =~ s/(d+)//g;
        $str = $total;
        message "[Total Text]  \"$str\".\n", "success";
        undef %reactOnNPC if defined %reactOnNPC;

}

#        $total = ($reactOnNPC{msg}[3].$reactOnNPC{msg}[4].$reactOnNPC{msg}[5].$reactOnNPC{msg}[6]);

sub reply {
        my %thaiphrasedigit = ("windows98SE", 10,"thaikore", 100,"Akimoto", 1000,
"9 ร้อย", 900,
"8 ร้อย", 800,
"7 ร้อย", 700,
"6 ร้อย", 600,
"5 ร้อย", 500,
"4 ร้อย", 400,
"3 ร้อย", 300,
"2 ร้อย", 200,
"1 ร้อย", 100,

"90 9", 99,"90 8", 98,"90 7", 97,"90 6", 96,"90 5", 95,"90 4", 94,"90 3", 93,"90 2", 92,"90 1", 91,
"80 9", 89,"80 8", 88,"80 7", 87,"80 6", 86,"80 5", 85,"80 4", 84,"80 3", 83,"80 2", 82,"80 1", 81,
"70 9", 79,"70 8", 78,"70 7", 77,"70 6", 76,"70 5", 75,"70 4", 74,"70 3", 73,"70 2", 72,"70 1", 71,
"60 9", 69,"60 8", 68,"60 7", 67,"60 6", 66,"60 5", 65,"60 4", 64,"60 3", 63,"60 2", 62,"60 1", 61,
"50 9", 59,"50 8", 58,"50 7", 57,"50 6", 56,"50 5", 55,"50 4", 54,"50 3", 53,"50 2", 52,"50 1", 51,
"40 9", 49,"40 8", 48,"40 7", 47,"40 6", 46,"40 5", 45,"40 4", 44,"40 3", 43,"40 2", 42,"40 1", 41,
"30 9", 39,"30 8", 38,"30 7", 37,"30 6", 36,"30 5", 35,"30 4", 34,"30 3", 33,"30 2", 32,"30 1", 31,
"20 9", 29,"20 8", 28,"20 7", 27,"20 6", 26,"20 5", 25,"20 4", 24,"20 3", 23,"20 2", 22,"20 1", 21,
"10 9", 19,"10 8", 18,"10 7", 17,"10 6", 16,"10 5", 15,"10 4", 14,"10 1", 13,"10 2", 12,"10 1", 11);

        message "[ReActOnNPCThai V.3] String \"$str\".\n", "success";
        my $keyword = "windows98SE|thaikore|Akimoto|9 ร้อย|8 ร้อย|7 ร้อย|6 ร้อย|5 ร้อย|4 ร้อย|3 ร้อย|2 ร้อย|1 ร้อย|90 9|90 8|90 7|90 6|90 5|90 4|90 3|90 2|90 1|
80 9|80 8|80 7|80 6|80 5|80 4|80 3|80 2|80 1|
70 9|70 8|70 7|70 6|70 5|70 4|70 3|70 2|70 1|
60 9|60 8|60 7|60 6|60 5|60 4|60 3|60 2|60 1|
50 9|50 8|50 7|50 6|50 5|50 4|50 3|50 2|50 1|
40 9|40 8|40 7|40 6|40 5|40 4|40 3|40 2|40 1|
30 9|30 8|30 7|30 6|30 5|30 4|30 3|30 2|30 1|
20 9|20 8|20 7|20 6|20 5|20 4|20 3|20 2|20 1|
10 9|10 8|10 7|10 6|10 5|10 4|10 3|10 2|10 1";

        my $sum = 0;
        my $tmpCal = 0;

while (my ($ask) = $str =~ /($keyword)/) {
$str = substr($str, length($ask));
if ($ask =~ /(9 ร้อย|8 ร้อย|7 ร้อย)/) {
if ($sum == 0) {
$sum += $thaiphrasedigit{$ask};
} else {
if ($tmpCal == 0) {
$sum += $thaiphrasedigit{$ask};
} else {
$sum -= $tmpCal;
$sum += $tmpCal * $thaiphrasedigit{$ask};
}
}
                $tmpCal = 0;
            } else {
                $tmpCal = $thaiphrasedigit{$ask};
                $sum += $tmpCal;
            }
    }
        $code = ($sum);
        return $code;
    }
return 1;



ใช้สำหรับ SERVER ที่ถามแบบเดียว คือแบบนี้เท่านั้น หากนำไปใช้กับกับ SV 3 คำคาม (เลขสี-มากกว่าน้อยกว่าเท่ากับ-จับกลุ่ม) คงต้องให้ไอ้คำถามจับกลุ่มเด้งถึงจะตอบ นั่นคือ มีโอกาสที่ครั้งแรก จะออก หรือ 5 ครั้งไม่ออกเลย ถือว่าซวยนะครับ แต่อย่ากังวลค่อยๆแก้ไปเด๋วก็แผละ ทั้ง 3 อันแหละนะ ^^

การจับกลุ่มคำ 1 ใน 3 คำถามของแอนตี้สุดโหด ทั้ง 2แบบ (แบบ แยกกลุ่มโดยอักษร และแบบถามสีว่ามีกี่มีที่เห็น )


1.ประเภท จับกลุ่มโดย ใช้ ตัวอักษรแยกกลุ่ม


อธิบาย : เราแทนกลุ่มด้วยอักษร ก ( หรือจะเปลี่ยนก็ได้ตามใจชอบ แต่ผมชอบ กอ.ไก่ และ แยกอักษรหลอกตาหรือสีขาวออก โดยใช้เป็นสัญลักษณ์ แทนเช่น +-X= ตามใจชอบครับผม

เทคนิคการจับกลุ่ม เราเปลี่ยนอักษรที่เป็น สี และคั่นอักษรขาวด้วย เครื่องหมาย และนำไปเข้าสูตร + กัน โดย

เมื่อ กกก = 1 และเพิ่ม กกกก ขึ้นเรื่อยๆๆ หากไปตรงมันก็จะบวกกัน






ดูตัวอย่าง ที่รูปภาพ และปลั๊กอินประกอบ นะครับ

ตามรูป เป็นการจับกลุ่ม ประเภท เลข กลุ่ม

ใช้ ก. แทน 1 กลุ่ม ใช้ ค. แทนสีหลอกตาหรืออักษร หลอกตา







ตามรูป เป็นการจับกลุ่ม ประเภท เลข กลุ่ม

เมื่อมันรวมทุกบรรทัดเข้าด้วยกันแล้วมันจะเริ่มนับ ก = 1 กก = 1 กกกก = 1 แล้วแต่เราจะเพิ่มใว้เท่าใด

ใช้ ก. แทน 1 กลุ่ม ใช้ ค. แทนสีหลอกตาหรืออักษร หลอกตา สังเกตว่า มันนับได้อย่างถูกต้อง เนื่องจากเราพิมค่า กกก.แทนเลขอักษรที่เห็นใว้แล้ว

เช่น กกกคคกกคคกกก = 3

เพราะ กกก+กก+ก






ในกรณีที่ถูกถามแบบ ถามว่า มีเลขก็ตัวเราก็เอาเลขเหล่านั่นไปแทนค่าเช่น

"1", 1,
"2", 1,
"3", 1,
"4", 1,
"5", 1,
"6", 1,
"7", 1,


และเพิ่มต่อถ้าย (ต่อจากโค๊ดนี้ก็ได้ครับ)

กกกก|กกก|กก|ก|1|2|3|4|5|6|7";



และอย่าลืม แทนค่าอักษรที่มองไม่เห้นด้วย หากอยากเปลี่ยนนะ แต่หากคนไม่อยากเปลี่ยนก็ไม่ต้องแก้ใขครับ หากอยากได้แอนตี้ สวยๆก็ใส่ X อ่ะสวยดี

EX.

1X2X5X4X6 = 5 จะสวยกว่าบ้านนอกๆอย่างผมที่เป็นแบบนี้ 1ค2ค5ค4ค6 = 5

"คคคค", 0,
"คคค", 0,
"คค", 0,
"ค", 0,


ความหมายคือ เลข 1มีค่า =1 2มีค่า=1 ค.มีค่า =0

ดังนั้นเมื่อแอนตี้ถามว่า ให้ใส่ตัวเลขเมื่อเห็นว่ามีกี่ตัว

ก็จะเอา

1+0+1+0+1 ( 1X1X1 )

1+0+0+1+0+1 ( 1XX1X1 )


ไม่ยากเลยใช่ไหมละครับ ลุยต่อเล้ย ~~




วิธีใช้งาน

นำไปใว้ที่แฟ้มโฟล์เดอร์ของ ปลั๊กอิน และเพิ่มที่ คอนฟิก

CODE
ReActOnNPCText 1


ตรงส่วนไหนก็ได้



CODE
#รายละเอียด+เครดิท ท่านอาจารย์ WIN98SE ครับผม

package ReActOnNPCText;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);
use encoding 'iso-8859-11';

Plugins::register('ReActOnNPCText', "ReActOnNPCText Function", \&Unload);

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

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

my %reactOnNPC;
my $code;
my $str;

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


    my @npcMsg = '';
    @npcMsg = split(/\^/,$msg);
    $msg ='';
        foreach my $line (@npcMsg) {
        # Convert ASCII Background to =    
            if ($line =~ s/^[E|F|e|f][A-Fa-f0-9][D-Fd-f][A-Fa-f0-9]{3}//) {
                $line =~ s/./ค/g;
            } else {
        # Convert ASCII Number to #
                $line =~ s/^[A-Fa-f0-9]{6}//;
                $line =~ s/./ก/g;
            }
                $msg .= $line;
        }
    debug "[Convert NPC message] to : $msg\n", "success";
    if (!defined %reactOnNPC || $reactOnNPC{action}) {
        undef %reactOnNPC if defined %reactOnNPC;
        $reactOnNPC{index} = 1;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    } else {
        $reactOnNPC{index}++;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    }
}

sub onNPCAction {
    if($config{ReActOnNPCText}) {
            $code = reply();
    message "[ReActOnNPCText] Reacting to NPC. type Message \"$code\".\n", "success";
    message " www.thaibuzz.com\n", "success";
    my $cmd = "talk num $code";
    message "... delay 5 sec.\n", "success";
            sleep 5;
            Commands::run($cmd);
    } else {
            message "[ReActOnNPCText] You must read MANUAL befor use this Plugins\n", "success";
            #Commands::run("relog");
    }
}

sub onClo {
    undef %reactOnNPC if defined %reactOnNPC;    
}

my $total;
sub onCon {

        message "[Text] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
        message "[Text] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
        message "[Text] 5 \"$reactOnNPC{msg}[5]\".\n", "success";
        message "[Text] 6 \"$reactOnNPC{msg}[6]\".\n", "success";
$total = ($reactOnNPC{msg}[3].$reactOnNPC{msg}[4].$reactOnNPC{msg}[5].$reactOnNPC{msg}[6]);
$total =~ s/(\d+)//g;
        $str = $total;
        message "[Total Text]  \"$str\".\n", "success";
        undef %reactOnNPC if defined %reactOnNPC;

}

#        $total = ($reactOnNPC{msg}[3].$reactOnNPC{msg}[4].$reactOnNPC{msg}[5].$reactOnNPC{msg}[6]);

sub reply {
        my %thaiphrasedigit = ("windows98SE", 10,"thaikore", 100,"Akimoto", 1000,
"กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกกก", 1,
"กกกกกกกกกกกกก", 1,
"กกกกกกกกกกกก", 1,
"กกกกกกกกกกก", 1,
"กกกกกกกกกก", 1,
"กกกกกกกกก", 1,
"กกกกกกกก", 1,
"กกกกกกก", 1,
"กกกกกก", 1,
"กกกกก", 1,
"กกกก", 1,
"กกก", 1,
"กก", 1,
"ก", 1,

"คคคค", 0,
"คคค", 0,
"คค", 0,
"ค", 0,


"หนึ่ง", 1, "เอ็ด",1 , "สอง", 2, "ยี่",2 , "สาม", 3, "สี",4,"ห้า", 5, "หก", 6, "เจ็ด", 7, "แปด", 8, "เก้า", 9,"สิบ", 10, "ร้อย",100, "หมื่น", 10000,"แสน", 100000, "ล้าน", 1000000);

        message "[ReActOnNPCThai V.3] String \"$str\".\n", "success";
        my $keyword = "windows98SE|thaikore|Akimoto|หนึ่ง|เอ็ด|สอง|ยี่|สาม|สี่|ห้า|หก|เจ็ด|แปด|เก้า
สิบ|ร้อย|พัน|หมื่น|แสน|ล้าน|คคคค|คคค|คค|ค|กกกกกกกกกกกกกกกกกกกกกกกกกกกกกก|กกกกกกก
กกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกกกกกกกก|ก
กกกกกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกกกกก|กกกก
กกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกก
กกก|กกกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกกก|กกกกกกกกกกกกกกกก|กก
กกกกกกกกกกกก|กกกกกกกกกกกกกก|กกกกกกกกกกกกก|กกกกกกกกกกกก|กกกกกกกกกกก|กกกกกกกกกก|กก
กกกกกก|กกกกกกกก|กกกกกกก|กกกกกก|กกกกก|กกกก|กกก|กก|ก";

        my $sum = 0;
        my $tmpCal = 0;

while (my ($ask) = $str =~ /($keyword)/) {
$str = substr($str, length($ask));
if ($ask =~ /(ก|กก|กกก)/) {
if ($sum == 0) {
$sum += $thaiphrasedigit{$ask};
} else {
if ($tmpCal == 0) {
$sum += $thaiphrasedigit{$ask};
} else {
$sum -= $tmpCal;
$sum += $tmpCal * $thaiphrasedigit{$ask};
}
}
                $tmpCal = 0;
            } else {
                $tmpCal = $thaiphrasedigit{$ask};
                $sum += $tmpCal;
            }
    }
        $code = ($sum);
        return $code;
    }
return 1;








2.ประเภท จับกลุ่มโดย ใช้ สีแยกกลุ่ม มี 5 สี คำตอบ = 5

กำลังอัพโหลดรูป และ โค๊ดจ้า

Edited by zirconiums, 13 September 2008 - 11:31 PM.

ทำงานเก็บเงินแต่งงาน~^^

#2 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 05 November 2007 - 11:57 PM

แบบ นับพยางค์ บรรทัด เดี่ยว (บรรทัดที่3) บรรทัดคู่ ( บรรทัดที่3และ4 ) และบรรทัดสี ( บรรทัดที่3และ4แบบมี่สี )


เช่นเดียวกับ แบบ จับกลุ่ม เพียงเปลี่ยนเป็น คำเท่านั้น



การพัฒนา : สามารถให้อ่านบรรทัดที่ 3 หรือ 4 อย่างเดียวก็ได้แต่ต้องแก้ใขเล็กน้อย ดังนี้ และเนื่องจากได้มีการแยกสีออกแล้วจึงไม่ขอกล่าวถึง


QUOTE
หากเจอคำเกิน แน่นอน ว่าคำๆนั้นจะเป้น สี หรือเรายังไม่ได้เพิ่มคำเช่น


รักนะตัวเอง = 3 คำว่า เอง เป็นสี บอทจะอ่าน 3 คือ รักนะตัว

หากมันอ่าน 4 แปลว่า

1.ไม่ได้ใช้ฟังชั่นการแยกสี (ด้านล่างนี้ได้ใส่ฟังชั่นแยกสีแล้ว)


รักนะตัวเอง = 4

แต่ตอบ 3 แปลว่า

1.มีคำใดคำหนึ่งที่ยังไม่ได้เพิ่ม (ด่านล่างจะบอกถึงวิธีการเพิ่มคำ)


รักนะตัวเอง บรรทัด3
อยากฟันเธอจัง บรรทัด4

แบบมี2บรรทัด 1ใน2นี้จะไม่มีสี หากตอบ 0 แปลว่า

1.ไม่ได้ใช้ฟังชั่น + บรรทัด (อ่านรายละเอียดนิดนึง)
2.มีคำใดคำหนึ่งที่ยังไม่ได้เพิ่ม (ด่านล่างจะบอกถึงวิธีการเพิ่มคำ)



ตัวเลขในช่อง [ X ] คือการกำหนดให้บอทอ่านบรรทัดนั้นๆ

$reactOnNPC{msg}[x] =~ s/(\<+)?(\>+)?(\s+)?(\?+)?//g;

คำตอบของประโยคจะถูกเก็บใว้ในค่า $str ( สะ-ตริง เอส ที อา )เพื่อนำไปคำนวนต่อไป

$str = $reactOnNPC{msg}[x];




อ่าน ประโยคบรรทัดที่ 3 เท่านั้น

sub onCon {
message "[ReActOnNPCText] 0 \"$reactOnNPC{msg}[0]\".\n", "success";
message "[ReActOnNPCText] 1 \"$reactOnNPC{msg}[1]\".\n", "success";
message "[ReActOnNPCText] 2 \"$reactOnNPC{msg}[2]\".\n", "success";
message "[ReActOnNPCText] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
message "[ReActOnNPCText] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
$reactOnNPC{msg}[3] =~ s/(\<+)?(\>+)?(\s+)?(\?+)?//g;
undef $str;
$str = $reactOnNPC{msg}[3];
undef %reactOnNPC if defined %reactOnNPC;
}

อ่าน ประโยคบรรทัดที่ 4 เท่านั้น

sub onCon {
message "[ReActOnNPCText] 0 \"$reactOnNPC{msg}[0]\".\n", "success";
message "[ReActOnNPCText] 1 \"$reactOnNPC{msg}[1]\".\n", "success";
message "[ReActOnNPCText] 2 \"$reactOnNPC{msg}[2]\".\n", "success";
message "[ReActOnNPCText] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
message "[ReActOnNPCText] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
$reactOnNPC{msg}[4] =~ s/(\<+)?(\>+)?(\s+)?(\?+)?//g;
undef $str;
$str = $reactOnNPC{msg}[4];
undef %reactOnNPC if defined %reactOnNPC;
}

อ่าน ประโยคบรรทัดที่ 3 - 4 , บรรทัดและคำไหนที่เป็นสีขาวจะถูกแยกออก คำตอบของประโยคจะถูกเก็บใว้ในค่า $str ( สะ-ตริง เอส ที อา )เพื่อนำไปคำนวนต่อไป

my $total;
sub onCon {
message "[ReActOnNPCText] 0 \"$reactOnNPC{msg}[0]\".\n", "success";
message "[ReActOnNPCText] 1 \"$reactOnNPC{msg}[1]\".\n", "success";
message "[ReActOnNPCText] 2 \"$reactOnNPC{msg}[2]\".\n", "success";
message "[ReActOnNPCText] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
message "[ReActOnNPCText] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
$total = ($reactOnNPC{msg}[3].$reactOnNPC{msg}[4]);
$total =~ s/(\<+)?(\>+)?(\s+)?(\?+)?//g;
$str = $total;
message "[Total Text] \"$str\".\n", "success";
undef %reactOnNPC if defined %reactOnNPC;
}


ตัวอย่างในรูปคือ มีบรรทัดที่ 3 และ 4 และมีคำที่เป็นสี ขาว หลอกใว้






CODE นี้จะนับเพียง บรรทัดที่ 3 เท่านั้นหากอยากให้อ่าน 3 - 4 กลับมาอ่านด้านบนเล็กน้อยจ้า

วิธีใช้งาน

เหมือนกับแบบแรกโดยเพิ่ม

CODE
ReActOnNPCText 1


ใว้ตรงไหนก็ได้ของคอนฟิก

CODE
#แบบที่1บรรทัดที่3แยกสีนับพยางค์ เครดิต ท่านอาจารย์ WINDOW98SE ครับผม

package ReActOnNPCText;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);
use encoding 'iso-8859-11';

Plugins::register('ReActOnNPCText', "ReActOnNPCText Function", \&Unload);

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

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

my %reactOnNPC;
my $code;
my $str;

sub onNPCTalk {
my (undef, $args) = @_;
my $msg = I18N::bytesToString(unpack("Z*", substr($args->{RAW_MSG}, 8)));
my @npcMsg = '';
@npcMsg = split(/\^/,$msg);
$msg ='';
  foreach my $line (@npcMsg) {
   if ($line =~ s/^[E|F|e|f][A-Fa-f0-9][e-f][A-Fa-f0-9][e-f][A-Fa-f0-9]//) {
    $line =~ s/.//g;
   } else {
    $line =~ s/^[A-Fa-f0-9]{6}//;
    $line =~ s/(d+)//g;
   }
    $msg .= $line;
  }
if (!defined %reactOnNPC || $reactOnNPC{action}) {
  undef %reactOnNPC if defined %reactOnNPC;
  $reactOnNPC{index} = 1;
  $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
} else {
  $reactOnNPC{index}++;
  $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
}
}

sub onNPCAction {
    if($config{ReActOnNPCText}) {
            $code = Reply();
            message "[ReActOnNPCText] Reacting to NPC. type Message \"$code\".\n", "success";
   message "Free download --> www.thaibuzz.com\n", "success";
            my $cmd = "talk num $code";
            message "... delay 5 sec.\n", "success";
            message "Free download --> www.thaibuzz.com\n", "success";
   sleep 5;
            Commands::run($cmd);
    } else {
            message "[ReActOnNPCText] You must read MANUAL befor use this Plugins\n", "success";
            #Commands::run("relog");
    }
}

sub onClo {
    undef %reactOnNPC if defined %reactOnNPC;    
}

sub onCon {
        message "[ReActOnNPCText] 0 \"$reactOnNPC{msg}[0]\".\n", "success";
        message "[ReActOnNPCText] 1 \"$reactOnNPC{msg}[1]\".\n", "success";
        message "[ReActOnNPCText] 2 \"$reactOnNPC{msg}[2]\".\n", "success";
        message "[ReActOnNPCText] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
        message "[ReActOnNPCText] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
  $reactOnNPC{msg}[3] =~ s/(\<+)?(\>+)?(\s+)?(\?+)?//g;
  undef $str;
        $str = $reactOnNPC{msg}[3];
        undef %reactOnNPC if defined %reactOnNPC;
}

#Orginal code by Akimoto
sub Reply {
  my %thaiphrasedigit = ("ปาก", 1,"ใจ", 1,"อ้วน", 1,"หมู", 1,"ค้า", 1,"ขาด", 1,"สน", 1,"ธิ", 1,"ฟ้า", 1,"เกมส์", 1,"พวก", 1,"งอง", 1,"งอ", 1,"แง", 1,"แงง", 1,"หมา", 1,"ย่อง", 1,
"หัว", 1,"เขียว", 1,"แมว", 1,"ดำ", 1,"ขิง", 1,"มาก", 1,"หน้า", 1,"ม่อ", 1,"กา", 1,"ก้า", 1,"เท้า", 1,"บวม", 1,"โนม", 1,"เล็ก", 1,"สม", 1,
"ถือ", 1,"พี่", 1,"น๊อต", 1,"หนี", 1,"วัน", 1,"แม่", 1,"ควาย", 1,"หัก", 1,"หุ", 1,"ทหาร", 1,"เจ", 1,"ไม่", 1,"เสือ", 1,"ฟัน", 1,"ดาบ", 1,"หัน", 1,"โอ้ย", 1,
"อะ", 1,"ดุ", 1,"ดุ๊ย", 1,"อยาก", 1,"บร้า", 1,"มา", 1,"ม่า", 1,"นคร", 1,"บาล", 1,"มัน", 1,"ชิ", 1,"มิ", 1,"เร", 1,"ดิก", 1,"ดาว", 1,
"เท่า", 1,"หงา", 1,"ไร", 1,"ว้า", 1,"ชาติ", 1,"ชาย", 1,"ทัก", 1,"ง่า", 1,"ษิน", 1,"วัว", 1,"ห้าม", 1,"ค่ะ", 1,"เย็น",1,"ช่อน", 1,"ยิ่ง",1,"ทำ", 1,
"บ้า", 1,"ส้น", 1,"ประ", 1,"ณต", 1,"น้ำ", 1,"จะ", 1,"ฝน", 1,"ก้น", 1,"น้อย", 1,"โก", 1,"ออน", 1,"กัน",1,"ใช้",1,"โดน",1,"ใหญ่",1,
"ให้", 1,"ฟอก", 1,"ไฟ", 1,"โต", 1,"จ้า", 1,"ยง", 1,"นะ", 1,"เช้า", 1,"มืด", 1,"อี", 1,"บอท", 1,"ผี", 1,"แดง", 1,"กอก", 1,"ตูน", 1,"อวก", 1,
"ปืน", 1,"กล", 1,"ปลา", 1,"ร้า", 1,"ตัว", 1,"เรา", 1,"ค่ำ", 1,"ดึก", 1,"รัก", 1,"ลูก", 1,"โป", 1,"ลิ่ง", 1,"เน่า", 1,"มาย", 1,"ใข่", 1,"ไม", 1,
"เงิน", 1,"หญิง", 1,"เอ็ม", 1,"แขน",1,"พ่อ",1,"พุ่ง",1,"ตาย",1,"ขวา",1,"หลบ",1,"ชิง",1,"เพื่อน",1,"ลิง",1,"นก",1,"อก",1,"ป่า", 1,"ธาตุ", 1,
"ขาว", 1,"ไกล", 1,"เค็ม", 1,"เธอ", 1,"ดึง", 1,"หู", 1,"บิน", 1,"โอ้", 1,);

  message "[ReActOnNPCText v1.1] Text \"$str\".\n", "success";
  my $num = "หนึ่ง|สอง|สาม|สี่|ห้า|หก|เจ็ด|แปด|เก้า|สิบ|เกมส์|พวก|งอง|งอ|แงแงง|ค่ะ|ตูน|โป
ลิ่ง|ตาย|ขวา|เย็น|นก|ใช้|ช่อน|ฟัน|โดน|อก|หมา|ย่อง";
  my $ed1 = "ควาย|ปาก|ใจ|อ้วน|หมู|หัว|เขียว|แมว|ดำ|ขิง|มาก|หน้า|ชาติ|ตัว|เรา|ชาย|ม่อ|กา|ก
า|เท้า|บวม|โนม|เล็ก|ถือ|พี่|น๊อต|หนี|วัน|แม่|หัก|หุ|ทัก";
  my $ed2 = "ทหาร|เจ|ไม่|เสือ|อะ|ดุ|ดุ๊ย|อยาก|บร้า|มา|ม่า|นคร|บาล|ง่า|ษิน|พุ่ง|หลบ|ชิง|เพ
่อน|กัน|ลิง|ดาว|ดาบ|ยิ่ง|ใหญ่|ป่า|ธาตุ|ทำ|อวก";
  my $ed3 = "มัน|ชิ|มิ|เร|ดิก|เท่า|หงา|ไร|ว้า|บ้า|ส้น|ประ|ณต|น้ำ|จะ|ฝน|ก้น|น้อย|โก|ออน|ให
|ฟอก|ร้า|ไฟ|โต|จ้า|ยง|นะ|เช้า|มืด|ขาว|ไกล|ปลา|โอ้ย";
  my $ed4 = "เค็ม|ปืน|กล|เธอ|ดึง|หู|บิน|โอ้|วัว|อี|บอท|ห้าม|ผี|แดง|ค้า|ขาด|สน|ธิ|ฟ้า|ค่ำ|
ึก|รัก|กอก|เน่า|มาย|ใข่|ไม|หัน|สม";
  my $ed5 = "เงิน|หญิง|เอ็ม|หัว|พ่อ|ลูก";
  my $ed6 = "แมว|แตก";

  my $keyword = ($num.$ed1.$ed2.$ed3.$ed4.$ed5.$ed6);

  my $sum = 0;
  my $tmpCal = 0;

  while (my ($ask) = $str =~ /($keyword)/) {
  $str = substr($str, length($ask));
   if ($ask =~ /(windows98SE|thaikore|Akimoto)/) {
    if ($sum == 0) {
     $sum += $thaiphrasedigit{$ask};
     } else {
      if ($tmpCal == 0) {
       $sum += $thaiphrasedigit{$ask};
      } else {
       $sum -= $tmpCal;
       $sum += $tmpCal * $thaiphrasedigit{$ask};
      }
     }
    $tmpCal = 0;
   } else {
    $tmpCal = $thaiphrasedigit{$ask};
    $sum += $tmpCal;
   }
}
  $code = ($sum);
  return $code;
}
return 1;









การเพิ่มคำ เพิ่ม % รอดได้ ถึง 95% อีก 5 คือบอทเอ๋อ หรือโดน GM จับซะเอง



เราจะต้องเพิ่มเติมทั้ง 2 ส่วนโดย

ส่วนที่ 1 คือ

my %thaiphrasedigit = ("บิน", 1,"โอ้", 1,);

"คำที่จะเพิ่ม1",ขนาดคำ,"คำที่จะเพิ่ม2",ขนาดคำ,"คำที่จะเพิ่ม3",ขนาดคำ,"คำที่จะเพิ่มX",ขนาดคำ,

โดยให้อยู่ในวงเล็บ ( );

my %thaiphrasedigit = ("คำที่จะเพิ่ม1",ขนาดคำ,"คำที่จะเพิ่ม2",ขนาดคำ,"คำที่จะเพิ่ม3",ขนาดคำ,"คำที่จะเพิ่มX",ขนาดคำ,);



ส่วนที่ 2 คือ

my $ชื่อ = "คำ1|คำ2";

หากเพิ่มจนยาวมากๆขะขึ้นบรรทัดไหม่ก็ได้แต่ต้องมี "; ปิดท้ายเสมอ

my $svboom5 = "คำ1|คำ2

|คำ3";



$svboom5 จะเปลี่ยนหรือเพิ่มเป็นชื่ออะไรก็ได้ แต่บรรทัด my $keyword จะต้องมีชื่อค่าตัวแปรนั้นๆอยู่ด้วย เช่นอยากเพิ่ม $new



$svboom3 = "มัน|ชิ|มิ|เร|ดิก|เท่า|หงา|ไร|ว้า|บ้า|ส้น|ประ|ณต|น้ำ|จะ|ฝน|ก้น|น้อย|โก|ออน|ใ
้|ฟอก|ร้า|ไฟ|โต|จ้า|ยง|นะ|เช้า|มืด|ขาว|ไกล|ปลา|โอ้ย";

$svboom4 = "......ขี้เกียจพิมพ์ ดูเอาน่ะเหมือนข้างบน หรือเพิ่มเองก็ได้......";

$svboom5 = "......ขี้เกียจพิมพ์ ดูเอาน่ะเหมือนข้างบน หรือเพิ่มเองก็ได้......";

$new = "คำ|คำ|คำ|คำ|คำ";

my $keyword = ($num.$svboom1.$svboom2.$svboom3.$svboom4.$svboom5.$new);





ตัวอย่างแบบชอบเยอะๆหลายๆบรรทัด

sub Reply {
my %thaiphrasedigit = ("ไม่", 1,"ยาก", 1,"เลย", 1,"สู้", 1,"ตาย", 1,"นะ", 1,);

message "[ReActOnNPCText v1.1] Text \"$str\".\n", "success";
my $a = "ไม่|ยาก";

my $b = "เลย|สู้";

my $c = "ตาย|นะ";

my $keyword = ($a.$b.$c);



ตัวอย่างแบบชอบน้อยๆสวยงามแต่ยาวเบื้อย

sub Reply {
my %thaiphrasedigit = ("ไม่", 1,"ยาก", 1,"เลย", 1,"สู้", 1,"ตาย", 1,"นะ", 1,);

message "[ReActOnNPCText v1.1] Text \"$str\".\n", "success";
my $a = "ไม่|ยาก|เลย|สู้|ตาย|นะ";

my $keyword = ($a);

Edited by zirconiums, 31 March 2008 - 10:22 PM.

ทำงานเก็บเงินแต่งงาน~^^

#3 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 05 November 2007 - 11:57 PM

แบบใส่ตัวเลขที่ 1.ที่เห็นในกรอปข้อความ แบบมีสีขาวหลอกตัวเลขที่ไม่เห็น 2.แบบสีที่เห็นในมินิแมพ 3.แบบสีที่เห็นบนตัวอักษร คำสั่ง

1.แบบที่เห็นในกรอบ ข้อความ NPC

ไม่ว่าจะนับจากบนลงล่าง ล่างขึ้นบน ซ้ายไปขวา หรือ ขวาไปซ้าย และมีตัวเลขสีขวาหลอกตาใว้


เช่นเดียวกับด้านบนเราแทนเลขสีขาวด้วย เครื่องหมาย=และแสดงเลขสีเป็นตัวเลข แต่คำตอบจะยังไม่ใช่ในคราวนั้น





หลังจากได้ตัวเลขแท้ๆแล้วเราจึงแยกตัวเลขและเครื่องหมายออก





QUOTE
หากใครไม่ชอบเครื่องหมาย = ที่ใช้แทนเลขสีขวาจะแก้ก็ได้นะครับ เป็น X + - ตามแต่จินตนาการ




CODE
#แบบนับจากบนลงล่าง และซ้ายไปขวา เคดิต ท่านอาจารย์ WINDOW98SE ครับผม


package ReActOnNPCText;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);
use encoding 'iso-8859-11';

Plugins::register('ReActOnNPCText', "ReActOnNPCText Function", \&Unload);

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

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

my %reactOnNPC;
my $code;
my $str;




sub onNPCTalk {
    my (undef, $args) = @_;
    my $msg = I18N::bytesToString(unpack("Z*", substr($args->{RAW_MSG}, 8)));
    #message "[Hex color] $msg\n", "success";

    my @npcMsg = '';
    @npcMsg = split(/\^/,$msg);
    $msg ='';
        foreach my $line (@npcMsg) {
        # Convert ASCII Background to =    
            if ($line =~ s/^[E|F|e|f][A-Fa-f0-9][D-Fd-f][A-Fa-f0-9]{3}//) {
                $line =~ s/./=/g;
            } else {
        # Convert ASCII Number to #
                $line =~ s/^[A-Fa-f0-9]{6}//;
                $line =~ s/(d+)//g;
            }
                $msg .= $line;
        }
    debug "[Convert NPC message] to : $msg\n", "success";
    if (!defined %reactOnNPC || $reactOnNPC{action}) {
        undef %reactOnNPC if defined %reactOnNPC;
        $reactOnNPC{index} = 1;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    } else {
        $reactOnNPC{index}++;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    }
}


sub onNPCAction {
    if($config{ReActOnNPCText}) {
    message "[ReActOnNPCText] Reacting to NPC. type Message \"$str\".\n", "success";
    message "Free download --> www.ThaiBuzz.com\n", "success";
    my $cmd = "talk num $str";
    message "... delay 5 sec.\n", "success";
            sleep 5;
            Commands::run($cmd);
    } else {
            message "[ReActOnNPCText] You must read MANUAL befor use this Plugins\n", "success";
            #Commands::run("relog");
    }
}

sub onClo {
    undef %reactOnNPC if defined %reactOnNPC;    
}



my $total;
sub onCon {
        message "[Text] 2 \"$reactOnNPC{msg}[2]\".\n", "success";
        message "[Text] 3 \"$reactOnNPC{msg}[3]\".\n", "success";
        message "[Text] 4 \"$reactOnNPC{msg}[4]\".\n", "success";
        message "[Text] 5 \"$reactOnNPC{msg}[5]\".\n", "success";
        message "[Text] 6 \"$reactOnNPC{msg}[6]\".\n", "success";
        $total = ($reactOnNPC{msg}[3].$reactOnNPC{msg}[4].$reactOnNPC{msg}[5].$reactOnNPC{msg}[6]);
        $total =~ s/(\D+)?(\D+)?(\D+)?(\D+)?//g;
                  $str = $total;
        message "[Total Text]  \"$str\".\n", "success";
        undef %reactOnNPC if defined %reactOnNPC;
}


return 1;







แบบที่ 2 และ 3 กำลังรวบรวมข้อมูลอยู่ ขออภัยครับ

Edited by zirconiums, 06 November 2007 - 01:36 AM.

ทำงานเก็บเงินแต่งงาน~^^

#4 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 05 November 2007 - 11:58 PM

แบบใช้ตัวอักษร หลายๆตัวมาสร้างเป็นตัวเลข


เช่น


######
#...........
######
...........#
###### = 5

GGGGGG
G...........
GGGGGG
...........G
GGGGGG = 5

CODE
#เครดิต ท่านอาจารย์ WINDOW98SE ครับผม


package responseOnASCIInumber;

use strict;
use Plugins;
use Globals;
use Utils;
use Commands;
use Log qw(message debug);
use encoding 'iso-8859-11';

my %reactOnNPC;
my $temp;
my $str;
my $code;
my $line_msg;
my @num_0;
my @num_1;
my @num_2;
my @num_3;
my $startLine;    
my $line_msgNum;
my $lengthCharNumber =8;

#Plugins::register('responseAntiText', 'responseAntiText', \&onUnload);
#my $cmd = Commands::register(['onText', 'talk text', \&onText]);
Plugins::register('ReActOnNPCText', "ReActOnNPCText Function", \&Unload);

my $hooks = Plugins::addHooks(
            ['packet/npc_talk', \&onNPCTalk],
            ['packet/npc_talk_close', \&onClo],
            ['packet/npc_talk_continue', \&onCon],
            ['packet/npc_talk_number', \&onNPCAction]
);

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

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


sub onClo {
    undef %reactOnNPC if defined %reactOnNPC;    
}

sub onNPCTalk {
    my (undef, $args) = @_;
    my $msg = I18N::bytesToString(unpack("Z*", substr($args->{RAW_MSG}, 8)));
    #message "[Hex color] $msg\n", "success";
    my @npcMsg = '';
    @npcMsg = split(/\^/,$msg);
    $msg ='';
        foreach my $line (@npcMsg) {
        # Convert ASCII Background to =    
            if ($line =~ s/^[E|F|e|f][A-Fa-f0-9][D-Fd-f][A-Fa-f0-9]{3}//) {
                $line =~ s/./=/g;
            } else {
        # Convert ASCII Number to #
                $line =~ s/^[A-Fa-f0-9]{6}//;
                $line =~ s/./#/g;
            }
                $msg .= $line;
        }
    debug "[Convert NPC message] to : $msg\n", "success";
    if (!defined %reactOnNPC || $reactOnNPC{action}) {
        undef %reactOnNPC if defined %reactOnNPC;
        $reactOnNPC{index} = 1;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    } else {
        $reactOnNPC{index}++;
        $reactOnNPC{msg}[$reactOnNPC{index}] = $msg;
    }
my $total;
sub onCon {
       $line_msg =0;
       $line_msgNum =0;
        my $i =0;
        my $j =0;
        for ($i=1;$i < $reactOnNPC{index}+1;$i++) {
            message "[num] : $reactOnNPC{msg}[$i]\n", "success";
            $line_msg += 1;
    }
#    message "$line_msg\n", "success";
    #get num & position
    for ($i = 0;$i <= length($reactOnNPC{msg}[$line_msg-1]);$i++) {
        for ($j=0;$j <= length($reactOnNPC{msg}[$line_msg-1]) - $lengthCharNumber;$j++) {
                $num_0[$i]  = substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg-1], $i, $lengthCharNumber);
                $num_0[$i] .= substr($reactOnNPC{msg}[$line_msg], $i, $lengthCharNumber);

                $num_1[$i]  = substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);
                $num_1[$i] .= substr($reactOnNPC{msg}[$line_msg-1], $i, $lengthCharNumber);

                $num_2[$i]  = substr($reactOnNPC{msg}[$line_msg-6], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);                
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
                $num_2[$i] .= substr($reactOnNPC{msg}[$line_msg-2], $i, $lengthCharNumber);

                $num_3[$i]  = substr($reactOnNPC{msg}[$line_msg-7], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-6], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-5], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-4], $i, $lengthCharNumber);
                $num_3[$i] .= substr($reactOnNPC{msg}[$line_msg-3], $i, $lengthCharNumber);
        }
            $line_msgNum += 1;
    }
        undef %reactOnNPC if defined %reactOnNPC;
    &onDebug;
}

sub onDebug {
    my (undef, $args) = @_;
    my $length_line = $line_msgNum-1;
    debug "\tline =  $line_msg \n", "success";
    debug "\tlength line =  $length_line \n", "success";
}

sub onNPCAction {
    if($config{ReActOnNPCText}) {
            $code = Reply();
    message "num  \"$code\".\n", "success";
    message "Free download --> www.thaibuzz.com\n", "success";
    my $cmd = "talk num $code";
    message "... delay 5 sec.\n", "success";
            sleep 5;    
            Commands::run($cmd);
    } else {
            message "RePL \n", "success";
    #    sleep 15;
            #Commands::run("relog");
    }
}

sub Reply {
my %digit =  ('######===##===##===######' => 0,
                        '==####==##==######====######==##==####==' => 0,
                        '==####==##====####====####====##==####==' => 0,
                        '##########====####====####====##########' => 0,
                        '==#===##====#====#==#####' => 1,
                        '==#====#====#====#====#==' => 1,
                        '==##====#====#====#====#=' => 1,
                        '==####======##======##======##==########' => 1,
                        '==####==##==##======##======##==########' => 1,
                        '#####====#######====#####' => 2,
                        '==####==##====##====##====##====########' => 2,
                        '######========##==########======########' => 2,
                        '########======############======########' => 2,
                        '#####====######====######' => 3,
                        '########======##########======##########' => 3,
                        '######========##==####========########==' => 3,
                        '#===##===######====#====#' => 4,
                        '===#===##==#=#=#####===#=' => 4,
                        '====####==##==####====##########======##' => 4,
                        '======##====####==##==##########======##' => 4,
                        '##====####====##########======##======##' => 4,
                        '######====#####====######' => 5,
                        '##########======########======##########' => 5,
                        '==########======######========########==' => 5,
                        '##########========######======##########' => 5,
                        '#====#====######===######' => 6,
                        '######====######===######' => 6,
                        '====##====##====##########====##==####==' => 6,
                        '##########======##########====##########' => 6,
                        '==####==##======##########====##==####==' => 6,
                        '#####====#====#====#====#' => 7,        
                        '#####===#===#===#====#===' => 7,
                        '##########====##==######====##==####====' => 7,
                        '########======##====##====##====##======' => 7,
                        '########======##==######====##====##====' => 7,
                        '########======##======##======##======##' => 7,
                        '######===#######===######' => 8,
                        '##########====##==####==##====##########' => 8,
                        '##########====############====##########' => 8,
                        '==####==##====##==####==##====##==####==' => 8,
                        '######===######====######' => 9,
                        '##########====##########======##########' => 9,
                        '==####==##====##==######====##====##====' => 9,
                        '##############################===============##########===============######
###===============##############################' => '0',
                        '==========##########====================#####====================#####======
=============#####====================#####=====' => '1',
                        '==========##########==========#####==========#####===============#####======
========#####===============####################' => '2',
                        '####################=========================#####=====###############======
==================#########################=====' => '3',
                        '===============#####===============##########==========#####=====#####=====#
#######################===============#####=====' => '4',
                        '##############################====================####################======
==================#########################=====' => '5',
                        '##############################====================##########################
###===============##############################' => '6',
                        '=====###############=====#####====================####################=====#
###===============#####=====###############=====' => '6',
                        '#########################===============#####===============#####===========
===#####====================#####===============' => '7',
                        '##############################===============###############################
###===============##############################' => '8',
                        '=====###############=====#####===============#####=====###############=====#
###===============#####=====###############=====' => '8',
                        '##############################===============##############################=
==================##############################' => '9',
                        '=====###############=====#####===============#####=====####################=
===####################=====###############=====' => '9',
                        '==========#####===============#####=====#####=====#####===============######
############################===============#####' => 'A',
                        '=====###############=====#####====================#####====================#
###=========================###############=====' => 'C',
                        '##############################====================####################=====#
###====================#########################' => 'E',
                        '##############################====================####################=====#
###====================#####====================' => 'F',
                        '#####===============##########===============###############################
###===============##########===============#####' => 'H',
                        '===============#####====================#####====================#####=====#
###==========#####==========##########==========' => 'J',
                        '=====#####==========#####=====#####=====#####==========##########===========
===#####=====#####==========#####==========#####' => 'K',
                        '#####====================#####====================#####====================#
###====================#########################' => 'L',
                        '#####===============###############=====###############=====#####=====######
###===============##########===============#####' => 'M',
                        '#####===============###############==========##########=====#####=====######
###==========###############===============#####' => 'N',
                        '###############==========#####==========#####=====###############==========#
###====================#####====================' => 'P',
                        '###############==========#####==========#####=====###############==========#
###==========#####=====#####===============#####' => 'R',
                        '#########################==========#####====================#####===========
========#####====================#####==========' => 'T',
                        '#####===============##########===============##########===============######
###===============#####=====###############=====' => 'U',
                        '#####===============##########===============##########===============#####=
===#####=====#####===============#####==========' => 'V',
                        '#####===============##########===============##########=====#####=====######
########=====###############===============#####' => 'W',
                        '#####===============#####=====#####=====#####===============#####===========
===#####=====#####=====#####===============#####' => 'X',
                        '#####===============#####=====#####=====#####===============#####===========
========#####====================#####==========' => 'Y',
                        '#########################===============#####===============#####===========
===#####===============#########################' => 'Z'
                        );

    my @result_ = '';
    my $k =0;
    my $ans = '';
    $code = '';
    foreach (keys %digit) {
        for ($k =0;$k <= $line_msgNum;$k++) {
            if ($_ eq $num_0[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_1[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_2[$k] ) {
                $result_[$k] = $digit{$_};
            }
            if ($_ eq $num_3[$k] ) {
                $result_[$k] = $digit{$_};
            }
        }
    }

    for ($k=0;$k <[email protected]_;$k++) {

            $code .= $result_[$k];
    }
            return $code;
}
}
return 1;

Edited by zirconiums, 07 November 2007 - 02:25 AM.

ทำงานเก็บเงินแต่งงาน~^^

#5 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 05 November 2007 - 11:59 PM

ดตัวอย่าง 5
ทำงานเก็บเงินแต่งงาน~^^

#6 onewaynow

onewaynow

    เริ่มหัดเล่นเกมส์

  • Member
  • 4 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:gOtAA

Posted 06 November 2007 - 12:15 AM

นี่ที่โพสมาอ่าครับ สามารถใช้กับ sv อื่นได้หรอที่มันไม่ได้เป็นตัวเลขแต่เป็นตัวหนังสือแล้วให้อ่านว่ามีกี่ พยาง แล้วก็ให้ใส่ตามนั้นเช่น เธอทำดีที่สุด ยังงี้นับได้ทั้งหมด 4 ไม่ก็ แบบ คุณคือพชร ยังงี้ ตอบได้สองแบบ คือ 4 กับ 5 ไรงี้แต่คำมันมายังไงเราไม่รุ้อ่าดิ เจอมาแบบที่ สอง นี่ก็ตายเหมือนกันน่ะ เหอะๆ

#7 ลิงโหด~*

ลิงโหด~*

    เริ่มหัดเล่นเกมส์

  • Member
  • 17 posts
  • เกมส์โปรด:Water Margin Online
  • ชื่อเล่น:เอิร์ท

Posted 06 November 2007 - 12:24 AM

เมื่อไรจะแก้อันนี้ให้ผมหรอครับ

Attached Files



#8 onewaynow

onewaynow

    เริ่มหัดเล่นเกมส์

  • Member
  • 4 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:gOtAA

Posted 06 November 2007 - 12:27 AM

อ่าน่ะ ถ้าเข้าใจนี่สบายเลย perl นิดเดียวๆ

#9 ลิงโหด~*

ลิงโหด~*

    เริ่มหัดเล่นเกมส์

  • Member
  • 17 posts
  • เกมส์โปรด:Water Margin Online
  • ชื่อเล่น:เอิร์ท

Posted 06 November 2007 - 12:28 AM

plugins ด้านบนทำเป้นลิ้งให้โหลดด้วยนะครับ คุณ สุดยอดมากครับ - -* ขอบคุณมากๆนะครับ อย่าลืมทำให้เค้าน้าๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ

Attached Files



#10 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 06 November 2007 - 12:59 AM

เก็บ เนื้อที่ใว้ใช้ประโยชน์ ครับ











โอละเน้อ -*- น่าหมั่นเขี้ยวจริง

Edited by zirconiums, 06 November 2007 - 10:44 PM.

ทำงานเก็บเงินแต่งงาน~^^

#11 azCies

azCies

    เกมส์เมอร์ระดับต้น

  • VIP Member
  • 129 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:azCies

Posted 06 November 2007 - 12:20 PM

ปักหมุดให้ครับ

#12 ลิงโหด~*

ลิงโหด~*

    เริ่มหัดเล่นเกมส์

  • Member
  • 17 posts
  • เกมส์โปรด:Water Margin Online
  • ชื่อเล่น:เอิร์ท

Posted 06 November 2007 - 01:48 PM

- -* ใช้plugins ของนับพยางค์ใช่ไหมครับ แต่เปลี่ยนจากคำ เป็นตัวเลข แต่ผม ไม่รู้เรื่องตัวเลขสีอะครับ

#13 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 06 November 2007 - 06:04 PM

@ ลิงโหด


สามารถใช้ร่วมกันได้ครับ เพราะว่า

1.มันจะเปลี่ยนตัวเลข ที่มี สี เป็นตัวอักษร กอ.ไก่ และนำมา + กันเองครับ

2.มันเป้นเลขเดี่ยว ไม่ใช่เลขที่มาเป็นคู่ เช่น


1 23 45 6 คำตอบ = 6

แต่นี่มาเดี่ยวๆ 1 2 3 4 5 6 = 6 นิ่มเลยครับ ^ ^


ใช้แบบ

QUOTE
ประเภท จับกลุ่มโดย ใช้ ตัวอักษรแยกกลุ่ม

Edited by zirconiums, 06 November 2007 - 10:43 PM.

ทำงานเก็บเงินแต่งงาน~^^

#14 ArM~*

ArM~*

    เริ่มหัดเล่นเกมส์

  • Member
  • 8 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:ArM~*

Posted 06 November 2007 - 10:33 PM

ขอบคุณ มากๆเลยครับ กำลังอยากศึกษา

ปล.
มีเวป สอนเขียน plugins เเบบละเอียดมังไหมครับ อยากได้เป็นภาษาไทย








Edited by ArM~*, 06 November 2007 - 10:58 PM.


#15 azCies

azCies

    เกมส์เมอร์ระดับต้น

  • VIP Member
  • 129 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:azCies

Posted 07 November 2007 - 03:29 PM

ดูตัวอย่างจาก plugins ของ openkore ที่เว็ปหลัก
แล้วก็ดูจากตัวบอท แล้วก็ศึกษาเรื่อง hook ครับ
ลองทำ plugins ง่ายๆก่อน

#16 rut619

rut619

    เริ่มหัดเล่นเกมส์

  • Member
  • 25 posts
  • เกมส์โปรด:12sky2 Online
  • ชื่อเล่น:---rut---

Posted 08 November 2007 - 07:01 PM

กำลังตรวจสอบหา portal ใหม่... ไม่พบ


Config 'serverEncoding' ถูกตั้งเป็น Thai (ค่าเดิม )
ทำการเชื่อมต่อกับ Account Server...
กำลังเชื่อมต่อ (172.16.213.212:1048:6900)... ไม่สามารถเชื่อมต่อได้: Unknown error (error code 10060)
หมดเวลารอ Account Server, ทำการเชื่อมต่อใหม่...

ในส่วนของไฟล์serverผมsetยังงี้คับไม่รู้ว่าถูกหรือเปล่า

[HotServerV.2]
ip 172.16.213.212:1048
port 6900
version 22222
master_version 10
serverType 17
serverEncoding Thai

#17 zirconiums

zirconiums

    เกมส์เมอร์ระดับต้น

  • Member
  • 169 posts
  • เกมส์โปรด:X - Shot Online
  • ชื่อเล่น:Top

Posted 08 November 2007 - 07:20 PM

QUOTE(rut619 @ Nov 8 2007, 07:01 PM) <{POST_SNAPBACK}>
กำลังตรวจสอบหา portal ใหม่... ไม่พบ
Config 'serverEncoding' ถูกตั้งเป็น Thai (ค่าเดิม )
ทำการเชื่อมต่อกับ Account Server...
กำลังเชื่อมต่อ (172.16.213.212:1048:6900)... ไม่สามารถเชื่อมต่อได้: Unknown error (error code 10060)
หมดเวลารอ Account Server, ทำการเชื่อมต่อใหม่...

ในส่วนของไฟล์serverผมsetยังงี้คับไม่รู้ว่าถูกหรือเปล่า

[HotServerV.2]
ip 172.16.213.212:1048
port 6900
version 22222
master_version 10
serverType 17
serverEncoding Thai











ip 172.16.213.212:1048

IP 1 2 3 4 5 หลัก มายังไงดูอีกทีนะครับ


ทำงานเก็บเงินแต่งงาน~^^

#18 rut619

rut619

    เริ่มหัดเล่นเกมส์

  • Member
  • 25 posts
  • เกมส์โปรด:12sky2 Online
  • ชื่อเล่น:---rut---

Posted 11 November 2007 - 06:35 PM

ip 172.16.213.212:1048

IP 1 2 3 4 5 หลัก มายังไงดูอีกทีนะครับ


คือไรคับ
ip 172.16.213.212
port 1048
จะถูกเปล่า ของผมมันแสดงยังงี้
Packet Source Destination Size Function
1 172.16.214.141:1243 61.47.35.41:6900 55 Send
00000000 64 00 CE 56 00 00 74 65 73 74 00 00 00 00 00 00 d..V..test....................
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 32 ...qwery
00000020 33 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030 00 00 00 00 00 00 0A

Packet Source Destination Size Function
2 67.47.35.41:6900 172.16.214.141:1243 79 Recv
00000000 69 00 4F 00 0E F4 7C 09 2F E4 32 00 02 EE D4 22 i.O...|./.2....".......................
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 3D .................
00000030 2F 23 29 E9 17 48 4F 54 20 53 65 72 76 65 72 00 =/#)..HOT Server................
00000040 00 00 00 00 00 00 00 00 00 D4 00 00 00 00 00

Packet Source Destination Size Function
3 172.16.214.141:1244 61.47.35.41:6121 17 Send
0000 65 00 2F E4 32 00 0E F4 7C 09 02 EE D4 22 00 00 e./.2...|...."...
0010 01


#19 Zonic2225

Zonic2225

    เริ่มหัดเล่นเกมส์

  • Member
  • 12 posts
  • เกมส์โปรด:None
  • ชื่อเล่น:อ๊อบ

Posted 12 November 2007 - 11:32 PM

QUOTE(zzzzzzzzzZZZZZZ @ Nov 12 2007, 11:23 PM) <{POST_SNAPBACK}>
โทดทีนะครับเพิ่งหัดเปิดบอทได้ 2 วัน(เเละไม่เก่งคอมม์)
เล่นเซิฟเถื่อน97.5fm อยู่

ตัวเเอนตี้บอทที่มี3เเบบ มีเเบบหนึ่งที่เราสามารถตอบเองได้ คือเเบบที่ถามจำนวน = < > อ่ะครับ

ลองเลือกmanual bot เเล้วพิมเอง มันฟ้องว่าไม่เข้าใจคำสั่งอ่ะคับ

1.มีวิธียังไงให้สามารถพิมพ์ ตอบได้จากหน้าจอ ของโปรเเกรมบอทเราเลยมั่งมั้ยคับ..??


ถ้าใช้ปลั๊กอิน ReActOnNPC
ใช้คำสั่ง talk num xxxx
ปล. xxxx = ตัวเลขคำตอบ

#20 rut619

rut619

    เริ่มหัดเล่นเกมส์

  • Member
  • 25 posts
  • เกมส์โปรด:12sky2 Online
  • ชื่อเล่น:---rut---

Posted 13 November 2007 - 06:23 PM

[GM] blueAnti Check System By GM โปรดใส่ตัวเลขที่ท่านเห็นใน ภายใน 180 วินาที
Unknown #110069010: [Anti Check System By GM]
Unknown #110069010: โปรดใส่ตัวเลขภายใน 180 วิ
Unknown #110069010: ไม่งั้นท่านจะถูกแบน
Unknown #110069010: หากใส่ผิด 10 ครั้งท่านจะถูกแบน ID ถาวร
Unknown #110069010: ดำเนินการสนธนาต่อโดยอัตโนมัติ
[ReActOnNPCText] 0 "".
[ReActOnNPCText] 1 "[Anti Check System By GM]".
[ReActOnNPCText] 2 "โปรดใส่ตัวเลขภายใน 180 วิ".
[ReActOnNPCText] 3 "ไม่งั้นท่านจะถูกแบน".
[ReActOnNPCText] 4 "หากใส่ผิด 10 ครั้งท่านจะถูกแบน ID ถาวร".
[ReActOnNPCThai] 0 "".
[ReActOnNPCThai] 1 "[Anti Check System By GM]".
[ReActOnNPCThai] 2 "โปรดใส่ตัวเลขภายใน 180 วิ".
[ReActOnNPCThai] 3 "ไม่งั้นท่านจะถูกแบน".
[Text] 0 "".
[Text] 1 "[Anti Check System By GM]".
[Text] 2 "โปรดใส่ตัวเลขภายใน 180 วิ".
[Text] 3 "ไม่งั้นท่านจะถูกแบน".
[Text] 4 "หากใส่ผิด 10 ครั้งท่านจะถูกแบน ID ถาวร".
[Text] 5 "".
[Total Text] "ไม่งั้นท่านจะถูกแบนหากใส่ผิด10ครั้งท่านจะถูกแบนIDถาวร".
[ระยะห่าง=12.0] เพิ่มเลือด (7): *Nice One*
[ระยะห่าง=12.0] เพิ่มเลือด (7): *Nice One*
Anti Check System By GM กรุณาใส่ตัวเลขที่เห็น
Unknown #110069010: [Anti Check System By GM ]
Unknown #110069010: กรุณาใส่ตัวเลขที่เห็น
Unknown #110069010: ดำเนินการสนธนาต่อโดยอัตโนมัติ
[ReActOnNPCText] 0 "".
[ReActOnNPCText] 1 "[Anti Check System By GM ]".
[ReActOnNPCText] 2 "กรุณาใส่ตัวเลขที่เห็น".
[ReActOnNPCText] 3 "".
[ReActOnNPCText] 4 "".
[ReActOnNPCThai] 0 "".
[ReActOnNPCThai] 1 "[Anti Check System By GM ]".
[ReActOnNPCThai] 2 "กรุณาใส่ตัวเลขที่เห็น".
[ReActOnNPCThai] 3 "".
[Text] 0 "".
[Text] 1 "[Anti Check System By GM ]".
[Text] 2 "กรุณาใส่ตัวเลขที่เห็น".
[Text] 3 "".
[Text] 4 "".
[Text] 5 "".
[Total Text] "".
[ระยะห่าง=12.0] เพิ่มเลือด (7): *Nice One*
Unknown #110069010: ||||||||||||||||||||||||||||||||ll
Unknown #110069010: ||||||||||||||||||||||||||||||||||
Unknown #110069010: ||||||||||||||||||||||||||||||||||
Unknown #110069010: ||||||||||||||||||||||||||||||||||
Unknown #110069010: ||||||||||||||||||||||||||||||||||
Unknown #110069010: ||||||||||||||||||||||||||||||||||
Unknown #110069010: ||||||||||||||||||||||||||||||||ll
Unknown #110069010: ดำเนินการสนธนาต่อโดยอัตโนมัติ
[ReActOnNPCText] 0 "".
[ReActOnNPCText] 1 "||||||||||||||||||||||||||||||||ll".
[ReActOnNPCText] 2 "||||||||||||||||||||||||||||||||||".
[ReActOnNPCText] 3 "||||||||||||||||||||||||||||||||||".
[ReActOnNPCText] 4 "||||||||||||||||||||||||||||||||||".
[ReActOnNPCThai] 0 "".
[ReActOnNPCThai] 1 "||||||||||||||||||||||||||||||||ll".
[ReActOnNPCThai] 2 "||||||||||||||||||||||||||||||||||".
[ReActOnNPCThai] 3 "||||||||||||||||||||||||||||||||||".
[Text] 0 "".
[Text] 1 "||||||||||||||||||||||||||||||||ll".
[Text] 2 "||||||||||||||||||||||||||||||||||".
[Text] 3 "||||||||||||||||||||||||||||||||||".
[Text] 4 "||||||||||||||||||||||||||||||||||".
[Text] 5 "||||||||||||||||||||||||||||||||||".
[Total Text] "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||".
[ระยะห่าง=12.0] เพิ่มเลือด (7): *Nice One*
[responseOnNPCImage] Image name >> "kh_ellisia.bmp"
NPC ได้ปรากฎขึ้น: Unknown #110069010 (155, 82) (ID 110069010) - (0)
Unknown #110069010: ป้อน 'talk num <หมายเลข #>' เพื่อป้อนหมายเลข
[reactOnNPC] Reacting to NPC. Executing command "ASCIInumber num".
[1] : #########################
[2] : #########################
[3] : ###################
[4] : ######################################
[5] : ##########################
[6] : #####################
[7] : ##################################
[8] : #===########==########==########=#
[9] : #=========##========##==##====##=#
[10] : #===########======##====##====##=#
[11] : #===##==========##======##====##=#
[12] : #===########==##========########=#
[13] : ##################################
[ASCIInumber v2.1] Executing command "talk num ".
[ASCIInumber] *** Delay 1-3 sec. before talk num ***.
พบข้อผิดพลาดในฟังก์ชั่น 'talk num' (ตอบสนองต่อ NPC)
คุณจะต้องระบุตัวเลข
[ReActOnNPCText] You must read MANUAL befor use this Plugins
[ReActOnNPCThai] You must read MANUAL befor use this Plugins

มันตอบยังงี้อะคับผมจะแก้ยังไง ต้องทำไงมั้งตอบทีคับ





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users