Project1

标题: SideView100改纵版 [打印本页]

作者: tan12345    时间: 2014-2-16 13:45
标题: SideView100改纵版
最近在用SideView100来做游戏,可是发现大家都把SideView100用滥了,满大街都是{:2_270:} 于是,我把SideView100的一些设置以及脚本改动了一下,变成里这样,不知道有人喜欢吗?
战斗开始:

攻击动作:

攻击结束返回:


由于附件太大,所以我放到百度网盘里了,以下是地址:
http://pan.baidu.com/s/1pJjSVB9
作者: 寂静的夜里    时间: 2014-2-16 15:03
这样看着也不错{:2_262:}
作者: 余烬之中    时间: 2014-2-16 16:15
我在哪里看到过类似的(一样思路的?)
作者: 渝川    时间: 2014-2-25 22:54
改一下可以作为口袋妖怪的战斗系统唉(类似)
作者: 凌千山    时间: 2014-3-18 00:12
本帖最后由 凌千山 于 2014-3-18 00:48 编辑

分辨率改了之后,怎么改敌人的位置啊?

还有为什么范例用魔法没事,我这里一用魔法就出错?
作者: tan12345    时间: 2014-3-18 09:18
凌千山 发表于 2014-3-18 00:12
分辨率改了之后,怎么改敌人的位置啊?

还有为什么范例用魔法没事,我这里一用魔法就出错? ...

分辨率的问题貌似论坛里有脚本解决敌人坐标的问题;
至于用魔法就出错,你看看是不是因为你缺少使用魔法时播放的动画导致的?最好的解决办法是将数据库-动画扩展至999
作者: 凌千山    时间: 2014-3-18 13:16
tan12345 发表于 2014-3-18 09:18
分辨率的问题貌似论坛里有脚本解决敌人坐标的问题;
至于用魔法就出错,你看看是不是因为你缺少使用魔法 ...

好神奇,魔法的问题解决了。
但是那个解决敌人坐标的脚本我用了,但是只能原版和横版的战斗有效,用你这个就出错。
估计脚本有冲突吧,还有别的脚本吗?
BTW,这个纵版很赞,谢谢分享。
如果还打算进一步完善什么的话,可以考虑将下面血条等也改成竖的,每个角色划一块区域然后加上头像,这样更美观。
作者: tan12345    时间: 2014-3-18 16:00
凌千山 发表于 2014-3-18 13:16
好神奇,魔法的问题解决了。
但是那个解决敌人坐标的脚本我用了,但是只能原版和横版的战斗有效,用你这 ...

纵版只是更改了设定,以及几行脚本,并没有改动太多,你有原版的sideview1.00吗?你试试敌人坐标脚本和那个一起看看有没有冲突吧,另外,你说的那些其余的美化功能,可以用其他脚本一起整合来实现的。
作者: 凌千山    时间: 2014-3-18 17:18
tan12345 发表于 2014-3-18 16:00
纵版只是更改了设定,以及几行脚本,并没有改动太多,你有原版的sideview1.00吗?你试试敌人坐标脚本和那 ...

刚接触RM没几天,什么是sideview都不知道{:2_276:}
战斗的肖像找到了一个脚本,但效果是这样的

想让HP等放在肖像右边的空白处,可是不懂脚本,不知道怎么改
作者: tan12345    时间: 2014-3-18 21:59
凌千山 发表于 2014-3-18 17:18
刚接触RM没几天,什么是sideview都不知道
战斗的肖像找到了一个脚本,但效果是这样的

这个我无能为力,你call下别的大神帮你改吧……
作者: 凌千山    时间: 2014-3-18 22:43
tan12345 发表于 2014-3-18 21:59
这个我无能为力,你call下别的大神帮你改吧……

谢谢,既然暂时解决不了就先不管了,先熟悉了基础的功能再考虑美化吧
作者: jezad    时间: 2014-4-8 18:27
有意思!
作者: 莲花座的    时间: 2014-4-12 18:28


   HOHO~~~~~~

作者: 游弋    时间: 2014-4-12 21:04
这是……VA仿XP啊
作者: 1397308421    时间: 2014-4-19 19:19
请问怎么把显示的行走图改成脸图

