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

Project1

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

[已经解决] 求一个在状态界面显示角色立绘的脚本,或修改方法。

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1696
在线时间
761 小时
注册时间
2013-9-23
帖子
211

开拓者

跳转到指定楼层
1
发表于 2014-2-4 03:22:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想求一个能够在状态界面显示出人物立绘的脚本,或者是修改的方法也行。

我调整了状态界面的窗口,原来的全屏现在变成了半屏宽,打算在另一边显示立绘用,可是不知道怎么做,求各位指点。

Lv3.寻梦者

梦石
0
星屑
2981
在线时间
646 小时
注册时间
2009-1-21
帖子
273
2
发表于 2014-2-4 10:55:10 | 只看该作者
本帖最后由 御之嵐 于 2014-2-4 11:19 编辑

不知道是不是這邊的狀態介面

上下裁切掉
是因為有糟糕的東西所以遮蔽了一下
人物是我自己畫的
所以應該沒有版權問題_(:з」∠)_




這是我很久很久之前寫的
寫得很爛

有參考了日本RPG的腳本
後來就自己改寫了一下

原本是有判斷血量、裝備、狀態
利用這些去改變立繪

但是怕你看不懂
所以就只剩下血量判斷

RUBY 代码复制
  1. class Window_statuschar < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对象
  4. #--------------------------------------------------------------------------
  5. def initialize(x,y,w,h)
  6.     super(x, y, w, h)
  7.     self.opacity = 0
  8.     refresh
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 重新整理
  12.   #--------------------------------------------------------------------------
  13.   def refresh
  14.         #HPが50%以上
  15.     if ($game_actors[1].hp >= $game_actors[1].mhp / 2)
  16.           contents.clear
  17.           bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06a")
  18.           rect = Rect.new(-100, -70, 544,500)   
  19.           contents.blt(0,0, bitmap, rect, 255)
  20.           bitmap.dispose
  21.     end
  22.  
  23.     #HPが50%以下
  24.     if ($game_actors[1].hp < $game_actors[1].mhp / 2) && ($game_actors[1].hp > $game_actors[1].mhp / 5)
  25.         contents.clear
  26.           bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06b")
  27.           rect = Rect.new(-100, -70, 544,500)   
  28.           contents.blt(0,0, bitmap, rect, 255)
  29.           bitmap.dispose
  30.     end
  31.  
  32.     #HPが20%以下
  33.     if ($game_actors[1].hp <= $game_actors[1].mhp / 5)
  34.         contents.clear
  35.           bitmap = Cache.load_bitmap("Graphics/Pictures/","menu_06c")
  36.           rect = Rect.new(-100, 0, 544,416)   
  37.           contents.blt(0,0, bitmap, rect, 255)
  38.           bitmap.dispose   
  39.     end
  40. end
  41.   #--------------------------------------------------------------------------
  42.   # ● 開啟視窗
  43.   #--------------------------------------------------------------------------
  44.   def open
  45.     refresh
  46.     super
  47.   end
  48. end


menu...的詞都是圖片檔名

當時只是一時興起寫的
所以寫得很爛
參考看看就好了吧
我不建議使用 ( 艸)
希望對你有幫助

如果要測試效果
在 Scene_Status 的 @status_window.set_handler(:pageup,   method(:prev_actor)) 底下
加上
@statuschar__window=Window_statuschar.new(250,0,320,485)

隨便找張立繪 檔名改成  menu_06a
放在 Graphics\Pictures 底下 應該就可以了

点评

遊戲沒做完吶,慢慢填坑中  发表于 2014-2-5 13:21
果断求游戏~ = =  发表于 2014-2-5 08:22
我只是代@一下  发表于 2014-2-4 15:29
參考看看吧,說不定還有更簡潔的寫法,因為我很少上來,只是最近又開始玩RPG 所以才上來看看,要問的話就發消息吧,好友我就不加了,抱歉囉  发表于 2014-2-4 15:25
效果太好了!我要认可你的回答啊啊啊啊啊啊。  发表于 2014-2-4 12:09
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1696
在线时间
761 小时
注册时间
2013-9-23
帖子
211

开拓者

3
 楼主| 发表于 2014-2-4 15:22:44 | 只看该作者
@御之嵐
这个脚本切换角色后依然还是那张设定好的图片,请问怎样可以让半身像随着角色的改变而改变成对应的呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2981
在线时间
646 小时
注册时间
2009-1-21
帖子
273
4
发表于 2014-2-4 17:07:20 | 只看该作者
本帖最后由 御之嵐 于 2014-2-4 20:33 编辑
午睡的风铃 发表于 2014-2-4 15:22
@御之嵐
这个脚本切换角色后依然还是那张设定好的图片,请问怎样可以让半身像随着角色的改变而改变成对应的 ...



