mud_sanc 板


LINE

※ 引述《justinj (黑旋风)》之铭言: : 下午的时候..我做了一个ob->remove()的动作(应该有毁掉不该毁的东西) : 部分玩家被迫quit.. : 请有遗失装备的找我补发(目前我只试opb的补发完...) 备份档在 /data/std/user.bak,为 324 早上的装备资料。 我大致说一下做法,你可以实做,但是要尽量先以自己没什麽用途的 角色(有备份档,所以角色档坏掉也没关系)来实验。 首先最简单的做法,就是请玩家先到你的 workroom,然後你用 clean 指令清掉他的装备,然後你的 workroom 再写一个函数,载入玩家的 装备,比方.. mapping auto_load; int reload_ppl_data(string names) { mixed tmps=({}),tmps2=({}); string tmp,tmp1,tmp2; object ppl,ob; int tt; auto_load=([]); if(!ppl=find_player(names)) { write(names+" 不在线上喔.\n"); return 1; } if(file_exists("/data/std/user.bak/"+names[0..0]+"/"+names+".o")) restore_object("/data/std/user.bak/"+names[0..0]+"/"+names); return 1; } 这时 auto_load 的资料就长得类似底下 > call here;reload_ppl_data;"hmml5" auto_load=([ "/d/ppl/wide/virtue/eq/mikof#226" :([ "names" : "hmml5" ]), "/d/ppl/ina/moon/eq/soul1#195" : ([ "names" : "hmml5" ]), "/d/ppl/wide/virtue/eq/an-trail#214" : 0, . . ]) 也就是说主 key 是 file_name (不是 base_name),其所带的资料一 样是 mapping 资料,其子 key 就是额外设定资料,所以 restore後 接着就这样写 tmps=keys(auto_load); foreach(tmp in tmps) { sscanf(tmp,"%s#%s",tmp1,tt); if(!file_exists(tmp1+".c")) continue; ob=clone_object(tmp1); if(auto_load[tmp1]) { tmps2=keys(auto_load[tmp1]); foreach(tmp2 in tmps2) ob->set(tmp2,auto_load[tmp1][tmp2]); } ob->move(this_object()); } 则底下就是执行结果 > l [/u/l/laechan/workroom ] @@query_short 灰暗的天空下起了一阵的毛毛细雨,大地是朦朦胧胧的一片. 明显出口有: 无 净罪の神枪─梅基德‧蒂雅(Sacer Lancea ad Abstergere: Megiddo Tear) 撒旦内裤(Satan Underwear) 部落勳章(Medallion of the Horde) 两颗神之水晶球(God Crystal Ball) ∮传送卷轴∮(Transport Scroll) 五行之灵(spirit of five elements) . . 再请玩家 get all 即可。处理完一个玩家的装备问题後就 update here, 再抓下一位过来。当然你也不一定要用 call,比方用 add_action 写成指 令亦可,或是设定一些过滤条件、显示资讯等,很弹性。 那比较复杂的做法就是更动 /data/std/user 下的资料,直接以 user.bak 的 auto_load 资料,替换 user 的 auto_load 资料,它的风险就是有可 能写错档案、资料漏写等等。 这个我一般是在工作站下以 vi 的方法做,所以如果受影响的玩家不多, 我大多采取这种做法,要复原装备的玩家需 quit 直到我做完为止,平均 处理一位玩家约 20 秒,处理顺手後 10~15 秒。 Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53
1F:→ laechan :你可以试做, 我想就算不看 code 也可以自写出自用的 03/25 09:50
2F:推 justinj :最近有一个工作本来以为很好处理..没想到bug太多..这 03/25 13:02
3F:→ justinj :个回复我只能暂时停下来了.. 03/25 13:02
4F:→ laechan :那没关系,若有玩家需要回复装备就回这篇文列 id 03/25 13:13
5F:推 justinj :原先我已经先将hmml~9系列的补了...其它的人有缺的要 03/25 16:56
6F:→ justinj :说.. 03/25 16:56







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

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

TOP