作者: tan12345    时间: 2014-4-19 21:02
1397308421 发表于 2014-4-19 19:19
请问怎么把显示的行走图改成脸图

这个脚本暂时不能脸图替代行走图,有另外的脚本实现VA仿XP战斗界面
作者: 1397308421    时间: 2014-6-15 13:25
请问怎么把怪物也用行走图来显示
作者: 落华蜂    时间: 2014-12-5 14:08
@tan12345
问一下,这个脚本里面的charactor文件夹里面的【 actor1_1】中的“actor1”部分是怎么确定是主角1的?因为我在原版的日版脚本里面,看到它的动画文件是 $八云紫_1 , 就是前面部分的“八云紫”角色名字对应的是数据库中八云紫那个角色, 但是在脚本里面哪里判定的?我找了整篇也没找到。
也就是说……我想改目录中的角色名判定,如改成 fighter1_1 为第一个角色的动画的话 在脚本哪里改?
另外可以不在character里面吗,自己新建一个文件夹当做战斗图文件夹行吗?  
作者: tan12345    时间: 2014-12-7 11:13
本帖最后由 tan12345 于 2014-12-7 11:35 编辑
落华蜂 发表于 2014-12-5 14:08
@tan12345
问一下,这个脚本里面的charactor文件夹里面的【 actor1_1】中的“actor1”部分是怎么确定是主 ...


首先,查看下脚本:
"倒れ"            => ["motion", "_1",    0,   0,   0,   12,   0, true,false, "" ],
这一句的意思是:死亡图像(其实就是倒地的图像)使用的是行走图的文件名+_1来形成倒地的图像。
至于actor1怎么确定主角,他对应的是主角的行走图文件名,比如角色1使用的行走图文件的文件名是actor1,那么对应的,他的死亡倒地图像就是actor1_1
你使用的文件可以不放在character文件夹里,但是比较麻烦,而且要会脚本,分几步,首先要在Cache这个类里新增自己的文件读写方法,具体可以参考Cache里的内容
作者: chd114    时间: 2014-12-14 10:07
我需要结合横版和纵版视情况切换(BOSS战纵版)···把默认的横版改成纵版需要修改哪些地方呢?
作者: tan12345    时间: 2014-12-14 21:09
chd114 发表于 2014-12-14 10:07
我需要结合横版和纵版视情况切换(BOSS战纵版)···把默认的横版改成纵版需要修改哪些地方呢? ...

改的地方不是很多,但是最重要的第一步:人物坐标,横版的坐标和纵版的人物站位坐标不一样,这个在脚本里不好通过一个开关就调整(除非比较熟悉原横版代码)。
我这样说吧,横版改成纵版我的改动如下:人物站位坐标改动,人物朝向、行动x、y坐标变更,只是设定上的变更,核心代码好像只修改了1句,其他都没变化。
作者: chd114    时间: 2014-12-14 21:11
tan12345 发表于 2014-12-14 04:09
改的地方不是很多,但是最重要的第一步:人物坐标,横版的坐标和纵版的人物站位坐标不一样,这个在脚本里 ...

