Tuesday, August 6, 2013

SirensLove use for OPK with SLClient

  1. # mod SirensLove use for OPK with SLClient
  2. # Later 16/7/2013 OPK SVN r8636 is now work on tRO
  3.  
  4. package Sirens;
  5.  
  6. use strict;
  7. use Globals;
  8. use Plugins;
  9. use Log qw(error);
  10. use Misc qw(relog);
  11. use Utils qw(dataWaiting);
  12. use IO::Socket::INET;
  13. use Network::Send;
  14.  
  15. Plugins::register('Sirens', 'Sirens Server Plugin', \&onUnload);
  16.  
  17. my $hooks = Plugins::addHooks(
  18.         ['initialized', \&onInitialized],
  19.         ['mainLoop_pre', \&onMainLoopPre],
  20.         ['parseMsg/pre', \&onParseMsg]
  21. );
  22. use Utils qw(timeOut timeConvert);
  23. ##HH 29-Nov-2008
  24. our $waittime;
  25. our $timesend;
  26. sub onUnload {
  27.         Plugins::delHooks($hooks);
  28. };
  29.  
  30. my $sirens_host = '127.0.0.1';
  31. my $sirens_port = 21115;
  32. my ($sirens_socket, $failecount);
  33.  
  34. sub onInitialized {
  35.         $sirens_socket = IO::Socket::INET->new();
  36.         connect2sirens(\$sirens_socket);
  37. }
  38.  
  39. sub onMainLoopPre {
  40.         if (dataWaiting(\$sirens_socket)) {
  41.                 my $buf;
  42.                 $sirens_socket->recv($buf, 512);               
  43.              #  $net->serverSend($buf) if (length($buf) > 1);          
  44.                 $messageSender->sendToServer($buf) if (length($buf) > 1);                              
  45.                 ##HH 29-Nov-2008
  46.                 $timesend =0;
  47. #               error("Plugin read 02A7 >> KORE.\n");
  48.         }
  49.  
  50.         if ($failecount >= 3) {
  51.                 quit();
  52.         }
  53. ###HH 29-Nov-2008
  54.                 if ( timeOut($timesend,185) && $timesend ) {           
  55. #                       $interface->writeoutput("!!! Reconnect to MukaServer !!! \n"); 
  56.                         error("Reconnect to SirensLove at 21115.\n");
  57.                         my $connected = connect2sirens(\$sirens_socket);
  58.                         if ($connected ) {
  59.                                 $timesend=0;
  60.                         }                      
  61.                 }
  62. ###End HH
  63. }
  64.  
  65. sub onParseMsg {
  66.         my $args = $_[1];
  67.         my $switch = $args->{switch};
  68.         my $msg = $args->{msg};
  69.         my $msg_size = $args->{msg_size};
  70.  
  71.         if ($switch eq '02A6') {
  72.                 unless ($sirens_socket->connected()) {
  73.                         return unless (connect2sirens(\$sirens_socket));
  74.                 }
  75.                                 $msg_size = unpack("S1", substr($msg, 2, 2));
  76.                 $sirens_socket->send(substr($msg, 0, $msg_size));
  77.                                 ##HH 29-Nov-2008
  78.                                 $timesend=time;
  79.         }
  80. }
  81.  
  82. sub connect2sirens {;
  83.         my ($r_socket) = @_;
  84.  
  85.         ${$r_socket} = IO::Socket::INET->new(
  86.                 PeerAddr => $sirens_host,
  87.                 PeerPort => $sirens_port,
  88.                 Proto => 'tcp'
  89.         );
  90.  
  91.         if (${$r_socket} && inet_aton(${$r_socket}->peerhost()) eq inet_aton($sirens_host)) {
  92.                 $failecount = 0;
  93.                 return 1;
  94.                                 error("Sirens Server connected.\n");
  95.         } else {
  96.                 error("Can't connect to Sirens Server.\n");
  97.                 relog() if ($conState == 5);
  98.                 $failecount++;
  99.                 return 0;
  100.         }
  101. }
  102.  
  103. return 1;

