北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 6235|回复: 6

请教如何在存入物品中,加一个指定物品不能存

[复制链接]
发表于 2013-4-26 01:37:00 | 显示全部楼层 |阅读模式
本帖最后由 rxoo 于 2013-4-25 05:39 PM 编辑

//存入物品
                case 1 :
                        item = present(id,me);
                        if(!item)
                        {
                                tell_object(me,"你身上没有这件物品。\n");
                                return 1;
                        }
                        else
                        {
                                //以下类型不给予存放
                               /* if( !item->query("dt_weapon") && !item->query("dt_armor") ) //动态物品
                                 {
                                                tell_object(me,"抱歉,这里不允许存放"+item->name()+"。\n");
                                                return 1;

                                } else*/ if( item->query("vip_gold") ||
                                                item->query("vip_weapon") ||  //VIP武器不给保存
                                                !item->query("xyzx_save_item") ||   //不是动态物品
                                                item->query("backold_weapon_prop") ||   //断掉的兵器
                                                item->query("backold_armor_prop") ||   //烧破的衣服
                                                item->query("long_bei") ||   
                                                item->query("long_beia") ||   
                                                userp(item))
                                        {
                                                tell_object(me,"抱歉,这里不允许存放"+item->name()+"。\n");
                                                return 1;
                                        }
-----------------------------------------------------------------------------------------------------------------------------------
例如:想要在以上代码中加入,   青龙圣盔  qinglong shengkui     这个装备不能存入

还请大师们帮我写一下 这个代码

再次感谢!

还有个问题就是   item->query("vip_weapon") ||  //VIP武器不给保存   这个没用 VIP武器 还是能保存到里面


MUD 版本是 龙云梦的  动态地图 装备 版



北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-4-26 02:36:31 | 显示全部楼层
最简单的办法if item->query("name")=="青龙圣盔" return;
但是可能有些同名的东西就给过滤了。
最好的办法 在你不能存的装备里加一段函数比如
int no_save() {return 1;}
在存盘文件里 if item->no_save() return;
这样是最保险的做法,比id或者mark判断准确一点
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-4-26 12:04:02 | 显示全部楼层
本帖最后由 rxoo 于 2013-4-26 07:15 AM 编辑

-----------------------------------------------------------------------------------------------------------------------------------
装备里加int no_save() {return 1;}      存盘文件里 if item->no_save() return;


应该加在哪个地方,怎么写啊 ?


还望指导,我对这个真是不太会。


万分感谢!!!!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-4-26 12:09:04 | 显示全部楼层
存的文件中:code部分
//以下类型不给予存放
                               /* if( !item->query("dt_weapon") && !item->query("dt_armor") ) //动态物品
                                 {
                                                tell_object(me,"抱歉,这里不允许存放"+item->name()+"。\n");
                                                return 1;

                                } else*/ if( item->query("vip_gold") ||
                                                item->query("vip_weapon") ||  //VIP武器不给保存
                                                !item->query("xyzx_save_item") ||   //不是动态物品
                                                item->query("backold_weapon_prop") ||   //断掉的兵器
                                                item->query("backold_armor_prop") ||   //烧破的衣服
                                                item->query("long_bei") ||   
                                                item->query("long_beia") ||   
                                                userp(item))
改成

//以下类型不给予存放
                               /* if( !item->query("dt_weapon") && !item->query("dt_armor") ) //动态物品
                                 {
                                                tell_object(me,"抱歉,这里不允许存放"+item->name()+"。\n");
                                                return 1;

                                } else*/ if( item->query("vip_gold") ||
                                                item->query("vip_weapon") ||  //VIP武器不给保存
                                                !item->query("xyzx_save_item") ||   //不是动态物品
                                                item->query("backold_weapon_prop") ||   //断掉的兵器
                                                item->query("backold_armor_prop") ||   //烧破的衣服
                                                item->query("long_bei") ||   
                                                item->query("long_beia") ||   
                                                userp(item)||
                                                item->no_save())

装备int no_save() {return 1;}  放最后
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-4-26 12:10:02 | 显示全部楼层
太谢谢你了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-16 09:24:21 | 显示全部楼层
userp(item)||
这个判断是什么意思呢?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-6-18 12:33:10 | 显示全部楼层
userp(item)||
这个判断是什么意思呢?
hdo 发表于 2013-6-16 09:24 AM



    userp(3)                MudOS v21c2                (5 Sep 1994)

        名称:
                userp() - 判断指定的物件是否曾为可互动 (interactive).
        语法:
                int userp( object );

                整数 userp( 物件 );
        用法:
                如果 arg  曾是可互动物件, 则传回 1.
        参考:
                interactive(3), users(3), living(3)
        翻译:
                Spock @ FF        97.jul.25.                (printed 3/16/95)


简单的说,就是判定该物件是不是玩家。如果是玩家,存储的时候可能出错。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-27 10:17 PM , Processed in 0.010957 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表