存盘方式的XYJ2024的当铺文件MUD代码(7)

2025-11-03

************************************************************************

以下为当票文件:

// Created by waiwai@2009/01/12 改制用于XYJ /*

典当方式为先收手续费的方式,如果估值后低于1两 黄金,就按一两收取。 */

#include

inherit ITEM; inherit F_SAVE;

// 当品数量最大可以几个 #define CAN_MAX_PAWNS

// 每件当品保留时限

#define PAWNS_LOST_TIME 86400*7

// 最低收费

#define MIN_PAY_MONEY

void restore_waste();

string Middle_name(string name, int raw);

void create() {

set(\set(\set(\张\set(\set(\if (clonep()) { }

set(\set_default_object(__FILE__);

set_name(\当票\set_weight(10); restore_waste();

10000 10

26

}

string query_save_file() { }

void setup() { }

void des_wait() { }

void init() {

/* 必须的环境判断 */

if( this_player()==environment() ) {

add_action(\add_action(\/* 如果不在活物身上就des */

if(!environment()->is_character()) { }

des_wait(); return;

call_out(\::setup();

seteuid(getuid()); restore(); return file;

if(file_size(file)==-1)

assure_file(file);

file=DATA_DIR+\if(!id) return 0;

if(!id) id=query(\id=query(\string id, file;

27

} /*

}

add_action(\call_out(\

需要注意的是类似游戏中单一性的物品,比如法宝,是应该禁止被典当的。 */

int do_pawns(string arg) {

////////////////////////////////////////////////////////

boss=HOCKSHOP_NEW->have_hock_boss(env); if(!boss) return 1; // 禁止冒充BOSS

if(boss->query(\

write(query(\当前法定持牌人不在,无法进行交易。\\n\if(!env->is_hockshop_room())

return notify_fail(\典当你得去当铺。\\n\room_file=base_name(env);

efile=HOCKSHOP_NEW->domain_hock_file(room_file); env=environment(me); if(me->is_busy() )

return notify_fail(\你现在正忙着呢。\\n\me=this_player();

object ob, me, env, boss; int value; mixed no_sell;

mapping *pawns, pawn, dbase; int i, v, tol=0, amount=0; string id, room_file, efile; string name, file; string *sell_msg = ({ });

\破破烂烂,一文不值\\质地低劣,难看之极\\又脏又破,臭气熏天\

28

}

return 1;

name=boss->query(\

////////////////////////////////////////////////////////

/* 这里控制存入即可控制典当的地点 */ if(efile!=\

return notify_fail(\这里尚未开放典当业务。\\n\

if( !arg || !(ob = present(arg, me)) )

return notify_fail(\你要典当什么物品?\\n\

if( ob->query(\return notify_fail(\你要当「钱」?\\n\if( ob->query(\

return notify_fail(name+\说道:冰的东西我们这里没法存放。\\n\

if(ob==this_object())

file=base_name(ob);

if(file->query_amount() && file->query_amount()>1) { }

value = ob->query(\amount=ob->query_amount(); if(amount>0) {

if(value>ob->query(\ }

v=value*10/100;

/* no_sell的未必就不能pawn,这样设置是可以相对灵活 */ // 对于某些你想允许典当的,可以设置为can_pawn if(!ob->query(\

if( !value || value < 10)

return notify_fail(\这\数量不足,恐怕不值钱!message(\┋HOCKSHOP_QC┋Pawn:ROOM(%s),%s\\n\\n\

base_name(this_object()), base_name(ob)), users());

return notify_fail(\系统禁止\这类物品的典当。return notify_fail(name+\说道:将当票典当了,你确实有创意。\\n\

\\n\

\\n\

29

}

return notify_fail(\这样东西不值钱。\\n\

no_sell = ob->query(\if(no_sell) { }

if (stringp(no_sell))

return notify_fail((string)no_sell);

return notify_fail(\这样东西不能典当。\\n\

if(value

v=MIN_PAY_MONEY;

/* 此处两种方式的目的是,在某些时候query是可以被临时set的 */ if(ob->query(\

return notify_fail(ob->name()+\不允许典当。\\n\

if(ob->is_character() || ob->is_corpse() || ob->query_unique() ||

return notify_fail(ob->name()+\不能被典当。\\n\

ob->query(\

pawns = query(\id=getuid(me); i = sizeof(pawns); if(i>0) {

if(!query(\

return notify_fail(name()+\是假货不能使用。\\n\

query(\

if(query(\ }

while (i--) {

if(pawns[i][\seteuid(ROOT_UID);

rm(DATA_DIR+\seteuid(getuid()); des_wait();

write(\你不是这张当票的合法持有人。\\n\return 1;

30


存盘方式的XYJ2024的当铺文件MUD代码(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数字鉴别与身份认证实验

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219