Project1

标题: 纯事件制作战棋 [打印本页]

作者: 哼啾小鸭子    时间: 2007-8-23 05:26
标题: 纯事件制作战棋
我不会脚本的说,先前看到阿尔西思的战棋脚本,觉得不太符合我要的
这里有一个纯事件做战棋的想法,超麻烦的说,不要笑话我就行。。。。
算是照顾一下不会脚本的朋友。。。

制作内容

等待行为的判定

利用变量获得我方每个角色的坐标,当坐标到了某个范围,即开启开关,进入下面的事件处理。

普通行为(移动和攻击)的判定

1、计算出可以攻击到的我方角色。
2、计算出攻击各个我方角色的伤害。
3、比对是否有一击毙命的情况。
3-1、若有这样的情况,即移动向该角色并执行相应指令。
3-2、若这样的情况不止一样,即选择关键人物为目标(关键人物即影响胜负关键的人物)。
3-2-1、若没有关键人物,则生存力最弱的角色,开启该情况处理的开关。  *注:生存力指生命/10+防御力
3-3、没有一击毙命的情况,则选择防御最弱的角色,开启该情况处理的开关。
4、若无法接触到任何角色,则向最近角色靠拢,开启该情况处理的开关。
5、判定结束后,转入绝招行为判定页。

绝招行为的判定

1、判定是否有足够术力,决定能使用的绝招。
2-1、魔法攻击绝招判定可触及范围,取目标数最多的情况。(若目标数为0,则直接跳转至3-1)
2-2、比较是否有一击毙命的情况,取该种情况,开启该情况处理的开关。
2-3、若无一击毙命的情况,则选择最大个数攻击目标攻击,开启该情况处理的开关。
2-4、若存在攻击目标个数相同的情况,则选择总生命最低的攻击目标组攻击,开启该情况处理的开关。
3-1、计算物理绝招允许的行动范围,取最大值。
3-2、物理攻击绝招判定可触及范围,取目标数最多的情况。(若目标数为0,则直接跳转至4-1)
3-3、比较是否有一击毙命的情况,取该种情况,开启该情况处理的开关。
3-4、若无一击毙命的情况,则攻击生存力最弱的角色,开启该情况处理的开关。
4-1、辅助绝招判定范围,取目标数最多的情况。(若目标数为0,则直接跳转至4-1)

最终行为决定

物理系敌人==〉普通攻击与绝招的比较,比较伤害值最大的情况。
魔攻系敌人==〉普通攻击与魔法的比较,比较伤害值最大的情况。(其实魔攻系的用不着判定,只要不是术力不足魔法总比普攻厉害。)
魔辅系敌人==〉若普攻可一击毙命则必出普攻,否则必出辅助魔法。(同上不一定用判定。)

移动行为反应页

利用暂时变更地图元件达到移动的效果。(注意,所有地图元件的初始通行属性都设为不通行!城市除外。行动时将元件改回来。)
在所有障碍地形四角设置辅助事件,后面有用。
1、获取目标位置。(攻击的角色或魔法的释放中心)
2、获取自己位置。(判定行动的方向)
3、获取四周地形。(分为可通行和不可通行以及我方不可通行、敌方不可通行,当最佳行进方向可通行则通行。若不可通行,则利用获取辅助的坐标模拟绕过障碍物后所需的步数,再计算移动到目标位置所需要的 的步数,取少的步数。若相同的话则随机往不同的方向。不受地形限制的飞行类或遁地类敌人在设置移动路线时开启穿透就可以。)
4、获取我方人员周围4格,设置为敌方不可通行。判断是否经过该地形。如果经过,进入该地形已经行动步数即上升至满移动力。
5、移动。已行动步数中+1。同时将自己周围4格地形设为我方不可通行。
6、判定是否到达目标位置,如果是,执行动作。如果不是,执行6。
7、判断已行动步数是否等于移动力。如果是,换至下一敌人事件。如果不是,重复执行1-7。
8、执行攻击或绝招或待命。

行动总结页

关闭所有的相关开关,尤其是几个判定事件页是否打开的开关。

我方行动则灵活许多,不需再一一说明。

描画行动、法术范围:在战场无法到达的角落放置事件,利用开关控制是否显示图标。利用获取敌人、主角的位置来设置这些图标的位置,并开启开关。

会脚本的看完了没流鼻血?{/gg}
其实RMXP的事件功能几乎可以做出了颠覆画面外所有的系统:
ARPG、横板过关、SLG等等。。。
作者: 哼啾小鸭子    时间: 2007-8-23 05:26
标题: 纯事件制作战棋
我不会脚本的说,先前看到阿尔西思的战棋脚本,觉得不太符合我要的
这里有一个纯事件做战棋的想法,超麻烦的说,不要笑话我就行。。。。
算是照顾一下不会脚本的朋友。。。

制作内容

等待行为的判定

利用变量获得我方每个角色的坐标,当坐标到了某个范围,即开启开关,进入下面的事件处理。

普通行为(移动和攻击)的判定

1、计算出可以攻击到的我方角色。
2、计算出攻击各个我方角色的伤害。
3、比对是否有一击毙命的情况。
3-1、若有这样的情况,即移动向该角色并执行相应指令。
3-2、若这样的情况不止一样,即选择关键人物为目标(关键人物即影响胜负关键的人物)。
3-2-1、若没有关键人物,则生存力最弱的角色,开启该情况处理的开关。  *注:生存力指生命/10+防御力
3-3、没有一击毙命的情况,则选择防御最弱的角色,开启该情况处理的开关。
4、若无法接触到任何角色,则向最近角色靠拢,开启该情况处理的开关。
5、判定结束后,转入绝招行为判定页。

绝招行为的判定

