LeviLamina icon indicating copy to clipboard operation
LeviLamina copied to clipboard

LL新增一些API接口与事件

Open yqs112358 opened this issue 1 year ago • 0 comments

API接口

  • [ ] 事件系统注册新事件、传递自定义事件

  • [ ] 选择器字符串解析-> 实体数组

  • [ ] 封装 玩家删除指定数量的物品 接口:bool player->removeItem(type, num)

  • [ ] 获取当前所在群系相关

  • [ ] 获取当前天气

  • [ ] 获取游戏内时间戳

  • [ ] getLightingLevel

  • [ ] 封装附魔api

  • [ ] ChunkUtils类封装操作区块相关接口

  • [ ] 生物Ai相关操作:

    • 生物寻路(让生物移动到指定位置)
    • 生物追击(追指定生物再发起攻击)
    • 生物攻击(在攻击范围攻击)
    • 改变生物旋转角度
  • [ ] 模拟打开箱子:能够打开一个箱子带格子的ui,并能放入/取出物品,也能判断返回容器对象和坐标

  • [ ] entity.kill() 增加参数

    • entity.kill(type);
    • type: true: 杀掉实体并不产生任何掉落物 false: 仅杀掉实体 掉落物正常
    • 可能有用:Actor::kill,Actor::die,Actor::remove
  • [ ] 自定义合成接口 b3df4f1d987819706d4a20ae

  • [ ] 物品损耗值:getDamageValue@ItemStackBase

  • [ ] getEntitiesAtBlockLocation

  • [ ] 修改方块硬度和爆炸抗性

  • [ ] 指令权限组

  • [ ] entity的runcmd(gt有这个接口)

  • [ ] uuid获取离线玩家数据:loadPlayerDataFromTag的第二个参数传uuid就行了

  • [ ] hook 函数名反查修饰后名字

  • [ ] ogg音乐传输

  • [ ] safecall:封装崩溃保护的symcall

  • [ ] 将SEH保护框封装为宏,以便于大规模铺开使用

  • [ ] 存档NBT操作 6173eb5f26b4abfa26131d55

事件

  • [ ] 玩家长按生物或者鼠标右键生物
  • [ ] 发射器投掷器事件
  • [ ] 打雷事件 天气变化事件
  • [ ] 方块被破坏事件
  • [ ] neighborChanged 方块更新事件
  • [ ] 生物生成、销毁监听
  • [ ] 监听玩家在工作台,切石机等功能性方块用什么东西合成了什么东西
  • [ ] 指定容器物品发生变化
  • [ ] 玩家指定属性发生变化
  • [ ] 插件onUnload
  • [ ] 活塞事件加参数:推还是拉
  • [ ] 根据PM数据包内容做一些事件 https://github.com/pmmp/PocketMine-MP/tree/stable/src/pocketmine/network/mcpe/protocol
  • [ ] 挖掘进度事件
//可以获取玩家在挖掘时,当前状态下,当前tick下挖掘的进度(亦可用于检测玩家是否处于挖掘状态)
THook(float, "?getDestroyProgress@Player@@QEBAMAEBVBlock@@@Z"
    , Player* player,
    Block* block) {
    double progress = original(player, block);
    std::cout << "progress:" << progress << endl;
    stdcout << "block:" << offBlockgetFullName(block) << endl;
    std::cout << "player:" << player->getNameTag() << endl;
    return original(player, block);
}

yqs112358 avatar Jul 18 '22 12:07 yqs112358