mud_sanc 板


LINE

任务系统大致写到今天结束,有空我会补范例区域进去。今 天晚上还有一点时间则用来清理冗余的 simul_efun,清完後 我要新增 quest 相关的全域函数,预定只新增一个,用这个 来做所有的事情。 星期三起则要写新的东西,有空时则会继续补完道具那篇, 以及撰写零星的对话任务,用於... 1. learn skill from npc <= 以後你要 learn 就得先解任务 2. l mirror <= 你要先跟次元镜管理人做朋友 3. join 公会 <= 公会老大:喂, 你以为我们什麽杂鱼都收吗 4. buy xx from 商店 <= 商店老板:喂, 等等, 先报上名来 5. 进八卦, 血肉, ... <= 你以为说进就进喔 这些任务完全不需要玩家写,当然玩家愿意主动写我们很欢迎 ,若是我写,一开始都很简单啦就是找些 npc 对话一下而已。 等以後有空再一个一个慢慢改复杂即可。 一、指令 quest 新增 quest check 脚本档名 语法 假设 l003 的 step1_msg 我改成如下 stpe1_mgs $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $N: 那给我钱啊我买来给你 $M: .......## $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $M: 喂~别装死啊!## 标红色的部份就是脚本常错之处,包括参数名错误、## 误加等。 > quest check l003 ============================================= step1_npc=/d/map/lodoos/mob/vendor## stpe1_mgs $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $N: 那给我钱啊我买来给你 $M: ....... ============================================= 没有发现应存在的 = 号喔. 它会先抓出你有没有漏加了 = 号,修正後.. > quest check l003 ============================================= step1_npc=/d/map/lodoos/mob/vendor## stpe1_mgs= $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $N: 那给我钱啊我买来给你 $M: ....... ============================================= 这一段发现有问题喔. 你就会发现 stpe1_mgs 拼错了。修正後 > quest check l003 ============================================= step1_msg= $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $N: 那给我钱啊我买来给你 $M: .......## $M: 我好想喝乌龙茶(Oolong)啊啊啊~~~ $M: 喂~别装死啊! ============================================= 没有发现应存在的 = 号喔. 没有等号同时也是可能漏加了参数的意思,如上,当 它看到 ## 时底下应该要设参数,却没设,所以这里 的判断就是「实际上你多加了 ## 才造成它的误判」 把多出来的 ## 去掉後 > quest check l003 quest check: 脚本 l003 确认完毕,没有发现问题. > quest read l003 quest read: 脚本 l003 更新及载入了. 有时会发生脚本有写错、但实际上却可被 read 成功 的情况,然後在实际测试时才发现问题,以後 wiz便 可使用 check 做事先的检查,特别是脚本档庞大的情 况,check 就是一个很好的事前检查工具。 二、任务脚本新增 others 参数 用法很简单,在脚本的最底下类似这样子写.. others= int test_1() { write("test.\n"); return 1; }## 则当该脚本被 read 时,others 所接的东西就会一 字不变地写进物件档中,如下.. int test_1() { write("test.\n"); return 1; } 这是方便 wiz 在写脚本档时顺便新增自己所需要的 函数用的。如果该函数只做为该脚本任务使用,就 以 others 的方式添增;如果该函数你觉得应该让 全部的脚本都可以呼叫,就写进 quest_d.c。 (当然实际上我不希望你经常去动 quest_d.c) 使用这个参数唯一要注意的当然是不要让它宣告的 函数或全域变数,与已存在的宣告重覆。 三、任务脚本实装 timeX_msg、timeX_end 参数 简单的说 timeX 的 X 指的就是「第几次完成任务 」的意思,例如说 vendor 的 oolong 任务.. steps=4## step4_end= give_obj(ppl,"/d/ppl/norr/special_obj/suicide_potion",1)## time2_end= give_obj(ppl,"/d/ppl/norr/special_obj/volcano_potion",1)## 上面的意思就是,一般的情况下,当你解完第 4 步骤後, 会得到 suicide_potion,但是当你第 2 次解完第 4 步骤 时,它就不会去呼叫 step4_end, 而改呼叫 time2_end, 意思就是「既然你是解完第 2 次我就呼叫 time2_end」的 意思。 这时得到的就不是 suicide_potion 而是 volcano_potion 而如果你还有加设 time2_msg,那麽 step4_msg 就会被 time2_msg 取代。 简单的说,实装这两个参数的用意,就是为了设定,当玩家 解了该任务到特定次数时,就给予不同的报酬。 至於 timeX_check,因为它有问题(主要是判断),最好别用 ,因为 stepX_check 遇到 timeX_check 会被无效化,造成 每一步骤的 check 都会是 timeX_check(这我当初没想到)。 四、 --



※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 115.80.77.46 (10/11 14:52)
1F:推 justinj :用step4_endX...代表第n次解完後就换它了...amem 10/12 08:48
这也是可以,不过太迟了。(不想再动程式码了) ※ 编辑: laechan 来自: 115.80.122.112 (10/12 09:18)







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

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

TOP