From 5de93091d73b6157260b9ba58b48be823fc7b0b7 Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Wed, 1 Nov 2017 09:06:19 -0700 Subject: [PATCH 01/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 4cbfde1679..5cc19cc084 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2663,8 +2663,8 @@ sub pet_info2 { #} if ($type == 0) { - # You own no pet. - undef $pet{ID}; + # You own pet with this ID + $pet{ID} = $ID; } elsif ($type == 1) { $pet{friendly} = $value; @@ -2684,8 +2684,8 @@ sub pet_info2 { #debug "Pet performance info: $value\n"; } elsif ($type == 5) { - # You own pet with this ID - $pet{ID} = $ID; + # You own no pet. + undef $pet{ID} unless ($pet{ID} && ($pet{ID} eq $ID)); } } From ebfbed3dd0c06cd05671b9a1ef81ca3eabed2b9a Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Wed, 1 Nov 2017 09:10:05 -0700 Subject: [PATCH 02/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 5cc19cc084..e2cca9970f 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2662,6 +2662,7 @@ sub pet_info2 { # delete $monsters{$ID}; #} + return if ($pet{ID} && ($pet{ID} ne $ID)); if ($type == 0) { # You own pet with this ID $pet{ID} = $ID; From 7e0768e47c14dd5a5f624f1400756c6e98eca86c Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Wed, 1 Nov 2017 09:15:35 -0700 Subject: [PATCH 03/10] Update CoreLogic.pm --- src/AI/CoreLogic.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AI/CoreLogic.pm b/src/AI/CoreLogic.pm index 40801a32a4..cbf7bcff5a 100644 --- a/src/AI/CoreLogic.pm +++ b/src/AI/CoreLogic.pm @@ -3297,8 +3297,8 @@ sub processRepairAuto { } sub processFeed { - if ($config{pet_autoFeed} && timeOut($timeout{ai_petFeed}) && %pet && $pet{hungry} && ($pet{hungry} <= $config{pet_hunger} || $pet{hungry} <= $config{pet_return})) { - if ($pet{hungry} <= $config{pet_return} && %pet && $pet{hungry}) { + if ($config{pet_autoFeed} && timeOut($timeout{ai_petFeed}) && $pet{ID} && $pet{hungry} && ($pet{hungry} <= $config{pet_hunger} || $pet{hungry} <= $config{pet_return})) { + if ($pet{hungry} <= $config{pet_return} && $pet{ID} && $pet{hungry}) { message TF("Pet hunger reaches the return value.\n"); $messageSender->sendPetMenu(3); undef %pet; # todo: instead undef %pet when the actor (our pet) dissapears, this is safer (xkore) From c08d3ed20bff917baa4925d0ebec2915406ad465 Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Wed, 1 Nov 2017 22:43:54 -0700 Subject: [PATCH 04/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index e2cca9970f..5cc19cc084 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2662,7 +2662,6 @@ sub pet_info2 { # delete $monsters{$ID}; #} - return if ($pet{ID} && ($pet{ID} ne $ID)); if ($type == 0) { # You own pet with this ID $pet{ID} = $ID; From e1237a997da24524a2b413ba02fed553ffe96a8f Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Thu, 2 Nov 2017 08:50:28 -0700 Subject: [PATCH 05/10] Update ServerType0.pm no need to record pet if is not yours --- src/Network/Receive/ServerType0.pm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 5cc19cc084..2b21c83fde 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2665,8 +2665,12 @@ sub pet_info2 { if ($type == 0) { # You own pet with this ID $pet{ID} = $ID; + } elsif ($type == 5) { + # You own no pet. + return unless ($pet{ID} && ($pet{ID} eq $ID)); + } - } elsif ($type == 1) { + if ($type == 1) { $pet{friendly} = $value; debug "Pet friendly: $value\n"; @@ -2683,9 +2687,6 @@ sub pet_info2 { # performance info for any pet in range #debug "Pet performance info: $value\n"; - } elsif ($type == 5) { - # You own no pet. - undef $pet{ID} unless ($pet{ID} && ($pet{ID} eq $ID)); } } From f156d5da808786ccc886d1d0c29adb21f6d8042f Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Thu, 2 Nov 2017 08:59:36 -0700 Subject: [PATCH 06/10] Update MapServer.pm pet type --- src/Network/XKore2/MapServer.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Network/XKore2/MapServer.pm b/src/Network/XKore2/MapServer.pm index 9ad1d640b6..d064bca502 100644 --- a/src/Network/XKore2/MapServer.pm +++ b/src/Network/XKore2/MapServer.pm @@ -246,10 +246,10 @@ sub send_pet { my $data = undef; if (defined $pet{ID}) { $data = pack('C2 C a4 V', 0xA4, 0x01, 0, $pet{ID}, 0); - $data .= pack('C2 C a4 V', 0xA4, 0x01, 5, $pet{ID}, 0x64); + $data .= pack('C2 C a4 V', 0xA4, 0x01, 5, $pet{ID}, 0x64);#<20171102>on iRO, this one only happen when hatch $data .= pack('C2 Z24 C v4', 0xA2, 0x01, stringToBytes($pet{name}), $pet{renameflag}, $pet{level}, - $pet{hungry}, $pet{friendly}, $pet{accessory}); + $pet{hungry}, $pet{friendly}, $pet{accessory}, $pet{type}); $client->send($data); } } From 62d5b67d3fd57c6eae79253a895a8ed4b3396f60 Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Thu, 2 Nov 2017 09:12:07 -0700 Subject: [PATCH 07/10] Update functions.pl clear %pet on login --- src/functions.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/functions.pl b/src/functions.pl index eb5990f45b..0984dbf061 100644 --- a/src/functions.pl +++ b/src/functions.pl @@ -597,6 +597,7 @@ sub initConnectVars { undef @skillsID; undef @partyUsersID; undef %cashShop; + %pet = (); } # Initialize variables when you change map (after a teleport or after you walked into a portal) From 3e175d38d07ba3e7f528a4aa80b8f1ce75af0ce7 Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Sat, 11 Aug 2018 15:36:06 +0700 Subject: [PATCH 08/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 2b21c83fde..59f2ab44c9 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2020,6 +2020,7 @@ sub item_skill { sub map_changed { my ($self, $args) = @_; $net->setState(4); + %pet = (); my $oldMap = $field ? $field->baseName : undef; # Get old Map name without InstanceID my ($map) = $args->{map} =~ /([\s\S]*)\./; From ad02debd6d4598ab30bbfec67988da15dfb69c48 Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Sat, 11 Aug 2018 15:40:14 +0700 Subject: [PATCH 09/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 59f2ab44c9..76df51d615 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2666,6 +2666,7 @@ sub pet_info2 { if ($type == 0) { # You own pet with this ID $pet{ID} = $ID; + message("Pet ID: ".unpack("V1", $ID)."\n"); } elsif ($type == 5) { # You own no pet. return unless ($pet{ID} && ($pet{ID} eq $ID)); From ed04412620ba5fd932d973990eb2b47027aa949f Mon Sep 17 00:00:00 2001 From: c4c1n6kr3m1 Date: Sat, 11 Aug 2018 15:45:11 +0700 Subject: [PATCH 10/10] Update ServerType0.pm --- src/Network/Receive/ServerType0.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Network/Receive/ServerType0.pm b/src/Network/Receive/ServerType0.pm index 76df51d615..7d746f2668 100644 --- a/src/Network/Receive/ServerType0.pm +++ b/src/Network/Receive/ServerType0.pm @@ -2669,7 +2669,7 @@ sub pet_info2 { message("Pet ID: ".unpack("V1", $ID)."\n"); } elsif ($type == 5) { # You own no pet. - return unless ($pet{ID} && ($pet{ID} eq $ID)); + return;# unless ($pet{ID} && ($pet{ID} eq $ID)); } if ($type == 1) {