文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/index.php)
-   『 梁山论剑 』 (http://www.aolai.org/forums/forumdisplay.php?f=3)
-   -   请教个xyj2000的问题 (http://www.aolai.org/forums/showthread.php?t=12999)

ldj20030529 2007-09-10 23:54

请教个xyj2000的问题
 
判师惩罚掉特殊skills,如moon的snowsword,只要enable 还在,可以fight yu tu升级,可是像xs的ningxie-force,moon的法术等等,怎么才能偷出来啊? :em01:

lyricshi 2007-09-11 10:10

回复: 请教个xyj2000的问题
 
带不出来吧
:em14: :em14: :em14: :em14:

ldj20030529 2007-09-11 12:06

回复: 请教个xyj2000的问题
 
我有试过用quests:
建新人,bai xs,学了spells,dengxian-dafa,force,ningxie-

force,bainiao-jian,判出xs后只留了dengxian-

dafa,force,bainiao-jian三样,enable 可以看到ningxie-

force.
连续做了576个quest,没给过ningxie-force.其它skill都给过多

次!!
这个方法倒底行不行啊??

lyricshi 2007-09-11 12:41

回复: 请教个xyj2000的问题
 
详情请参见原码
:em03: :em03:

lyricshi 2007-09-11 12:45

回复: 请教个xyj2000的问题
 
chaofeng需要激发ningxie-force吗?
还是只要有这个技能就能用?

ldj20030529 2007-09-11 15:17

回复: 请教个xyj2000的问题
 
要激发的.原码看不懂

// by snowcat

inherit NPC;

#include <reporting.h>

void do_improve(object who, string name, int points, int level);

void create()
{
set_name("杜如晦", ({ "du ruhui", "du", "ruhui", "da chen" }));
set("title", "大臣");
set("gender", "男性");
set("age", 60);
set("per", 30);
set("combat_exp", 300000);
set_skill("force", 80);
set_skill("spells", 80);
set_skill("unarmed", 80);
set_skill("dodge", 80);
set_skill("parry", 80);
set("gin", 3000);
set("max_gin", 3000);
set("kee", 3000);
set("max_kee", 3000);
set("sen", 3000);
set("max_sen", 3000);
set("force", 1000);
set("max_force", 1000);
set("mana", 1000);
set("max_mana", 1000);
set("force_factor", 80);
setup();
carry_object("/d/obj/cloth/jinpao")->wear();
}

void reward (object who)
{
object me = this_object ();
int points = who->query_temp("quest/reward_point");
mapping skills = who->query_skills();
string *names;
string name;
string channel = "sldh";
string *channels = who->query("channels");
int level;

if ( !pointerp(channels) || !sizeof(channels) )
channels = ({ channel });
else if (member_array(channel, channels) == -1)
channels += ({ channel });

who->set("channels",channels);

if (sizeof(skills) == 0) {
name = "force";
level = 2;
} else {
names = keys(skills);
name = names[random(sizeof(names))];
level =skills[name]+1;
}

points = points * (who->query("kar")/2+1);
message_vision ("$N对$n一拜:菩萨托陛下传法旨,赐"+RANK_D->query_respect(who)+
chinese_number(points)+"点"+to_chinese(name)+"技能!\n",me,who);
/*
command (channel+" "+who->query("name")+who->query("quest/reason")+"陛下有旨,赐"+
chinese_number(points)+"点"+to_chinese(name)+"技能!");
*/
who->add("quest/gain/skills/"+name,points);
reporting (who, who->query("quest/reason"), points, "点"+to_chinese(name)+"技能");

do_improve(who, name, points, level);
}

// mon 3/30/98 allow players to increase several levels of skill
// if they got big skill reward points.
// (though the penalty is need double the normal points to increase
// one level)
void do_improve(object who, string name, int points, int level)
{
int pot;
int high=(level>50);
// for level>50, can't increase level.
// for level<=50, possible to increase level.

if(!who) return;

pot=level*level*2;
if(points>pot) {
//level<50 so this is only useful for low level skills.
//players can't use this method to improve their high level skills.
//must learn to improve.

who->improve_skill(name, pot, high);
call_out("do_improve", 1, who, name, points-pot, level+1);
} else
who->improve_skill(name, points, high);

//tell_object(who,name+" "+level+" "+pot+"\n");
}

-


所有时间均为格林尼治时间 +9, 现在的时间是 14:18.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1