rys410105 发表于 2025-1-7 23:46:07

逍遥335端一键拾取问题

有没有大佬帮写个一键范围拾取的技能··谢~!:

l3322632 发表于 2025-1-7 23:54:18

楼主你想得美哦

radar1223 发表于 2025-1-8 02:05:12

逍遥端就不支持一键拾取,而且源码还找不到了

epyanlove 发表于 2025-1-8 05:02:04

逍遥的没这功能 你需要自己编译服务端并且源码修改
<范围一键拾取>
需要在源码添加
有一定源码基础的可以尝试使用


需要添加的文件如下

src/server/game/Entities/Object/Object.cpp    |16 +++
src/server/game/Entities/Object/Object.h      |   1 +
src/server/game/Entities/Player/Player.cpp    |15 +--
src/server/game/Entities/Player/Player.h      |   2 +-
.../game/Grids/Notifiers/GridNotifiers.h      |16 +++
src/server/game/Handlers/LootHandler.cpp      |   7 +-
src/server/game/YourCore/YourCoreScript.cpp   | 103 ++++++++++++++++++
src/server/game/Server/WorldSession.h         |   2 +-


做的是物品脚本
比较方便, 点一下就可以拾取一定范围内的物品
当然是副本首领单位是跳过的
拾取的条件可以自己修改
贴出的隐藏的部分函数, 希望大家理解

class Taken_Corpos : public ItemScript
{
public:
      Taken_Corpos() :ItemScript("item_Taken_Corpos") {}

      bool OnUse(Player* player, Item* item, SpellCastTargets const & target) override
      {
                if (!player->IsInCombat())
                {
                        if (player->GetGroup() && player->GetMap()->IsRaid())
                        {
                              player->GetSession()->SendNotification("组队或者在团本状态下无法使用");
                              return true;
                        }
                        else
                        {
                              std::list<Creature*> NearCreatureCorpos;
                              player->GetCreaturesCorpseInRange(NearCreatureCorpos, 50.f); //拾取范围50码
                              std::list<Creature*>::const_iterator itr;
                              for (itr = NearCreatureCorpos.begin(); itr != NearCreatureCorpos.end(); ++itr)
                              {
                                        if (!IS_CREATURE_GUID((*itr)->GetGUID()))
                                                continue;
                                        if ((*itr)->GetCreatureTemplate()->flags_extra & CREATURE_FLAG_EXTRA_INSTANCE_BIND)// 非副本首领单位
                                                continue;
                                        if ((*itr)->GetLootRecipientGUID() == player->GetGUID())
                                        {
                                                HandleLootOpcode(player, (*itr));
                                                HandleLootMoneyOpcode(player, (*itr));
                                                HandleAutostoreLootItemOpcode(player, (*itr));
                                                HandleLootReleaseOpcode(player, (*itr));
                                        }
                              }
                        }
                        return false;
                }
                else
                {
                        player->GetSession()->SendNotification("请脱离战状态下使用");
                        return true;
                }
                return true;
      }
};

以上转自隔壁

haiwa2559 发表于 2025-1-8 08:00:19

你只能借助外用工具达到自动拾取,
页: [1]
查看完整版本: 逍遥335端一键拾取问题

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明