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

Project1

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

[已经过期] 关于VA的SideView Ver100的小问题

[复制链接]

Lv1.梦旅人

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

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

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

x
最近从站里找来了这个脚本,然而发现它不能像VX版的SV那样,在战斗中选定敌人的时候有光标出现在敌人身上进行选定,而是按默认战斗那样在下方选敌人的名字来选定。请问有没有办法改成用光标选定敌人?

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
2
发表于 2017-4-12 23:25:19 | 只看该作者
追加一个脚本,战斗指针
  1. #==============================================================================
  2. # ■ Sprite_BattleArrow
  3. #==============================================================================

  4. class Sprite_BattleArrow < Sprite
  5.   #--------------------------------------------------------------------------
  6.   # ● 定义实例变量
  7.   #--------------------------------------------------------------------------
  8.   attr_reader   :index
  9.   attr_accessor :select_all
  10.   attr_accessor :can_select_all
  11.   attr_accessor :members
  12.   attr_accessor :add_x
  13.   attr_accessor :on_ok_method
  14.   attr_accessor :on_cancel_method
  15.   #--------------------------------------------------------------------------
  16.   # ● 初始化对像
  17.   #--------------------------------------------------------------------------
  18.   def initialize(type, viewport, can_select_all = false)
  19.     super(viewport)
  20.     self.bitmap = Cache.system("BattleArrow")
  21.     @type = type
  22.     case @type
  23.     when :enemy
  24.       self.ox = 0
  25.       src_rect.set(32, 0-35, 32, 32+50)
  26.       @members = $game_troop.members
  27.       @add_x = 30-10
  28.     when :actor
  29.       self.ox = 32
  30.       src_rect.set(0, 0-35, 32, 32+50)
  31.       @members = $game_party.battle_members
  32.       @add_x = -30
  33.     else
  34.       self.ox = 16
  35.       src_rect.set(0, 0, 32, 32)
  36.       @members = []
  37.       @add_x = 0
  38.     end
  39.     self.oy = 32
  40.     self.z = 2500
  41.     self.visible = false
  42.     @index = 0
  43.     @old_index = @index
  44.     @select_all = false
  45.     @can_select_all = can_select_all
  46.     update
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 设置
  50.   #--------------------------------------------------------------------------
  51.   def setup(can_select_all)
  52.     @can_select_all = can_select_all
  53.     @select_all = false
  54.     @index = @old_index
  55.     case @type
  56.     when :actor
  57.       @members = $game_party.battle_members
  58.     when :enemy
  59.       @members = $game_troop.members
  60.     else
  61.       @members = []
  62.     end
  63.     self.visible = true
  64.     update
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● 获取光标指向的战斗者
  68.   #--------------------------------------------------------------------------
  69.   def battler
  70.     return members[index]
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 设置光标位置
  74.   #--------------------------------------------------------------------------
  75.   def index=(index)
  76.     @index = index
  77.     update
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 刷新画面
  81.   #--------------------------------------------------------------------------
  82.   def update
  83.     super
  84.     return unless visible
  85.     if Input.trigger?(13)
  86.       Sound.play_ok
  87.       on_ok_method.call if on_ok_method
  88.       return
  89.     end
  90.     if Input.trigger?(12)
  91.       Sound.play_cancel
  92.       on_cancel_method.call if on_cancel_method
  93.       return
  94.     end
  95.     if Input.trigger?(4) or Input.trigger?(6)
  96.       if @select_all
  97.         @select_all = false
  98.         @index = @old_index
  99.       else
  100.         if @can_select_all
  101.           @select_all = true
  102.           @old_index = @index
  103.         end
  104.       end
  105.     end
  106.     case @type
  107.     when :actor
  108.       update_actor
  109.     when :enemy
  110.       update_enemy
  111.     end
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ● 刷新选择角色
  115.   #--------------------------------------------------------------------------
  116.   def update_actor
  117.     if @select_all
  118.       @index += 1
  119.       @index %= members.size
  120.     else
  121.       old_index = @index
  122.       for i in 0..members.size
  123.         @index = i
  124.         if @index == members.size
  125.           @index = old_index
  126.           break
  127.         end
  128.         next unless battler
  129.         self_x = battler.fscreen_x + add_x
  130.         self_y = battler.fscreen_y
  131.       end
  132.       if Input.repeat?(2)
  133.         Sound.play_cursor
  134.         @index += 1
  135.         @index %= members.size
  136.       end
  137.       if Input.repeat?(8)
  138.         Sound.play_cursor
  139.         @index += members.size - 1
  140.         @index %= members.size
  141.       end
  142.     end
  143.     if battler
  144.       self.x = battler.fscreen_x + add_x
  145.       self.y = battler.fscreen_y
  146.     end
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 刷新选择敌人
  150.   #--------------------------------------------------------------------------
  151.   def update_enemy
  152.     if @select_all
  153.       members.size.times do
  154.         @index += 1
  155.         @index %= members.size
  156.         break if not battler.hidden?
  157.       end
  158.     else
  159.       members.size.times do
  160.         break if not battler.hidden?
  161.         @index += 1
  162.         @index %= members.size
  163.       end
  164.       old_index = @index
  165.       for i in 0..members.size
  166.         @index = i
  167.         if @index == members.size
  168.           @index = old_index
  169.           break
  170.         end
  171.         next if battler.hidden?
  172.         self_x = battler.screen_x + add_x
  173.         self_y = battler.screen_y
  174.       end
  175.       if Input.repeat?(2)
  176.         Sound.play_cursor
  177.         members.size.times do
  178.           @index += 1
  179.           @index %= members.size
  180.           break if not battler.hidden?
  181.         end
  182.       end
  183.       if Input.repeat?(8)
  184.         Sound.play_cursor
  185.         members.size.times do
  186.           @index += members.size - 1
  187.           @index %= members.size
  188.           break if not battler.hidden?
  189.         end
  190.       end
  191.     end
  192.     if battler != nil
  193.       self.x = battler.screen_x + add_x
  194.       self.y = battler.screen_y
  195.     end
  196.   end
  197. end
  198. #==============================================================================
  199. # ■ Scene_Battle
  200. #==============================================================================

  201. class Scene_Battle < Scene_Base
  202.   #--------------------------------------------------------------------------
  203.   # ● 结束处理
  204.   #--------------------------------------------------------------------------
  205.   alias hzhj_terminate_battle_arrow terminate
  206.   def terminate
  207.     @actor_arrow.dispose
  208.     @enemy_arrow.dispose
  209.     hzhj_terminate_battle_arrow
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 刷新所有窗口
  213.   #--------------------------------------------------------------------------
  214.   alias hzhj_update_all_windows_battle_arrow update_all_windows
  215.   def update_all_windows
  216.     hzhj_update_all_windows_battle_arrow
  217.     @actor_arrow.update
  218.     @enemy_arrow.update
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● 生成角色窗口
  222.   #--------------------------------------------------------------------------
  223.   def create_actor_window
  224.     viewport = @viewport #@spriteset.viewport1
  225.     @actor_arrow = Sprite_BattleArrow.new(:actor, viewport, false)
  226.     @actor_arrow.on_ok_method = method(:on_actor_ok)
  227.     @actor_arrow.on_cancel_method = method(:on_actor_cancel)
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ● 生成敌人窗口
  231.   #--------------------------------------------------------------------------
  232.   def create_enemy_window
  233.     viewport = @viewport #@spriteset.viewport1
  234.     @enemy_arrow = Sprite_BattleArrow.new(:enemy, viewport, false)
  235.     @enemy_arrow.on_ok_method = method(:on_enemy_ok)
  236.     @enemy_arrow.on_cancel_method = method(:on_enemy_cancel)
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 开始选择队友
  240.   #--------------------------------------------------------------------------
  241.   def select_actor_selection(can_select_all = false)
  242.     @actor_arrow.setup(can_select_all)
  243.     @skill_window.hide
  244.     @item_window.hide
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● 角色“确定”
  248.   #--------------------------------------------------------------------------
  249.   def on_actor_ok
  250.     target_index = @actor_arrow.select_all ? 65535 : @actor_arrow.index
  251.     BattleManager.actor.input.target_index = target_index
  252.     @skill_window.hide
  253.     @item_window.hide
  254.     @actor_arrow.visible = false
  255.     next_command
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ● 角色“取消”
  259.   #--------------------------------------------------------------------------
  260.   def on_actor_cancel
  261.     case @actor_command_window.current_symbol
  262.     when :skill
  263.       @skill_window.show.activate
  264.     when :item
  265.       @item_window.show.activate
  266.     end
  267.     @actor_arrow.visible = false
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● 开始选择敌人
  271.   #--------------------------------------------------------------------------
  272.   def select_enemy_selection(can_select_all = false)
  273.     @enemy_arrow.setup(can_select_all)
  274. #    @actor_command_window.hide
  275.     @skill_window.hide
  276.     @item_window.hide
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● 敌人“确定”
  280.   #--------------------------------------------------------------------------
  281.   def on_enemy_ok
  282.     target_index = @enemy_arrow.select_all ? 65535 : @enemy_arrow.index
  283.     BattleManager.actor.input.target_index = target_index
  284.     @skill_window.hide
  285.     @item_window.hide
  286.     @enemy_arrow.visible = false
  287.     next_command
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● 敌人“取消”
  291.   #--------------------------------------------------------------------------
  292.   def on_enemy_cancel
  293.     case @actor_command_window.current_symbol
  294.     when :attack
  295.       @actor_command_window.show.activate
  296.     when :skill
  297.       @skill_window.show.activate
  298.     when :status
  299.       @actor_command_window.show.activate
  300.     when :item
  301.       @item_window.show.activate
  302.     end
  303.     @enemy_arrow.visible = false
  304.   end
  305. end
