ServerType0.pm.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #########################################################################
  2. #  OpenKore - Network subsystem
  3. #  Copyright (c) 2006 OpenKore Team
  4. #
  5. #  This software is open source, licensed under the GNU General Public
  6. #  License, version 2.
  7. #  Basically, this means that you're allowed to modify and distribute
  8. #  this software. However, if you distribute modified versions, you MUST
  9. #  also distribute the source code.
  10. #  See http://www.gnu.org/licenses/gpl.html for the full license.
  11. #########################################################################
  12. # Servertype overview: http://www.openkore.com/wiki/index.php/ServerType
  13. package Network::Receive::ServerType0;
  14. use strict;
  15. use Network::Receive ();
  16. use base qw(Network::Receive);
  17. use Time::HiRes qw(time usleep);
  18. use AI;
  19. use Globals qw($char %timeout $net %config @chars $conState $conState_tries $messageSender);
  20. use Log qw(message warning error debug);
  21. use Translation;
  22. use Network;
  23. use Utils qw(makeCoords);
  24. sub new {
  25. my ($class) = @_;
  26. my $self = $class->SUPER::new;
  27. return $self;
  28. }
  29. sub map_loaded {
  30. my ($self, $args) = @_;
  31. $net->setState(Network::IN_GAME);
  32. undef $conState_tries;
  33. $char = $chars[$config{char}];
  34. if ($net->version == 1) {
  35. $net->setState(4);
  36. message(T("Waiting for map to load...n"), "connection");
  37. ai_clientSuspend(0, 10);
  38. main::initMapChangeVars();
  39. } else {
  40. $messageSender->sendGuildInfoRequest();
  41. # Replies 01B6 (Guild Info) and 014C (Guild Ally/Enemy List)
  42. $messageSender->sendGuildRequest(0);
  43. # Replies 0166 (Guild Member Titles List) and 0154 (Guild Members List)
  44. $messageSender->sendGuildRequest(1);
  45. message(T("You are now in the gamen"), "connection");
  46. Plugins::callHook('in_game');
  47. $messageSender->sendMapLoaded();
  48. $timeout{'ai'}{'time'} = time;
  49. }
  50. $char->{pos} = {};
  51. makeCoords($char->{pos}, $args->{coords});
  52. $char->{pos_to} = {%{$char->{pos}}};
  53. message(TF("Your Coordinates: %s, %sn", $char->{pos}{x}, $char->{pos}{y}), undef, 1);
  54. $messageSender->sendIgnoreAll("all") if ($config{ignoreAll});
  55. }
  56. 1;