设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3257|回复: 13
打印 上一主题 下一主题

[已经解决] 【脚本问题】请问如何在队伍全灭后弹出文本,而不是立.....

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
帖子
56
跳转到指定楼层
1
发表于 2014-6-1 13:24:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
允许失败的情况下,友方队伍全灭,不要直接退出战斗,而是像VA一样,显示“队伍全灭”的提示语,然后按确认键再退出,怎么改脚本?多谢!!

Michael Jackson
  KING OF POP

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

14
发表于 2014-6-4 14:59:37 | 只看该作者
woyodo 发表于 2014-6-4 14:43
是不是想要设置Input的检测,必需要用Input.update刷新才可?
Input是不是内部定义的类,脚本里看不到? ...

你没有循环的话,就不会等待。判断发现没输入就立刻跳过了。
Input可以在F1查看
不用刷新,不如说,一般都在刷新中调用Input进行输入按键判断。
没有相关环境(Scene之类自带刷新的)就只好用loop创造刷新条件了

点评

原来如此!非常感谢!  发表于 2014-6-6 22:33

评分

参与人数 1星屑 +200 收起 理由
hys111111 + 200 认可答案

查看全部评分

Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
帖子
56
13
 楼主| 发表于 2014-6-4 14:43:40 | 只看该作者
天地有正气 发表于 2014-6-4 09:58
建议您将这个脚本手动输一遍,我没有用脚本编辑器所以没有缩进.
问题出在您没有设置循环,可以这样. ...

是不是想要设置Input的检测,必需要用Input.update刷新才可?
Input是不是内部定义的类,脚本里看不到?那么怎么查找Input的相关代码呢?

点评

非常感谢!已经解决!  发表于 2014-6-6 22:31
Input是一个模块。可按F1搜索Input  发表于 2014-6-4 17:48

Michael Jackson
  KING OF POP
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

12
发表于 2014-6-4 09:58:55 | 只看该作者
woyodo 发表于 2014-6-3 14:16
非常感谢!可以使用!
但是我想要实现图片出现之后按确认键才退出游戏,什么时候退出由玩家决定的效果。 ...


建议您将这个脚本手动输一遍,我没有用脚本编辑器所以没有缩进.
问题出在您没有设置循环,可以这样.
  1. loop do
  2. Graphics.update # 刷新图像
  3. Input.update # 刷新输入信息
  4. if Input.trigger?(Input::C)
  5. break # 跳出循环
  6. end
  7. end
复制代码

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
hys111111 + 100 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
帖子
56
11
 楼主| 发表于 2014-6-3 14:16:22 | 只看该作者
