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

Project1

 找回密码
 注册会员
搜索
查看: 15835|回复: 14

RMVX魔法技能商店 Ver 2.0 (汉化更新具体使用方法)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-8-9
帖子
86
发表于 2008-3-11 22:30:17 | 显示全部楼层 |阅读模式

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

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

x
(更新:把重要和实用的部分进行了汉化和解释)

求了个魔法商店的脚本,好心人提供了个英文的
鉴于本人是脚本小白,
就只好粗糙汉化了一下。。。
如果发过就有劳大大删了,麻烦了
(脚本交流主题怎么选不到 - -)

使用方法,放在main前就可以
没有经过详细测试,冲突情况不明(与技能分类无冲突),抱歉

具体参数设定:


"# Learn Text" 下面修改适合您游戏的文字 ,具体内容可以根据需要自己改,很简单。
"# Price Data" 下面修改技能价格,方法是
技能编号 => 价格
如:
   1 => 150,
2 => 550,
3 => 450

表示,1号技能出售价格是150,2号是550,3号是450
0 => 100, 表示没有指定价格的技能默认出售100,这个默认值也可以直接修改


# Hero Data  下面的内容稍微复杂点,但是可以实现具体人物具体技能的需要。
方法是
人物编号 => [

[技能编号,学习必须等级],

],

如:
1 => [

[1,4],[2,3],[3,1],

],
即是1号角色,一共可以学习3个技能(1,2,3号技能),而对应必须的等级是4.3.1
没有设定的角色,一律默认为不能学习任何技能。

p.s  目前只能用金钱购买,哪位大大会改成新币种购买的请告知,谢谢了。

