mud_sanc 板


LINE

经过一晚的思考,大致决定采取底下的定义方式(参考区域产生器): // 菲里德古堡 #define MOBS ({\ ({"mob1",81,({"vampire-bite flower","flower"}),RED"吸血"HIM"噬人花"NOR,\ -2000,500,5,({})}),\ ({"mob2",83,({"tour-magic cat","cat"}),HIY"巡曳"HIB"魔法猫"NOR,\ -1500,500,5,({})}),\ ({"mob3",84,({"nail-bone soldier","soldier"}),RED"钉"NOR"钯"HIP"骸骨兵"NOR,\ -2500,500,5,({})}),\ ({"mob4",135,({"shadow knight","knight"}),HIP"黑"NOR+MAG"影"HIP"骑士"NOR,\ -5500,500,0,({})}),\ }) 使用 mixed 宣告可有效缩短每一行的设定值宣告量,然後战役怪物 至少要有 war_mob 及 war_gmob 两种型态,write_file mob file 时则应尽量单纯: inherit 战役怪物继承档; void create() { 参数设定区; } 应该要这样就好,剩下全部都 follow 继承档的设定,这样才能减少 日後得修改已产生的怪物档的情况,同时又具备较大的扩充弹性。 然後另外再让战役系统支援「虚拟怪物的生成」,做法是采取第二种 宣告方式(区别 MOBS_DATA) #define VIRTUAL_MOBS ({\ ({"war_mob",81,({"vampire-bite flower","flower"}),RED"吸血"HIM"噬人花"NOR,\ -2000,500,5,({})}),\ ({"war_gmob",83,({"tour-magic cat","cat"}),HIY"巡曳"HIB"魔法猫"NOR,\ -1500,500,5,({})}),\ }) 栏位1: 呼叫哪一个 mob sample 物件出来 栏位2: 等级 栏位3: id 栏位4: 中文名 栏位5: 道德值 栏位6: 金钱值 栏位7: 只数 栏位8: 其它设定值 说到栏位,通常打死战役怪物应该要给战功,就会有战功设定值, 它有两种做法: 1.设在最後栏位的 ({ }) 内,例如 ({"warexp",10}) 2.设在最後栏位之前,例如栏位九 应该会采 2 的做法,因为战役怪物通常都会有战功,设在 ({})之 前的那个值就是战功,这部份也很直觉。 然後 MOBS 与 VIRTUAL_MOBS 在战功设定上的差异,就在於前者的 战功设定值是写进档案内的,後者则是 clone 出来才设定的。 其它差异部份,因为所有 VIRTUAL_MOBS 都是呼叫自同一个怪物物 件档案,为了设定上的方便,可能就不会去做 set_verbs 这类的设 定,但 wiz 仍可依需要自行将这些写在上述的呼叫档里。 最後,我通常不会允许战役怪物可以走动,但是,可以允许被搬移 ,这会导引出一个新函数 war_mob_move 的产生,它的语法大概是 varargs int war_mob_move(string 地点1,string 地点2,string 出口方向); 例如说,某战役是某军派了四组人马分别放置在呈直线的ABCD四个 点,然後 第一循环时间: B的怪→A,C的怪→B,D的怪→C D没怪了 第二循环时间: B的怪→A,C的怪→B, CD没怪了 第三循环时间: B的怪→A BCD没怪了 有给出口方向时额外显示「怪物往哪个出口前进」的相关讯息。 函数实际内容则是对 present("特定id",地点1) 做 loop check, 有找到才做搬移到地点2 的动作(不管是不是在战斗中)。 最後,因为 sanc 有地图炮技能,这些技能是否支援清掉战役怪物 ,做法有几种: 1.比方城镇内不能施放地图炮 -> 然後战役怪物都是生成於城镇内 (实务上不可能所有战役都发生在城镇内,城镇范围也很难界定) 2.地图炮对战役怪物无用 -> 战役怪物都会带特殊 id 及参数 3.缩减地图炮对战役怪物的影响 -> 同上 应该会采取 3 的做法,我的想法是,既然给了玩家地图炮技能, 就应该让玩家用(当然不能用的地方还是不行,这一开始就有讲, 例如副本内),这部份我承认有受到素晴这部动画的影响。缩减影 响的部份,目前则只想到「群式怪物就减个几只,战功先给」这种 做法,这部份若以 ragnarok 这技能来看: if(p>random(100)) { tell_room(environment(ob),ob->query("short")+HIR"被"+SPELL_DATA[z][1]+ "瞬杀了!!"NOR"\n"); ob->die(); } else if(ob->query("hp")<s2) { tell_room(environment(ob),ob->query("short")+HIR"被"+SPELL_DATA[z][1]+ "瞬杀了!!"NOR"\n"); ob->die(); } else ppl->shut(SPELL_DATA[z][1],s2,9999,"dam",ob); (其实 ragnarok 就已经有做缩减效果判断) 战役怪物的缩减效果的判断应该会写在第一个 if 之後,也就是 else if(ob 是战役怪物) { 跑独立的判断式; } else if(然後才是原本的其它判断) { . . 其它像造物者之钥也会被限制,不能对「战役怪物所在的房间」 使用,它的前提当然是怪物不能随便乱走。 设定稿大致在这里结束。 Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.224.170.115
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1486693366.A.98C.html
1F:→ laechan : 今天太冷 02/10 11:08
※ 编辑: laechan (61.224.170.115), 02/10/2017 16:53:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP