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

Project1

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

[已经解决] 战斗表情变化脚本错误,如图,求大手指点

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2013-1-11
帖子
24
跳转到指定楼层
1
发表于 2013-4-20 11:26:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ilovejel 于 2013-4-21 23:52 编辑

RUBY 代码复制
  1. # 戦闘表情変化
  2. module BattleManager
  3.   DEFAULT_FACE_INDEX  = 0  # 通常
  4.   DAMAGE_FACE_INDEX   = 1  # 被ダメージ
  5.   RECOVERY_FACE_INDEX = 2  # 回復
  6.   VICTORY_FACE_INDEX  = 3  # 勝利
  7.   PAINFUL_FACE_INDEX  = 4  # 瀕死or重バッドステータス
  8.   SLEEP_FACE_INDEX    = 5  # 睡眠
  9.  
  10.   SLEEP_STATE_ID = 9       # 睡眠
  11.   HEAVY_BAD_STATUS_ID = [  # 重バッドステータス
  12.     2,   # 徐々に石化
  13.     4,   # 凍結
  14.     5,   # 呪い
  15.     6,   # 毒
  16.     7,   # 風邪
  17.     11,  # 麻痺
  18.     12,  # 盲目
  19.     ]
  20.  
  21.   def self.neutral_face_index
  22.     if is_sleep?
  23.       return SLEEP_FACE_INDEX
  24.     elsif is_painful?
  25.       return PAINFUL_FACE_INDEX
  26.     else
  27.       return DEFAULT_FACE_INDEX
  28.     end
  29.   end
  30.  
  31.   def self.is_sleep?
  32.     true if $face_index_changed_actor.state?(SLEEP_STATE_ID)
  33.   end
  34.  
  35.   def self.is_painful?  # 瀕死or重バッドステータス
  36.     return true if $face_index_changed_actor.hp <= $face_index_changed_actor.mhp*0.25 || is_heavy_bad_status?
  37.   end
  38.  
  39.   def self.is_heavy_bad_status?
  40.     HEAVY_BAD_STATUS_ID.each do |i|
  41.       return true if $face_index_changed_actor.state?(i)
  42.     end
  43.     false
  44.   end
  45. end
  46.  
  47. # 戦闘開始
  48. class Scene_Battle < Scene_Base
  49.   alias miriel_start start
  50.   def start
  51.     $game_party.all_members.each do |i|
  52.       $face_index_changed_actor = $game_actors[i.id]
  53.       #$data_actors[i.id].face_index = BattleManager.neutral_face_index
  54.       $game_actors[i.id].set_face_index(BattleManager.neutral_face_index)
  55.       $game_actors[i.id].face_updated = true
  56.     end
  57.     miriel_start
  58.   end
  59. end
  60.  
  61. # 戦闘行動中
  62. class Window_BattleLog < Window_Selectable
  63.   alias miriel_display_action_results display_action_results
  64.   def display_action_results(target, item)   
  65.     if target.actor? && !target.result.missed && !target.result.evaded
  66.       $face_index_changed_actor = $game_actors[target.id]
  67.       #actor = $data_actors[target.id]  # 顔グラは $data_actors
  68.       actor = $game_actors[target.id]  # 顔グラは $data_actors
  69.       index = case
  70.         when target.result.hp_damage > 0 || target.result.mp_damage > 0 || target.result.tp_damage > 0
  71.           BattleManager::DAMAGE_FACE_INDEX
  72.         when target.result.hp_damage < 0 || target.result.mp_damage < 0 || target.result.tp_damage < 0
  73.           BattleManager::RECOVERY_FACE_INDEX
  74.         end
  75.       actor.set_face_index(index)
  76.       actor.face_updated = true
  77.       miriel_display_action_results(target, item)
  78.       actor.set_face_index(BattleManager.neutral_face_index)
  79.       actor.face_updated = true
  80.     else
  81.       miriel_display_action_results(target, item)
  82.     end
  83.   end
  84. end
  85.  
  86. # 勝利
  87. class << BattleManager
  88.   alias miriel_process_victory process_victory
  89.   def process_victory
  90.     $game_party.all_members.each {|i|
  91.       #$data_actors[i.id].face_index = BattleManager::VICTORY_FACE_INDEX }
  92.       $game_actors[i.id].set_face_index(BattleManager::VICTORY_FACE_INDEX)
  93.       $game_actors[i.id].face_updated = true
  94.     }
  95.     miriel_process_victory
  96.   end
  97. end
  98.  
  99. # 戦闘終了
  100. class Game_Battler < Game_BattlerBase
  101.   alias miriel_on_battle_end on_battle_end
  102.   def on_battle_end
  103.     miriel_on_battle_end
  104.     $game_party.all_members.each {|i|
  105. #      $data_actors[i.id].face_index = BattleManager::DEFAULT_FACE_INDEX
  106.       $game_actors[i.id].set_face_index(BattleManager::DEFAULT_FACE_INDEX)
  107.       $game_actors[i.id].face_updated = true
  108.     }
  109.   end
  110. end


这是我从日站找到的脚本,觉得很好,但是我是脚本盲。。。{:2_254:},看了下原版做得游戏脚本,几乎全部改动了,连公共事件都写成脚本了OTL,下边随便给个原版的工程。。。

ht删掉tp://pan.baidu.com/删掉share/link?shareid=450752&uk=3675150025

未命名.jpg (19.11 KB, 下载次数: 21)

未命名.jpg

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
2
发表于 2013-4-20 18:40:06 | 只看该作者
在 Game_Actor 默认脚本中并没有 def set_face_index,应该是有被改过的,或者有另外的脚本而您没有用上。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
59 小时
注册时间
2013-1-11
帖子
24
3
 楼主| 发表于 2013-4-20 20:43:49 | 只看该作者
{:2_256:}嗯,因为这人连原脚本都改得面目全非。。{:2_264:}我逐行找都找不到。。。= =
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-7 16:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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