mud_sanc 板


LINE

仓库目前是预定设在各位的天空城之家,所以它的使用前提是 你必须要有天空城之家. 仓库为虚拟型式, 这是避免采用 npc 型式造成 npc 存在太多只。 在大多数 OLG 里头仓库是多人共用的,我有考虑过,不过它们 的仓库大多是「在玩家的物件资料上开栏位来存」,例如.. ppl->set("warehouse",([ ... ])); 圣殿不采这种型式,以免玩家资料档过大。 ======================================================= 仓库的写法很简单,假设指令是 warehouse.. int warehouse_xxx(string str) { string str1,str2; object ob,ppl=this_player(); mapping data,data2; mixed keysw=({}); int t,n; sscanf(str,"-%s %s",str1,str2; if(str1=="put") { if(!ob=present(str2,ppl)) return 0; t=time(); if(query("warehouse/"+t) return 0; 执行一些存入限制判断; data=ob->query_ob_data(); str=base_name(ob); str2=ob->query("short"); data["base_name"]=str; set("warehouse/"+t,data); this_object()->save_room(); 然後这里加重置判断; ob->remove(); return notify_fail("你将 "+str2+" 存进了仓库.\n"); } if(str1=="take") { keysw=keys((mapping)query("warehouse")); n=atoi(str2); if(n<1 || n>sizeof(keysw)) return notify_fail("没有第 "+n+" 样东西喔.\n"); // 依存入的顺序做排列 keysw=sort_array(keysw,"sort_keysw",this_object()); data=query("warehouse/"+keysw[n-1]); ob=clone_object(data["base_name"]); map_delete(data,"base_name"); data2=ob->query_ob_data(); // 然後让 data2 = data data2=data; ob->move(ppl); delete("warehouse/"+keysw[n-1]); ob->save_room(); 然後做一些重置判断; return notify_fail("你从仓库取出了 "+ob->query("short")+".\n"); } if(str=="list") { keysw=keys((mapping)query("warehouse")); keysw=sort_array(keysw,"sort_keysw",this_object()); str2="你仓库里面的东西有:\n"; n=1; foreach(str1 in keysw) { data=query("warehouse/"+str1); str2+=sprintf("%2d. %-s\n",n++,data["short"]); } return notify_fail(str2); } return notify_fail("没有这样的语法喔.\n"); } 仓库的程式不难写, 某些判断写一下就 ok 了, 这篇只是范例 所以写的比较简单, 但大致上就是像上面那样. 上面写法的好处是.. 1.保证 ob 的 data 有哪些资料, 就存进哪些资料. 连任务限定的 ob 理论上都能存. 2.可以跟家的储存功能分开, 例如以 sdata 区隔, 家只能存"没有 sdata 的东西", 而仓库只能存有 sdata 的东西. 3.限制一下可储存的容量即可, 而该容量数值可以存 在玩家的 record_data 区, 就可当做一种奖赏. 基本上在储存的过程中也存在着最佳化的写法. 这个东西预订暑假结束前一定会实装天空城之家, 所以我不打 算让旅馆有仓库功能. Laechan --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 117.19.95.83
1F:→ laechan :实际写好後有权限的 adm 可去 more, 重点的地方我会 07/28 09:30
2F:→ laechan :加注, warehouse 指令的相关函数会在 skyroom.c 的最 07/28 09:31
3F:→ laechan :後几行.各位有其它指令要建议都可以提供. 07/28 09:31
4F:→ laechan :另外目前暂定族徽不可存. 07/28 09:32
5F:→ hlead :话说现在盖天空城之家..应该要付费阿!地很贵的.. 07/28 15:54
6F:→ laechan :所以才盖在天空啊 07/28 19:35
7F:→ laechan :扩充再收钱就好了 07/28 19:35







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

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

TOP