Project1

标题: 谁能帮我把此脚本转化为XP版的? [打印本页]

作者: 帕克    时间: 2011-5-3 21:14
标题: 谁能帮我把此脚本转化为XP版的?
本帖最后由 帕克 于 2011-5-3 21:15 编辑

http://rpg.blue/forum.php?mod=vi ... B%E8%A7%92%E8%89%B2

这个脚本应该挺简单的吧= =,从VX的RGSS2转化为RGSS。而且内容不多……
不过我是RGSS2脚本盲。。要不然我自己改了。。。。

不好意思,没悬赏,经验实在不多。。。。
大家帮帮忙啊
  1. #_____________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)及坏人协会所有,谢绝任何形式转载。
  3. #-----------------------------------------------------------------------------

  4. #==============================================================================
  5. # ■ 主角当怪物属性战斗 - Actor Change Enemy
  6. #------------------------------------------------------------------------------
  7. #   遵守协议:66RPG - Idiot Script Association(ISA)
  8. #             66RPG - 坏人协会
  9. #   初始脚本:退屈无聊
  10. #   更新优化:无
  11. #   当前版本:1.0.0.1
  12. #------------------------------------------------------------------------------
  13. #   更新日记:退屈无聊(2011.3.26)
  14. #             - 初始化
  15. #             退屈无聊(2011.3.26)
  16. #             - 修正level2计算时的BUG
  17. #             退屈无聊(2011.3.27)
  18. #             - 修正获取actor等级的BUG
  19. #==============================================================================

  20. #--------------------------------------------------------------------------
  21. # ● 资料记录
  22. #--------------------------------------------------------------------------

  23. module ISA
  24.    Use["主角当怪物战斗"] = [true, "1.0.0.1"]
  25.    System["主角当怪物战斗"] = {}
  26. end

  27. #--------------------------------------------------------------------------
  28. # ● 设定部分
  29. #--------------------------------------------------------------------------

  30. module ISA
  31.   System["主角当怪物战斗"]["难度"] = 1
  32.   System["主角当怪物战斗"]["怪物名改为角色名"] = false
  33.   System["主角当怪物战斗"]["显示怪物等级"] = true
  34. end

  35. class Game_Enemy < Game_Battler
  36.   attr_accessor :level                         # 怪物等级
  37.   include ISA
  38.   def initialize(index, enemy_id)
  39.     super()
  40.     @index = index
  41.     @enemy_id = enemy_id
  42.     enemy = $data_enemies[@enemy_id]
  43.     @original_name = enemy.name.split("_")[0]
  44.     level1 = 0
  45.     level2 = 10000
  46.     for i in 1..$game_party.members.size
  47.       actor = $game_party.members[i-1]
  48.       level1 = actor.level if level1 < actor.level
  49.       level2 = actor.level if level2 > actor.level
  50.     end
  51.     @b = rand(level1 - level2)
  52.     @level = level2.to_i + @b.to_i + System["主角当怪物战斗"]["难度"]
  53.     @level = 99 if @level > 99
  54.     @level = enemy.name.split("_")[2].to_i if enemy.name.split("_")[2] != nil
  55.     @letter = ''
  56.     @plural = false
  57.     @screen_x = 0
  58.     @screen_y = 0
  59.     @cp = 65535
  60.     @battler_name = enemy.battler_name
  61.     @battler_hue = enemy.battler_hue
  62.     @hp = maxhp
  63.     @mp = maxmp
  64.     @exp_list = Array.new(101)
  65.     make_exp_list
  66.     @exp = @exp_list[@level]
  67.     @o = @original_name.split("_")[1]
  68.   end
  69.   def name
  70.     if System["主角当怪物战斗"]["怪物名改为角色名"]
  71.       if System["主角当怪物战斗"]["显示怪物等级"]
  72.       return $data_actors[enemy.name.split("_")[1].to_i].name + @level.to_s + "级"
  73.       else
  74.       return $data_actors[enemy.name.split("_")[1].to_i].name
  75.     end
  76.   else
  77.     if System["主角当怪物战斗"]["显示怪物等级"]
  78.       return enemy.name.split("_")[0] + @level.to_s + "级"
  79.       else
  80.       return enemy.name.split("_")[0]
  81.     end
  82.     end
  83.   end
  84.   def base_maxhp
  85.     @a_maxhp = $data_actors[enemy.name.split("_")[1].to_i].parameters[0, @level] / 3
  86.     return @a_maxhp.to_i
  87.   end
  88.   def base_maxmp
  89.     @a_maxmp = $data_actors[enemy.name.split("_")[1].to_i].parameters[1, @level]
  90.     return @a_maxmp
  91.   end
  92.   def base_atk # 获取基本攻击力
  93.     @a_atk = $data_actors[enemy.name.split("_")[1].to_i].parameters[2, @level]
  94.     return @a_atk
  95.   end
  96.   def base_def # 获取基本防御力
  97.     @a_def = $data_actors[enemy.name.split("_")[1].to_i].parameters[3, @level]
  98.     return @a_def
  99.   end
  100.   def base_spi # 获取基本防御力
  101.     @a_spi = $data_actors[enemy.name.split("_")[1].to_i].parameters[4, @level]
  102.     return @a_spi
  103.   end
  104.   def base_agi # 获取基本敏捷
  105.     @a_agi = $data_actors[enemy.name.split("_")[1].to_i].parameters[5, @level]
  106.     return @a_agi
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # 命中率、会心一击率、闪躲率、受伤率、属性修正、状态有效需要自己在怪物界面写
  110.   #--------------------------------------------------------------------------
  111.   #--------------------------------------------------------------------------
  112.   # ● 计算经验值
  113.   #--------------------------------------------------------------------------
  114.   def make_exp_list
  115.     @exp_list[1] = @exp_list[100] = 0
  116.     m = $data_actors[enemy.name.split("_")[1].to_i].exp_basis
  117.     n = 0.75 + $data_actors[enemy.name.split("_")[1].to_i].exp_inflation / 200.0;
  118.     for i in 2..99
  119.       @exp_list[i] = @exp_list[i-1] + Integer(m)
  120.       m *= 1 + n;
  121.       n *= 0.9;
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取经验值
  126.   #--------------------------------------------------------------------------
  127.   def exp
  128.     return (@exp_list[@level+1] / 7).to_i
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 获取金钱
  132.   #--------------------------------------------------------------------------
  133.   def gold
  134.     @g = rand(@level + 1)
  135.     @g1 = rand(10)
  136.     @g1 += 10
  137.     return @g1 * @g
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # 掉落物品也在怪物界面设置
  141.   #--------------------------------------------------------------------------
  142. end
