※ 引述《jaykill (jaykill)》之铭言:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.179.206
※ 文章网址: https://www.ptt.cc/bbs/mud_mars/M.1448947862.A.F04.html
推 eplis: 下一版会把七曜石护腕的lock移除 12/01 21:20
→ jaykill: lock这个属性是什么功能啊 12/01 22:00
lock是给 container obj使用的,这边出现应该是以前作者误植
推 ntnjkonti: noremove吧? 12/02 00:23
noremove有自己的叙述喔!看一下目前线上的装备就知道了
推 Jate: 无法复制这个属性看久了其实有点好笑 直接把earth mirror 12/02 00:59
→ Jate: 改成不能复制装备不就好了xD 12/02 00:59
→ Jate: 不然到后来无法复制这条属性几乎都是必备.. 12/02 00:59
其实几百年前就不能复制装备了,后来我做的区域都是顺手加上去
也许未来会有某种帮助 吧
来贴一下src
至于这种code写的程度我就不便多说了orz
void spell_earth_mirror( int sn, int level, CHAR_DATA *ch, void *vo )
{
OBJ_DATA *obj=(OBJ_DATA *)vo, *new_obj;
OBJ_INDEX_DATA *origin=NULL;
int i=0;
switch(ch->in_room->sector_type)
{
case SECT_WATER_SWIM:
case SECT_WATER_NOSWIM:
case SECT_AIR:
case SECT_DIVE:
send_to_char("你所在的地方没有土地!!\n\r", ch);
return;
break;
}
if(!IS_NPC(ch) && ch->mana<(level*5+25))
{
send_to_char("你的法力不够了!\n\r", ch);
gain_skill_exp(ch, sn, -100);
ch->pcdata->skill_sys_exp[SKILL_SYS_EARTH-1]-=get_curr_wis(ch);
return;
}
else
ch->mana-=(level*5+25);
act("你用手在地上画出个圆形, 脑中冥想$p...", ch, obj, NULL, TO_CHAR);
act("$n用手在地上画出个圆形.", ch, obj, NULL, TO_ROOM);
if( IS_SET(obj->extra_flags, ITEM_NOCOPY) || IS_SET(obj->extra_flags,
ITEM_MAGIC) || level<obj->level+50
|| obj->item_type==ITEM_WAND || obj->item_type==ITEM_SCROLL ||
obj->item_type==ITEM_STAFF || obj->item_type==ITEM_PILL
|| obj->item_type==ITEM_HERB || obj->item_type==ITEM_WEAPON ||
obj->item_type==ITEM_TREASURE || obj->item_type== ITEM_ARMOR
|| obj->item_type==ITEM_KEY || obj->item_type==ITEM_MEDICATEBOX)
{
act("$p并没有出现!!", ch, obj, NULL, TO_CHAR);
return;
}else{
origin=obj->pIndexData;
if(origin->affected!=NULL)
{
act("$p并没有出现!!", ch, obj, NULL, TO_CHAR);
return;
}
}
act("忽然地上圆形发出\33[1;33m强光\33[0m, 强光消失后\33[1;36m$p\33[0m出现在
圆形之中!", ch, obj, NULL, TO_CHAR);
act("忽然地上圆形发出\33[1;33m强光\33[0m, 强光消失后\33[1;36m$p\33[0m出现在
圆形之中!", ch, obj, NULL, TO_ROOM);
new_obj=create_object(origin, obj->level);
new_obj->extra_flags=obj->extra_flags;
for(i=0; i<4; i++)
new_obj->value[i]=obj->value[i];
for(i=0; i<6; i++)
if(i==2 && obj->item_type==ITEM_CONTAINER)
new_obj->new_value[i]=0;
else
new_obj->new_value[i]=obj->new_value[i];
obj_to_room(new_obj, ch->in_room);
return;
}