赞 | 14 |
VIP | 0 |
好人卡 | 4 |
积分 | 24 |
经验 | 30333 |
最后登录 | 2024-3-12 |
在线时间 | 912 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2392
- 在线时间
- 912 小时
- 注册时间
- 2014-10-14
- 帖子
- 1331

|
本帖最后由 j296196585 于 2017-6-17 13:56 编辑
https://rpg.blue/forum.php?mod=viewthread&tid=377754
道友 看这个 完全没问题
作者原话
接下来是重点:杀敌数。
首先是思路:老规矩,杀敌数其实也属于队伍这个类记录的东西,因为在VA里,战斗是2个队伍之间的事情,我方队伍和敌方队伍。同时,在任务系统里,可能不同的2个任务都需要杀同1个怪,或者1个任务杀多种怪,而且有可能任务1我们做到一半了然后去接的任务2,所以,我们要分开记录不同任务里要杀的不同的怪。先分析一下,我们需要区分的东西:任务号,杀怪id,需要杀的数量,以及当前已杀的数量,大家可以自行思考下该如何表达这4个元素,要方便寻找,又要方便更新。
我的做法是,使用哈希表,因为哈希表的结构是{A => B},我可以将任务号+下划线+杀怪id来做成A,[杀怪id,已杀数量]来做成B(我的做法不是最好的,这样设定只是为了杀怪时方便对比,大家可以想想怎样设定更好),这样,在接取到需要杀怪的任务时,就向哈希表添加一个"qid_eid"=>[eid,0],然后在战斗胜利时,遍历eid,如果有要杀的怪,[eid,0]后面就增加相应数量,当某个任务要杀的某个怪物[eid,xx]中xx>=任务设定的数量时,代表杀够了。
那么,现在问题来了(挖掘机技术哪家强 ),我们如何在战斗胜利时记录杀怪?我们回想一下,战斗胜利要结算什么?结算物品掉落,那我们能不能把杀怪数也在那一起结算?可以。为什么要放在物品掉落那里计算?因为物品掉落在战斗过程中只结算一次(你也不希望杀1个怪算多次击杀数吧)。 |
评分
-
查看全部评分
|