m_hammer.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 195 行
C
195 行
// m_hammer.c
#include <ansi.h>
#include <weapon.h>
//inherit M_WEAPON;
inherit S_WEAPON;
int duanlian(object weapon);
int do_hui(object weapon);
string query_autoload() { return 1 + ""; } //autoload weapon
void init()
{
add_action("do_duanlian","duanlian");
add_action("do_hui","hui");
}
void create()
{
object me;
string w_name,w_id,w_or;
int w_lv;
me = this_player();
//读入数据
w_name=me->query("weapon/name");
w_id = "my "+me->query("weapon/id");
w_or = me->query("weapon/or");
w_lv = me->query("weapon/lv");
if (!me->query("weapon/name"))
{
w_name="自制的钢锤";
}
if (!me->query("weapon/id"))
{
w_id="hammer";
}
if (!me->query("weapon/or"))
{
w_or="千年神木";
}
if (!me->query("weapon/lv"))
{
w_lv=5;
}
if (me->query("weapon/lv",1) > 150)
{
w_lv=150;
}
set_name(w_name, ({w_id}));
set("unit", "柄");
set("value",0);
set("no_put",1);
set("no_get",1);
set("no_drop",1);
set("no_beg",1);
set("no_steal",1);
set("ownmake",1);
set_desc(w_lv,w_or,w_name);
switch(w_or)
{
case "千年神木" :
set_weight(500);
set("material", "iron");
break;
case "海底金母" :
set_weight(1000);
set("material", "steel");
break;
case "寒丝羽竹" :
set_weight(30);
set("material", "bamboo");
break;
default :
}
if( me->query("weapon/wield_msg"))
set("wield_msg", me->query("weapon/wield_msg")+"\n");
else
set("wield_msg", "$N往后腰中一摸,取出了一柄"+w_name+"握在手中。\n");
if( me->query("weapon/unwield_msg"))
set("unwield_msg", me->query("weapon/unwield_msg")+"\n");
else
set("unwield_msg", "$N手中"+w_name+"往腰后一别,眨眼间已然不见影踪。\n");
init_hammer(w_lv * 10);
setup();
}
int do_duanlian(object weapon)
{
object me;
int w_zhi, w_level;
string w_or;
me=this_player();
if( !weapon )
return notify_fail("你要锻炼什么?\n");
if( (int)me->query("max_neili") < 10 )
return notify_fail("你的内力不够,无法锻炼锤气!\n");
if( (int)me->query("max_neili") < 500 )
return notify_fail("你的内力不够,无法锻炼兵器!\n");
if (me->is_fighting())
return notify_fail("你打着呢?\n");
if (me->is_busy())
return notify_fail("你忙着呢?\n");
if (userp(me) && !me->query_skill_mapped("force"))
return notify_fail("你没有内功,在使用中啊!\n");
if( me->query_skill("shenzhao-jing", 1) > 100 )
return notify_fail("神照经的内力,无法锻炼兵器!\n");
if( me->query_skill("shenzhao-jing", 1) > 100
&& (int)me->query("max_neili") < 5000 )
return notify_fail("你的内力不够,无法锻炼兵器!\n");
if( (int)me->query("qi") < 150 )
return notify_fail("你的气不够,无法锻炼锤气!\n");
if( (int)me->query("eff_qi") < 30 )
return notify_fail("你现在的体力太弱,无法锻炼锤气!\n");
if( (int)me->query("eff_jing") < 10 )
return notify_fail("你现在的精力无法集中,不能锻炼锤气!\n");
if( ((int)me->query("potential") - (int)me->query("learned_points"))< 2 )
return notify_fail("你的潜能不够,无法锻炼锤气!\n");
message_vision(HIR "$N手指锤体,一股内力丝丝的传了进去。\n" NOR, me);
me->add("max_neili",-10);
me->set("neili", (int)me->query("max_neili"));
me->add("qi",-150);
me->add("eff_qi",-30);
me->add("jing",-30);
me->add("eff_jing",-30);
me->add("learned_points", 2);
w_zhi = (int)me->query("weapon/value");
w_zhi++;
me->set("weapon/value", w_zhi);
w_or = (string)me->query("weapon/or");
w_level = (int)me->query("weapon/lv");
if( w_zhi >= ((w_level + 1) * (w_level + 1)))
{
w_level++;
me->set("weapon/lv", w_level);
message_vision(HIY "锤身忽的一亮,一道金光隐入$N的锤体,不见了!\n" NOR,me);
message_vision(HIG "$N的锤的等级提高了!\n" NOR, me);
weapon=this_object();
if(weapon->query("equipped") )
weapon->unequip();
reload_object( weapon );
me->set("weapon/value",0);
return 1;
}
message_vision(RED "$N的锤气提升了!\n" NOR, me);
return 1;
}
int do_hui(object weapon)
{
string w_name;
object me,ob;
me=this_player();
w_name=me->query("weapon/name");
if( !weapon )
return notify_fail("你要摧毁什么?\n");
message_vision(HIR "$N大喝一声,一掌擎锤,一掌猛力击下。结果轰隆一声巨响"
+w_name+HIR"裂为两半!\n" NOR,me);
me->set("weapon/make",0);
destruct( this_object() );
me->delete("weapon");
me->save();
return 1;
}
/*void owner_is_killed()
{
write(HIY"只见一声清脆的响声,"+query("name")+HIY"落在地上,断成数截。\n"NOR);
this_object()->unequip();
this_object()->reset_action();
this_object()->set("name", query("name") + "的碎片");
this_object()->set("value", 0);
this_object()->set("weapon_prop", 0);
}*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?