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

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/)
-   『 梁山论剑 』 (http://www.aolai.org/forums/f3/)
-   -   谈谈战斗引擎! (http://www.aolai.org/forums/t13323/)

locale 2008-03-31 12:16

谈谈战斗引擎!
 
在总站玩的时间也不短了,一直没考虑过战斗引擎优化的问题,今天有空改了改
要点:
1.正常吸气
2.正常回神
3.法术攻击
4.逃跑

1.正常吸气
一。不受伤情况,这个比较简单,判断下列情况,直接er就可以了

你看起来充满活力,一点也不累。
你似乎有些疲惫,但是仍然十分有活力。
你看起来可能有些累了。
你动作似乎开始有点不太灵光,但是仍然有条不紊。
你气喘嘘嘘,看起来状况并不太好。
你似乎十分疲惫,看来需要好好休息了。
你已经一副头重脚轻的模样,正在勉力支撑着不倒下去。
你看起来已经力不从心了。
你摇头晃脑、歪歪斜斜地站都站不稳,眼看就要倒在地上。
你已经陷入半昏迷状态,随时都可能摔倒晕去。

二。受伤情况,等级高以后,不受伤是不可能的,所以这种情况是最常见的
受伤以后要吃药,总站有三种补气血的药,恢复的气血数目大家可以自己
做下试验,选择自己合适的,我现在用天香断续胶,大概恢复500的气血

根据下面的比例,计算好受伤时要吃的药,先吃药,然后er就可以了

if( ratio==100 ) return HIG "看起来气血充盈,并没有受伤。" NOR;
if( ratio > 95 ) return HIG "似乎受了点轻伤,不过光从外表看不大出来。" NOR;
if( ratio > 90 ) return HIY "看起来可能受了点轻伤。" NOR;
if( ratio > 80 ) return HIY "受了几处伤,不过似乎并不碍事。" NOR;
if( ratio > 60 ) return HIY "受伤不轻,看起来状况并不太好。" NOR;
if( ratio > 40 ) return HIR "气息粗重,动作开始散乱,看来所受的伤着实不轻。" NOR;
if( ratio > 30 ) return HIR "已经伤痕累累,正在勉力支撑着不倒下去。" NOR;
if( ratio > 20 ) return HIR "受了相当重的伤,只怕会有生命危险。" NOR;
if( ratio > 10 ) return RED "伤重之下已经难以支撑,眼看就要倒在地上。" NOR;
if( ratio > 5 ) return RED "受伤过重,已经奄奄一息,命在旦夕了。" NOR;
return RED "受伤过重,已经有如风中残烛,随时都可能断气。" NOR;

受伤里有种特殊的情况,千手id要注意,等级高了以后,击中对方后会出现内力反震的情况,
这种情况吃一个药,er就行了

你受到*的内力反震,闷哼一声。
你被*以内力反震,「嘿」地一声退了两步。
你被*以内力一震,胸口有如受到一记重击,连退了五六步!
你被*的内力一震,眼前一黑,身子向后飞出丈许!!

2.正常回神
有以下几种情况,我没有单独处理回神的情况,而是在法术攻击里处理了

你看起来头脑清醒,一点也不迷糊。
你拍了拍自己的脑袋,似乎有点不太得劲。
你看起来有些迷糊了。
你的确有点迷糊了,但还辨得出东西南北。
你两眼发直,口角流涎,神智开始混乱。
你迷迷糊糊,摇摇晃晃,已经辨不出东西南北了。
你神智已经处在极度混乱中。
你心智已经完全迷失,随时都有可能背过气去。

3.法术攻击
最可怕的情况,基本所有挂掉的情况都是被法术打死的,法术会打伤最大气血,但是却不提示受伤的情况,
所以我对所有的攻击性法术都单独处理,我用白云熊胆丸,每个大概恢复500的精神,天香断续胶,每个大概
恢复500的气血,吃药原则,宁多勿少!!!

@cname: 妖怪的中文名字

@cname退后两步,深深地吸一口气,猛然发出股如山崩海啸般的龙吟
#2 eat wan
ef

结果「嗤」地一声,金光从你身上透体而过
#2 fu jiao

结果长箭从你身上透体而过,顿时血花飞溅
#2 fu jiao
#2 eat wan

结果你被雷声震得眼冒金星,心神不定,差点跌倒在地
#2 eat wan
ef

结果你被烧得焦头烂额
#2 fu jiao
#2 eat wan

结果你被咬了个正着
#2 fu jiao

结果砸个正着,差点没把你砸扁
#2 fu jiao
#2 eat wan

你受到*影响,显然有点魂不守舍了
#2 eat wan

可能有人会有疑问,为什么只吃药,不er和ef呢?
这是因为法术攻击会触发正常吸气的情况,产生出一个er命令来,然后通过下面的触发来回复状态

首先要知道自己的状态,下面是需要的触发设置,因为吃的药可能出现不够的情况,所以在精神
状态里又判断了一下是否需要吃药

正常气血状态:
气血:(%s)(%d)/(%s)(%d)(%s)~(100~%~)
cur_qixue=%2
qixue=100

受伤气血状态:
气血:(%s)(%d)/(%s)(%d)(%s)~((%s)(%d)~%~)
cur_qixue=%2
qixue=%7

正常精神状态:
精神:(%s)(%d)/(%s)(%d)(%s)~(100~%~)
jingshen=100
cur_jingshen=%2
#if @qixue<99 {#math jiao_num (100-@qixue)/27
#sh @jiao_num
#if @jiao_num=0 {jiao_num=1}
#loop @jiao_num fu jiao}

受伤精神状态:
精神:(%s)(%d)/(%s)(%d)(%s)~((%s)(%d)~%~)
jingshen=%7
cur_jingshen=%2
#if @qixue<99 {#math jiao_num (100-@qixue)/27
#if @jiao_num=0 {jiao_num=1}
#loop @jiao_num fu jiao
}
#if @jingshen<99 {#math wan_num (100-@jingshen)/27
#if @wan_num=0 {wan_num=1}
#loop @wan_num eat wan
}

