NAME

   Game::Tibia::Packet - Session layer support for the MMORPG Tibia

SYNOPSIS

       use Game::Tibia::Packet;

       # decrypt Tibia packet
       my $read; my $ret = $sock->recv($read, 1024);
       my $res = Game::Tibia::Packet->new(packet => $read, xtea => $xtea_key);
       $packet_type = unpack('C', $res->payload);


       # encrypt a Tibia speech packet
       my $p = Game::Tibia::Packet->new;
       $p->payload .= pack("C S S S/A S C SSC S/A",
           0xAA, 0x1, 0x0, "Perl", 0, 1, 1, 1, 8,
           "Game::Tibia::Packet says Hi!\n:-)");
       $sock->send($p->finalize($xtea_key}))

DESCRIPTION

   Methods for constructing Tibia Gameserver (XTEA) packets. Handles
   checksum calculation and symmetric encryption depending on the
   requested Tibia version.

   Should work with all Tibia versions less than 9.80.

METHODS AND ARGUMENTS

   new(version => $version, [packet => $payload, xtea => $xtea])

     Constructs a new Game::Tibia::Packet instance of version $version. If
     payload and XTEA are given, the payload will be decrypted and trimmed
     to correct size.

   isValid($packet)

     Checks if packet's adler32 digest matches (A totally unnecessary
     thing on Cipsoft's part, as we already have TCP checksum. Why hash
     again?)

   payload() : lvalue

     returns the payload as lvalue (so you can concat on it)

   finalize([$XTEA_KEY])

     Finalizes the packet. XTEA encrypts, prepends checksum and length.

   version($version)

     Returns a hash reference with protocol traits. For example for 840,
     it returns:

         { gmbyte => 1, outfit_addons => 1, adler32 => 1, acc_name => 1,
           stamina => 1, xtea => 1, VERSION => 840, rsa => 1, lvl_on_msg => 1 };

GIT REPOSITORY

   http://github.com/athreef/Game-Tibia-Packet

SEE ALSO

   The protocol was reverse engineered as part of writing my Tibia
   Wireshark Plugin <https://github.com/a3f/Tibia-Wireshark-Plugin>.

   Game::Tibia::Cam

   Game::Tibia::Packet::Login

   Game::Tibia::Packet::Charlist

   http://tpforums.org/forum/forum.php http://tibia.com

AUTHOR

   Ahmad Fatoum <[email protected]>, http://a3f.at

DISCLAIMER

   Tibia is copyrighted by Cipsoft GmbH.

COPYRIGHT AND LICENSE

   Copyright (C) 2016 Ahmad Fatoum

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.