[闲聊] 当你携带某个东西时你会常驻某个效果

楼主: laechan (挥泪斩马云)   2018-09-18 11:15:03
我一直在想这东西要怎么写,sanc防具型态很多,所以很多时候
并不需要写这个(比方把这个效果放在特定某个型态的防具即可)
,但有时可能还是会有用到的时候。
晚点我拟几种可行的做法。
第一种是比较懒的做法,用 present 来做,给特殊的 id,然后
搭配 heart_beat 每分钟去呼叫特定函数,然后允许玩家可以最
长 59 秒该物品消失时效果仍常驻,判断的时间一到,发现该玩
家没有该物品,该效果就消失。这时效果用 set_temp 是最直觉
的做法。
也就是说大部份时间是去读玩家的 temp_data,每分钟做的判断
才去做 present。
第二种是将这些物品全部写成虚拟物品,那判断只要一行:
if(user->query_vobjs("xxx")>0)
虚拟物品也具有方便控制玩家不能轻易丢弃、给人、贩卖,但是
比方以受诅咒的某物为例,玩家身上带有该物时 3p 减半,那怎
么设定该效果的常驻?我认为最终还是会回到 set_temp 以及周
期性 check 的设定方式上。
第三种就是以 set_temp 及周期性 check 为出发点,然后再运用
times_check 原本就会周期性呼叫的做法,设定一个这类物品的
主控台,由它去执行对线上所有玩家“当他们持有某些物品时就
做哪些常驻效果”,这样或许会比较好,但是其运作复杂度就会
跟以下的东西成正比:
1.线上玩家数量。
2.有多少种类的物品需执行这样的判断。
[编辑中]

Links booklink

Contact Us: admin [ a t ] ucptt.com