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

Project1

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

[已经解决] 如何让XP支持VX行走图

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
跳转到指定楼层
1
发表于 2009-7-27 17:37:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5星屑
因为写脚本的人私奔了,自己搜了半天也找不到.
要求用脚本让XP支持VX的行走图,就是3*4的那种.

放心我不发没有悬赏的提问帖......

最佳答案

查看完整内容

话说我下午回的3个帖子都没掉了,汗```不过也好!!! LS的做法很好``不过VX的行走图里面是分多个人物的,所以RMXP是不支持选择第几个,还需要外界设置来调用下.. 需要设置的地方是 数据库角色名字的地方/事件名字的地方 如果该角色或事件的行走图是RMXP默认行走图则无需设置什么 如果是RMVX行走图`` 请把那张VX图看做一个坐标系以最左上角的那个动作为[0,0]看 则 角色名=[X坐标,Y坐标,X向总帧数,Y向总帧数,人物X向总帧数] 所以你要 ...

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
93 小时
注册时间
2008-5-16
帖子
745
2
发表于 2009-7-27 17:37:32 | 只看该作者
本帖最后由 ★_茄孓 于 2009-7-28 18:30 编辑

话说我下午回的3个帖子都没掉了,汗```不过也好!!!
LS的做法很好``不过VX的行走图里面是分多个人物的,所以RMXP是不支持选择第几个,还需要外界设置来调用下..

范例.rar (207.3 KB, 下载次数: 310)

需要设置的地方是 数据库角色名字的地方/事件名字的地方
如果该角色或事件的行走图是RMXP默认行走图则无需设置什么
如果是RMVX行走图``
请把那张VX图看做一个坐标系以最左上角的那个动作为[0,0]看 则
角色名=[X坐标,Y坐标,X向总帧数,Y向总帧数,人物X向总帧数]
所以你要
第1个人物的话请设定
阿尔西斯=[0,0,12,8,3]
第2个人物的话请设定
阿尔西斯=[3,0,12,8,3]
第4个人物的话请设定
阿尔西斯=[9,0,12,8,3]
第5个人物的话请设定
阿尔西斯=[0,4,12,8,3]
第6个人物的话请设定
阿尔西斯=[3,4,12,8,3]
事件的设置和角色的设置一样!