复制代码
还有
  1. #______________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
  3. #______________________________________________________________________________

  4. #==============================================================================
  5. # ■ 接入包 - Access Package
  6. #------------------------------------------------------------------------------
  7. #   遵守协议:66RPG - Idiot Script Association(ISA)
  8. #   当前版本:1.0.0.0
  9. #------------------------------------------------------------------------------
  10. #   更新日记:忧雪の伤(2011.3.11)
  11. #             - 初始化
  12. #==============================================================================

  13. #--------------------------------------------------------------------------
  14. # ● Start
  15. #--------------------------------------------------------------------------

  16. module ISA
  17.    Use = {}
  18.    System = {}
  19.    Switch = {}
  20.    Actor = load_data("Data/Actors.rvdata")
  21. end
  22.   
  23. #--------------------------------------------------------------------------
  24. # ● 资料记录
  25. #--------------------------------------------------------------------------

  26. module ISA
  27.    Use["接入包"] = [true, "1.0.0.0"]
  28. end
复制代码

作者: ACG中的GAME    时间: 2011-5-4 23:37
或者去VX提问比较好,在RMXP中懂VX的应该很少
作者: Wind2010    时间: 2011-5-5 12:20
能告诉我这个脚本的功能是什么么XD直接按照功能写个试试
作者: 2012tao8.com    时间: 2011-5-5 16:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 帕克    时间: 2011-5-5 20:05
回复 Wind2010 的帖子

就是把怪物的属性用角色的属性来代替。。。可以做打自己什么的。。。怪物永远跟角色一样强大,十分需要之………………
作者: Wind2010    时间: 2011-5-6 12:06
回复 帕克 的帖子

这样的话LZ的战斗系统是什么呢?这个脚本貌似是CP制的……
作者: 帕克    时间: 2011-5-6 12:19
回复 Wind2010 的帖子