复制代码

在graphics/system下放置这个图片文件

BattleArrow.png (3.91 KB, 下载次数: 42)

BattleArrow.png
技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2017-4-12
帖子
13
3
 楼主| 发表于 2017-4-13 08:12:02 | 只看该作者
CHAOSCLOUD 发表于 2017-4-12 23:25
追加一个脚本,战斗指针

在graphics/system下放置这个图片文件

感谢大大不过我试了一下有两个小问题。我用的敌人是行走图,光标好像不能准确指到敌人身上(那个小手指跟敌人之间差了一截),还有就是怎么已经死了的敌人也可以选定他们啊。。。

点评

第24到33行的数据,括号里调指针位置的xy轴,自己尝试数据吧  发表于 2017-4-13 11:40
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2017-4-12
帖子
13
4
 楼主| 发表于 2017-4-13 08:15:02 | 只看该作者
像这样,指针好像有点远,死了的还能选

QQ图片20170413081354.png (245.3 KB, 下载次数: 32)

QQ图片20170413081354.png

QQ图片20170413081406.png (244.29 KB, 下载次数: 30)

QQ图片20170413081406.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
帖子
30
5
发表于 2017-4-13 08:43:04 | 只看该作者
用XP风 “LNX11”吧,自带光标选择
http://peachround.com/rgss3/
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
20 小时
注册时间
2017-4-12
帖子
13
6
 楼主| 发表于 2017-4-13 14:56:56 | 只看该作者
