Project1

标题: 备注栏增减变量 [打印本页]

作者: 布兰度西特    时间: 2012-12-10 22:39
标题: 备注栏增减变量
要求:在状态备注栏 技能备注栏 怪物备注栏 填写"<变量X +X>"或"<变量X -X>"就能增减变量X ,填写复数变量时可以同时增减复数变量。

      状态为每得到一次状态计算一次   技能为每使用一次计算一次   怪物为每消灭一只计算一次



脚本大神们~ ~快来吧~@protosssonny  
作者: 怪蜀黍    时间: 2012-12-10 22:39
范例下载:http://pan.baidu.com/share/link?shareid=174721&uk=875076719
主要功能:为你要求的功能订制脚本,在状态备注栏、技能备注栏、怪物备注栏 填写<变量X X><变量X -X>就能增减变量X ,填写复数变量时可以同时增减复数变量。
使用方法:截图表示,按要求填写备注。



脚本公布:
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 判定状态是否可以附加
  4.   #--------------------------------------------------------------------------
  5.   def state_addable?(state_id)
  6.     if alive? && $data_states[state_id] && !state_resist?(state_id) &&
  7.       !state_removed?(state_id) && !state_restrict?(state_id)
  8.       variable_change(state_id, 0) # 附加状态时调用变量变化的公共脚本
  9.       if state_id == 1 and self.is_a?(Game_Enemy)
  10.         variable_change(self.enemy_id, 2) # 敌人死亡时调用变量变化的公共脚本
  11.       end  
  12.       return true
  13.     else
  14.       return false
  15.     end  
  16.   end
  17. end  
  18.   
  19. class Scene_ItemBase < Scene_MenuBase
  20.   #--------------------------------------------------------------------------
  21.   # ● 使用物品
  22.   #--------------------------------------------------------------------------
  23.   def use_item
  24.     variable_change(item.id, 1) if item.is_a?(RPG::Skill) # 平时使用技能时调用变量变化的公共脚本
  25.     play_se_for_item
  26.     user.use_item(item)
  27.     use_item_to_actors
  28.     check_common_event
  29.     check_gameover
  30.     @actor_window.refresh
  31.   end
  32. end

  33. class Scene_Battle < Scene_Base
  34.   #--------------------------------------------------------------------------
  35.   # ● 使用技能/物品
  36.   #--------------------------------------------------------------------------
  37.   def use_item
  38.     item = @subject.current_action.item
  39.     @log_window.display_use_item(@subject, item)
  40.     @subject.use_item(item)
  41.     refresh_status
  42.     targets = @subject.current_action.make_targets.compact
  43.     show_animation(targets, item.animation_id)
  44.     targets.each {|target| item.repeats.times { invoke_item(target, item) } }
  45.     variable_change(item.id, 1) if item.is_a?(RPG::Skill) # 战斗时使用技能时调用变量变化的公共脚本
  46.   end
  47. end  

  48. #--------------------------------------------------------------------------
  49. # ● 变量变化的公共脚本
  50. #--------------------------------------------------------------------------
  51. def variable_change(obj_id, type)
  52.   case type
  53.   when 0
  54.     object = $data_states[obj_id]
  55.   when 1
  56.     object = $data_skills[obj_id]
  57.   when 2
  58.     object = $data_enemies[obj_id]
  59.   end  
  60.   object.note.each_line do |line|
  61.     if line.include?("<变量")
  62.       string = line.delete("<")
  63.       string = string.delete(">")
  64.       string = string.delete("\r\n").split(/ /)
  65.       $game_variables[string[0].delete("变量").to_i] += string[1].to_i
  66.     end  
  67.   end
  68. end
复制代码

作者: 896409879    时间: 2012-12-11 12:03
This just helps a little
http://www.rpgmakervxace.net/top ... 2Bcommon%2B%2Bevent
作者: 怪蜀黍    时间: 2012-12-11 21:12
只有队长中状态才增加变量:把原脚本的第8行用以下几行脚本替换
  1. unless self.is_a?(Game_Enemy)
  2.   if self.id == 1 #假定队长是1号角色就写1;是2号角色就写2
  3.     variable_change(state_id, 0) # 附加状态时调用变量变化的公共脚本
  4.   end
  5. end
复制代码

作者: z2z4    时间: 2013-4-5 09:57
这个能写在 物品备注栏吗 为什么我写了  没效果
作者: aieuogshlikb    时间: 2021-7-29 17:50
这个可以设置成武器耐久度的形式吗




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