看一下是不是你要的效果吧
換人物時圖片會跟者換



有血量的判斷
不想改預設腳本的話
就直接複製這兩個腳本
插入到 Main之前就好了


RUBY 代码复制
  1. class Window_statuschar < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化對象
  4.   #--------------------------------------------------------------------------
  5.   def initialize(actor)
  6.     super(0, 0, Graphics.width, Graphics.height)
  7.     self.opacity = 0
  8.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  9.     refresh
  10.     activate
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 設置角色
  14.   #--------------------------------------------------------------------------
  15.   def actor=(actor)
  16.     return if [url=home.php?mod=space&uid=95897]@actor[/url] == actor
  17.     @actor = actor
  18.     refresh
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 刷新
  22.   #--------------------------------------------------------------------------
  23.   def refresh
  24.     contents.clear
  25.     draw_player
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 重新整理
  29.   #--------------------------------------------------------------------------
  30.   def draw_player
  31.         #HPが50%以上
  32.     if ($game_actors[@actor.id].hp >= $game_actors[@actor.id].mhp / 2)
  33.       bitmap = Cache.face("player_" + @actor.id.to_s + "_1")
  34.       rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  35.       contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
  36.       bitmap.dispose
  37.     end
  38.  
  39.     #HPが50%以下
  40.     if ($game_actors[@actor.id].hp < $game_actors[@actor.id].mhp / 2) && ($game_actors[@actor.id].hp > $game_actors[@actor.id].mhp / 5)
  41.       bitmap = Cache.face("player_" + @actor.id.to_s + "_2")
  42.       rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  43.       contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
  44.       bitmap.dispose
  45.     end
  46.  
  47.     #HPが20%以下
  48.     if ($game_actors[@actor.id].hp <= $game_actors[@actor.id].mhp / 5)
  49.       bitmap = Cache.face("player_" + @actor.id.to_s + "_3")
  50.       rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  51.       contents.blt(contents_width - bitmap.width, contents_height - bitmap.height, bitmap, rect)
  52.       bitmap.dispose
  53.     end
  54. end
  55.   #--------------------------------------------------------------------------
  56.   # ● 開啟視窗
  57.   #--------------------------------------------------------------------------
  58.   def open
  59.     refresh
  60.     super
  61.   end
  62. end




RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Scene_Status
  4. #------------------------------------------------------------------------------
  5. #  狀態畫面
  6. #==============================================================================
  7.  
  8. class Scene_Status < Scene_MenuBase
  9.   #--------------------------------------------------------------------------
  10.   # ● 開始處理
  11.   #--------------------------------------------------------------------------
  12.   def start
  13.     super
  14.     @status_window = Window_Status.new(@actor)
  15.     @status_window.set_handler(:cancel,   method(:return_scene))
  16.     @status_window.set_handler(:pagedown, method(:next_actor))
  17.     @status_window.set_handler(:pageup,   method(:prev_actor))
  18.     @statuschar__window=Window_statuschar.new(@actor)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 切換角色
  22.   #--------------------------------------------------------------------------
  23.   def on_actor_change
  24.     @status_window.actor = @actor
  25.     @status_window.activate
  26.   end
  27. end



因為我不是很厲害
而且我當初寫的時候 只有針對 單一角色
所以 2L的腳本 綁死了
所以花了一點時間研究了一下
順便學 這樣

我有參考這邊的寫法
http://rpg.blue/thread-256268-1-1.html

用法的話
檔名
1號角色
50%以上  player_1_1
50%~20%  player_1_2
20%以下  player_1_3

2號就以此類推
50%以上  player_2_1
50%~20%  player_2_2
20%以下  player_2_3

圖片放在
Graphics\Faces


不過這個只是用於固定好的隊伍
假如
原本設定好的 2號角色
突然換成其他人了
那 裡面的 立繪
就還是原本的 2號角色  這樣

希望對你有幫助  

点评

谢谢,我先琢磨下怎么用,有不明白的地方还要麻烦你,向你请教。  发表于 2014-2-4 19:29
總之就是重新寫過啦,要說是 1.01版 也是可以,兩個人物圖片的編號,是自己而外畫上去的,所以不要誤會囉  发表于 2014-2-4 17:13

评分

参与人数 1梦石 +2 收起 理由
Sion + 2 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 14:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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