rxoo 发表于 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 版本是 龙云梦的动态地图 装备 版



zine 发表于 2013-4-26 02:36:31

最简单的办法if item->query("name")=="青龙圣盔" return;
但是可能有些同名的东西就给过滤了。
最好的办法 在你不能存的装备里加一段函数比如
int no_save() {return 1;}
在存盘文件里 if item->no_save() return;
这样是最保险的做法,比id或者mark判断准确一点

rxoo 发表于 2013-4-26 12:04:02

本帖最后由 rxoo 于 2013-4-26 07:15 AM 编辑

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


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


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


万分感谢!!!!

zine 发表于 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;}放最后

rxoo 发表于 2013-4-26 12:10:02

太谢谢你了

hdo 发表于 2013-6-16 09:24:21

userp(item)||
这个判断是什么意思呢?

zues 发表于 2013-6-18 12:33:10

userp(item)||
这个判断是什么意思呢?
hdo 发表于 2013-6-16 09:24 AM http://pkuxkx.net/forum/images/common/back.gif


    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)


简单的说,就是判定该物件是不是玩家。如果是玩家,存储的时候可能出错。
页: [1]
查看完整版本: 请教如何在存入物品中,加一个指定物品不能存