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

Project1

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

[原创发布] 小白学脚本@添加角色全身图&战斗图&根据装备状态换图

[复制链接]

Lv2.观梦者

梦石
0
星屑
841
在线时间
85 小时
注册时间
2005-11-21
帖子
85
跳转到指定楼层
1
发表于 2021-12-15 13:59:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 黑夜守望者 于 2021-12-15 20:27 编辑

PS:请采用2楼alexncf125坛友大大帮忙优化集成的脚本代码,本人初学,范例工程没有将代码分开,请给为各位见谅。

本人刚学脚本不久,大佬见笑
效果:

脱下铠甲后:

中了黑暗后:

战斗中:


说明:在素材目录下添加character_文件夹,全身像图片名称(png格式) = 角色名字 + 角色目前穿着的铠甲名字(没穿铠甲就写 none) + 目前所中的状态的index(没中状态是0)
状态的index就是选择图标的时候下方显示的那个index。将需要改变图片的状态index写入Cache里面的数组里


范例工程(半日文版的,我也忘记当时哪里下载的了)
人物战斗图+图像变更.rar (1.44 MB, 下载次数: 29)

本人自开仙境传说RO怀旧1.0服务器,QQ群552321558,人不多,娱乐用。

Lv5.捕梦者

梦石
0
星屑
24317
在线时间
5050 小时
注册时间
2016-3-8
帖子
1620
2
发表于 2021-12-15 17:21:56 | 只看该作者
本帖最后由 alexncf125 于 2023-4-23 20:05 编辑

欢迎新大佬~

我这把改动的部分提了出来~
並用alias消除了可能会出现冲突的地方~
把 def refresh 改成 def draw_block1
还小修了def armor_name 和 def state_effect
大佬不会介意吧~

期望大佬下次写的脚本能方便他人使用~

RUBY 代码复制
  1. module Cache
  2.   #--------------------------------------------------------------------------
  3.   # ● 显示会变更人物图的状态index
  4.   #--------------------------------------------------------------------------
  5.   State_actor = [18, 19]
  6.   #--------------------------------------------------------------------------
  7.   # ● 获取全身像+铠甲名+状态
  8.   #--------------------------------------------------------------------------
  9.   def self.body(filename, armor_name, state)
  10.     load_bitmap("Graphics/Characters_/", filename + armor_name + state.to_s)
  11.   end
  12. end
  13.  
  14. class Window_Base < Window
  15.   #--------------------------------------------------------------------------
  16.   # ● 描绘全身像
  17.   #     enabled : 有效的标志。 false 的时候使用半透明效果绘制
  18.   #--------------------------------------------------------------------------
  19.   def draw_body(body_name, armor_name, state, x, y, enabled = true)
  20.     bitmap = Cache.body(body_name, armor_name, state)
  21.     rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  22.     contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
  23.     bitmap.dispose
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 取得铠甲名字
  27.   #--------------------------------------------------------------------------
  28.   def armor_name
  29.     @actor.equips[3] ? @actor.equips[3].name : "none"
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● actor的全身像描画
  33.   #--------------------------------------------------------------------------
  34.   def draw_actor_body(actor, armor_name, state_effect, x, y, enabled = true)
  35.     draw_body(actor.name, armor_name, state_effect, x, y, enabled)
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 取得状态index
  39.   #--------------------------------------------------------------------------
  40.   def state_effect
  41.     Cache::State_actor.each do |state_index|
  42.       return state_index if @actor.state_icons.include?(state_index)
  43.     end
  44.     return 0
  45.   end
  46. end
  47.  
  48. class Window_Status < Window_Selectable
  49.   #--------------------------------------------------------------------------
  50.   # ● 绘制区域 1
  51.   #--------------------------------------------------------------------------
  52.   alias body_draw_block1 draw_block1
  53.   def draw_block1(y)
  54.     draw_actor_body(@actor, armor_name, state_effect, 400, 150)
  55.     body_draw_block1(y)
  56.   end
  57. end
  58.  
  59. class Window_ActorCommand < Window_Command
  60.   #--------------------------------------------------------------------------
  61.   # ● 初始化对象
  62.   #--------------------------------------------------------------------------
  63.   alias body_initialize initialize
  64.   def initialize
  65.     body_initialize
  66.     @body = Sprite.new
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 设置
  70.   #--------------------------------------------------------------------------
  71.   alias body_setup setup
  72.   def setup(actor)
  73.     body_setup(actor)
  74.     @body.bitmap = Cache.body(@actor.name, armor_name, state_effect)
  75.     @body.x = 12; @body.y = 160
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 可視设置
  79.   #--------------------------------------------------------------------------
  80.   def visible(visible = true)
  81.     @body.visible = visible
  82.   end
  83. end
  84.  
  85. class Scene_Battle < Scene_Base
  86.   #--------------------------------------------------------------------------
  87.   # ● 开始角色指令的选择
  88.   #--------------------------------------------------------------------------
  89.   alias body_start_actor_command_selection start_actor_command_selection
  90.   def start_actor_command_selection
  91.     body_start_actor_command_selection
  92.     @actor_command_window.visible(true)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 回合开始
  96.   #--------------------------------------------------------------------------
  97.   alias body_turn_start turn_start
  98.   def turn_start
  99.     body_turn_start
  100.     @actor_command_window.visible(false)
  101.   end
  102. end

评分

参与人数 1+1 收起 理由
黑夜守望者 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
841
在线时间
85 小时
注册时间
2005-11-21
帖子
85
3
 楼主| 发表于 2021-12-15 18:05:06 | 只看该作者
alexncf125 发表于 2021-12-15 17:21
欢迎新大佬~

我这把改动的部分提了出来~

多谢了,我还是脚本小白,刚刚才想到Ruby脚本可以在外部追加类方法定义。真是糗大了……
本人自开仙境传说RO怀旧1.0服务器,QQ群552321558,人不多,娱乐用。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1914
在线时间
211 小时
注册时间
2009-11-10
帖子
234
4
发表于 2022-1-7 19:16:49 | 只看该作者
这个可以啊 羡慕会脚本的人
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 07:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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