我在外站找到一个直接转换成纵版的脚本···
  1. #===============================================================================
  2. # Side-View Battle System(Patch Behind)
  3. # By Jet10985 (Jet)
  4. #===============================================================================
  5. # This script will allow you to have battle where all the actor's sprites are
  6. # display on the behind of the characters.
  7. # This script has: 10 customization options.
  8. #===============================================================================
  9. # Overwritten Methods
  10. # Scene_Battle: show_attack_animation
  11. # Spriteset_Battle: update_actors
  12. #-------------------------------------------------------------------------------
  13. # Aliased methods:
  14. # Spriteset_Battle: create_actors, create_enemies
  15. # Sprite_Character: initialize, update, dispose, start_new_effect
  16. # Scene_Battle: use_item, next_command, prior_command
  17. # Game_Character: screen_x, screen_y
  18. #===============================================================================
  19. module Jet
  20.   module Sideview
  21.     #===========================================================================
  22.     # ENEMY OPTIONS
  23.     #===========================================================================
  24.     # These are the attack animations for enemies when they use a regular attack.
  25.     # It follows this format: enemy_id => animation_id
  26.     ENEMY_ATK_ANIMS = {
  27.     }
  28.     # This is the default enemy attack animation, used when they do not have a
  29.     # specific attack animation above.
  30.     ENEMY_ATK_ANIMS.default = 1
  31.     # This is a list of enemies whose portraits should be flipped in battle.
  32.     FLIPPED_ENEMIES = [2, 3, 4, 5, 8, 10, 12, 13, 14, 16, 17, 18, 19]
  33.     #===========================================================================
  34.     # ACTOR OPTIONS
  35.     #===========================================================================
  36.     # Should the player sprite have a shadow beneath them?
  37.     PLAYER_SHADOW = true
  38.     # These are sprite changes depending on state infliction.
  39.     # It follows this format: state_id => "sprite_appention"
  40.     # This means if the state is inflicted, the sprite will look for a graphic
  41.     # that is the same name as the character's sprite, plus the appended option.
  42.     # EX: Ralph's sprite's name is $ralph. Ralph gets knocked-out. This means
  43.     # state 1 was inflicted, and my below config for 1 was: 1 => "_dead"
  44.     # Now, his shown sprite will be $ralph_dead. If the sprite does not exist,
  45.     # no change will be made.
  46.     # The sprite index will be the same as the actor's.
  47.     STATE_SPRITES = {
  48.     1 => "_dead",
  49.     2 => "_poison",
  50.     3 => "_blind"
  51.     }
  52.     #===========================================================================
  53.     # GENERAL_OPTIONS
  54.     #===========================================================================
  55.     # This is the animation displayed when a skill is about to be used.
  56.     SKILL_ANIMATION = 43
  57.     # This is the animation displayed when an item is about to be used.
  58.     ITEM_ANIMATION = 43
  59.     # These are the animations played when a state is inflicted.
  60.     # It follows this format: state_id => animation_id
  61.     STATE_ANIMATIONS = {
  62.     1 => 56,
  63.     2 => 50,
  64.     3 => 51
  65.     }
  66.     #===========================================================================
  67.       # FIELD OPTIONS
  68.     #===========================================================================
  69.     # This is where the line-up begins. [x, y]. The higher the x, the further
  70.     # right and the higher the y the further down.
  71.     FIELD_POS = [275, 280]
  72.     # This is how far down, and to the right each player is from the previous
  73.     # actor. [x, y]. Same rules as above.
  74.     FIELD_SPACING = [50, 0]
  75.   end
  76. end
  77. #===============================================================================
  78. # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
  79. #===============================================================================
  80. ($imported ||= {})[:jet] ||= {}
  81. $imported[:jet][:Sideview] = true
  82. class Game_Character
  83.   attr_accessor :step_anime
  84.   %w[screen_x screen_y].each {|a|
  85.   aStr = %Q{
  86.   alias jet6372_#{a} #{a}
  87.   def #{a}(*args, &block)
  88.   $BTEST ? 0 : jet6372_#{a}(*args, &block)
  89.   end
  90.   }
  91.   module_eval(aStr)
  92.   }
  93. end
  94. class Game_Actor
  95.   def animation_id=(t)
  96.     self.battle_sprite.start_animation($data_animations[t]) rescue nil
  97.   end
  98. end
  99. class Game_Battler
  100.   def battle_sprite
  101.     return nil unless SceneManager.scene_is?(Scene_Battle)
  102.     SceneManager.scene.spriteset.battler_sprites.each {|a|
  103.     return a if a.battler == self
  104.     }
  105.     return nil
  106.   end
  107. end
  108. class Spriteset_Battle
  109.   alias jet2847_create_enemies create_enemies
  110.   def create_enemies(*args, &block)
  111.     jet2847_create_enemies(*args, &block)
  112.     @enemy_sprites.each {|a|
  113.     a.mirror = Jet::Sideview::FLIPPED_ENEMIES.include?(a.battler.enemy.id)
  114.     }
  115.   end
  116.   alias jet3835_create_actors create_actors
  117.   def create_actors(*args, &block)
  118.     jet3835_create_actors(*args, &block)
  119.     @jet_party = $game_party.members
  120.     @actor_sprites.each {|a|
  121.     a.dispose
  122.     }
  123.     @actor_sprites = []
  124.     $game_party.members.each {|a|
  125.     f = Game_Character.new
  126.     f.set_graphic(a.character_name, a.character_index)
  127.     f.step_anime = true
  128.     f.set_direction(8)
  129.     n = Sprite_Character.new(@viewport1, f)
  130.     n.jet_x = Jet::Sideview::FIELD_POS[0] + a.index * Jet::Sideview::FIELD_SPACING[0]
  131.     n.jet_y = Jet::Sideview::FIELD_POS[1] + a.index * Jet::Sideview::FIELD_SPACING[1]
  132.     n.battler = a
  133.     n.battle_sprite = true
  134.     if Jet::Sideview::PLAYER_SHADOW
  135.       v = Sprite.new(nil)
  136.       v.bitmap = Cache.system("Shadow")
  137.       n.shadow_sprite = v
  138.     end
  139.     @actor_sprites.push(n)
  140.     }
  141.   end
  142.   def update_actors
  143.     if @jet_party != $game_party.members
  144.       @actor_sprites.each {|a|
  145.       a.dispose
  146.       }
  147.       @actor_sprites = []
  148.       create_actors
  149.     end
  150.     @actor_sprites.each {|a| a.update }
  151.   end
  152. end
  153. class Sprite_Character
  154.   attr_accessor :battle_sprite, :jet_x, :jet_y, :shadow_sprite, :battler
  155.   alias jet4646_initialize initialize
  156.   def initialize(*args, &block)
  157.     @battle_sprite = false
  158.     jet4646_initialize(*args, &block)
  159.   end
  160.   alias jet3645_update update
  161.   def update(*args, &block)
  162.     jet3645_update(*args, &block)
  163.     if @battle_sprite
  164.       @character.step_anime = [email protected]?
  165.       @character.update
  166.       self.x = @jet_x
  167.       self.y = @jet_y
  168.       if [email protected]?
  169.         f = @battler.states.dup
  170.         f.sort! {|a, b|
  171.         a.priority <=> b.priority
  172.         }.reverse!
  173.         for i in 0...f.size
  174.           a = Jet::Sideview::STATE_SPRITES[f[i].id]
  175.           next if a.nil?
  176.           b = (Cache.character(@character.character_name + a) rescue false)
  177.           next unless b
  178.           index = @character.character_index
  179.           @character.set_graphic(@character.character_name + a, index)
  180.           break
  181.         end
  182.       end
  183.       if !@shadow_sprite.nil?
  184.         @shadow_sprite.x = self.x - @shadow_sprite.width / 2
  185.         @shadow_sprite.y = self.y - 28
  186.         @shadow_sprite.visible = self.visible
  187.         @shadow_sprite.viewport = self.viewport
  188.         @shadow_sprite.z = self.z - 1
  189.       end
  190.     end
  191.   end
  192.   alias jet5484_dispose dispose
  193.   def dispose(*args, &block)
  194.     @shadow_sprite.dispose if !@shadow_sprite.nil?
  195.     jet5484_dispose(*args, &block)
  196.   end
  197.   def move_x(times, amount)
  198.     i = 0
  199.     until i == times
  200.       self.jet_y += amount
  201.       i += 1
  202.       [Graphics, SceneManager.scene.spriteset].each {|a| a.update }
  203.     end
  204.   end
  205.   def effect?
  206.     false
  207.   end
  208. end
  209. class Game_Enemy
  210.   def atk_animation_id1
  211.     return Jet::Sideview::ENEMY_ATK_ANIMS[@enemy_id]
  212.   end
  213.   def atk_animation_id2
  214.     return 0
  215.   end
  216. end
  217. class Scene_Battle
  218.   attr_reader :spriteset
  219.   alias jet2711_use_item use_item
  220.   def use_item(*args, &block)
  221.     if @subject.is_a?(Game_Actor)
  222.       if [email protected]_action.guard?
  223.         @subject.battle_sprite.move_x(11, -4)
  224.       end
  225.     end
  226.     if [email protected]_action.guard? && [email protected]_action.attack?
  227.       if @subject.current_action.item.is_a?(RPG::Item)
  228.         n = $data_animations[Jet::Sideview::ITEM_ANIMATION]
  229.       else
  230.         n = $data_animations[Jet::Sideview::SKILL_ANIMATION]
  231.       end
  232.       @subject.battle_sprite.start_animation(n)
  233.       wait_for_animation
  234.     end
  235.     jet2711_use_item(*args, &block)
  236.     if @subject.is_a?(Game_Actor)
  237.       if [email protected]_action.guard?
  238.         @subject.battle_sprite.move_x(11, 4)
  239.       end
  240.     end
  241.   end
  242.   def show_attack_animation(targets)
  243.     aid1 = @subject.atk_animation_id
  244.     aid2 = @subject.atk_animation_id2
  245.     show_normal_animation(targets, aid1, false)
  246.     show_normal_animation(targets, aid2, true)
  247.   end
  248.   %w[next prior].each {|a|
  249.   aStr = %Q{
  250.   alias jet3734_#{a}_command #{a}_command
  251.   def #{a}_command(*args, &block)
  252.     f = BattleManager.actor
  253.     f.battle_sprite.move_x(6, 4) if f.is_a?(Game_Actor)
  254.     jet3734_#{a}_command(*args, &block)
  255.     f = BattleManager.actor
  256.     f.battle_sprite.move_x(6, -4) if f.is_a?(Game_Actor)
  257.   end
  258.   }
  259.   module_eval(aStr)
  260.   }
  261. end
  262. class Game_Action
  263.   def guard?
  264.     item == $data_skills[subject.guard_skill_id]
  265.   end
  266. end
  267. if $imported[:jet][:BatlePopUps]
  268.   class Sprite_Character
  269.     attr_accessor :popups
  270.     alias jet4758_initialize initialize
  271.     def initialize(*args, &block)
  272.       @popups = []
  273.       @updating_sprites = []
  274.       @popup_wait = 0
  275.       jet4758_initialize(*args, &block)
  276.     end
  277.     alias jet7467_update update
  278.     def update(*args, &block)
  279.       jet7467_update(*args, &block)
  280.       if @popup_wait == 0
  281.         if [email protected]?
  282.           @updating_sprites.push(@popups.pop)
  283.           @popup_wait = 30
  284.         end
  285.       else
  286.         @popup_wait -= 1
  287.       end
  288.       @updating_sprites.each {|a|
  289.       a.visible = true if !a.visible
  290.       a.update
  291.       @updating_sprites.delete(a) if a.disposed?
  292.       }
  293.       end
  294.       alias jet5483_dispose dispose
  295.       def dispose(*args, &block)
  296.         (@updating_sprites + @popups).each {|a| a.dispose }
  297.         jet5483_dispose(*args, &block)
  298.       end
  299.       alias jet3745_setup_new_effect setup_new_effect
  300.       def setup_new_effect(*args, &block)
  301.         jet3745_setup_new_effect(*args, &block)
  302.         do_sprite_popups
  303.       end
  304.       def make_popup(text, color)
  305.         @popups.unshift(Sprite_JetPopup.new(text.to_s, color, self))
  306.       end
  307.       def do_sprite_popups
  308.         return if @battler.nil?
  309.         if @battler_struct.nil?
  310.           @battler_struct = Struct.new(:hp, :mp, :tp).new(0, 0, 0)
  311.           @battler_struct.hp = @battler.hp
  312.           @battler_struct.mp = @battler.mp
  313.           @battler_struct.tp = @battler.tp
  314.         end
  315.         check_success_popup
  316.         check_hp_popup
  317.         check_mp_popup
  318.         check_tp_popup
  319.       end
  320.       def check_success_popup
  321.         if @battler.result.success
  322.           if @battler.result.critical
  323.             make_popup(Jet::BattlePopUps::CRITICAL_TEXT, Jet::BattlePopUps::CRITICAL_COLOR)
  324.           elsif @battler.result.missed
  325.             make_popup(Jet::BattlePopUps::MISSED_TEXT, Jet::BattlePopUps::MISS_COLOR)
  326.           elsif @battler.result.evaded
  327.             make_popup(Jet::BattlePopUps::EVADED_TEXT, Jet::BattlePopUps::EVADE_COLOR)
  328.           end
  329.           @battler.result.clear_hit_flags
  330.         end
  331.       end
  332.       def check_hp_popup
  333.         if @battler_struct.hp != @battler.hp
  334.           f = @battler_struct.hp - @battler.hp
  335.           if f > 0
  336.             make_popup(Jet::BattlePopUps::HURT_TEXT + f.to_s, Jet::BattlePopUps::HURT_COLOR)
  337.           elsif f < 0
  338.             make_popup(Jet::BattlePopUps::HEAL_TEXT + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR)
  339.           end
  340.           @battler_struct.hp = @battler.hp
  341.         end
  342.       end
  343.       def check_mp_popup
  344.         if @battler_struct.mp != @battler.mp
  345.           f = @battler_struct.mp - @battler.mp
  346.         if f > 0
  347.           make_popup(Jet::BattlePopUps::HURT_TEXT_MP + f.to_s, Jet::BattlePopUps::HURT_COLOR_MP)
  348.         elsif f < 0
  349.           make_popup(Jet::BattlePopUps::HEAL_TEXT_MP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_MP)
  350.         end
  351.         @battler_struct.mp = @battler.mp
  352.       end
  353.     end

  354.     def check_tp_popup
  355.       if @battler_struct.tp != @battler.tp
  356.         f = (@battler_struct.tp - @battler.tp).round
  357.         if f > 0
  358.           make_popup(Jet::BattlePopUps::HURT_TEXT_TP + f.to_s, Jet::BattlePopUps::HURT_COLOR_TP)
  359.         elsif f < 0
  360.           make_popup(Jet::BattlePopUps::HEAL_TEXT_TP + f.abs.to_s, Jet::BattlePopUps::HEAL_COLOR_TP)
  361.         end
  362.         @battler_struct.tp = @battler.tp
  363.       end
  364.     end
  365.   end
  366. end