额。。。。我是菜鸟横版回合制战斗,可以办到吗?
作者: Wind2010    时间: 2011-5-6 13:00
  1. $敌人使用角色数据 = []
  2. #==============================================================================
  3. # 使用说明
  4. # 输入的格式:
  5. # $敌人使用角色数据.push([敌人ID,模仿角色ID,maxhp差值,maxsp差值,力量差值,灵巧差值,速度差值,魔力差值,攻击力差值,物防差值,魔防差值,回避差值])
  6. # 一 卅有点长是吧?如果全部差值为0的话可以不填
  7. #==============================================================================
  8. # 自定义区域
  9. $敌人使用角色数据.push([1,1]) #这个是和角色完全一样的数值
  10. $敌人使用角色数据.push([2,3,-50,-50]) #这个是比2号角色hpsp少50
  11. #==============================================================================
  12. # 脚本
  13. #==============================================================================
  14. class Game_Enemy
  15.   def base_maxhp
  16.     for i in $敌人使用角色数据
  17.       if i[0] == @enemy_id
  18.         return $game_actors[i[1]].base_maxhp + (i[2].nil? ? 0 : i[2])
  19.       end
  20.     end
  21.     return $data_enemies[@enemy_id].maxhp
  22.   end
  23.   def base_maxsp
  24.     for i in $敌人使用角色数据
  25.       if i[0] == @enemy_id
  26.         return $game_actors[i[1]].base_maxsp + (i[3].nil? ? 0 : i[3])
  27.       end
  28.     end
  29.     return $data_enemies[@enemy_id].maxsp
  30.   end
  31.   def base_str
  32.     for i in $敌人使用角色数据
  33.       if i[0] == @enemy_id
  34.         return $game_actors[i[1]].base_str + (i[4].nil? ? 0 : i[4])
  35.       end
  36.     end
  37.     return $data_enemies[@enemy_id].str
  38.   end
  39.   def base_dex
  40.     for i in $敌人使用角色数据
  41.       if i[0] == @enemy_id
  42.         return $game_actors[i[1]].base_dex + (i[5].nil? ? 0 : i[5])
  43.       end
  44.     end
  45.     return $data_enemies[@enemy_id].dex
  46.   end
  47.   def base_agi
  48.     for i in $敌人使用角色数据
  49.       if i[0] == @enemy_id
  50.         return $game_actors[i[1]].base_agi + (i[6].nil? ? 0 : i[6])
  51.       end
  52.     end
  53.     return $data_enemies[@enemy_id].agi
  54.   end
  55.   def base_int
  56.     for i in $敌人使用角色数据
  57.       if i[0] == @enemy_id
  58.         return $game_actors[i[1]].base_int + (i[7].nil? ? 0 : i[7])
  59.       end
  60.     end
  61.     return $data_enemies[@enemy_id].int
  62.   end
  63.   def base_atk
  64.     for i in $敌人使用角色数据
  65.       if i[0] == @enemy_id
  66.         return $game_actors[i[1]].base_atk + (i[8].nil? ? 0 : i[8])
  67.       end
  68.     end
  69.     return $data_enemies[@enemy_id].atk
  70.   end
  71.   def base_pdef
  72.     for i in $敌人使用角色数据
  73.       if i[0] == @enemy_id
  74.         return $game_actors[i[1]].base_pdef + (i[9].nil? ? 0 : i[9])
  75.       end
  76.     end
  77.     return $data_enemies[@enemy_id].pdef
  78.   end
  79.   def base_mdef
  80.     for i in $敌人使用角色数据
  81.       if i[0] == @enemy_id
  82.         return $game_actors[i[1]].base_mdef + (i[10].nil? ? 0 : i[10])
  83.       end
  84.     end
  85.     return $data_enemies[@enemy_id].mdef
  86.   end
  87.   def base_eva
  88.     for i in $敌人使用角色数据
  89.       if i[0] == @enemy_id
  90.         return $game_actors[i[1]].base_eva + (i[11].nil? ? 0 : i[11])
  91.       end
  92.     end
  93.     return $data_enemies[@enemy_id].eva
  94.   end
  95. end
复制代码
这样可以么?
作者: 帕克    时间: 2011-5-6 13:37
回复 Wind2010 的帖子

不用差值,直接全部相等就可以了,2号怪物等于2号角色,你那个脚本我计算了一下= =生命比角色高很多啊,攻击力也很高。。。
作者: Wind2010    时间: 2011-5-6 16:47
回复 帕克 的帖子

直接相等的话就只输两个数字可以了
不是生命之类的要全部一样么
作者: 帕克    时间: 2011-5-6 19:27
回复 Wind2010 的帖子

