mud_sanc 板


LINE

拍谢,最近计划比较多,实作比较少,12 号之前我会尽量把 一些东西都实装。 ===================================================== 首先会做的,是设定资料 mapping 格式。 mapping objs = ([ "potion_01" : 数量, ... ]); list 时... 生命药水 : 10 .... 因此必须有个 "potion_01" -> "生命药水" 的函数与储存资 料.. /d/obj/data.c ================================================== mapping data = ([ "potion_01" : "/d/obj/potion/01", ... ]); mapping get_obj_data(string key_name) { object obj=find_object_or_load(data[key_name]); return obj->query_ob_data(); } 问题就在於,当 potion_01 後面接的档名变更时,因为储存 在玩家身上的 key_name 是 potion_01,这将造成可能之前玩 家是拥有 生命药水 10 瓶 ,却变成拥有 巨大生命药水 10 瓶的情况。 因此还需要一个东西... #define OBJ_DATA_CHANGE_TIMES 1 // 代表改变次数 mapping obj_key_name_change = ([ "potion_01" : "potion_02", // 代表旧的 potion_01 要变成 potion_02 ]); int check_key_name_change(object me) { if(me->query("record_data/obj_data_change_times")<OBJ_DATA_CHANGE_TIMES) { me->set(record_data/obj_data_change_times",OBJ_DATA_CHANGE_TIMES); // 底下开始执行变更 } 这样就可以维持资料的更新。 ================================================================= 以下是重点... 一、每一个虚拟物件,都会指向一个实体物件。该实体物件不是存在於   玩家身上,而是要读取资料时才会去 find_object_or_load 出来.   实际上被储存的资料是 ([ key_name : 数量 , ... ]) 二、虚拟物品分为两种   1)可使用的。例如 potion。 2)不可使用的。例如打怪掉的一般收集品。   需要有「观看虚拟物品专用指令」(可能是 obj or i)、「虚拟物品   专卖店」(会写成可继承型式)、「虚拟物品使用指令」(可能会写在   obj 指令中或者 useobj 指令)。 三、虚拟物品的数量变更,必须有专门的函数处理。 四、必须为虚拟物品做分类,并撰写物件。 可以先做的是四。 我举例,假设以後推出固定补充底下效果的药水... 小型生命药水  : 基本10%+con影响 中型生命药水  : 基本25%+con影响 大型生命药水  : 基本40%+con影响 在 con 影响下即使你不买大型生命药水,你也可能可以只喝中型药水 ,就达到「逼近甚至超过 40% 补充值」的效果。 (当然这时你喝大型的就补越多) /d/obj/potion/potion_02.c ====================================================== inherit ROOM; void create() { set("short","中型生命药水"); set("long",@LONG 可以补充较多生命力的药水,可补充40%的生命力。 LONG ); set("value",5000); } string useobj_func(object ppl) { int hp=ppl->query("hp_src"); if((int)ppl->query("hp")>=hp) return "你现在没有受伤, 不用喝喔.\n"; hp=(hp*40)/100 + con; ppl->add_3p("hp",hp,hp); return "ok"; } 在判断时... check_str=obj->useobj_func(ppl); if(check_str!="ok") return notify_fail(check_str); Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.225.187.195







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

请输入看板名称,例如:Boy-Girl站内搜寻

TOP