Project1

标题: 互动式防御反击脚本问题 [打印本页]

作者: hiakk    时间: 2015-8-19 19:26
标题: 互动式防御反击脚本问题
第一次发帖好紧张呐呐,最近学习使用rpg maker xp 制作小游戏玩,需要互动式防御反击该怎么写脚本啊

要求如下
1、己方防御时,在早打对方攻击后有一定概率触发防御反击;
2、防御反击(以下成为防反)分四段,第一段触发后,频幕上出现相应按键【暂定为上下左右吧】,在短时间正确按下,可反击,失败,则反击结束,
     成功,则进入二段防反,出现跟多按键。。。。。。以此类推
3、当完成四段防反后,秒杀被反击的boss


有没有脚本大神帮帮忙啊,话说,贴吧上找到个相似的,但是并不知道则么该附上链接http://tieba.baidu.com/p/1242408992

其内容大概如下
time_count = 20 #设置等待时间为20帧(1秒)
cmd = [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP][rand(4)] #从“上”、“下”、“左”、“右”键中随机选一个
flag = false #是否按键了的标记
while(true)
Input.update #按键输入的刷新
if Input.trigger?(cmd) #按下了正确的键
@phase4_step = @a == 0 ? 1 : 2 #仍有敌人,可跳到行动执行部分(连击)
flag = true #标记按下了正确的键
break
end
Graphics.update #画面的刷新,使画面进行1帧的时间
time_count -= 1 #等待计数减一
break if time_count == 0 #20帧已过,跳出
end
@phase4_step = 1 if !flag #没有正确按键,流程正常执行

然而这太不形象了,连需要按哪个键都看不到,需要制作一个什么东西来形象地说明,所以接下来我们制作一个用于显示方向键的窗口(Window)

这里方向字符串利用了cmd变量的值,查F1可以知道
Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP
的值分别为2,4,6,8,可以利用这个顺序便利地得到0~3——除以2减一即可(PIA…
好了,现在按什么键可以连击已经能看见了,赶快试试吧。
是不是有效果了?嗯,这样想要的功能已经有了,但是还有些BUG,敌人攻击时也会弹窗出来,并且防御啦、物品使用啦也会执行连击,所以需要加上一些限制条件,我这里将连击限制为只有普通攻击可以进行,代码如下:
if @active_battler.is_a?(Game_Actor) #当前战斗者是我方队员
if @active_battler.current_action.kind == 0 and @active_battler.current_action.basic != 1 #执行的是“攻击”行动
conWindow = Window_Continuly.new
time_count = 20
cmd = [Input::DOWN,Input::LEFT,Input::RIGHT,Input::UP][rand(4)]
texts = ["下","左","右","上"]
text = texts[cmd/2-1]
flag = false
conWindow.set_text(text)
while(true)
Input.update
if Input.trigger?(cmd)
@phase4_step = @a == 0 ? 1 : 2
flag = true
break
end
Graphics.update
time_count -= 1
break if time_count == 0
end
conWindow.dispose
@phase4_step = 1 if !flag
else
@phase4_step = 1
end
else
@phase4_step = 1
end




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