复制代码到MAIN前

  1. class Game_Actor < Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_reader   :src
  6.   #--------------------------------------------------------------------------
  7.   # ● 设置
  8.   #     actor_id : 角色 ID
  9.   #--------------------------------------------------------------------------
  10.   def setup(actor_id)
  11.     actor = $data_actors[actor_id]
  12.     @actor_id = actor_id
  13.     @name = actor.name
  14.     @src = [0,0,4,4,4]
  15.     if @name.include?("=")
  16.       @src = eval(@name.split(/=/)[1])
  17.       @name = @name.split(/=/)[0]
  18.     end
  19.     @character_name = actor.character_name
  20.     @character_hue = actor.character_hue
  21.     @battler_name = actor.battler_name
  22.     @battler_hue = actor.battler_hue
  23.     @class_id = actor.class_id
  24.     @weapon_id = actor.weapon_id
  25.     @armor1_id = actor.armor1_id
  26.     @armor2_id = actor.armor2_id
  27.     @armor3_id = actor.armor3_id
  28.     @armor4_id = actor.armor4_id
  29.     @level = actor.initial_level
  30.     @exp_list = Array.new(101)
  31.     make_exp_list
  32.     @exp = @exp_list[@level]
  33.     @skills = []
  34.     @hp = maxhp
  35.     @sp = maxsp
  36.     @states = []
  37.     @states_turn = {}
  38.     @maxhp_plus = 0
  39.     @maxsp_plus = 0
  40.     @str_plus = 0
  41.     @dex_plus = 0
  42.     @agi_plus = 0
  43.     @int_plus = 0
  44.     # 学会特技
  45.     for i in 1..@level
  46.       for j in $data_classes[@class_id].learnings
  47.         if j.level == i
  48.           learn_skill(j.skill_id)
  49.         end
  50.       end
  51.     end
  52.     # 刷新自动状态
  53.     update_auto_state(nil, $data_armors[@armor1_id])
  54.     update_auto_state(nil, $data_armors[@armor2_id])
  55.     update_auto_state(nil, $data_armors[@armor3_id])
  56.     update_auto_state(nil, $data_armors[@armor4_id])
  57.   end
  58. end

  59. class Game_Event < Game_Character
  60.   #--------------------------------------------------------------------------
  61.   # ● 定义实例变量
  62.   #--------------------------------------------------------------------------
  63.   attr_reader   :name
  64.   attr_reader   :src
  65.   #--------------------------------------------------------------------------
  66.   # ● 初始化对像
  67.   #     map_id : 地图 ID
  68.   #     event  : 事件 (RPG::Event)
  69.   #--------------------------------------------------------------------------
  70.   def initialize(map_id, event)
  71.     super()
  72.     @map_id = map_id
  73.     @event = event
  74.     @name = event.name
  75.     @src = [0,0,4,4,4]
  76.     if @name.include?("=")
  77.       @src = eval(@name.split(/=/)[1])
  78.       @name = @name.split(/=/)[0]
  79.     end  
  80.     @id = @event.id
  81.     @erased = false
  82.     @starting = false
  83.     @through = true
  84.     # 初期位置的移动
  85.     moveto(@event.x, @event.y)
  86.     refresh
  87.   end
  88. end

  89. class Sprite_Character < RPG::Sprite
  90.   #--------------------------------------------------------------------------
  91.   # ● 更新画面
  92.   #--------------------------------------------------------------------------
  93.   def update
  94.     super
  95.     if @character != nil
  96.       if @character.is_a?(Game_Player)
  97.       @bitmap_x = $game_party.actors[0].src[0].to_i
  98.       @bitmap_y = $game_party.actors[0].src[1].to_i
  99.       @bitmap_width_pattern = $game_party.actors[0].src[2].to_i
  100.       @bitmap_height_pattern = $game_party.actors[0].src[3].to_i
  101.     elsif @character.is_a?(Game_Event)
  102.       @bitmap_x = @character.src[0].to_i
  103.       @bitmap_y = @character.src[1].to_i
  104.       @bitmap_width_pattern = @character.src[2].to_i
  105.       @bitmap_height_pattern = @character.src[3].to_i
  106.     end
  107.     end
  108.     if @tile_id != @character.tile_id or
  109.        @character_name != @character.character_name or
  110.        @character_hue != @character.character_hue
  111.       @tile_id = @character.tile_id
  112.       @character_name = @character.character_name
  113.       @character_hue = @character.character_hue
  114.       if @tile_id >= 384
  115.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  116.           @tile_id, @character.character_hue)
  117.         self.src_rect.set(0, 0, 32, 32)
  118.         self.ox = 16
  119.         self.oy = 32
  120.       else
  121.         self.bitmap = RPG::Cache.character(@character.character_name,
  122.           @character.character_hue)
  123.         @cw = bitmap.width / @bitmap_width_pattern
  124.         @ch = bitmap.height / @bitmap_height_pattern
  125.         self.ox = @cw / 2
  126.         self.oy = @ch
  127.       end
  128.     end
  129.     self.visible = (not @character.transparent)
  130.     if @tile_id == 0
  131.       sx = @character.pattern * @cw + @bitmap_x * 32
  132.       sy = (@character.direction - 2) / 2 * @ch + @bitmap_y * 32
  133.       self.src_rect.set(sx, sy, @cw, @ch)
  134.     end
  135.     self.x = @character.screen_x
  136.     self.y = @character.screen_y
  137.     self.z = @character.screen_z(@ch)
  138.     self.opacity = @character.opacity
  139.     self.blend_type = @character.blend_type
  140.     self.bush_depth = @character.bush_depth
  141.     if @character.animation_id != 0
  142.       animation = $data_animations[@character.animation_id]
  143.       animation(animation, true)
  144.       @character.animation_id = 0
  145.     end
  146.   end
  147. end

  148. class Game_Character
  149.   #--------------------------------------------------------------------------
  150.   # ● 刷新画面
  151.   #--------------------------------------------------------------------------
  152.   def update
  153.     if jumping?
  154.       update_jump
  155.     elsif moving?
  156.       update_move
  157.     else
  158.       update_stop
  159.     end
  160.     if @anime_count > 18 - @move_speed * 2
  161.       if not @step_anime and @stop_count > 0
  162.         @pattern = @original_pattern
  163.       else
  164.         @bitmap_pattern = $game_party.actors[0].src[4].to_i
  165.         @pattern = (@pattern + 1) % @bitmap_pattern
  166.       end
  167.       @anime_count = 0
  168.     end
  169.     if @wait_count > 0
  170.       @wait_count -= 1
  171.       return
  172.     end
  173.     if @move_route_forcing
  174.       move_type_custom
  175.       return
  176.     end
  177.     if @starting or lock?
  178.       return
  179.     end
  180.     if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
  181.       case @move_type
  182.       when 1  
  183.         move_type_random
  184.       when 2
  185.         move_type_toward_player
  186.       when 3  
  187.         move_type_custom
  188.       end
  189.     end
  190.   end
  191. end
