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

外挂编程

开发平台:

Windows_Unix

  1. #########################################################################
  2. #  OpenKore - Padded packets emulator
  3. #
  4. #  This software is open source, licensed under the GNU General Public
  5. #  License, version 2.
  6. #  Basically, this means that you're allowed to modify and distribute
  7. #  this software. However, if you distribute modified versions, you MUST
  8. #  also distribute the source code.
  9. #  See http://www.gnu.org/licenses/gpl.html for the full license.
  10. #########################################################################
  11. # See src/auto/XSTools/PaddedPackets/README.TXT for more information.
  12. # Parts of this module is implemented in src/auto/XSTools/PaddedPackets/PaddedPackets.xs
  13. package Network::PaddedPackets;
  14. use strict;
  15. use XSTools;
  16. use Modules 'register';
  17. use Globals qw($masterServer $accountID $syncMapSync $syncSync %config);
  18. use Plugins;
  19. XSTools::bootModule("Network::PaddedPackets");
  20. our ($enabled, $attackID, $skillUseID);
  21. sub init {
  22. Plugins::addHook('Network::serverConnect/master', &reset);
  23. Plugins::addHook('map_loaded', &reset);
  24. }
  25. sub reset {
  26. if ($masterServer) {
  27. $enabled = $masterServer->{paddedPackets};
  28. $attackID   = hex($masterServer->{paddedPackets_attackID}) || 0x89;
  29. $skillUseID = hex($masterServer->{paddedPackets_skillUseID}) || 0x113;
  30. } else {
  31. $enabled = 0;
  32. $attackID = 0x89;
  33. $skillUseID = 0x113;
  34. }
  35. setPacketIDs($attackID, $skillUseID);
  36. $attackID   = sprintf('%04X', $attackID);
  37. $skillUseID = sprintf('%04X', $skillUseID);
  38. }
  39. ######################################
  40. sub setHashData {
  41. setAccountId(unpack("L1", $accountID));
  42. setMapSync(unpack("L1", $syncMapSync));
  43. setSync(unpack("L1", $syncSync));
  44. }
  45. sub generateSitStand {
  46. my ($sit) = @_;
  47. my $packet = " " x 256;
  48. setHashData();
  49. my $len = createSitStand($packet, $sit);
  50. return substr($packet, 0, $len);
  51. }
  52. sub generateAtk {
  53. my ($targetId, $flag) = @_;
  54. my $packet = " " x 256;
  55. setHashData();
  56. my $len = createAtk($packet, unpack("L1", $targetId), $flag);
  57. return substr($packet, 0, $len);
  58. }
  59. sub generateSkillUse {
  60. my ($skillId, $skillLv, $targetId) = @_;
  61. my $packet = " " x 256;
  62. setHashData();
  63. my $len = createSkillUse($packet, $skillId, $skillLv, unpack("L1", $targetId));
  64. return substr($packet, 0, $len);
  65. }
  66. 1;