天地有正气 发表于 2014-6-2 19:29
对话框不一定美观,可以使用图片来做到(用对话框有些麻烦………………)。
@sprite (防止出错)
用:( ...

非常感谢!可以使用!
但是我想要实现图片出现之后按确认键才退出游戏,什么时候退出由玩家决定的效果。刚才做了初步尝试,仍不能等待按键输入,代码如下:
  1.   def judge
  2.     # 全灭判定是真、并且同伴人数为 0 的情况下
  3.     if $game_party.all_dead? or $game_party.actors.size == 0
  4.       # 允许失败的情况下
  5.       if $game_temp.battle_can_lose
  6.         [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
  7. @sprite.opacity = 0
  8. @sprite.bitmap = RPG::Cache.windowskin("Battle.png")
  9. for i in 0.. 255/15
  10. @sprite.opacity += 15
  11. Graphics.update
  12. @sprite.bitmap.draw_text(100, 100, 500, 100, "YOU DIE!")

  13. end
  14. # 按下 C 键的情况下
  15.     if Input.trigger?(Input::C)
  16. for i in 0.. 255/15
  17. @sprite.opacity -= 15
  18. Graphics.update
  19. end
  20. @sprite.bitmap.dispose
  21. @sprite.dispose
  22. end
  23.         # 还原为战斗开始前的 BGM
  24.         $game_system.bgm_play($game_temp.map_bgm)
  25.         # 战斗结束
  26.         battle_end(2)
  27.         # 返回 true
  28.         return true
  29.       end
  30.       # 设置游戏结束标志
  31.       $game_temp.gameover = true
  32.       # 返回 true
  33.       return true
  34.     end
复制代码
主要问题在:
  1. # 按下 C 键的情况下
  2.     if Input.trigger?(Input::C)
  3. for i in 0.. 255/15
  4. @sprite.opacity -= 15
  5. Graphics.update
  6. end
  7. @sprite.bitmap.dispose
  8. @sprite.dispose
  9. end
复制代码
根本不等我输入按键就直接退出了,这是什么原因呢?

Michael Jackson
  KING OF POP
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

10
发表于 2014-6-2 19:29:45 | 只看该作者
woyodo 发表于 2014-6-2 18:17
首先感谢你回我帖!
我写的全局变量不一定正确,只是凭记忆写的。
对于你所说的方法,我已经试过,发现这 ...


对话框不一定美观,可以使用图片来做到(用对话框有些麻烦………………)。
@sprite (防止出错)
用:(把一张名为“Battle”的png格式图片放入Graphics/Windowskins文件夹里)
  1. @sprite = Sprite.new
  2. @sprite.opacity = 0
  3. @sprite.bitmap = RPG::Cache.windowskin("Battle.png")
  4. for i in 0.. 255/15
  5. @sprite.opacity += 15
  6. Graphics.update
  7. end
  8. for i in 0.. 255/15
  9. @sprite.opacity -= 15
  10. Graphics.update
  11. end
  12. @sprite.bitmap.dispose
  13. @sprite.dispose
复制代码
这段脚本可以结合F1看一下。

未经测试………………
应该可以的吧……
效果就是显示一张图片,然后消失。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
帖子
56
9
 楼主| 发表于 2014-6-2 18:17:26 | 只看该作者
天地有正气 发表于 2014-6-2 18:03
估计您把报错的信息看错了吧。
应该是找不到text=这个方法。
显示文本的脚本应该是$game_message_text =  ...

首先感谢你回我帖!
我写的全局变量不一定正确,只是凭记忆写的。
对于你所说的方法,我已经试过,发现这是一个事件用脚本,即在事件设置页里的“脚本...”是可以使用的,但是在脚本编辑器里不能调用。
另外一个问题:事件里使用$game_temp.message_text="",弹出的对话框将反复弹出,按确认键不能退出对话,请问怎么解决?

Michael Jackson
  KING OF POP
回复 支持 反对

使用道具 举报

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

8
发表于 2014-6-2 18:03:34 | 只看该作者
woyodo 发表于 2014-6-2 16:52
非常感谢!其实我试了在scence_battle1里的胜负判定的if $game_temp.battle_can_lose?(就是允许失败的条 ...

估计您把报错的信息看错了吧。
应该是找不到text=这个方法。
显示文本的脚本应该是$game_message_text = "46748"
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
帖子
56
7
 楼主| 发表于 2014-6-2 16:52:11 | 只看该作者
1162350858 发表于 2014-6-2 12:36
阿勒,不好意思啊我会错意了。个人是个脚本新手。不可能帮你写脚本。不过我可以给你一些想法。你直接找到 ...

非常感谢!其实我试了在scence_battle1里的胜负判定的if $game_temp.battle_can_lose?(就是允许失败的条件下)插入$game_temp.text="XXX" $game_temp.text_showing=true,但是它显示$game_temp是未定义(undefined)的变量。
但是据教程说$开头的是全局变量,可以在整个脚本里调用,为什么还是undefined?
还有就是:$game_temp这个全局变量是在哪里定义的?还是说只要有类(class),就自动生成同名全局变量?
比如:有class Game_Temp,就自动生成(小写字母的)$game_temp?
多谢解答!

Michael Jackson
  KING OF POP
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2012-2-15
帖子
15
6
发表于 2014-6-2 12:36:15 | 只看该作者
woyodo 发表于 2014-6-1 20:32
兄台你想多了,改游戏只是为了研究脚本,它不可能变成盗版的游戏,而且我也没有时间去制作游戏内容,我现 ...

阿勒,不好意思啊我会错意了。个人是个脚本新手。不可能帮你写脚本。不过我可以给你一些想法。你直接找到战斗的那个脚本。然后在怪物全灭的后面添加一个脚本(就是你说的那个评价脚本)

(我的想法是你在游戏放素材的那个文件甲新建一个文件夹,然后把评价的评分图片放入比如s级ss级sss级之类的图片。然后在游戏脚本里引用图片显示)

(至于怎么评分呢你可以在建立一个新的脚本然后记录在战斗时候的损血和被击中的次数之类的数据,然后在用算法计算出评分。)(到时候这个脚本真能实现的话联系我,我现在做的游戏也可以加入这个系统)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 10:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表