复制代码
回复

使用道具 举报

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

3
发表于 2009-7-27 18:02:31 | 只看该作者
把行走图拼成XP格式不就完事了吗?

提示:可以用PS的批处理一次过处理大小相同的行走图...
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
0 小时
注册时间
2009-7-27
帖子
4
4
发表于 2009-7-27 18:05:30 | 只看该作者
哦,这个我知道啊。因为VX用的4*3的行走图,XP用的4*4,列数不一样的……要用ps把XP少的一列补上就行了。
类似于XP:迈左脚,停,迈右脚,停
      VX:迈左脚,停,迈右脚
就是酱。
话说我第一次注册的时候不知道用户名还可用用中文……所以,还是请大家记住我的中文名字吧
--------孤山映雪-------
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
5
 楼主| 发表于 2009-7-27 18:07:40 | 只看该作者
这么说......没有脚本解决的办法了吗?

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
0 小时
注册时间
2009-7-27
帖子
4
6
发表于 2009-7-27 18:11:02 | 只看该作者
呃,一时匆忙,误解了LZ的意思……抱歉啊……
话说本人是脚本小白……:L
帮顶ing……
话说我第一次注册的时候不知道用户名还可用用中文……所以,还是请大家记住我的中文名字吧
--------孤山映雪-------
回复

使用道具 举报

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

7
发表于 2009-7-27 18:17:34 | 只看该作者
这么说......没有脚本解决的办法了吗?
霜冻之狼 发表于 2009-7-27 18:07

这类脚本我没见过,但不能断定没有...
祝你早日找到...
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6645
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

8
发表于 2009-7-27 18:43:11 | 只看该作者
XP的行走图是一个人一个文件
而VX的是N个人的合在一个文件里
好像是8个 一排4个 有2排 - -
要这样支持的话在数据库里设置又会称谓另外一个头痛的事情了
如果把VX的图也弄成一个人一个文件的话 那还不如就干脆多添加一列

硬要改脚本的话
Game_Character 2里的
        @pattern = (@pattern + 1) % 4
和Sprite_Character里的
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
      sx = @character.pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
做点手脚就好了吧~
character我还没怎么研究过 初步估计就这样~











你知道得太多了

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
54
在线时间
36 小时
注册时间
2006-6-13
帖子
237
9
发表于 2009-7-27 18:56:15 | 只看该作者
觉得PS一下算了~~~~
脚本的话应该会涉及到许多地方吧
我也是脚步盲~~~
目前任务:学习
目前进度:没有
最新说明:MUD嘛~~自由度~

原来泥巴更容易挖坑
回复

使用道具 举报

Lv1.梦旅人


梦石
0
星屑
89
在线时间
24 小时
注册时间
2006-5-27
帖子
11425

贵宾

10
发表于 2009-7-27 19:02:50 | 只看该作者
话说我从一开始就知道楼主在求脚本……不然我早转区了- -
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 23:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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