Thursday, August 1, 2013

SirensLove Client

  1.  
  2. ========================================================================================
  3.                 วิธีใช้งานบอท OpenKore SVN เชื่อมต่อเข้ากับ SirensLove Client
  4. ========================================================================================
  5.  
  6.  
  7.  
  8. 1. สร้างไฟล์ Sirens for SLClient.pl เพื่อเอาไว้ใช้คู่กับ SL Client ขึ้นมา โดย ...
  9. - เข้าไป Copy Code จากข้างในลิ้งนี้ http://pastebin.com/rSQ1U4TJ หรือ http://paste2.org/XPxd297A ทั้ง 2 ไฟล์นี้แก้ข้อความสีแดงๆ Plugin read 02A7 >> KORE. แล้ว (Credit: พี่เต๋า@SL)
  10. - เปิดโปรแกรม notepad ขึ้นมา
  11. - ทำการวางข้อมูลลงใน notepad (กด Ctrl+V)
  12. - Save File ชื่ออะไรก็ได้ แต่ให้เป็นนามสกุล *.pl (แนะนำให้ตั้งชื่อ Sirens for SLClient.pl)
  13. - นำไฟล์ Sirens for SLClient.pl ที่ทำขึ้นมานี้ไปใส่ไว้ในโฟลเดอร์ plugins\
  14.  
  15.  
  16.  
  17. 2. โหลดโปรแกรม SirensLove Client (SL) ได้ที่ http://sirenslove.freeforums.org/ สมัคร User เว็บนี้ก่อนจึงจะสามารถโหลดไฟล์ได้
  18. จากนั้นทำการขอ User เพื่อใช้งาน SL มาให้พร้อม (คนละ User กับที่สมัครในเว็บ)
  19. วิธีการขอ User SL ให้ดูขวามือของหน้าต่าง SL มันจะมีเมนูให้เลือก 6 ข้อ ให้กดที่เมนู Registration and Support
  20. จะมีรายชื่อซัพพอร์ท ให้กดชื่อ Support คนที่อยากคุยด้วย จะมีลิ้งไปที่เฟสบุคของเขา
  21. แล้วทำการ add เพื่อน เพื่อคุยขอ User สำหรับใช้งาน SL
  22. - เปิดโปรแกรม SL ขึ้นมา
  23. - ทำเครื่องหมายถูกบนช่องที่อยู่ข้างบนสุด
  24. - ใส่ User / Pass
  25. - กด Login (ถ้าไม่ Login SL เอาไว้ บอทก็จะโดน HS ตัด)
  26.  
  27.  
  28.  
  29. 3. ปิดการแสดงข้อความของ Poseidon โดยให้เปิดไฟล์ ServerType0.pm ขึ้นมา
  30. จะอยู่ที่โฟลเดอร์ OpenKore SVN (tRO)\src\Network\Receive\ServerType0.pm
  31. ทำการแก้ไขโดยใส่เครื่องหมาย # ข้างหน้าบรรทัด เพื่อปิดการทำงานของ Poseidon (ทำตามข้างล่างเลย)
  32.  
  33. sub gameguard_request {
  34. #       my ($self, $args) = @_;
  35. #
  36. #       return if ($net->version == 1 && $config{gameGuard} ne '2');
  37. #       Poseidon::Client::getInstance()->query(
  38. #               substr($args->{RAW_MSG}, 0, $args->{RAW_MSG_SIZE})
  39. #       );
  40. #       debug "Querying Poseidon\n", "poseidon";
  41. }
  42.  
  43. *** ดูดีๆนะครับ จะใส่เครื่องหมาย # เฉพาะในส่วนข้างในของฟังก์ชั่น ... คือ บรรทัด บนสุด-ล่างสุด จะไม่ใส่ # ไว้เลย ***
  44.  
  45.  
  46.  
  47. 4. ถ้ามั่นใจว่าเซ็ตบอทเนียนๆแล้ว ก็เริ่มเปิดบอทได้เลยครับ
  48.  
  49.  
  50.