主页| 免费发布天堂1开机信息| 站长qq:1161903

制作连贯性任务不需对话档

来源:2TT天堂发布网 www.2tt.cc    发布时间:2018/10/4 20:39:36    浏览量:989

为了解决自制任务后, 玩家还需要下载对话档, 吃档才能
启用任务, 所以研究出以下方法, 原理也很简单, 看了就明白了
修改的程式C_RequestItemUSe.java
程式码:
//  等级任务 add start 20080617 by mca
} else if (itemId == 640832) {// 新手任务
if (CreateNewItem(pc, 640833, 1)) {// 新手任务说明
pc.getInventory().removeItem(l1iteminstance, 1);
}
} else if (itemId == 640833) {// 新手任务说明
pc.sendPackets(new S_SystemMessage("请至骑士洞1F杀死强化狼人取得强狼皮10个,即可获得新手奖励"));
if (pc.getInventory().checkItem(640834)) {
L1ItemInstance l1iteminstance2 = pc.getInventory()
.findItemId(640834);
int i1 = l1iteminstance2.getCount();
if (i1 >= 10) {// 判断任务所需材料数量是否足够
CreateNewItem(pc, 40308, 100000);// 获得10万金币
CreateNewItem(pc, 600001, 1);// 获得象牙塔斗篷
CreateNewItem(pc, 600002, 1);// 获得象牙塔T恤
CreateNewItem(pc, 40524, 1);// 获得黑色血痕
CreateNewItem(pc, 640852, 1);// 获得52级任务(获得下一级任务启动物品, 这样就可以连贯了)
pc.getInventory().removeItem(l1iteminstance, 1);// 删除任务书
pc.getInventory().removeItem(l1iteminstance2, 10);// 删除材料
} else {i1 = 10 - i1;// 计算还缺几个材料
pc.sendPackets(new S_SystemMessage("所需材料"+l1iteminstance2.getItem().getName()+"不足 "+i1+" 个"));
}
} else {pc.sendPackets(new S_SystemMessage("所需材料强狼皮不足10个"));}
//  等级任务 add end 20080617 by mca


以上是以 Rev1767 为例, itemId 要自行新增喔.
要继续新增任务, 就以此程式段依此类推.
再补充说明一下可能就更明白了,
就是以
pc.sendPackets(new S_SystemMessage("请至骑士洞1F杀死强化狼人取得强狼皮10个,即可获得新手奖励"));

来取代对话档功能, 应该很清楚了吧


if (pc.getInventory().checkItem(640834)) {
L1ItemInstance l1iteminstance2 = pc.getInventory()
.findItemId(640834)
代表什么意思呢?
640834又是代表?
这一段是检查640834(任务说明的物品)存不存在玩家身上, 有的话找到这一笔
640834 是在 etcitem 资料表的物品, 可自行用自己的编号, 不用照我的

意思是指 接受任务之后会给 道具 只要使用道具就可以知道任务内容吗?

如果有任务道具就会获得物品 没有任务道具就会提示 应该是这样子吧@@