|
|
原作者:BAN L2 JENGINE 翻译及重新整理 By 杀气丶
很多人会在网上找到有用的代码,但到了自己的项目里就卡住了。有时候代码是针对 acis 写的,你却用 DreamV2,或者反过来。好消息是:你可以自己改!只要搞懂结构变化就行。
1️⃣ 包的差异(Imports)
| 分支 | 包/基础示例 | | aCis | net.sf.l2j.gameserver... | | DreamV2 | com.dream.game... | | l2jmobius | org.l2jmobius.gameserver... |
🔧 解决方法:
复制代码后,检查并更新类顶部的 import,使其与你项目的包路径一致。
📌 示例:
- // 原始代码(aCis)
- import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
- // 适配到 DreamV2:
- import com.dream.game.model.actor.instance.L2PcInstance;
复制代码
2️⃣ 改名了的类
不同的分支对同一概念使用了不同的类名。
| 概念 | aCis 旧版 | aCis 新版 | DreamV2 | | 玩家 | L2PcInstance | Player | L2PcInstance | | 背包物品 | L2ItemInstance | ItemInstance | ItemInstance | | 物品基类 | L2Item | Item | Item |
📌 提示:
粘贴代码后如果出现“Cannot resolve symbol Player”之类的错误,试着换成 L2PcInstance 或你所用分支对应的名称。
3️⃣ 手动替换
- 确定你项目中使用的类名:
- 按住 Ctrl 点击某个类,查看它的完整路径和名称。
- 调整粘贴过来的代码中的类名和 import。
- 必要时调整方法调用(有些分支改了方法签名)。
✅ 适配示例
针对 aCis 的代码:
- import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
- public void teleportPlayer(L2PcInstance player)
- {
- player.teleToLocation(150000, 46700, -3410);
- }
复制代码
适配到 DreamV2:
- import com.dream.game.model.actor.instance.L2PcInstance;
- public void teleportPlayer(L2PcInstance player)
- {
- player.teleToLocation(150000, 46700, -3410);
- }
复制代码
🛠 额外工具
- 你可以使用编辑器的“查找与替换”功能(如 IntelliJ 或 Eclipse),一次性批量替换多个包名。
- 在IDE中自动导入切换,只需按下Ctrl+Shift+O,它会自动修复
|
|