下面是法术攻击以后的回复过程,法术攻击后,会触发正常吸气的情况,执行er命令,然后在触发里立刻执行ef命令
你深深吸了几口气,脸色看起来好多了
ef

这时会提示
你上一个动作还没有完成,不能施用内功
cur_qixue=1500
hp
#wa 1500
#if @cur_qixue<1500 {er
hp} {#if @cur_jingshen<1500 {ef
hp} }

这里的1500,改成你的最大气血减100,通过这个触发来判断是需要er还是ef,结合上面的状态判断,就完成
了气血和精神的回复

法术有相克的问题,如果碰到了相克的法术,如果不是特别自信,挨了一个以后,立刻逃跑,
例如:
@cname口中念了几句咒文,随着一声“后羿在此!”半空中现出一位身披虎皮的大汉
taopao

4.逃跑
需要以下的触发器
这里唯一的出口是 (%w)
chukou=%1
escape_dir=%1

这里明显的出口是 (%w) 和 (%w)
chukou=%1|%2
escape_dir=%1

这里明显的出口是 (%w)、(%w) 和 (%w)
chukou=%1|%2|%3
escape_dir=%1

这里明显的出口是 (%w)、(%w)、(%w) 和 (%w)
chukou=%1|%2|%3|%4
escape_dir=%1

看来该找机会逃跑了
taopao

你的动作还没有完成,不能移动
#wa 1000
taopao

taopao是一个alias,内容如下
@escape_dir
hp

逃跑的时候,选择的是第一个出口,在青龙山的山涧和隐雾的涧口那里跑不掉,自己可以做一下特殊处理!

locale 2008-03-31 12:25

回复: 谈谈战斗引擎!
 
勾魂术的处理少了一个ef命令

你受到*影响,显然有点魂不守舍了
#2 eat wan
ef

fengyue_xyj 2008-03-31 15:01

回复: 谈谈战斗引擎!
 
非常好!新人可以好好学学怎么做robot了。
嘎嘎!!

今晚打蚊子 2008-04-04 11:34

回复: 谈谈战斗引擎!
 
很好的帖子,学习做机器人!:em07:

sansouci 2008-11-06 13:38

回复: 谈谈战斗引擎!
 
不断的测试考虑全面一点就可以了,玩的过程中也能不断的提高自己的trigger水平,不错!以后可以向这个方向发展,而不仅仅是upload一个trigger。


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

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

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1