作者amosdeus (幽素)
看板mud_sanc
标题Re: [wizs]问题请教(二十一)
时间Sun Oct 26 17:30:44 2008
※ 引述《laechan (小太保)》之铭言:
: ※ 引述《amosdeus (幽素)》之铭言:
: : 问题一:
: : 我想做的每次使用者攻击都会损失ㄧ定值得血量,
: 可以从使用者每次攻击时会呼叫哪些函数来考量,上面的函数就是
: 其中之一,但是不一定要用那个函数来实现。
: 那个函数我没记错的话是写在防具上的,而 user_d.c 里头有一行
: 就是判断如果玩家有装备「特殊的东西」时就呼叫该东西自定的上
: 述函数 add_damage_percent。
: : 而被攻击者如果是正道德伤害则在加深,
: : 问题是这个函数只有在玩家装备时才使用到,
: : 请问有别的方法做到,每次攻击就判断吗?
: 有,玩家每次攻击时必定会呼叫 user_d.c 的 continue_attack以
: 及 normal_attack 两个函数,一般损血设定有几种...
: 1)ppl->set_temp("损血公定参数",1);
: 即玩家每攻击一次→损血→上面的xx就减一
: 则系统可以写成自行判断该参数的有效次数
: 所以重点在於你是要在什麽时机,让玩家触发这个函数来损血,以
: 及玩家在什麽条件下该触发会停止,以上面2)跟3)的情况我可以配
: 合在 /adm/daemons/user_d.c 里头写相关判断。
: (这跟五毒珠的设计流程相似,先有五毒珠,我再配合五毒珠去修
: 改 /std/user.c 里头的中毒效果相关函数)
: : 这个函数判断是攻击结束外的伤害在额外增加
: : 有在攻击时就增加的吗?
: : 举列:比方使用技能时伤害为五十万这时就加入额外伤害十万
: : 变成伤害为六十万在到 receive_damage 这里做判断。
: : 这个函数有判断 dam 型态不会增加伤害
: : 是否可以加入呢?
: 那上面的公定参数以及它的资料型态(int/string/mixed/mapping)
: 要先定义出来,主要看你要让这个参数定哪几种资料。
: 像毒 poison 就是定了三项资料,你可以仿照,或依自己的需要来
: 设。这个由你来决定,我主要是提供修改建议,并在确认後将其写
: 进系统内,再由你来测试。
: : 或是另设一个参数,做到以上提出的问题?
这里我要做的是当玩家装备该项武器,再战斗中每次攻击便会判断敌方
的道德是否加深伤害以及自身受到该装备的反馈(损伤),直到玩家卸除
该装备为止。
1)ppl->set_temp("损血公定参数",1);则 wiz 要另定该参数如何使其消失.
这个是比叫符合需求,参数的部份为
ppl->set_temp("special_hurt",伤害数值);
伤害数值可自由设定。
攻击函数的部份,这几天做好之後再提出。
: >look
: 小房间
: 这是一个房间。
: 黄色炸药 TNT (TNT)
: (隐形物件)黄色炸药 TNT (TNT)
: 我刚实装了隐形物件,你可以再试试,测试方式是设某个物
: 件的 invis >0,然後开 wiz char 及 ppl char 下 look看
: 看结果。
: (隐形物件只适用於该物品在房间的情况)
: 其它的明天再回。
测试没问题,
感谢!
: 问题三:
: 当程式是在一堆判断里面的时候 shut 伤害如果超过三百五十万,
: 就会出现问题,造成有伤害数字出现然实际上却没损伤,
: 如果程式里面只有
: user->shut(XXXXXXX,dam,hit,({"fire","air",3}),tar);
: 这样一行的攻击时 shut 伤害即使是超过三百五十万也会执行,
: 并实际地扣血,请问能把 shut 攻击程式 copy 给我,让我知道那里写错吗?
: 这个玩家可使用的技能。
: 有实际档案 more 比较能判断你哪边写错。
: 我猜有可能是你的 user or tar 中途消失,或者 dam、hit 中途
: 被改变,因为你是写在一堆程式叙里头的。
目录:/d/slash/burnperfume.c
有问题的部份是 case 15: 第 216 行
这招我想把它做成 dam * 2 但是因为超过攻击直就会爆掉,
所以拆成两招。
: 问题四:
: user->shut(XXXXXX,dam,hit,({"fire","magic",3}),tar);
: 我想写 magic 种类技能无效的 MOB 但是在 mixed shield
: 函数中怎麽设都不行,请问该如何判断?
data plain 里面有的参数为 anti_percent : ([ ])
这个参数不晓得是做啥用的,如果目前还没规划是否可以做成
跟 anti_effect : ([ "all" : 80 ])
参数相同的东西。
举例: set("anti_percent/magic",20); 那魔法类型攻击就有20%的抵抗
set("anti_percent/magic",100); 那麽魔法类型的攻击变无效
只是这有个问题,当玩家使用 shut2 类型的攻击时就会跳过不判断
所以该 MOB 必须增加防 shut2 的判断(这好解决)。
Plain@Sanc
--
咽咽学楚吟 病骨伤幽素 秋姿白发生 木叶啼风雨
灯青兰膏歇 落照飞蛾舞 古壁生凝尘 羇魂梦中语
【 伤心行 李贺 】
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.175.51.49