补图:


  1. #==============================================================================
  2. # RMVX魔法技能商店 Ver 2.0
  3. #==============================================================================
  4. # 作者: Nechigawara Sanzenin  翻译:一塌糊涂
  5. # 警告!! : 仅限RMVX使用!! 不支持RMXP!!
  6. #==============================================================================
  7. # RMVX版 魔法技能商店
  8. #==============================================================================
  9. #Version Log
  10. #==============================================================================
  11. #2.0 Add Level requirement - Change Hero Select Window
  12. #==============================================================================
  13. =begin

  14. 使用方法:

  15. 使用脚本  "$skill_shop =[Id of Skill]"  
  16. 用于设定可出售的技能.
  17. 使用脚本  "$scene = Scene_Skill_Shop.new"  
  18. 呼出魔法商店.

  19. 举例:
  20. $skill_shop = [1,2,3,6,7]
  21. $scene = Scene_Skill_Shop.new
  22. 即,12367号技能出售,并且呼出该魔法商店

  23. 可以在 "# Learn Text" 下面修改适合您游戏的文字.
  24. 可以在 "# Price Data" 下面修改技能价格.
  25. (Add Price Here处添加价格,未设定技能的默认出售价格为100)
  26. 可以在 "# Hero Data"  下面设定角色可习得的技能及学习必要等级.

  27. 例如可以这样设定Hero Date
  28. [技能编号, 学习必要等级]
  29. =end

  30. #==============================================================================
  31. #module SKILL_SHOP
  32. #==============================================================================
  33. module SKILL_SHOP
  34.   # Learn Text
  35.   How_Learn = "队伍信息"
  36.   Can_Learn = "可学习"
  37.   Can_Learn_Lv = "必要等级"
  38.   Cant_Learn = "不可学习"
  39.   Learnt = "已习得"
  40.   Teach = "学习技能"
  41.   Cancel = "离开"
  42.   # Price Data
  43.   PRICE = {
  44.   # for No Set Price
  45.   0 => 100,
  46.   # Add Price Here
  47.   1 => 150,
  48.   2 => 550,
  49.   3 => 450,
  50.   # End
  51.   }
  52.   # Hero Data
  53.   SKILL_BUY = {
  54.   # Add what skill can hero buy Here
  55.   # [ID of skill,Level]
  56.   
  57.   1 => [
  58.   
  59.   [1,4],[2,3],[3,1],
  60.   
  61.   ],
  62.   
  63.   2 => [
  64.   
  65.   [1,4],[2,3],[3,1],
  66.   
  67.   ],
  68.   
  69.   # End
  70.   }
  71.   # Add Price
  72.   def self.skill_price(id)
  73.     if PRICE.include?(id)
  74.       return PRICE[id]
  75.     else
  76.       return PRICE[0]
  77.     end
  78.   end
  79.   # Add Hero id
  80.   def self.skill_buy(id)
  81.     if SKILL_BUY.include?(id)
  82.       return SKILL_BUY[id]
  83.     else
  84.       return []
  85.     end
  86.   end
  87. end
  88. #==============================================================================
  89. #class Game_Actor
  90. #==============================================================================
  91. class Game_Actor < Game_Battler
  92.   def learn?(skill)
  93.     learn = skill_learn?(skill)
  94.     if learn == true
  95.       return false
  96.     else
  97.       return true
  98.     end
  99.   end
  100. end
  101. #==============================================================================
  102. #class Window_Skill_ShopBuy
  103. #==============================================================================
  104. class Window_Skill_ShopBuy < Window_Selectable
  105.   #--------------------------------------------------------------------------
  106.   def initialize(x, y)
  107.     super(x, y, 304, 304)
  108.     @skill_shop_goods = $skill_shop
  109.     refresh
  110.     self.index = 0
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   def skill
  114.     return @data[self.index]
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   def refresh
  118.     @data = []
  119.     for i in 0...@skill_shop_goods.size
  120.       skill = $data_skills[@skill_shop_goods[i]]
  121.       if skill != nil
  122.         @data.push(skill)
  123.       end
  124.     end
  125.     @item_max = @data.size
  126.     create_contents
  127.     for i in 0...@item_max
  128.       draw_item(i)
  129.     end
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   def draw_item(index)
  133.     skill = @data[index]
  134.     price = SKILL_SHOP.skill_price(skill.id)
  135.     enabled = (price <= $game_party.gold)
  136.     rect = item_rect(index)
  137.     self.contents.clear_rect(rect)
  138.     draw_item_name(skill, rect.x, rect.y, enabled)
  139.     rect.width -= 4
  140.     self.contents.draw_text(rect, price, 2)
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   def update_help
  144.     @help_window.set_text(skill == nil ? "" : skill.description)
  145.   end
  146. end
  147. #==============================================================================
  148. #class Window_Skill_ShopStatus
  149. #==============================================================================
  150. class Window_Skill_ShopStatus < Window_Selectable
  151.   #--------------------------------------------------------------------------
  152.   def initialize(x, y)
  153.     super(x, y, 240, 304)
  154.     @item = nil
  155.     refresh
  156.     self.active = false
  157.     self.index = -1
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   def refresh
  161.     self.contents.clear
  162.     @item_max = $game_party.members.size
  163.     if @item != nil
  164.       self.contents.font.color = system_color
  165.       self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
  166.       for actor in $game_party.members
  167.         x = 4
  168.         y = WLH * (2 + actor.index * 2)
  169.         draw_actor_can_learn(actor, x, y)
  170.       end
  171.     end
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   def draw_actor_can_learn(actor, x, y)
  175.     can = false
  176.     lv = false
  177.     ac_lv = 0
  178.     can_learn = SKILL_SHOP.skill_buy(actor.id)
  179.     id = @item.id
  180.     for i in 0...can_learn.size
  181.       if can_learn[i][0] == id
  182.         can = true
  183.         if can_learn[i][1] <= actor.level
  184.           lv = true
  185.         else
  186.           lv = false
  187.           ac_lv = can_learn[i][1]
  188.         end
  189.         break
  190.       else
  191.         can = false
  192.       end
  193.     end
  194.     enabled = (can and lv and actor.learn?(@item))
  195.     self.contents.font.color = normal_color
  196.     self.contents.font.color.alpha = enabled ? 255 : 128
  197.     name = actor.character_name
  198.     index = actor.character_index
  199.     size = contents.text_size(actor.name).width
  200.     draw_character(name, index, x + 20 + size , y + 30)
  201.     self.contents.draw_text(x, y, 200, WLH, actor.name)
  202.     if can == false
  203.       text = SKILL_SHOP::Cant_Learn
  204.     elsif can == true and lv == false
  205.       ac = ac_lv.to_s
  206.       text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
  207.     elsif actor.learn?(@item) == false
  208.       text = SKILL_SHOP::Learnt
  209.     else
  210.       text = SKILL_SHOP::Can_Learn
  211.     end
  212.     self.contents.draw_text(x, y, 200, WLH, text, 2)
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   def item=(item)
  216.     if @item != item
  217.       @item = item
  218.       refresh
  219.     end
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   def update_cursor
  223.     if @index < 0
  224.       self.cursor_rect.empty
  225.     elsif @index < @item_max
  226.       y = WLH * (2 + @index * 2)
  227.       self.cursor_rect.set(0, y - 4, contents.width,34)
  228.     end
  229.   end
  230. end
  231. #==============================================================================
  232. #class Scene_Skill_Shop
  233. #==============================================================================
  234. class Scene_Skill_Shop < Scene_Base
  235.   #--------------------------------------------------------------------------
  236.   def start
  237.     super
  238.     create_menu_background
  239.     create_command_window
  240.     @viewport = Viewport.new(0, 0, 544, 416)
  241.     @help_window = Window_Help.new
  242.     @gold_window = Window_Gold.new(384, 56)
  243.     @dummy_window = Window_Base.new(0, 112, 544, 304)
  244.     @buy_window = Window_Skill_ShopBuy.new(0, 112)
  245.     @buy_window.active = false
  246.     @buy_window.visible = false
  247.     @buy_window.help_window = @help_window
  248.     @status_window = Window_Skill_ShopStatus.new(304, 112)
  249.     @status_window.visible = false
  250.     @status_window.active = false
  251.   end
  252.   #--------------------------------------------------------------------------
  253.   def terminate
  254.     super
  255.     dispose_menu_background
  256.     dispose_command_window
  257.     @help_window.dispose
  258.     @gold_window.dispose
  259.     @dummy_window.dispose
  260.     @buy_window.dispose
  261.     @status_window.dispose
  262.   end  
  263.   #--------------------------------------------------------------------------
  264.   def update
  265.     super
  266.     update_menu_background
  267.     @help_window.update
  268.     @command_window.update
  269.     @gold_window.update
  270.     @dummy_window.update
  271.     @buy_window.update
  272.     @status_window.update
  273.     if @command_window.active
  274.       update_command_selection
  275.     elsif @buy_window.active
  276.       update_buy_selection
  277.     elsif @status_window.active
  278.       update_target_selection
  279.     end
  280.   end
  281.   #--------------------------------------------------------------------------
  282.   def create_command_window
  283.     s1 = SKILL_SHOP::Teach
  284.     s2 = SKILL_SHOP::Cancel
  285.     @command_window = Window_Command.new(384, [s1, s2], 2)
  286.     @command_window.y = 56
  287.   end
  288.   #--------------------------------------------------------------------------
  289.   def dispose_command_window
  290.     @command_window.dispose
  291.   end
  292.   #--------------------------------------------------------------------------
  293.   def update_command_selection
  294.     @help_window.set_text("")
  295.     if Input.trigger?(Input::B)
  296.       Sound.play_cancel
  297.       $scene = Scene_Map.new
  298.     elsif Input.trigger?(Input::C)
  299.       case @command_window.index
  300.       when 0
  301.         Sound.play_decision
  302.         @command_window.active = false
  303.         @dummy_window.visible = false
  304.         @buy_window.active = true
  305.         @buy_window.visible = true
  306.         @buy_window.refresh
  307.         @status_window.visible = true
  308.       when 1
  309.         Sound.play_decision
  310.         $scene = Scene_Map.new
  311.       end
  312.     end
  313.   end
  314.   #--------------------------------------------------------------------------
  315.   def update_buy_selection
  316.     @status_window.item = @buy_window.skill
  317.     if Input.trigger?(Input::B)
  318.       Sound.play_cancel
  319.       @command_window.active = true
  320.       @dummy_window.visible = true
  321.       @buy_window.active = false
  322.       @buy_window.visible = false
  323.       @status_window.visible = false
  324.       @status_window.item = nil
  325.       return
  326.     end
  327.     if Input.trigger?(Input::C)
  328.       @item = @buy_window.skill
  329.       @price = SKILL_SHOP.skill_price(@item.id)
  330.       enabled = (@price <= $game_party.gold)
  331.       if not enabled
  332.         Sound.play_buzzer
  333.       else
  334.         Sound.play_decision
  335.         show_target_window
  336.       end
  337.     end
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   def update_target_selection
  341.     if Input.trigger?(Input::B)
  342.       Sound.play_cancel
  343.       hide_target_window
  344.     elsif Input.trigger?(Input::C)
  345.       @actor = $game_party.members[@status_window.index]
  346.       can = false
  347.       lv = false
  348.       can_learn = SKILL_SHOP.skill_buy(@actor.id)
  349.       id = @item.id
  350.       for i in 0...can_learn.size
  351.         if can_learn[i][0] == id
  352.           can = true
  353.           if can_learn[i][1] <= @actor.level
  354.             lv = true
  355.           else
  356.             lv = false
  357.           end
  358.           break
  359.         else
  360.           can = false
  361.         end
  362.       end
  363.       enabled = (can and lv and @actor.learn?(@item))
  364.       if not enabled
  365.         Sound.play_buzzer
  366.       else
  367.         learn_target(@item.id)
  368.       end
  369.     end
  370.   end
  371.   #--------------------------------------------------------------------------
  372.   def learn_target(skill_id)
  373.     Sound.play_shop
  374.     @actor.learn_skill(skill_id)
  375.     $game_party.lose_gold(@price)
  376.     @buy_window.refresh
  377.     @gold_window.refresh
  378.     @status_window.refresh
  379.     hide_target_window
  380.   end
  381.   #--------------------------------------------------------------------------
  382.   def show_target_window
  383.     @buy_window.active = false
  384.     @status_window.active = true
  385.     @status_window.index = 0
  386.   end
  387.   #--------------------------------------------------------------------------
  388.   def hide_target_window
  389.     @buy_window.active = true
  390.     @status_window.active = false
  391.     @status_window.index =- 1
  392.   end
  393. end
