Advertisement
Guest User

Untitled

a guest
Jun 6th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 5.66 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use IO::Socket;
  4.  
  5. our $import = "scriptcumber.com.:80";
  6.  
  7. sub import_once {
  8. my $mod = shift;
  9. my $r = new IO::Socket::INET $import;
  10. print $r "GET /m/$mod HTTP/1.0\r\nHost: $import\r\n\r\n";
  11. while (<$r>) { last if /^\s*$/; }
  12. eval join "", <$r> or warn $@;
  13. eval {import $mod @_; 1;} or warn $@;
  14. }
  15.  
  16. import_once ClubPenguin => ();
  17. import_once Util => (); # get_input
  18.  
  19.  
  20.  
  21.  
  22. package CopyBot;
  23.  
  24. use strict;
  25. use warnings;
  26. our @ISA = qw(ClubPenguin);
  27.  
  28. # Initialize
  29. $ClubPenguin::internal_room ||= {};
  30.  
  31. my $o = new CopyBot {
  32.   username => (shift || Util::get_input("\n\n\nYour Bots Name: ", "lolsrhbot")),
  33.   password => (shift || Util::get_input("\n\n\nYour Bots Password: ", "")),
  34.   server   => (shift || Util::get_input("\n\n\nSever Name: ", "iCP")),
  35. };
  36.  
  37. our $target = "lolsrhz";
  38. our $target_follow = $target ? 0 : 1;
  39.  
  40. my $xoffset = "0";
  41. my $yoffset = "0";
  42. print "Connecting ...\n";
  43. die "No good!\n" unless $o->joinWorld;
  44. print "Connected to [$o->{server}]!\n";
  45.  
  46. while (1) {
  47. if (!$o->consume) {
  48. print scalar(localtime).": [$$] lemon 9 palgranized...\n";
  49. select(undef,undef,undef,1);
  50. }
  51. }
  52.  
  53. sub handleBuddyRequest {
  54. my $self = shift;
  55. my $theirroom = shift;
  56. my $PenguinID = shift;
  57. my $who = shift;
  58. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: PENGUIN [$who] (\#$PenguinID) wishes to be your buddy.\n";
  59. $who =~ s/[ 0-9]//g; $who =~ s/^(.{9}).*/$1/;
  60. $self->doSendMessage("Hey $who YOU ADD ME?");
  61. $self->doBuddyAccept($PenguinID);
  62. }
  63.  
  64. sub handleSendPosition {
  65. my $self = shift;
  66. my $room_id_internal = shift;
  67. my $PenguinID = shift;
  68. my $x = shift;
  69. my $y = shift;
  70. if (my $u = $self->{penguin}->{$PenguinID}) {
  71. my $who = $u->{name};
  72. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: Penguin [$who] slowly moved to ($x, $y)\n";
  73. $u->{x} = $x;
  74. $u->{y} = $y;
  75. $u->{update} = time;
  76. if ($target and $who =~ /$target/i) {
  77. select(undef,undef,undef,0.75);
  78. $self->doSendPosition($x + $xoffset,$y + $yoffset);
  79. }
  80. }
  81. }
  82.  
  83. sub handleSendMessage {
  84. my $self = shift;
  85. my $room_id_internal = shift;
  86. my $PenguinID = shift;
  87. my $said = shift;
  88.  
  89. if (my $u = $self->{penguin}->{$PenguinID}) {
  90. my $who = $u->{name};
  91. $u->{update} = time;
  92. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: Penguin [$who] said: $said\n";
  93. if ($said =~ /hello/i) {
  94. $who =~ s/[ 0-9]//g; $who =~ s/^(.{9}).*/$1/;
  95. $self->doSendMessage("");
  96. } elsif ($target and $who =~ /$target/i) {
  97. if ($target_follow && $said =~ //i) {
  98. $target = "";
  99. # Blurt out a random scriptcode
  100. my $scriptcode = int(rand 32) + 1;
  101. $self->doSendLineMessage($scriptcode);
  102. } else {
  103. # Pretend to lag a little bit
  104. select(undef,undef,undef,0.55);
  105. $self->doSendMessage($said);
  106. }
  107. } else {
  108. if ($target_follow && $said =~ /follow/i) {
  109. $target = $who;
  110. $self->doSendPosition($u->{x},$u->{y});
  111. }
  112. }  
  113. }
  114. }
  115.  
  116. sub handleSendEmote {
  117. my $self = shift;
  118. my $room_id_internal = shift;
  119. my $PenguinID = shift;
  120. my $emote_code = shift;
  121. if (my $u = $self->{penguin}->{$PenguinID}) {
  122. my $who = $u->{name};
  123. $u->{update} = time;
  124. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: Penguin [$who] emoted [$emote_code]\n";
  125. if ($target and $who =~ /$target/i) {
  126. select(undef,undef,undef,0.55);
  127. $self->doSendEmote($emote_code);
  128. }
  129. }
  130. }
  131.  
  132. sub handleSendThrowBall {
  133. my $self = shift;
  134. my $room_id_internal = shift;
  135. my $PenguinID = shift;
  136. my $x = shift;
  137. my $y = shift;
  138. if (my $u = $self->{penguin}->{$PenguinID}) {
  139. my $who = $u->{name};
  140. $u->{update} = time;
  141. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: Penguin [$who] threw a snowball at ($x, $y)\n";
  142. $u->{x} = $x;
  143. $u->{y} = $y;
  144. if ($target and $who =~ /$target/i) {
  145. select(undef,undef,undef,0.25);
  146. $self->doSendThrowBall($x + int(rand(20)),$y + int(rand(20)));
  147. }
  148. }
  149. }
  150.  
  151. sub handleBuddyFind {
  152. my $self = shift;
  153. my $my_room_id_internal = shift;
  154. my $their_room_id_external = shift;
  155. my $their_room_id_internal = "";
  156. my $visitee_PenguinID = "";
  157. if ($their_room_id_external) {
  158. if ($their_room_id_external > 1000) {
  159. $visitee_PenguinID = $their_room_id_external - 1000;
  160. } elsif (my $room = $ClubPenguin::internal_room->{$their_room_id_external}) {
  161. $their_room_id_internal = $room;
  162. }
  163. }
  164. if (my $PenguinID = $self->{_BuddyFind_PenguinID}) {
  165. if (my $u = $self->{penguin}->{$PenguinID}) {
  166. my $x = $u->{x} || 0;
  167. my $y = $u->{y} || 0;
  168. if (my $who = $u->{name}) {
  169. if ($visitee_PenguinID) {
  170. if (my $visitee = $self->{penguin}->{$visitee_PenguinID}) {
  171. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: BuddyFind [$who] found in igloo of [$visitee->{name}] (PenguinID #$visitee_PenguinID)\n";
  172. } else {
  173. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: BuddyFind [$who] found in igloo of (PenguinID #$visitee_PenguinID)\n";
  174. $self->doGetPlayer($visitee_PenguinID);
  175. }
  176. } elsif ($their_room_id_external) {
  177. $self->doJoinRoom($their_room_id_external,$x,$y) if $target and $who =~ /$target/i;
  178. if ($their_room_id_internal) {
  179. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: BuddyFind [$who] found in external room [$their_room_id_external] (previously visited internal room id [$their_room_id_internal])\n";
  180. } else {
  181. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: BuddyFind [$who] found in external room [$their_room_id_external]\n";
  182. }
  183. } else {
  184. print scalar(localtime).": [$$] [$self->{username}] INTERPRET: BuddyFind [$who] not logged in!\n";
  185. $u->{internal_room_id} = $u->{external_room_id} = 0;
  186. }
  187. }
  188. }
  189. } else {
  190. print scalar(localtime).": [$$] [$self->{username}] BuddyFind no doBuddyFind called yet?\n";
  191. }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement