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

外挂编程

开发平台:

Windows_Unix

  1. # pRO Valkyrie
  2. # Servertype overview: http://www.openkore.com/wiki/index.php/ServerType
  3. package Network::Receive::ServerType20;
  4. use strict;
  5. use Network::Receive ();
  6. use base qw(Network::Receive);
  7. use Time::HiRes qw(time usleep);
  8. use AI;
  9. use Globals qw($char %timeout $net %config @chars $conState $conState_tries $messageSender $syncMapSync);
  10. use Log qw(message warning error debug);
  11. use Translation;
  12. use Network;
  13. use Utils qw(makeCoords);
  14. sub new {
  15. my ($class) = @_;
  16. my $self = $class->SUPER::new;
  17. return $self;
  18. }
  19. sub map_loaded {
  20. my ($self, $args) = @_;
  21. $net->setState(Network::IN_GAME);
  22. undef $conState_tries;
  23. $char = $chars[$config{char}];
  24. $syncMapSync = pack('V1',$args->{syncMapSync});
  25. if ($net->version == 1) {
  26. $net->setState(4);
  27. message T("Waiting for map to load...n"), "connection";
  28. ai_clientSuspend(0, 10);
  29. main::initMapChangeVars();
  30. } else {
  31. $messageSender->sendMapLoaded();
  32. $messageSender->sendSync(1);
  33. debug "Sent initial syncn", "connection";
  34. $messageSender->sendGuildInfoRequest();
  35. # Replies 01B6 (Guild Info) and 014C (Guild Ally/Enemy List)
  36. $messageSender->sendGuildRequest(0);
  37. # Replies 0166 (Guild Member Titles List) and 0154 (Guild Members List)
  38. $messageSender->sendGuildRequest(1);
  39. message(T("You are now in the gamen"), "connection");
  40. Plugins::callHook('in_game');
  41. $timeout{'ai'}{'time'} = time;
  42. }
  43. $char->{pos} = {};
  44. makeCoords($char->{pos}, $args->{coords});
  45. $char->{pos_to} = {%{$char->{pos}}};
  46. message(TF("Your Coordinates: %s, %sn", $char->{pos}{x}, $char->{pos}{y}), undef, 1);
  47. $messageSender->sendIgnoreAll("all") if ($config{ignoreAll});
  48. }
  49. 1;