Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #################################################################################################
- # OpenKore - Network subsystem #
- # This module contains functions for sending messages to the server. #
- # #
- # This software is open source, licensed under the GNU General Public #
- # License, version 2. #
- # Basically, this means that you're allowed to modify and distribute #
- # this software. However, if you distribute modified versions, you MUST #
- # also distribute the source code. #
- # See http://www.gnu.org/licenses/gpl.html for the full license. #
- #################################################################################################
- # bRO (Brazil)
- package Network::Receive::bRO;
- use strict;
- use Log qw(message warning error debug);
- use base 'Network::Receive::ServerType0';
- use Globals;
- use Translation;
- use Misc;
- # Sync_Ex algorithm developed by Fr3DBr
- sub new {
- my ($class) = @_;
- my $self = $class->SUPER::new(@_);
- my %packets = (
- '0097' => ['private_message', 'v Z24 V Z*', [qw(len privMsgUser flag privMsg)]], # -1
- '08A1' => ['sync_request_ex'],
- '08A4' => ['sync_request_ex'],
- '0950' => ['sync_request_ex'],
- '095B' => ['sync_request_ex'],
- '0438' => ['sync_request_ex'],
- '0941' => ['sync_request_ex'],
- '0882' => ['sync_request_ex'],
- '0943' => ['sync_request_ex'],
- '093A' => ['sync_request_ex'],
- '0946' => ['sync_request_ex'],
- '0893' => ['sync_request_ex'],
- '091E' => ['sync_request_ex'],
- '0948' => ['sync_request_ex'],
- '08AB' => ['sync_request_ex'],
- '0965' => ['sync_request_ex'],
- '0875' => ['sync_request_ex'],
- '092F' => ['sync_request_ex'],
- '0887' => ['sync_request_ex'],
- '0888' => ['sync_request_ex'],
- '0363' => ['sync_request_ex'],
- '0815' => ['sync_request_ex'],
- '0964' => ['sync_request_ex'],
- '0923' => ['sync_request_ex'],
- '08A2' => ['sync_request_ex'],
- '0863' => ['sync_request_ex'],
- '0367' => ['sync_request_ex'],
- '08AA' => ['sync_request_ex'],
- '0437' => ['sync_request_ex'],
- '0360' => ['sync_request_ex'],
- '02C4' => ['sync_request_ex'],
- '0928' => ['sync_request_ex'],
- '085A' => ['sync_request_ex'],
- '0958' => ['sync_request_ex'],
- '0869' => ['sync_request_ex'],
- '0886' => ['sync_request_ex'],
- '0918' => ['sync_request_ex'],
- '0366' => ['sync_request_ex'],
- '0880' => ['sync_request_ex'],
- '0938' => ['sync_request_ex'],
- '088D' => ['sync_request_ex'],
- '035F' => ['sync_request_ex'],
- '0885' => ['sync_request_ex'],
- '07E4' => ['sync_request_ex'],
- '08AD' => ['sync_request_ex'],
- '0955' => ['sync_request_ex'],
- '086A' => ['sync_request_ex'],
- '0878' => ['sync_request_ex'],
- '0927' => ['sync_request_ex'],
- '085B' => ['sync_request_ex'],
- '0961' => ['sync_request_ex'],
- '087D' => ['sync_request_ex'],
- '0922' => ['sync_request_ex'],
- '0899' => ['sync_request_ex'],
- '0969' => ['sync_request_ex'],
- '0929' => ['sync_request_ex'],
- '089D' => ['sync_request_ex'],
- '0868' => ['sync_request_ex'],
- '091A' => ['sync_request_ex'],
- '0935' => ['sync_request_ex'],
- '0932' => ['sync_request_ex'],
- '0945' => ['sync_request_ex'],
- '092A' => ['sync_request_ex'],
- '08A5' => ['sync_request_ex'],
- '0933' => ['sync_request_ex'],
- '0942' => ['sync_request_ex'],
- '086F' => ['sync_request_ex'],
- '0874' => ['sync_request_ex'],
- '092C' => ['sync_request_ex'],
- '088E' => ['sync_request_ex'],
- '0361' => ['sync_request_ex'],
- '096A' => ['sync_request_ex'],
- '091D' => ['sync_request_ex'],
- '0898' => ['sync_request_ex'],
- '0436' => ['sync_request_ex'],
- '0952' => ['sync_request_ex'],
- '094D' => ['sync_request_ex'],
- '092E' => ['sync_request_ex'],
- '0861' => ['sync_request_ex'],
- '0894' => ['sync_request_ex'],
- '0940' => ['sync_request_ex'],
- '093F' => ['sync_request_ex'],
- '094F' => ['sync_request_ex'],
- '085C' => ['sync_request_ex'],
- '093C' => ['sync_request_ex'],
- );
- foreach my $switch (keys %packets) {
- $self->{packet_list}{$switch} = $packets{$switch};
- }
- Plugins::addHook('packet_pre/received_characters' => sub {
- $self->{lockCharScreen} = 2;
- $timeout{charlogin}{time} = time;
- });
- Plugins::addHook(charSelectScreen => sub {
- $_[1]{return} = $self->{lockCharScreen};
- });
- return $self;
- }
- sub items_nonstackable {
- my ($self, $args) = @_;
- my $items = $self->{nested}->{items_nonstackable};
- if($args->{switch} eq '00A4' || # inventory
- $args->{switch} eq '00A6' || # storage
- $args->{switch} eq '0122' # cart
- ) {
- return $items->{type4};
- } elsif ($args->{switch} eq '0295' || # inventory
- $args->{switch} eq '0296' || # storage
- $args->{switch} eq '0297' # cart
- ) {
- return $items->{type4};
- } elsif ($args->{switch} eq '02D0' || # inventory
- $args->{switch} eq '02D1' || # storage
- $args->{switch} eq '02D2' # cart
- ) {
- return $items->{type4};
- } else {
- warning("items_nonstackable: unsupported packet ($args->{switch})!\n");
- }
- }
- sub sync_request_ex {
- my ($self, $args) = @_;
- # Debug Log
- # message "Received Sync Ex : 0x" . $args->{switch} . "\n";
- # Computing Sync Ex - By Fr3DBr
- my $PacketID = $args->{switch};
- # Sync Ex Reply Array
- my %sync_ex_question_reply = (
- '08A1' => '095F',
- '08A4' => '08A6',
- '0950' => '0883',
- '095B' => '095C',
- '0438' => '0934',
- '0941' => '0202',
- '0882' => '094A',
- '0943' => '0963',
- '093A' => '089B',
- '0946' => '0957',
- '0893' => '0364',
- '091E' => '089A',
- '0948' => '0931',
- '08AB' => '08A7',
- '0965' => '0954',
- '0875' => '0924',
- '092F' => '0870',
- '0887' => '0866',
- '0888' => '0879',
- '0363' => '0835',
- '0815' => '088F',
- '0964' => '088C',
- '0923' => '087A',
- '08A2' => '0960',
- '0863' => '0890',
- '0367' => '0811',
- '08AA' => '0897',
- '0437' => '08AC',
- '0360' => '08A3',
- '02C4' => '08A8',
- '0928' => '0956',
- '085A' => '0838',
- '0958' => '092D',
- '0869' => '086E',
- '0886' => '0966',
- '0918' => '0930',
- '0366' => '083C',
- '0880' => '0895',
- '0938' => '0926',
- '088D' => '089C',
- '035F' => '086D',
- '0885' => '0369',
- '07E4' => '0865',
- '08AD' => '0873',
- '0955' => '0819',
- '086A' => '0921',
- '0878' => '0368',
- '0927' => '095A',
- '085B' => '0281',
- '0961' => '0919',
- '087D' => '0876',
- '0922' => '0892',
- '0899' => '0860',
- '0969' => '023B',
- '0929' => '095E',
- '089D' => '0967',
- '0868' => '093D',
- '091A' => '094B',
- '0935' => '0920',
- '0932' => '087B',
- '0945' => '0889',
- '092A' => '0962',
- '08A5' => '089E',
- '0933' => '086B',
- '0942' => '0947',
- '086F' => '0951',
- '0874' => '0817',
- '092C' => '093E',
- '088E' => '07EC',
- '0361' => '091F',
- '096A' => '094C',
- '091D' => '087C',
- '0898' => '0939',
- '0436' => '0867',
- '0952' => '0365',
- '094D' => '086C',
- '092E' => '094E',
- '0861' => '088B',
- '0894' => '0936',
- '0940' => '0877',
- '093F' => '085E',
- '094F' => '085F',
- '085C' => '087F',
- '093C' => '085D',
- );
- # Getting Sync Ex Reply ID from Table
- my $SyncID = $sync_ex_question_reply{$PacketID};
- # Cleaning Leading Zeros
- $PacketID =~ s/^0+//;
- # Cleaning Leading Zeros
- $SyncID =~ s/^0+//;
- # Debug Log
- # print sprintf("Received Ex Packet ID : 0x%s => 0x%s\n", $PacketID, $SyncID);
- # Converting ID to Hex Number
- $SyncID = hex($SyncID);
- # Dispatching Sync Ex Reply
- $messageSender->sendReplySyncRequestEx($SyncID);
- }
- *parse_quest_update_mission_hunt = *Network::Receive::ServerType0::parse_quest_update_mission_hunt_v2;
- *reconstruct_quest_update_mission_hunt = *Network::Receive::ServerType0::reconstruct_quest_update_mission_hunt_v2;
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement