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

Project1

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

[已经解决] 战斗中 为什么不能 名称输入处理?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
130
在线时间
137 小时
注册时间
2008-10-7
帖子
236
跳转到指定楼层
1
发表于 2013-6-23 16:31:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 惊天动地 于 2013-6-23 16:57 编辑

Project1.zip (194.63 KB, 下载次数: 19)

战斗中途,设置hp低于95%  改名字,可当名称输入处理 栏目出现后,输完了 点确定后 战斗就自动停了, 怎样能改完名字 战斗还能继续啊?

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2013-6-25 00:12:19 | 只看该作者
因为名称输入界面在调用结束后返回的是地图,所以理论上改掉就行了==
但事实上直接改掉之后还是有问题,因为返回战斗之后会是重新开始战斗,
这个问题其实不难解决,但是
我懒得想==
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
465 小时
注册时间
2011-4-13
帖子
174
3
发表于 2013-6-27 15:17:29 | 只看该作者
好吧,楼上懒得想,我帮你一下
不破坏战斗的话就直接在BATTLE里面新建窗口吧!
拷贝下面的脚本(原创)就可以了
不过还是建议用范例(亲测)(临上学前做的,可能稍有仓促,如果有BUG我再改,不过我很奇怪要改名字的话为什么非得用名称输入处理呢?直接用更改角色名称不是更好吗)

(求糖!)
  1. #==============================================================================
  2. # ■ Scene_Battle (补充定义)
  3. #------------------------------------------------------------------------------
  4. #  输入名称时的补充定义(heiwang1997)
  5. #==============================================================================

  6. class Scene_Battle
  7.   def name_input(actor)
  8.     # 获取角色
  9.     [url=home.php?mod=space&uid=95897]@actor[/url] = $game_actors[actor]
  10.     # 生成窗口
  11.     if @edit_window.nil?
  12.       @edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
  13.       @edit_window.z = 100000
  14.       @input_window = Window_NameInput.new
  15.       @input_window.z = 100000
  16.     else
  17.       @edit_window.visible = true
  18.       @edit_window.active = true
  19.       @input_window.visible = true
  20.       @input_window.active = true
  21.     end
  22.     @name_input = true
  23.   end
  24.   def update_name_input
  25.     # 刷新窗口
  26.     @edit_window.update
  27.     @input_window.update
  28.     # 按下 B 键的情况下
  29.     if Input.repeat?(Input::B)
  30.       # 光标位置为 0 的情况下
  31.       if @edit_window.index == 0
  32.         return
  33.       end
  34.       # 演奏取消 SE
  35.       $game_system.se_play($data_system.cancel_se)
  36.       # 删除文字
  37.       @edit_window.back
  38.       return
  39.     end
  40.     # 按下 C 键的情况下
  41.     if Input.trigger?(Input::C)
  42.       # 光标位置为 [确定] 的情况下
  43.       if @input_window.character == nil
  44.         # 名称为空的情况下
  45.         if @edit_window.name == ""
  46.           # 还原为默认名称
  47.           @edit_window.restore_default
  48.           # 名称为空的情况下
  49.           if @edit_window.name == ""
  50.             # 演奏冻结 SE
  51.             $game_system.se_play($data_system.buzzer_se)
  52.             return
  53.           end
  54.           # 演奏确定 SE
  55.           $game_system.se_play($data_system.decision_se)
  56.           return
  57.         end
  58.         # 更改角色名称
  59.         @actor.name = @edit_window.name
  60.         # 演奏确定 SE
  61.         $game_system.se_play($data_system.decision_se)
  62.         # 切换到地图画面
  63.         @name_input = false
  64.         @edit_window.visible = false
  65.         @edit_window.active = false
  66.         @input_window.visible = false
  67.         @input_window.active = false
  68.         return
  69.       end
  70.       # 光标位置为最大的情况下
  71.       if @edit_window.index == $game_temp.name_max_char
  72.         # 演奏冻结 SE
  73.         $game_system.se_play($data_system.buzzer_se)
  74.         return
  75.       end
  76.       # 文字为空的情况下
  77.       if @input_window.character == ""
  78.         # 演奏冻结 SE
  79.         $game_system.se_play($data_system.buzzer_se)
  80.         return
  81.       end
  82.       # 演奏确定 SE
  83.       $game_system.se_play($data_system.decision_se)
  84.       # 添加文字
  85.       @edit_window.add(@input_window.character)
  86.       return
  87.     end
  88.   end
  89.   alias ax_update update
  90.   def update
  91.     if @name_input
  92.       update_name_input
  93.     else
  94.       ax_update
  95.     end
  96.   end
  97.   alias ax_main main
  98.   def main
  99.     ax_main
  100.     @edit_window.dispose if @edit_window
  101.     @input_window.dispose if @input_window
  102.   end
  103. end
  104. class Interpreter   
  105. #--------------------------------------------------------------------------
  106.   # ● 名称输入处理
  107.   #--------------------------------------------------------------------------
  108.   #######################################HEIWANG#########################
  109.   def command_303
  110.     # 如果不是无效的角色
  111.     if $data_actors[@parameters[0]] != nil
  112.       if $game_temp.in_battle
  113.         $game_temp.name_max_char = @parameters[1]
  114.         $scene.name_input(@parameters[0])
  115.       else
  116.         # 设置战斗中断标志
  117.         $game_temp.battle_abort = true
  118.         # 设置名称输入调用标志
  119.         $game_temp.name_calling = true
  120.         $game_temp.name_actor_id = @parameters[0]
  121.         $game_temp.name_max_char = @parameters[1]
  122.       end
  123.     end
  124.     # 推进索引
  125.     @index += 1
  126.     # 结束
  127.     return false
  128.   end   
  129. end
复制代码

Project1.zip

195.57 KB, 下载次数: 15

点评

谢谢,但没有认可的按钮 不知怎么认可  发表于 2013-6-27 21:27

评分

参与人数 1星屑 +168 收起 理由
弗雷德 + 168 认可答案,还有你的糖。

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 02:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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