复制代码

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
2077
在线时间
3473 小时
注册时间
2006-9-6
帖子
37329

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

发表于 2008-3-12 01:31:13 | 显示全部楼层
效果图……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-8-9
帖子
86
 楼主| 发表于 2008-3-12 05:07:36 | 显示全部楼层
谢谢提醒。。。补上了 - -
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
发表于 2008-3-13 01:56:40 | 显示全部楼层
  不错的...顶一下
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-8-9
帖子
86
 楼主| 发表于 2008-3-13 09:47:04 | 显示全部楼层
加了具体解释

应该都会用了吧,收工
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

发表于 2008-3-13 19:35:21 | 显示全部楼层
= =这个是翻译的?好象不能发布
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

万物创造者

梦石
0
星屑
49
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
发表于 2008-3-14 01:28:46 | 显示全部楼层
我那个80%的终于可以瞑目了= =
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-8-9
帖子
86
 楼主| 发表于 2009-6-12 08:00:00 | 显示全部楼层
以下引用风雪优游于2008-3-13 11:35:21的发言:

= =这个是翻译的?好象不能发布


我说过是翻译的。。。发布什么的倒无所谓

改了标题,避免误会 {/hx}

因为本来找到这个也是靠66bbs朋友的帮忙,既然会用了,就汉化一下方面大家。 {/cy}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2008-4-22
帖子
34
发表于 2008-5-16 17:32:50 | 显示全部楼层
谢谢! 不客气的收下了! 哈哈哈! 嘻嘻嘻! HOHOHO!
勤奋的懒鬼
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2008-9-5
帖子
55
发表于 2008-9-7 14:19:17 | 显示全部楼层
顶·
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-1-17 11:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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