赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4562 |
最后登录 | 2016-1-29 |
在线时间 | 108 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 108 小时
- 注册时间
- 2013-10-22
- 帖子
- 60
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 yunxin0111 于 2015-1-16 21:49 编辑
- <Update History:
- # - Version 1.1 - Cleaned up some shit, and added enemies xstats for Enemies!
- # - Version 1.0 - Initial release, made for the shit of it <img src='http://forums.rpgmakerweb.com/public/style_emoticons/<#EMO_DIR#>/tongue.png' class='bbc_emoticon' alt=':P' />
- 在人物备注填写,属性成长
- <xstat>
- :str => '(level/3.5) + 16',
- :con => '(level/5.6) + 12',
- :dex => '(level/5.25) + 15 + agi',
- :int => '(level/10.5) + 10',
- :wis => '(level/10.5) + 10',
- :cha => '(level/10.5) + 10',
- <xstat_end>
-
- 也可以直接在备注填写固定属性
- <xstat>
- :str => 15,
- :con => 14,
- :dex => 13,
- :int => 12,
- :wis => 11,
- :cha => 0,
- <xstat_end>
-
- 在武器或护甲的备注里按照如下格式填写可以让该装备增加对应属性
- <weapon_xstat: STAT x>
- 范例,让装备增加5点‘str’ <weapon_xstat: str 5>
- 调用属性:$game_actors[1].xstat.X 例:$game_actors[1].xstat.str
- 伤害公式范例: a.xstat.str * 5
- #===============================================================================
- =end
- module Z26
- #[:力量,:耐力,:灵巧,:敏捷,:魔力,:才智]
- STATS = [:力量,:耐力,:灵巧,:敏捷,:魔力,:才智]
-
- #Default xstat formulas for ACTORS
- #玩家基础属性
- DEFAULT_LEVEL_FORMULA =
- {
- :力量 => 1,
- :耐力 => 1,
- :灵巧 => 1,
- :敏捷 => 1,
- :魔力 => 1,
- :才智 => 1,
- }
-
- #Default xstat formulas for ENEMIES\
- #敌对基础属性
- DEFAULT_FOR_ENEMIES =
- {
- :力量 => 1,
- :耐力 => 1,
- :灵巧 => 1,
- :敏捷 => 1,
- :魔力 => 1,
- :智力 => 1,
- }
-
- def self.actor_level_formulas(actor_id)
- jhh = ""
- strin = $data_actors[actor_id].get_start_end_cache
- strin.each do |i|
- jhh += i
- end
- return DEFAULT_LEVEL_FORMULA if strin == "" or strin == []
- return eval("{#{jhh}}")
- end
-
- def self.enemy_stats(enemy_id)
- jhh = ""
- strin = $data_enemies[enemy_id].get_start_end_cache
- strin.each do |i|
- jhh += i
- end
- return DEFAULT_FOR_ENEMIES if strin == "" or strin == []
- return eval("{#{jhh}}")
- end
-
- #=============================================================================
- SYMBOLS = []
- for stat in STATS
- SYMBOLS.push(stat)
- end
- Xstats = Struct.new(*SYMBOLS)
- end
-
- class Game_Enemy < Game_Battler
- attr_accessor :xstat
-
- alias z26_enemy_set initialize unless $@
- def initialize(*args)
- z26_enemy_set(*args)
- @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
- for stat in Z26::STATS
- z26variate_stats(stat)
- end
-
- end
-
- def z26variate_stats(stat)
- return if Z26.enemy_stats(@enemy_id)[stat].nil?
- if Z26.enemy_stats(@enemy_id)[stat].is_a?(String)
- set_in = eval(Z26.enemy_stats(@enemy_id)[stat]).to_i
- eval("@xstat.#{stat} += #{set_in}")
- else
- set_in = Z26.enemy_stats(@enemy_id)[stat]
- @xstat[stat] += set_in
- end
- end
- end
-
- class Game_Actor < Game_Battler
- attr_accessor :xstat
-
- alias z26_s setup unless $@
- def setup(actor_id)
- z26_s(actor_id)
- @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
- for item in equips.compact
- z26variate_equip(item)
- end
- for stat in Z26::STATS
- z26variate_stats(stat, @level)
- end
- end
-
- alias z26_change_equip change_equip
- def change_equip(equip_type, item, test = false)
- last_item = equips[equip_type]
- z26_change_equip(equip_type, item)
- z26variate_equip(item)
- z26variate_equip(last_item, false)
- end
-
- #=====================#
- ##EDITED BY NELDERSON##
- #=====================#
- def z26variate_equip(item, adding = true)
- return if item.nil?
- for line in item.note.split(/[\r\n]+/).each{ |a|
- case a
- when /<weapon_xstat:[ ](.*)[ ](\d+)>/i
- if Z26::STATS.include?(eval(":" + $1))
- if adding
- eval("@xstat.#{$1} += #{$2}")
- else
- eval("@xstat.#{$1} -= #{$2}")
- end
- end
- end
- }
- end
- end
-
- def z26variate_stats(stat, level, adding = true)
- return if Z26.actor_level_formulas(@actor_id)[stat].nil?
- if Z26.actor_level_formulas(@actor_id)[stat].is_a?(String)
- amount = eval(Z26.actor_level_formulas(@actor_id)[stat]).to_i
- else
- amount = Z26.actor_level_formulas(@actor_id)[stat]
- end
- if adding
- eval("@xstat.#{stat} += #{amount}")
- else
- eval("@xstat.#{stat} -= #{amount}")
- end
- end
-
- alias z26level_up level_up unless $@
- def level_up
- for stat in Z26::STATS
- z26variate_stats(stat, @level, false)
- end
- z26level_up
- for stat in Z26::STATS
- z26variate_stats(stat, @level)
- end
- end
- end
-
- class Window_Status < Window_Selectable
- def draw_block3(y) #绘制背景
- draw_parameters(0, y) #绘制区域3
- draw_equipments(344, y)#288 #344
- draw_xstat_parameters(172, y)
- end
-
- def draw_xstat_parameters(x, y) #xstat区域绘制
- @actor.xstat.size.times {|i| #刷新 ?
- draw_actor_xstat_param(@actor, x, y + line_height * i, i) }
- end
- end
-
- class Window_Base < Window
- def draw_actor_xstat_param(actor, x, y, param_id) #绘制能力值
- id = Z26::STATS[param_id]
- change_color(system_color)
- draw_text(x, y, 120, line_height, id.capitalize) #
- change_color(normal_color)
- draw_text(x + 120, y, 36, line_height, actor.xstat[id], 2)
-
- end
- end
-
- class RPG::BaseItem
- def get_start_end_cache
- record = false
- temp = []
- self.note.split(/[\r\n]+/).each do |line|
- if line =~ /<xstat>/i
- record = true
- elsif line =~ /<xstat_end>/i
- record = false
- end
- if record
- temp << line
- end
- end
- return nil if temp == ""
- temp.delete_at(0)
- temp
- end
- end
复制代码 >
这个是从论坛找的脚本,但是在使用的时候,在人物备注添加上面的
<xstat>
:str => 15,
:con => 14,
:dex => 13,
:int => 12,
:wis => 11,
:cha => 0,
<xstat_end>,发现人物状态栏力量等属性还是0没变,然后试了一下装备加属性也不行,试下升级也不行,然后尝试看看绘图方面的程序,也没发现啥问题,请教大神这是为啥属性显示是0,而不是随着升级变动。 |
|