mud_sanc 板


LINE

底下是我要写的东西,玩家也可以看一下,基本上没玩过幻想之前 我就打算这样子写了,玩了幻想後让我更确定这样子写是 ok 的。 首先,副本一定包括底下几个要素 1.跑副本的封闭区域 2.每一房间的触发设定(init) a.触发生怪(生出物件) b.触发剧情(生出 npc、对话等) c.触发剧情提示 d.可下指令(add_action) e.block 玩家(block_command) 3.怪物死亡设定(物件的 die 函数) a.死亡後生出可对话 npc b.死亡後生出出口 c.死亡後触发剧情 4.times_check 辅助管理该副本 跑副本的封闭区域 我在白瓦镇新增了三个房间,301.c~303.c。平常的 301.c 如下 set("short","副本─黑熊林径"); set("long",@LONG 一条在白瓦镇附近出没的黑熊所经常行走的林间小径,小径大致 笔直从外头通往森林深处,浓密的林荫使得这里即便是白天也非 常阴暗荒凉。 LONG ); 但是 update -n 301-303 再 goto 到 301 後则会看到底下.. [/u/l/laechan/area/whitetile/room/301#123386 ] 副本─黑熊林径 一条在白瓦镇附近出没的黑熊所经常行走的林间小径,小径大致 笔直从外头通往森林深处,浓密的林荫使得这里即便是白天也非 常阴暗荒凉。 明显出口有: north. 然後往 n 走会看到 302#123387、303#123388。 上面的意思就是,301.c~303.c 是该副本的「底」,而玩家实际 上在副本里体验的区域是其「副本(clone)」。 ┌ clone 出一份「副本」给 A 玩家 底 301.c~303.c ─┼ clone 出一份「副本」给 B 玩家 ├ clone 出一份「副本」给 C 玩家 ├ ...... 这样同一时间就算有 n 个玩家在跑这个副本,都可以用这个实 体物件为底去 clone 出 n 份副本区域出来。 每一房间的触发设定 首先房间一定会有 init 函数,玩家进入该房间就触发该 init ,而副本里面会遇到的事情大多是几个固定的模式在跑而已,因 此就存在了将这些东西写成脚本的可能。 a.触发生怪(生出物件) clone_object b.触发剧情(生出 npc、对话等) call_out("run_message") c.可下指令(add_action) add_action d.block 玩家(block_command) ppl->set("block_command") ppl->set("block_command_msg") 其 init 函数就类似如下 // 这只是例子 int init() { string files=base_name(this_object()); object ppl=this_player(); // 一般房间时 if(!instance[files]) return 1; // 有 add_action 时 if(instance[files]["add_action"]) add_action("do_action",instance[files]["add_action"]); // 有定身设定时 if(instance[files]["block_command"]) { ppl->set("block_command",instance[files]["block_command"]); ppl->set("block_command_msg",instance[files]["block_command_msg"]); } . . return 1; } 怪物死亡设定 正确的说应该是物件消灭设定,虽然副本大多以打死最後一只 boss 为目的,但有时不一定是「打死」什麽而是「破坏」什麽,因此用 「物件的消灭」来形容会比较好,而最简易的做法就是让物件为怪 物形式,这样就可以统一使用 die 函数来做。 a.死亡後生出可对话 npc 让房间呼叫 set_npcs b.死亡後生出出口 让房间 set("exits/out") c.死亡後触发剧情 让房间呼叫 end_plot() 函数 times_check 辅助管理该副本 副本进行中实际上很多东西是依 call_out 去跑的,通常我不会限 制玩家解完副本的时间(幻想也是没做限制),但 times_check 会周 期性判断玩家是否解完副本、或因故消失在副本区域内,判断到的 时候它就会执行消灭该副本区域的动作,以免其继续占用记忆体空 间。 副本的脚本档,以及副本的管理系统,会依照该概要去撰写,实际 上写出来的东西比上面所提的都要复杂很多,但想法是共通的。 Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:→ AresMars :我的疑问是 复制出来的副本需要存档管理吗? 10/01 11:14
2F:→ AresMars :如果副本结束 复制出来的东西就消失 要如何追踪管理? 10/01 11:15
管理的意思是?通常资料是存在玩家身上或是有地方专门存资料, 例如判断玩家是否解过某一任务,就是储存在其它地方。 以幻想为例每 n 小时可解一次单人副本,这类的纪录通常是储存 在管理系统里头。 ※ 编辑: laechan 来自: 210.61.157.53 (10/01 11:42)
3F:→ justinj :怕装不见?.应该不会..副本记录?.这个更好处理.. 10/01 12:12
4F:→ laechan :现在唯一有疑虑的是因为玩家是在clone出来的空间,有 10/01 12:47
5F:→ laechan :可能房间会被系统清掉 10/01 12:47
6F:推 AresMars :就…比较像玩家是否使用副本内bug 还是当有争议时 10/01 14:25
7F:→ AresMars :系统有计录玩家何时开副本,杀了多少怪,拿了多少装 10/01 14:25
这些可透过呼叫外部管理程式去做纪录及储存。 你可以将「农场」想成是副本的一种,玩家其实都是身在农场的 「clone 副本」里头,有多少人同时种田,就有多少个 clone。 不过你提到副本的纪录这个倒不错,我并不很重视这个所以我并 没有想到这些。 ※ 编辑: laechan 来自: 210.61.157.53 (10/01 15:02)
8F:推 AresMars :就我现在上课学的东西教我什麽东西都要Documentation 10/01 16:07
9F:推 luna730715 :步错欸 10/02 19:58







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灯, 水草

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

TOP