复制代码
如果按照你的改法动这个脚本,那这一段脚本里有哪些是不需要的呢?
作者: grammy416    时间: 2014-12-19 01:36
看起来不错啊!
作者: tan12345    时间: 2014-12-20 22:55
chd114 发表于 2014-12-14 21:11
我在外站找到一个直接转换成纵版的脚本···如果按照你的改法动这个脚本,那这一段脚本里有哪些是不需要 ...

这2个脚本是不一样的,建议你这样弄,横版用论坛里的那个八紫云那个,纵版用你贴出来这个,然后设定个变量(或开关),当变量(开关)是1(开)时是纵版,纵版脚本生效,变量(开关)是0(关)时是横版,横版脚本生效。
作者: chd114    时间: 2014-12-20 22:58
tan12345 发表于 2014-12-20 05:55
这2个脚本是不一样的,建议你这样弄,横版用论坛里的那个八紫云那个,纵版用你贴出来这个,然后设定个变 ...

呃···这个外站的脚本我发现BUG了···所以还是要参考这个重新弄呢···那你修改时候有注释改动的地方吗?
作者: 1561496327    时间: 2014-12-21 09:42
我在日站看过类似的纵版脚本
作者: tan12345    时间: 2014-12-21 10:24
chd114 发表于 2014-12-20 22:58
呃···这个外站的脚本我发现BUG了···所以还是要参考这个重新弄呢···那你修改时候有注释改动的地 ...

不算BUG,你直接用的时候会报错,你查到报错的地方,他是漏打了一个1,本来是xxxxid1的,他少打了个1,只是xxxxid,你在后面加个1就不报错了。
作者: chd114    时间: 2014-12-21 13:13
tan12345 发表于 2014-12-20 17:24
不算BUG,你直接用的时候会报错,你查到报错的地方,他是漏打了一个1,本来是xxxxid1的,他少打了个1,只 ...

米有报错···是敌人和角色多了就会卡住···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1