1、判定是否有足够术力,决定能使用的绝招。
2-1、魔法攻击绝招判定可触及范围,取目标数最多的情况。(若目标数为0,则直接跳转至3-1)
2-2、比较是否有一击毙命的情况,取该种情况,开启该情况处理的开关。
2-3、若无一击毙命的情况,则选择最大个数攻击目标攻击,开启该情况处理的开关。
2-4、若存在攻击目标个数相同的情况,则选择总生命最低的攻击目标组攻击,开启该情况处理的开关。
3-1、计算物理绝招允许的行动范围,取最大值。
3-2、物理攻击绝招判定可触及范围,取目标数最多的情况。(若目标数为0,则直接跳转至4-1)
3-3、比较是否有一击毙命的情况,取该种情况,开启该情况处理的开关。
3-4、若无一击毙命的情况,则攻击生存力最弱的角色,开启该情况处理的开关。
4-1、辅助绝招判定范围,取目标数最多的情况。(若目标数为0,则直接跳转至4-1)

最终行为决定

物理系敌人==〉普通攻击与绝招的比较,比较伤害值最大的情况。
魔攻系敌人==〉普通攻击与魔法的比较,比较伤害值最大的情况。(其实魔攻系的用不着判定,只要不是术力不足魔法总比普攻厉害。)
魔辅系敌人==〉若普攻可一击毙命则必出普攻,否则必出辅助魔法。(同上不一定用判定。)

移动行为反应页

利用暂时变更地图元件达到移动的效果。(注意,所有地图元件的初始通行属性都设为不通行!城市除外。行动时将元件改回来。)
在所有障碍地形四角设置辅助事件,后面有用。
1、获取目标位置。(攻击的角色或魔法的释放中心)
2、获取自己位置。(判定行动的方向)
3、获取四周地形。(分为可通行和不可通行以及我方不可通行、敌方不可通行,当最佳行进方向可通行则通行。若不可通行,则利用获取辅助的坐标模拟绕过障碍物后所需的步数,再计算移动到目标位置所需要的 的步数,取少的步数。若相同的话则随机往不同的方向。不受地形限制的飞行类或遁地类敌人在设置移动路线时开启穿透就可以。)
4、获取我方人员周围4格,设置为敌方不可通行。判断是否经过该地形。如果经过,进入该地形已经行动步数即上升至满移动力。
5、移动。已行动步数中+1。同时将自己周围4格地形设为我方不可通行。
6、判定是否到达目标位置,如果是,执行动作。如果不是,执行6。
7、判断已行动步数是否等于移动力。如果是,换至下一敌人事件。如果不是,重复执行1-7。
8、执行攻击或绝招或待命。

行动总结页

关闭所有的相关开关,尤其是几个判定事件页是否打开的开关。

我方行动则灵活许多,不需再一一说明。

描画行动、法术范围:在战场无法到达的角落放置事件,利用开关控制是否显示图标。利用获取敌人、主角的位置来设置这些图标的位置,并开启开关。

会脚本的看完了没流鼻血?{/gg}
其实RMXP的事件功能几乎可以做出了颠覆画面外所有的系统:
ARPG、横板过关、SLG等等。。。
作者: 哼啾小鸭子    时间: 2007-8-23 05:28
生存力指生命/10+防御力
这个大家怎么改都行。。。

其他许多Al都可以自己定义。。
作者: 纯子    时间: 2007-8-23 18:46
LZ可以先做的范例发上来看看
作者: enghao_lim    时间: 2007-8-30 08:31
我想纯事件做战棋系统很难吧,如果不用脚本的话,很多东西都很难处理哦。

还有,LZ有一个想法跟我一样,那就是阿尔西思的战棋脚本也不符合我的要求,而我建议搂主如果要作战棋的话,可以参考ZTBS哦。
作者: 雷欧纳德    时间: 2007-8-30 09:28
实际上也并不是不可能
LZ这个思路挺不错的,可以尝试这付诸实践
实际上脚本事件,原理上是一样的,也就是流程思路上是一样的
用事件做,rm也是通过事件解释器转化为脚本
本质上他们只是同一个东西的两个表现形式
所以说用事件制作并没有说完全不可能
不过到了实际制作过程中LZ可能会遇到很多麻烦
并且麻烦在还没有制作到这个地步的时候是不会被发现的
有些问题用纯事件很难解决
所以建议LZ需要略微的懂得一些脚本基础,这样的话事件+少量脚本会是的制作容易很多
作者: DODI    时间: 2007-8-30 20:54
怎么说呢……
其实事件作战棋很容易。很容易。

如果就一场,1VS1,那简直太容易了,除了敌人AI比较复杂……但大部分人都可以做出来。

但人数多了,场次多了。
你就会发现根本不可能……

太复杂了……{/gg}{/gg}
作者: 越前リョーマ    时间: 2007-8-30 21:03
没怎么仔细看,
但要说纯事件制作的东西,

基本都可以完成,
不过有些需要稍微改一下脚本而以。

作者: 湛蓝de海    时间: 2007-8-30 22:00
思路不错,我很赞的.
建议将各个值建立为变量.
作者: 阁中人    时间: 2007-8-30 22:03
赞,思路清晰啊……不过纯事件在实际制作的时候设置起来好麻烦的说。

作者: 逐月    时间: 2008-1-27 19:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 火鸡三毛老大    时间: 2008-1-31 23:06
但是脚本的会更适合新手哦(都是 复制-插入-粘贴..ok!我以前也是这样{/tp})...
作者: sizz123    时间: 2008-2-3 02:36
可以使用魔兽世界中,仇恨的思路做ai
作者: yangff    时间: 2009-6-12 08:00
感谢共享




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1