CHAOSCLOUD 发表于 2017-4-12 23:25
追加一个脚本,战斗指针

在graphics/system下放置这个图片文件

好的,坐标改好了,谢谢,那么已经死了的敌人还可以选定的问题怎么解决呢??

点评

这个脚本里的光标就是每个敌人亮着的标志(选中的敌人会亮),还是说你一定要有个额外的光标在敌人的头上吗?  发表于 2017-4-15 13:10
找到了脸图战斗脚本,能选择敌人然而我怎么没看到光标QAQ  发表于 2017-4-15 09:43
也只能就我目前工程里有的脚本去帮他了,至于肉包你说的脚本,我倒有兴趣去搜搜看W  发表于 2017-4-14 01:43
其实专门为横版打造的脸图战斗脚本就定义了光标选择敌人,而且是完美兼容的  发表于 2017-4-13 22:49
可以选择,但顺位往上攻击的,这个是我工程中别人的脚本,我也是借鉴而不是原来作者。你这个问题我就帮不到了= =  发表于 2017-4-13 15:44
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
407 小时
注册时间
2011-4-10
帖子
359
7
发表于 2017-4-13 23:40:24 | 只看该作者
MV都出了那么久了,人家自带成熟的横版战斗系统,为何还要研究造轮子?而且是研究别人造的轮子。

点评

说的好有道理,我竟无言以对。  发表于 2017-4-17 08:07
有點晚回復抱歉~ 我覺得你這麼新潮的想法可以考慮退出RM方面的開發改用其他更先進的工具! 屆時你便可以傲視66RPG所有用戶,不限於此區。  发表于 2017-4-16 23:27
既然要学习,为什么不挑新的学呢?去学一个注定已经落伍的东西,那不是浪费时间浪费生命嘛!学习是值得鼓励,但不要无脑学,得找对方向。  发表于 2017-4-14 11:58
MV沒有不好,我只是回答為什麼要研究,以及勸別人放棄學習是不對的! 學習之後就算換工具也會自己造,造完了也是能給別人用,我覺得問題在心態上  发表于 2017-4-14 08:32
好吧,就算是侵略好了。我觉得现在还守着VA研究、学习,已经不合时宜了。毕竟现在人手一部智能手机,做出的游戏能方便地在手机上玩儿才是正途...  发表于 2017-4-14 07:23
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
8
发表于 2017-4-14 08:07:08 | 只看该作者
sutao80216 发表于 2017-4-13 23:40
MV都出了那么久了,人家自带成熟的横版战斗系统,为何还要研究造轮子?而且是研究别人造的轮子。 ...

MV可塑性不强,没有VA专业呀

点评

这话说给不会写插件的人听,他一定会信。  发表于 2017-4-14 11:59
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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