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

Project1

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

[已经过期] 请问怎么用事件调用此脚本(MOG_Saga_技能系统)窗口啊?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4557
在线时间
807 小时
注册时间
2017-7-14
帖子
170

开拓者

跳转到指定楼层
1
发表于 2018-1-11 22:19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Saga 技能系统 (v1.0) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]https://atelierrgss.wordpress.com/[/url]
  6. #==============================================================================
  7. # 本脚本启用技能属性经验值和武器种类经验值系统,经验值满后会升级,等级越高的属性技
  8. # 能或武器种类可以造成越高的伤害。本脚本的灵感来源于游戏Romancing Saga.
  9. #==============================================================================
  10. # 注意 - 角色或该角色的职业需要添加升级后新技能的技能类型。
  11. #        例如 - 对于没有添加"魔法"技能类型的角色,是无法学会魔法类型的技能的。
  12. #==============================================================================
  13.  
  14. #==============================================================================
  15. # ● 手动升级技能.
  16. #==============================================================================
  17. # 使用以下脚本来升级属性等级.
  18. #
  19. # element_lv_up(角色ID , 属性ID, 数值)
  20. #
  21. # 例如: element_lv_up(2,5,1)
  22. #==============================================================================
  23. # 使用以下脚本来升级武器种类等级.
  24. #
  25. # weapon_lv_up(角色ID , 武器类型ID, 数值)
  26. #
  27. # 例如: weapon_lv_up(2,5,1)
  28. #==============================================================================
  29.  
  30. #==============================================================================
  31. # ● 手动添加属性经验.
  32. #==============================================================================
  33. # 手动添加属性经验的脚本:
  34. #
  35. # element_exp_up(角色ID , 属性ID, 数值)
  36. #
  37. # 例如: element_exp_up(2,5,20)
  38. #==============================================================================
  39. # 手动添加武器类型的脚本:
  40. #
  41. # weapon_exp_up(角色ID , 武器类型ID, 数值)
  42. #
  43. # weapon_exp_up(2,5,20)
  44. #==============================================================================
  45.  
  46. module MOG_SAGA_SKILL
  47.   #----------------------------------------------------------------------------
  48.   # 是否启用升级时学会新技能功能.
  49.   #----------------------------------------------------------------------------
  50.   ENABLE_SKILL_LEARNING = true
  51.   #----------------------------------------------------------------------------
  52.   # 设定升级时学会新技能的几率,属性等级越高,学会新技能的几率越大。
  53.   #----------------------------------------------------------------------------
  54.   SUCCESS_RATE = 20
  55.   #----------------------------------------------------------------------------
  56.   # 学会新技能是播放的动画.
  57.   #----------------------------------------------------------------------------
  58.   LEARNING_ANIMATION_ID = 147
  59.   #----------------------------------------------------------------------------
  60.   # 战斗日志中显示学会技能的文本.
  61.   #----------------------------------------------------------------------------
  62.   BATTLE_LOG_TEXT = "已学会"
  63.   #----------------------------------------------------------------------------
  64.   # 设定学会的新技能(有关属性)
  65.   #
  66.   # ELEMENT_LEARN_SKILL[ A ] = {B => C, B => C, B=> C, ...}
  67.   #
  68.   # A - 属性ID.
  69.   # B - 新技能ID.
  70.   # C - 学会该技能需要的最小等级.
  71.   #----------------------------------------------------------------------------
  72.   ELEMENT_LEARN_SKILL = []
  73.   ELEMENT_LEARN_SKILL[1] = {100=>5, 105=>10, 106=>15}               #物理
  74.   ELEMENT_LEARN_SKILL[2] = {26=>4 ,27=>12 , 28=>20, 29=>8,          #吸收
  75.                             30=>24 ,31=>6, 32=>14, 33=>10, 34=>26}
  76.   ELEMENT_LEARN_SKILL[3] = {51=>4 ,52=>15 ,52=>8 ,53=>25 ,41=>6}    #火  
  77.   ELEMENT_LEARN_SKILL[4] = {55=>4 ,56=>15 ,57=>8 ,58=>25 ,26=>6}    #冰
  78.   ELEMENT_LEARN_SKILL[5] = {59=>4 ,60=>15 ,61=>8 ,62=>25 ,40=>6}    #雷
  79.   ELEMENT_LEARN_SKILL[6] = {63=>4, 64 =>20 , 44=>10}                #水
  80.   ELEMENT_LEARN_SKILL[7] = {65=>4, 66 =>20 , 39=>10}                #地
  81.   ELEMENT_LEARN_SKILL[8] = {67=>4, 68 =>20 , 35=>10}                #风
  82.   ELEMENT_LEARN_SKILL[9] = {69=>4, 70 =>20 , 49=>10}                #圣
  83.   ELEMENT_LEARN_SKILL[10] = {71=>4, 72 =>20 , 47=>10}               #暗
  84.   #----------------------------------------------------------------------------
  85.   # 设定学会的新技能(有关武器)
  86.   #
  87.   # WEAPON_LEARN_SKILL[ A ] = {B => C, B => C, B=> C, ...}
  88.   #
  89.   # A - 武器类型ID
  90.   # B - 新技能ID.
  91.   # C - 学会该技能需要的最小等级.
  92.   #----------------------------------------------------------------------------
  93.   WEAPON_LEARN_SKILL = []
  94.   WEAPON_LEARN_SKILL[1] = {84=>10 , 84=> 25}   #斧头
  95.   WEAPON_LEARN_SKILL[2] = {88=>10 , 89=> 25}   #爪
  96.   WEAPON_LEARN_SKILL[3] = {93=>10 , 94=> 25}   #长枪
  97.   WEAPON_LEARN_SKILL[4] = {95=>10 , 99=> 25}   #剑
  98.   WEAPON_LEARN_SKILL[5] = {100=>10 , 102=> 15, 103=> 25} #刀
  99.   WEAPON_LEARN_SKILL[6] = {108=>10 , 109=> 25} #弓
  100.   WEAPON_LEARN_SKILL[7] = {113=>10 , 114=> 25} #Dagger
  101.   WEAPON_LEARN_SKILL[8] = {80=>5 , 81=> 10}    #Gun
  102.   #----------------------------------------------------------------------------
  103.   #  设定角色无法学会的技能
  104.   #
  105.   # ACTOR_NOT_LEARN_SKILL_ID[角色ID] = [技能ID1,技能ID2,技能ID3 ...]
  106.   #----------------------------------------------------------------------------
  107.   ACTOR_NOT_LEARN_SKILL_ID = []
  108.   #ACTOR_NOT_LEARN_SKILL_ID[1] = [26,27,28,29,30]
  109.   #ACTOR_NOT_LEARN_SKILL_ID[2] = [100,110]
  110. end
  111. #==============================================================================
  112. # ● 属性等级
  113. #==============================================================================
  114. module MOG_ATTRIBUTE_LEVEL
  115.   #----------------------------------------------------------------------------
  116.   # 不在"属性/武器等级"窗口显示的属性ID
  117.   #----------------------------------------------------------------------------
  118.   DISABLE_ELEMENT_ID = []
  119.   #----------------------------------------------------------------------------
  120.   # 不在"属性/武器等级"窗口显示的武器类型ID
  121.   #----------------------------------------------------------------------------
  122.   DISABLE_WEAPON_ID = []
  123.   #----------------------------------------------------------------------------
  124.   # 角色空手攻击的属性
  125.   #----------------------------------------------------------------------------
  126.   BARE_HANDS_ELEMENT_ID = 1
  127.   #----------------------------------------------------------------------------
  128.   # 升级所需经验基础数值. (所需总经验值 = 等级数 x 基础数值)
  129.   #----------------------------------------------------------------------------
  130.   NEXT_EXP_LEVEL_BASE = 5
  131.   #----------------------------------------------------------------------------
  132.   # 最高等级.
  133.   #----------------------------------------------------------------------------
  134.   MAX_ATTRIBUTE_LEVEL = 100
  135.   #----------------------------------------------------------------------------
  136.   # 每升一级增加的伤害比率(%).
  137.   #----------------------------------------------------------------------------
  138.   DAMAGE_PERCENTAGE_PER_LEVEL = 5
  139.   #----------------------------------------------------------------------------
  140.   # 属性/武器等级窗口的名称
  141.   #----------------------------------------------------------------------------
  142.   ATTRIBUTE_LEVEL_NAME = "属性/武器等级"
  143.   #----------------------------------------------------------------------------
  144.   # 在窗口中显示的文字.
  145.   #----------------------------------------------------------------------------
  146.   PRESS_BUTTON_TEXT = "(Z键) 查看属性/武器等级"
  147. end
  148.  
  149. $imported = {} if $imported.nil?
  150. $imported[:mog_saga_skill_system] = true
  151.  
  152. #==============================================================================
  153. # ■ Game Interpreter
  154. #==============================================================================
  155. class Game_Interpreter
  156.  
  157.   #--------------------------------------------------------------------------
  158.   # ● Element LV
  159.   #--------------------------------------------------------------------------
  160.   def element_lv_up(actor_id,atr_id,value)
  161.       return if atr_id < 0
  162.       return if MOG_ATTRIBUTE_LEVEL::DISABLE_ELEMENT_ID.include?(atr_id)
  163.       $game_party.members.each do |actor|
  164.       if actor.id == actor_id and ![nil,""].include?(actor.attribute_level[0][atr_id][5])
  165.          actor.attribute_level[0][atr_id][0] += value
  166.          actor.attribute_level[0][atr_id][0] = 1 if actor.attribute_level[0][atr_id][0] < 0
  167.          actor.attribute_level[0][atr_id][0] = MOG_ATTRIBUTE_LEVEL::MAX_ATTRIBUTE_LEVEL if actor.attribute_level[0][atr_id][0] > MOG_ATTRIBUTE_LEVEL::MAX_ATTRIBUTE_LEVEL
  168.          actor.attribute_level[0][atr_id][1] = 0
  169.       end
  170.       end   
  171.   end
  172.  
  173.   #--------------------------------------------------------------------------
  174.   # ● Element EXP
  175.   #--------------------------------------------------------------------------
  176.   def element_exp_up(actor_id,atr_id,value)
  177.       return if atr_id < 0
  178.       return if MOG_ATTRIBUTE_LEVEL::DISABLE_ELEMENT_ID.include?(atr_id)
  179.       $game_party.members.each do |actor|
  180.       if actor.id == actor_id and ![nil,""].include?(actor.attribute_level[0][atr_id][5])
  181.          actor.attribute_level[0][atr_id][1] += value.abs
  182.          element_lv_up(actor_id,atr_id,1) if actor.atr_level_up?(atr_id,0)
  183.       end
  184.       end   
  185.   end  
  186.  
  187.   #--------------------------------------------------------------------------
  188.   # ● Weapon LV
  189.   #--------------------------------------------------------------------------
  190.   def weapon_lv_up(actor_id,atr_id,value)
  191.       return if atr_id < 0
  192.       return if MOG_ATTRIBUTE_LEVEL::DISABLE_WEAPON_ID.include?(atr_id)
  193.       $game_party.members.each do |actor|
  194.       if actor.id == actor_id and ![nil,""].include?(actor.attribute_level[1][atr_id][5])
  195.          actor.attribute_level[1][atr_id][0] += value
  196.          actor.attribute_level[1][atr_id][0] = 1 if actor.attribute_level[1][atr_id][0] < 0
  197.          actor.attribute_level[1][atr_id][0] = MOG_ATTRIBUTE_LEVEL::MAX_ATTRIBUTE_LEVEL if actor.attribute_level[1][atr_id][0] > MOG_ATTRIBUTE_LEVEL::MAX_ATTRIBUTE_LEVEL
  198.          actor.attribute_level[1][atr_id][1] = 0
  199.       end
  200.       end      
  201.   end
  202.  
  203.   #--------------------------------------------------------------------------
  204.   # ● Weapon LV
  205.   #--------------------------------------------------------------------------
  206.   def weapon_exp_up(actor_id,atr_id,value)
  207.       return if atr_id < 0
  208.       return if MOG_ATTRIBUTE_LEVEL::DISABLE_WEAPON_ID.include?(atr_id)
  209.       $game_party.members.each do |actor|
  210.       if actor.id == actor_id and ![nil,""].include?(actor.attribute_level[1][atr_id][5])
  211.          actor.attribute_level[1][atr_id][1] += value.abs
  212.          weapon_lv_up(actor_id,atr_id,1) if actor.atr_level_up?(atr_id,1)
  213.       end
  214.       end      
  215.   end  
  216.  
  217. end
  218.  
  219. #==============================================================================
  220. # ■ Window_Status
  221. #==============================================================================
  222. class Window_Attribute_Level < Window_Selectable
  223.  
  224.   #--------------------------------------------------------------------------
  225.   # ● Object Initialization
  226.   #--------------------------------------------------------------------------
  227.   def initialize(actor)
  228.       super(0, 0, Graphics.width, Graphics.height)
  229.       self.visible = false
  230.       @actor = actor
  231.       refresh
  232.   end
  233.  
  234.   #--------------------------------------------------------------------------
  235.   # ● Set Actor
  236.   #--------------------------------------------------------------------------
  237.   def actor=(actor)
  238.       return if @actor == actor
  239.       @actor = actor
  240.       refresh
  241.   end
  242.  
  243.   #--------------------------------------------------------------------------
  244.   # ● Actor Elements
  245.   #--------------------------------------------------------------------------
  246.   def actor_attributes
  247.       atr = []
  248.       for i in @actor.attribute_level[0]
  249.           next if i == nil or i[5] == ""
  250.           next if i[4] == MOG_ATTRIBUTE_LEVEL::BARE_HANDS_ELEMENT_ID
  251.           next if MOG_ATTRIBUTE_LEVEL::DISABLE_ELEMENT_ID.include?(i[4])
  252.           atr.push(i)
  253.       end  
  254.       atr.push(@actor.attribute_level[0][MOG_ATTRIBUTE_LEVEL::BARE_HANDS_ELEMENT_ID])
  255.       for i in @actor.attribute_level[1]
  256.           next if i == nil or i[5] == ""
  257.           next if MOG_ATTRIBUTE_LEVEL::DISABLE_WEAPON_ID.include?(i[4])
  258.           atr.push(i)
  259.       end         
  260.       return atr
  261.    end
  262.  
  263.   #--------------------------------------------------------------------------
  264.   # ● Refresh
  265.   #--------------------------------------------------------------------------
  266.   def refresh
  267.     contents.clear
  268.     atrbutes = actor_attributes  
  269.     sw = Graphics.width - 16 ; sh = Graphics.height - 80
  270.     h_limit = sh / 32 ; x = 0 ; y = 48
  271.     sp = atrbutes.size > h_limit * 2 ? 3 : 2 ; x_space = sw / sp
  272.     change_color(normal_color)
  273.     draw_text(0,0,sw,32,MOG_ATTRIBUTE_LEVEL::ATTRIBUTE_LEVEL_NAME.to_s, 1)
  274.     draw_horz_line(line_height * 1)   
  275.     atrbutes.each_with_index do |i, index|
  276.         x2 = x_space * (index / h_limit)
  277.         y2 = -((h_limit * 32) * (index / h_limit))
  278.         change_color(normal_color)
  279.         draw_text(x + x2,y + y2 + 32 * index,x_space - 64,32,i[5].to_s, 0)
  280.         contents.font.color = Color.new(200,200,200,255)
  281.         draw_text(x + x2 + x_space - 64,y + y2 + 32 * index,64,32,"LV".to_s, 0)
  282.         draw_text(x + x2 + x_space - 74,y + y2 + 32 * index,64,32,i[0].to_s.to_s, 2)
  283.         draw_gauge(x + x2, line_height - 12 + y + y2 + 32 * index, x_space - 64, i, tp_gauge_color1, tp_gauge_color2)
  284.     end
  285.   end
  286.  
  287.   #--------------------------------------------------------------------------
  288.   # ● Draw Gauge
  289.   #--------------------------------------------------------------------------
  290.   def draw_gauge(x, y, width, atr, color1, color2)
  291.       fill_w = width * atr[1] / @actor.atr_next_exp(atr[4],atr[6])
  292.       fill_w = width if @actor.atr_max_level?(atr[4],atr[6])
  293.       gauge_y = y + line_height - 8
  294.       contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
  295.       contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2)
  296.   end  
  297.  
  298.   #--------------------------------------------------------------------------
  299.   # ● Draw Horizontal Line
  300.   #--------------------------------------------------------------------------
  301.   def draw_horz_line(y)
  302.       line_y = y + line_height / 2 - 1
  303.       contents.fill_rect(0, line_y, contents_width, 2, line_color)
  304.   end
  305.  
  306.   #--------------------------------------------------------------------------
  307.   # ● Line Color
  308.   #--------------------------------------------------------------------------
  309.   def line_color
  310.       color = normal_color ; color.alpha = 48 ; color
  311.   end
  312.  
  313.   #--------------------------------------------------------------------------
  314.   # ● Update
  315.   #--------------------------------------------------------------------------
  316.   def update
  317.       super
  318.       self.opacity = 255
  319.   end
  320.  
  321. end
  322.  
  323. #==============================================================================
  324. # ■ Window_Status
  325. #==============================================================================
  326. class Window_Attribute_Button < Window_Selectable
  327.   attr_accessor :fade_time
  328.   #--------------------------------------------------------------------------
  329.   # ● Object Initialization
  330.   #--------------------------------------------------------------------------
  331.   def initialize
  332.       super(0, 0, Graphics.width, 64)
  333.       self.y = Graphics.height - self.height ; @fade_time = 60
  334.       self.opacity = 0 ; self.contents_opacity = 0
  335.       refresh
  336.   end
  337.  
  338.   #--------------------------------------------------------------------------
  339.   # ● Refresh
  340.   #--------------------------------------------------------------------------
  341.   def refresh
  342.       contents.clear
  343.       draw_text(0,0,self.width - 32,32,MOG_ATTRIBUTE_LEVEL::PRESS_BUTTON_TEXT.to_s,1)
  344.   end
  345.  
  346.   #--------------------------------------------------------------------------
  347.   # ● Update
  348.   #--------------------------------------------------------------------------
  349.   def update
  350.       super
  351.       if @fade_time > 0
  352.          @fade_time -= 1 ; self.opacity += 20 ; self.contents_opacity += 20
  353.       else   
  354.          if self.opacity > 0
  355.             self.y += 5 ; self.opacity -= 5 ; self.contents_opacity -= 5  
  356.          end
  357.       end   
  358.   end
  359.  
  360. end
  361.  
  362. #==============================================================================
  363. # ■ Scene_Status
  364. #==============================================================================
  365. class Scene_Status < Scene_MenuBase
  366.  
  367.   #--------------------------------------------------------------------------
  368.   # ● Start
  369.   #--------------------------------------------------------------------------
  370.   alias mog_atr_start start
  371.   def start
  372.       mog_atr_start
  373.       @attribute_window = Window_Attribute_Level.new(@actor)
  374.       @attribute_window.z = @status_window.z + 50
  375.       @attribute_Button_window = Window_Attribute_Button.new
  376.       @attribute_Button_window.z = @attribute_window.z - 1
  377.   end
  378.  
  379.   #--------------------------------------------------------------------------
  380.   # ● On Actor Change
  381.   #--------------------------------------------------------------------------
  382.   alias mog_atr_on_actor_change on_actor_change
  383.   def on_actor_change
  384.       mog_atr_on_actor_change
  385.       @attribute_window.actor = @actor      
  386.   end
  387.  
  388.   #--------------------------------------------------------------------------
  389.   # ● Update
  390.   #--------------------------------------------------------------------------
  391.   alias mog_atr_update update
  392.   def update
  393.       mog_atr_update
  394.       if Input.trigger?(:C)
  395.          Sound.play_ok ; @attribute_Button_window.fade_time = 0
  396.          @attribute_window.visible = @attribute_window.visible ? false : true
  397.       end
  398.   end
  399.  
  400. end
  401.  
  402. #==============================================================================
  403. # ■ Game_Battler
  404. #==============================================================================
  405. class Game_Battler < Game_BattlerBase
  406.  
  407.   attr_accessor :attribute_level
  408.  
  409.   #--------------------------------------------------------------------------
  410.   # ● Initialize
  411.   #--------------------------------------------------------------------------
  412.   alias mog_attribute_initialize initialize
  413.   def initialize
  414.       initial_attribute_level
  415.       mog_attribute_initialize
  416.   end
  417.  
  418.   #--------------------------------------------------------------------------
  419.   # ● Initial Attribute Level
  420.   #--------------------------------------------------------------------------
  421.   def initial_attribute_level
  422.       @attribute_level = [[],[]]
  423.       $data_system.elements.each_with_index do |i, index|
  424.          @attribute_level[0].push([1,0,0,false,index,i,0])
  425.       end
  426.       $data_system.weapon_types.each_with_index do |i, index|
  427.          @attribute_level[1].push([1,0,0,false,index,i,1])
  428.       end
  429.   end
  430.  
  431.   #--------------------------------------------------------------------------
  432.   # ● Atr Clear EXP Phase
  433.   #--------------------------------------------------------------------------
  434.   def atr_clear_exp_phase
  435.       @attribute_level[0].each do |i| ; i[3] = false ; end
  436.       @attribute_level[1].each do |i| ; i[3] = false ; end
  437.   end  
  438.  
  439.   #--------------------------------------------------------------------------
  440.   # ● Atr Base EXP
  441.   #--------------------------------------------------------------------------
  442.   def atr_base_exp
  443.       return 1
  444.   end
  445.  
  446.   #--------------------------------------------------------------------------
  447.   # ● Add Atr EXP
  448.   #--------------------------------------------------------------------------
  449.   def add_atr_exp(atr_id,type)
  450.        return if !atr_exp?(atr_id,type)
  451.        @attribute_level[type][atr_id][1] += atr_base_exp
  452.        @attribute_level[type][atr_id][2] += atr_base_exp
  453.        atr_level_up(atr_id,type) if atr_level_up?(atr_id,type)
  454.   end
  455.  
  456.   #--------------------------------------------------------------------------
  457.   # ● Atr EXP ?
  458.   #--------------------------------------------------------------------------
  459.   def atr_exp?(atr_id,type)
  460.        return false if atr_id < 0
  461.        return false if atr_max_level?(atr_id,type)      
  462.        return false if @attribute_level[type][atr_id][3]
  463.        return false if [nil,""].include?(@attribute_level[type][atr_id][5])      
  464.        return false if type == 0 and MOG_ATTRIBUTE_LEVEL::DISABLE_ELEMENT_ID.include?(atr_id)
  465.        return false if type == 1 and MOG_ATTRIBUTE_LEVEL::DISABLE_WEAPON_ID.include?(atr_id)
  466.        return true
  467.   end
  468.  
  469.   #--------------------------------------------------------------------------
  470.   # ● Atr Level UP
  471.   #--------------------------------------------------------------------------
  472.   def atr_level_up?(atr_id,type)
  473.       return false if atr_max_level?(atr_id,type)
  474.       return true if @attribute_level[type][atr_id][1] >= atr_next_exp(atr_id,type)
  475.       return false
  476.   end
  477.  
  478.   #--------------------------------------------------------------------------
  479.   # ● Atr Max Level
  480.   #--------------------------------------------------------------------------
  481.   def atr_max_level?(atr_id,type)
  482.       return true if @attribute_level[type][atr_id][0] >= MOG_ATTRIBUTE_LEVEL::MAX_ATTRIBUTE_LEVEL
  483.       return false
  484.   end
  485.  
  486.   #--------------------------------------------------------------------------
  487.   # ● Atr Level UP
  488.   #--------------------------------------------------------------------------
  489.   def atr_next_exp(atr_id,type)
  490.       return @attribute_level[type][atr_id][0] * MOG_ATTRIBUTE_LEVEL::NEXT_EXP_LEVEL_BASE
  491.   end
  492.  
  493.   #--------------------------------------------------------------------------
  494.   # ● Atr Level UP
  495.   #--------------------------------------------------------------------------
  496.   def atr_level_up(atr_id,type)
  497.       @attribute_level[type][atr_id][0] += 1
  498.       @attribute_level[type][atr_id][1] = 0 unless atr_max_level?(atr_id,type)
  499.   end
  500.  
  501.   #--------------------------------------------------------------------------
  502.   # ● Make Atr Damage Value
  503.   #--------------------------------------------------------------------------
  504.   alias mog_atr_make_damage_value make_damage_value
  505.   def make_damage_value(user, item)
  506.       mog_atr_make_damage_value(user, item)
  507.       if attribute_effect?(user, item)         
  508.          make_atr_damage_value(user, item)
  509.          excute_add_atr_exp(user, item)
  510.          if $imported[:mog_atb_system] and coop_make_damage_value?(user, item)
  511.             for actor in BattleManager.cskill_members(item.id)
  512.                 next if actor == user
  513.                 make_atr_damage_value(actor, item)
  514.                 excute_add_atr_exp(actor, item)
  515.             end
  516.          end
  517.       end   
  518.   end
  519.  
  520.   #--------------------------------------------------------------------------
  521.   # ● Attribute Effect
  522.   #--------------------------------------------------------------------------
  523.   def attribute_effect?(user, item)
  524.       return false if item == nil
  525.       return false if item.is_a?(RPG::Item)
  526.       return false if user.is_a?(Game_Enemy)
  527.       return true
  528.   end
  529.  
  530.   #--------------------------------------------------------------------------
  531.   # ● Execute Add Atr EXP
  532.   #--------------------------------------------------------------------------
  533.   def excute_add_atr_exp(user, item)
  534.       if item.id == user.attack_skill_id
  535.           if user.equips[0] != nil
  536.              atr_id_1 = user.equips[0].wtype_id
  537.              user.add_atr_exp(atr_id_1,1)
  538.           else   
  539.              user.add_atr_exp(MOG_ATTRIBUTE_LEVEL::BARE_HANDS_ELEMENT_ID,0)
  540.              user.attribute_level[1][0][3] = true
  541.           end
  542.           if user.dual_wield? and user.equips[1] != nil
  543.              atr_id_2 = user.equips[1].wtype_id
  544.              user.add_atr_exp(atr_id_2,1)
  545.           end
  546.           user.attribute_level[1][atr_id_1][3] = true if atr_id_1 != nil
  547.           user.attribute_level[1][atr_id_2][3] = true if atr_id_2 != nil
  548.       else  
  549.          user.add_atr_exp(item.damage.element_id,0)
  550.          if user.equips[0] != nil and
  551.             (item.required_wtype_id1 == user.equips[0].wtype_id or
  552.             item.required_wtype_id2 == user.equips[0].wtype_id)         
  553.             user.add_atr_exp(user.equips[0].wtype_id,1) ; wp_1 = true
  554.          end
  555.          if user.dual_wield? and user.equips[1] != nil and
  556.             (item.required_wtype_id1 == user.equips[1].wtype_id or
  557.             item.required_wtype_id2 == user.equips[1].wtype_id)
  558.             user.add_atr_exp(user.equips[1].wtype_id,1) ; wp_2 = true
  559.          end   
  560.          user.attribute_level[0][item.damage.element_id][3] = true
  561.          user.attribute_level[1][user.equips[0].wtype_id][3] = true if wp_1
  562.          user.attribute_level[1][user.equips[1].wtype_id][3] = true if wp_2
  563.       end
  564.   end
  565.  
  566.   #--------------------------------------------------------------------------
  567.   # ● Atr Dmg P
  568.   #--------------------------------------------------------------------------
  569.   def atr_dmg_p(user,atr_id,type)
  570.       ((user.attribute_level[type][atr_id][0] - 1)  * MOG_ATTRIBUTE_LEVEL::DAMAGE_PERCENTAGE_PER_LEVEL)
  571.   end  
  572.  
  573.   #--------------------------------------------------------------------------
  574.   # ● Make Atr Damage Value
  575.   #--------------------------------------------------------------------------
  576.   def make_atr_damage_value(user, item)
  577.       b_damage = @result.hp_damage if item.damage.to_hp?
  578.       b_damage = @result.mp_damage if item.damage.to_mp?
  579.       b_damage = 0 if b_damage.nil?
  580.       if item.id == user.attack_skill_id
  581.          if user.equips[0] != nil
  582.             atr_id = user.equips[0].wtype_id
  583.             dam = b_damage * atr_dmg_p(user,atr_id,1) / 100
  584.             execute_atr_damage(user,dam,item)
  585.          else   
  586.             dam = b_damage * atr_dmg_p(user,MOG_ATTRIBUTE_LEVEL::BARE_HANDS_ELEMENT_ID,0) / 100
  587.             execute_atr_damage(user,dam,item)         
  588.          end
  589.          if user.dual_wield? and user.equips[1] != nil
  590.             atr_id = user.equips[1].wtype_id
  591.             dam = b_damage * atr_dmg_p(user,atr_id,1) / 100
  592.             execute_atr_damage(user,dam,item)
  593.          end
  594.       else
  595.             dam = b_damage * atr_dmg_p(user,item.damage.element_id,0) / 100
  596.             execute_atr_damage(user,dam,item)
  597.             if user.equips[0] != nil and
  598.                (item.required_wtype_id1 == user.equips[0].wtype_id or
  599.                 item.required_wtype_id2 == user.equips[0].wtype_id)
  600.                 atr_id = user.equips[0].wtype_id
  601.                 dam = b_damage * atr_dmg_p(user,atr_id,1) / 100
  602.                 execute_atr_damage(user,dam,item)
  603.             end
  604.             if user.dual_wield? and user.equips[1] != nil and
  605.                (item.required_wtype_id1 == user.equips[1].wtype_id or
  606.                item.required_wtype_id2 == user.equips[1].wtype_id)
  607.                atr_id = user.equips[1].wtype_id
  608.                dam = b_damage * atr_dmg_p(user,atr_id,1) / 100               
  609.                execute_atr_damage(user,dam,item)
  610.             end
  611.       end
  612.   end
  613.  
  614.   #--------------------------------------------------------------------------
  615.   # ● Execute ATR Damage
  616.   #--------------------------------------------------------------------------
  617.   def execute_atr_damage(user,b_damage,item)
  618.       m_size = 1
  619.       if $imported[:mog_atb_system] and coop_make_damage_value?(user, item)
  620.           m_size = BattleManager.cskill_members(item.id).size if BattleManager.cskill_members(item.id).size > 0
  621.       end        
  622.       @result.hp_damage += (b_damage / m_size) if item.damage.to_hp?
  623.       @result.mp_damage += (b_damage / m_size) if item.damage.to_mp?   
  624.   end
  625.  
  626. end
  627.  
  628. #==============================================================================
  629. # ■ Scene Battle
  630. #==============================================================================
  631. class Scene_Battle < Scene_Base
  632.  
  633.   #--------------------------------------------------------------------------
  634.   # ● Use Item
  635.   #--------------------------------------------------------------------------
  636.   alias mog_atr_level_use_item use_item
  637.   def use_item
  638.       mog_atr_level_use_item
  639.       @subject.atr_clear_exp_phase
  640.   end
  641.  
  642. end
  643.  
  644. #==============================================================================
  645. # ■ Game Battler
  646. #==============================================================================
  647. class Game_Battler < Game_BattlerBase
  648.  
  649.   #--------------------------------------------------------------------------
  650.   # ● Make Action
  651.   #--------------------------------------------------------------------------
  652.   def make_action_r(skill_id, target_index)  
  653.       clear_actions
  654.       action = Game_Action.new(self, true)
  655.       action.set_skill(skill_id)
  656.       action.target_index = target_index
  657.       @actions.push(action)   
  658.   end
  659.  
  660. end
  661.  
  662. #==============================================================================
  663. # ■ Game Actor
  664. #==============================================================================
  665. class Game_Actor < Game_Battler
  666.   attr_reader   :actor_id
  667. end
  668.  
  669. #==============================================================================
  670. # ■ Scene Battle
  671. #==============================================================================
  672. class Scene_Battle < Scene_Base
  673.  
  674.   #--------------------------------------------------------------------------
  675.   # ● Use Item
  676.   #--------------------------------------------------------------------------
  677.   alias mog_atr_level_execute_action execute_action
  678.   def execute_action
  679.       execute_random_learning if execute_random_learning?
  680.       mog_atr_level_execute_action
  681.   end
  682.  
  683.   #--------------------------------------------------------------------------
  684.   # ● Execute Random Learning?
  685.   #--------------------------------------------------------------------------
  686.   def execute_random_learning?
  687.       return false if !MOG_SAGA_SKILL::ENABLE_SKILL_LEARNING
  688.       return false if @subject.nil?
  689.       return false if @subject.is_a?(Game_Enemy)   
  690.       item = @subject.current_action.item rescue nil
  691.       return false if item == nil
  692.       return false if item.is_a?(RPG::Item)
  693.       return false if $imported[:mog_atb_system] and BattleManager.is_cskill?(item.id)
  694.       return true
  695.   end
  696.  
  697.   #--------------------------------------------------------------------------
  698.   # ● Execute Random Learning
  699.   #--------------------------------------------------------------------------
  700.   def execute_random_learning
  701.       item = @subject.current_action.item ; success = false ; skill_id = 0 ; skill = nil
  702.       if item.id ==  @subject.attack_skill_id
  703.          if @subject.equips[0] != nil
  704.             atr_id = @subject.equips[0].wtype_id ; type = 1
  705.          else   
  706.             atr_id = MOG_ATTRIBUTE_LEVEL::BARE_HANDS_ELEMENT_ID ; type = 0
  707.          end  
  708.          skill_list = MOG_SAGA_SKILL::ELEMENT_LEARN_SKILL[atr_id] if type == 0
  709.          skill_list = MOG_SAGA_SKILL::WEAPON_LEARN_SKILL[atr_id] if type == 1
  710.       else
  711.          atr_id = item.damage.element_id ; type = 0
  712.          skill_list = MOG_SAGA_SKILL::ELEMENT_LEARN_SKILL[atr_id]
  713.       end
  714.       if skill_list != nil ; skill_list.each do |i| ; skill_id = i[0]
  715.          skill = $data_skills[skill_id]
  716.          if atr_learn_skill?(skill,atr_id,i[1],type)
  717.             success = true ; @subject.learn_skill(skill_id) ; break
  718.          end
  719.       end
  720.       end
  721.       if success and skill_id != 0
  722.          target = @subject.current_action.target_index
  723.          @subject.make_action_r(skill_id, target)
  724.          @log_window.display_learned_skill(@subject.name,skill.name)
  725.          execute_learning_animation
  726.       end
  727.   end
  728.  
  729.   #--------------------------------------------------------------------------
  730.   # ● Atr Learn Skill
  731.   #--------------------------------------------------------------------------
  732.   def atr_learn_skill?(skill,atr_id,lv_r,type)
  733.       return false if skill == nil
  734.       return false if $imported[:mog_atb_system] and BattleManager.is_cskill?(skill.id)
  735.       nskill = MOG_SAGA_SKILL::ACTOR_NOT_LEARN_SKILL_ID[@subject.actor_id]
  736.       return false if !nskill.nil? and nskill.include?(skill.id)
  737.       return false if !@subject.added_skill_types.include?(skill.stype_id)
  738.       return false if @subject.skill_learn?(skill)
  739.       return false if @subject.attribute_level[type][atr_id][0] < lv_r
  740.       success_rate = MOG_SAGA_SKILL::SUCCESS_RATE + (@subject.attribute_level[type][atr_id][0] - lv_r).abs
  741.       return false if success_rate < rand(100)
  742.       return true
  743.   end
  744.  
  745.   #--------------------------------------------------------------------------
  746.   # ● Execute Learning Animation
  747.   #--------------------------------------------------------------------------
  748.   def execute_learning_animation
  749.       @subject.animation_id = MOG_SAGA_SKILL::LEARNING_ANIMATION_ID
  750.       return if @subject.animation_id.nil? or @subject.animation_id < 1
  751.       animation = $data_animations[@subject.animation_id] rescue nil
  752.       return if animation.nil?
  753.       anid = (animation.frame_max * 4) + 1 ; anid.times do ; update_basic ; end
  754.   end
  755.  
  756. end
  757.  
  758. #==============================================================================
  759. # ■ Window BattleLog
  760. #==============================================================================
  761. class Window_BattleLog < Window_Selectable
  762.  
  763.   #--------------------------------------------------------------------------
  764.   # ● Display Learned Skill
  765.   #--------------------------------------------------------------------------
  766.   def display_learned_skill(battler_name,skill_name)
  767.       text = battler_name.to_s + " " + MOG_SAGA_SKILL::BATTLE_LOG_TEXT + " " + skill_name.to_s + "!"
  768.       replace_text(text) ; wait
  769.   end
  770.  
  771. end

请问怎么用事件调用这个脚本》?并且去掉状态面板中的显示。

Lv3.寻梦者

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
帖子
571
2
发表于 2018-1-12 19:56:25 | 只看该作者
element_lv_up(角色ID , 属性ID, 数值)   这这这………………他不是说了吗(不必要问了啊)
element_lv_up(1 , 2, 3) 提升一号角色2号属性3点经验值(好像那边value就是类似于经验这种东西)
72行还有下面还可以设置技能呢!还有学习条件只要看下格式就行

点评

先谢谢你我,但是我想用事件调用这个脚本的窗口,不是去升级属性的呀,就是不要让他在状态里消失,换到菜单里面  发表于 2018-1-12 20:09
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
14790
在线时间
2106 小时
注册时间
2017-9-28
帖子
662
3
发表于 2018-1-13 11:27:26 | 只看该作者
同求.....


顺便发现了一些翻译错误和漏洞我回去改改
VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 11:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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