是啊,需要一样,可是为什么我测试的时候攻击力什么的都高角色好多。。。。
作者: 忧雪の伤    时间: 2011-5-6 20:38
  1. #______________________________________________________________________________
  2. # * 此脚本归66RPG - Idiot Script Association(ISA)所有,谢绝任何形式转载。
  3. #______________________________________________________________________________

  4. #==============================================================================
  5. # ■ 角色变化敌人 - Actor Change Enemy
  6. #------------------------------------------------------------------------------
  7. #   遵守协议:66RPG - Idiot Script Association(ISA)
  8. #   当前版本:1.0.0.0
  9. #------------------------------------------------------------------------------
  10. #   更新日记:忧雪の伤(2011.4.3)
  11. #             - 初始化
  12. #==============================================================================

  13. #--------------------------------------------------------------------------
  14. # ● 资料记录
  15. #--------------------------------------------------------------------------

  16. module ISA
  17.    Use["角色变化敌人"] = [true, "1.0.0.0"]
  18.    System["角色变化敌人"] = {}
  19. end

  20. #--------------------------------------------------------------------------
  21. # ● 设定部分
  22. #--------------------------------------------------------------------------

  23. module ISA
  24.   System["角色变化敌人"]["等级显示"] = true
  25.   System["角色变化敌人"]["名称改变"] = true
  26.   System["角色变化敌人"]["图形改变"] = true
  27. end

  28. #==============================================================================
  29. # ■ RPG
  30. #------------------------------------------------------------------------------
  31. #  集合了 RPGXP 数据结构等的模块。
  32. #==============================================================================

  33. module RPG
  34.   #--------------------------------------------------------------------------
  35.   # ● 敌人的数据类。
  36.   #--------------------------------------------------------------------------  
  37.   class Enemy
  38.     def name
  39.       return @name.split(/change/)[0]
  40.     end
  41.     def change_id
  42.       return @name.split(/change/)[1].to_i
  43.     end
  44.   end
  45. end

  46. #==============================================================================
  47. # ■ Game_Enemy
  48. #------------------------------------------------------------------------------
  49. #  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
  50. # 内部使用。
  51. #==============================================================================

  52. class Game_Enemy < Game_Battler
  53.   include ISA
  54.   #--------------------------------------------------------------------------
  55.   # ● 定义实例变量
  56.   #--------------------------------------------------------------------------
  57.   attr_reader :level  
  58.   attr_reader :change_id
  59.   #--------------------------------------------------------------------------
  60.   # ● 初始化对像
  61.   #     troop_id     : 循环 ID
  62.   #     member_index : 循环成员的索引
  63.   #--------------------------------------------------------------------------
  64.   alias :actor_change_enemy_initialize :initialize unless method_defined? :actor_change_enemy_initialize
  65.   def initialize(troop_id, member_index)
  66.     enemy_id = $data_troops[troop_id].members[member_index].enemy_id
  67.     @change_id = $data_enemies[enemy_id].change_id
  68.     level_list = 0
  69.     $game_party.actors.each do |actor|
  70.       level_list += actor.level
  71.     end
  72.     @level = level_list / $game_party.actors.size + rand(2) - rand(2)
  73.     @level = 99 if @level > 99
  74.     actor_change_enemy_initialize(troop_id, member_index)
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 获取战斗者 文件名
  78.   #--------------------------------------------------------------------------
  79.   def battler_name
  80.     case System["角色变化敌人"]["图形改变"]
  81.     when true
  82.       return (@change_id != 0 ? $data_actors[@change_id].battler_name : @battler_name)
  83.     when false
  84.       return @battler_name
  85.     end
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 获取名称
  89.   #--------------------------------------------------------------------------
  90.   alias :actor_change_enemy_name :name unless method_defined? :actor_change_enemy_name
  91.   def name
  92.     level = System["角色变化敌人"]["等级显示"] ? " Lv" + @level.to_s : ""
  93.     case System["角色变化敌人"]["名称改变"]
  94.     when true
  95.       return (@change_id != 0 ? $data_actors[@change_id].name : actor_change_enemy_name) + level
  96.     else
  97.       return actor_change_enemy_name + level
  98.     end
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 获取基本 MaxHP
  102.   #--------------------------------------------------------------------------
  103.   alias :actor_change_enemy_base_maxhp :base_maxhp unless method_defined? :actor_change_enemy_base_maxhp
  104.   def base_maxhp
  105.     if @change_id != 0
  106.       n = change_parameters(@change_id, 0, @level)
  107.     else
  108.       n = (actor_change_enemy_base_maxhp * wave).to_i
  109.     end
  110.     return n
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 获取基本 MaxSP
  114.   #--------------------------------------------------------------------------
  115.   alias :actor_change_enemy_base_maxsp :base_maxsp unless method_defined? :actor_change_enemy_base_maxsp
  116.   def base_maxsp
  117.     if @change_id != 0
  118.       n = change_parameters(@change_id, 1, @level)
  119.     else
  120.       n = (actor_change_enemy_base_maxsp * wave).to_i
  121.     end
  122.     return n
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取基本力量
  126.   #--------------------------------------------------------------------------
  127.   alias :actor_change_enemy_base_str :base_str unless method_defined? :actor_change_enemy_base_str
  128.   def base_str
  129.     if @change_id != 0
  130.       n = change_parameters(@change_id, 2, @level)
  131.     else
  132.       n = (actor_change_enemy_base_str * wave).to_i
  133.     end
  134.     return n
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 获取基本灵巧
  138.   #--------------------------------------------------------------------------
  139.   alias :actor_change_enemy_base_dex :base_dex unless method_defined? :actor_change_enemy_base_dex
  140.   def base_dex
  141.     if @change_id != 0
  142.       n = change_parameters(@change_id, 3, @level)
  143.     else
  144.       n = (actor_change_enemy_base_dex * wave).to_i
  145.     end
  146.     return n
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 获取基本速度
  150.   #--------------------------------------------------------------------------
  151.   alias :actor_change_enemy_base_agi :base_agi unless method_defined? :actor_change_enemy_base_agi
  152.   def base_agi
  153.     if @change_id != 0
  154.       n = change_parameters(@change_id, 4, @level)
  155.     else
  156.       n = (actor_change_enemy_base_agi * wave).to_i
  157.     end
  158.     return n
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● 获取基本魔力
  162.   #--------------------------------------------------------------------------
  163.   alias :actor_change_enemy_base_int :base_int unless method_defined? :actor_change_enemy_base_int
  164.   def base_int
  165.     if @change_id != 0
  166.       n = change_parameters(@change_id, 5, @level)
  167.     else
  168.       n = (actor_change_enemy_base_int * wave).to_i
  169.     end
  170.     return n
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 获取基本攻击力
  174.   #--------------------------------------------------------------------------
  175.   alias :actor_change_enemy_base_atk :base_atk unless method_defined? :actor_change_enemy_base_atk
  176.   def base_atk
  177.     return (actor_change_enemy_base_atk * wave).to_i
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● 获取基本物理防御
  181.   #--------------------------------------------------------------------------
  182.   alias :actor_change_enemy_base_pdef :base_pdef unless method_defined? :actor_change_enemy_base_pdef
  183.   def base_pdef
  184.     return (actor_change_enemy_base_pdef * wave).to_i
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 获取基本魔法防御
  188.   #--------------------------------------------------------------------------
  189.   alias :actor_change_enemy_base_mdef :base_mdef unless method_defined? :actor_change_enemy_base_mdef
  190.   def base_mdef
  191.     return (actor_change_enemy_base_mdef * wave).to_i
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● 获取金钱
  195.   #--------------------------------------------------------------------------
  196.   alias :actor_change_enemy_gold :gold unless method_defined? :actor_change_enemy_gold
  197.   def gold
  198.     return (actor_change_enemy_gold * wave).to_i
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 获取浮动
  202.   #--------------------------------------------------------------------------
  203.   def wave
  204.     return 1 + 0.05 * (@level - 1)
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ● 获取变化参数
  208.   #     change_id     : 变化 ID
  209.   #     kind          : 种类
  210.   #     level         : 等级
  211.   #--------------------------------------------------------------------------  
  212.   def change_parameters(change_id, kind, level = 1)
  213.     return $data_actors[change_id].parameters[kind, level]
  214.   end
  215. end
复制代码
对蛐蛐的脚本感兴趣的……嘛……我什么都不知道。
作者: 帕克    时间: 2011-5-9 12:20
本帖最后由 帕克 于 2011-5-9 13:33 编辑

回复 忧雪の伤 的帖子

此脚本跟菜鸟横版冲突。。。。不,不是冲突。。。就是加了菜鸟横版后此脚本修改的怪物能力值就。。。。。怪物能力本来应该跟角色一样的= =可是加了菜鸟横版后都比角色弱很多。。。。行走图也显示不出来。。


放弃了菜鸟横版。。。。可是为什么敌人的攻击力永远跟不上角色?角色打敌人一下100多,敌人打过来1。。。。




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