diff --git a/src/Commands.pm b/src/Commands.pm index 1f0664b70b..9809b9b6c2 100644 --- a/src/Commands.pm +++ b/src/Commands.pm @@ -822,6 +822,7 @@ sub initHandlers { ["", T("delay the next console commands for 1 second")], [T(""), T("delay the next console commands by a specified number of seconds")] ], undef], + ['eden', "Use Eden Group Mark", \&cmdEden], ); # Built-in aliases @@ -8680,4 +8681,18 @@ sub cmdNPCCreateRequest { $messageSender->sendNPCCreateRequest($args); } +sub cmdEden { + if (!$net || $net->getState() != Network::IN_GAME) { + error TF("You must be logged in the game to use this command '%s'\n", shift); + return; + } + my $item = Misc::getEdenGroupMark(); + if ($item) { + $item->use; + } + else { + error "Error in function 'eden' (Use Eden Group Mark)\nInventory Item Eden Group Mark does not exist.\n"; + } +} + 1; diff --git a/src/Misc.pm b/src/Misc.pm index 115422d571..bb0b483b69 100644 --- a/src/Misc.pm +++ b/src/Misc.pm @@ -3563,16 +3563,13 @@ sub canUseTeleport { $item = $char->inventory->getByName($config{teleportAuto_item1}); $item = $char->inventory->getByNameID($config{teleportAuto_item1}) if (!($item) && $config{teleportAuto_item1} =~ /^\d{3,}$/); } - $item = $char->inventory->getByNameID(23280) unless $item; # Beginner's Fly Wing - $item = $char->inventory->getByNameID(12323) unless $item; # Novice Fly Wing - $item = $char->inventory->getByNameID(601) unless $item; # Fly Wing + $item = getFlyWing() unless $item; } else { if ($config{teleportAuto_item2}) { $item = $char->inventory->getByName($config{teleportAuto_item2}); $item = $char->inventory->getByNameID($config{teleportAuto_item2}) if (!($item) && $config{teleportAuto_item2} =~ /^\d{3,}$/); } - $item = $char->inventory->getByNameID(12324) unless $item; # Novice Butterfly Wing - $item = $char->inventory->getByNameID(602) unless $item; # Butterfly Wing + $item = getButterflyWing() unless $item; } return 1 if $item; @@ -5588,4 +5585,33 @@ sub autoNpcTalk { }); } +sub getFlyWing { + # 12887 - Unlimited Fly Wing + # 23280 - Mosquito Wings (only if lv < 99) + # 23338 - [Event] Fly Wing + # 12323 - Novice Fly Wing + # 601 - Fly Wing + for my $id (12887, 23280, 23338, 12323, 601) { + next if $id == 23280 && $char->{lv} >= 99; + my $item = $char->inventory->getByNameID($id); + return $item if $item; + } + return undef; +} + +sub getButterflyWing { + # 12324 - Novice Butterfly Wing + # 602 - Butterfly Wing + for my $id (12324, 602) { + my $item = $char->inventory->getByNameID($id); + return $item if $item; + } + return undef; +} + +sub getEdenGroupMark { + # 22508 - Eden Group Mark + return $char->inventory->getByNameID(22508); +} + return 1; diff --git a/src/Task/Teleport/Random.pm b/src/Task/Teleport/Random.pm index 4bdd04f28d..838075bbf5 100644 --- a/src/Task/Teleport/Random.pm +++ b/src/Task/Teleport/Random.pm @@ -30,9 +30,7 @@ sub getInventoryItem { $item = $self->{actor}->inventory->getByName($config{teleportAuto_item1}); $item = $self->{actor}->inventory->getByNameID($config{teleportAuto_item1}) if (!($item) && $config{teleportAuto_item1} =~ /^\d{3,}$/); } - $item = $self->{actor}->inventory->getByNameID(23280) unless $item; # Beginner's Fly Wing - $item = $self->{actor}->inventory->getByNameID(12323) unless $item; # Novice Fly Wing - $item = $self->{actor}->inventory->getByNameID(601) unless $item; # Fly Wing + $item = Misc::getFlyWing() unless $item; return $item; } diff --git a/src/Task/Teleport/Respawn.pm b/src/Task/Teleport/Respawn.pm index e3d5cb4baa..dad8198b46 100644 --- a/src/Task/Teleport/Respawn.pm +++ b/src/Task/Teleport/Respawn.pm @@ -30,8 +30,7 @@ sub getInventoryItem { $item = $self->{actor}->inventory->getByName($config{teleportAuto_item2}); $item = $self->{actor}->inventory->getByNameID($config{teleportAuto_item2}) if (!($item) && $config{teleportAuto_item2} =~ /^\d{3,}$/); } - $item = $self->{actor}->inventory->getByNameID(12324) unless $item; # Novice Butterfly Wing - $item = $self->{actor}->inventory->getByNameID(602) unless $item; # Butterfly Wing + $item = Misc::getButterflyWing() unless $item; return $item; }