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

Project1

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

[已经解决] 如何增加人物属性的数量

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
525 小时
注册时间
2012-2-23
帖子
186
跳转到指定楼层
1
发表于 2013-6-18 13:00:55 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 alwsheng 于 2013-6-18 21:44 编辑

如题,能详细的说下怎么添加更好,有看到一些帖子有说,就是没怎么明白,

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
2
发表于 2013-6-18 15:31:58 | 只看该作者
本帖最后由 双叶GL 于 2013-6-18 15:34 编辑

善用搜索
http://rpg.blue/forum.php?mod=viewthread&tid=303162
直接添加额外属性
这个应该属于简单易懂,

复制下面的脚本

额外成长,敌人属性,技能加成,都是写在备注即可

而且想要添加其他的,就搜索其中一个属性,然后吧相关内容全部复制,然后修改搜索属性的名字即可



http://rpg.blue/thread-99474-1-1.html
读取某段字符

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 感谢帮忙

查看全部评分

- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
370
在线时间
117 小时
注册时间
2012-10-2
帖子
140
3
发表于 2013-6-18 16:18:33 | 只看该作者
2楼好渊博

但是有个小问题············第二个地址指向的VX的脚本···················那个脚本能用在VA上么?求解释
梦想只有到了实现的时候,你才知道她的容貌。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
381 小时
注册时间
2012-8-13
帖子
113
4
发表于 2013-6-18 18:57:13 | 只看该作者
本帖最后由 tyq4590 于 2013-6-18 23:20 编辑

在外站找到一个脚本应该可以帮到你。效果如下图:



先说一下用法:

在角色的备注里按照以下格式填写对应属性的成长公式:

RUBY 代码复制
  1. <xstat>
  2. :str => '(level/3.5) + 16',
  3. :con => '(level/5.6) + 12',
  4. :dex => '(level/5.25) + 15 + agi',
  5. :int => '(level/10.5) + 10',
  6. :wis => '(level/10.5) + 10',
  7. :cha => '(level/10.5) + 10',
  8. <xstat_end>


也可以直接在角色或敌人的备注栏里填写固定数值:

RUBY 代码复制
  1. <xstat>
  2. :str => 15,
  3. :con => 14,
  4. :dex => 13,
  5. :int => 12,
  6. :wis => 11,
  7. :cha => 0,
  8. <xstat_end>


在武器或护甲的备注里按照如下格式填写可以让该装备增加对应属性:

RUBY 代码复制
  1. <weapon_xstat: STAT x>


范例,让装备增加5点‘str’属性:

RUBY 代码复制
  1. <weapon_xstat: str 5>


调用属性:

RUBY 代码复制
  1. $game_actors[1].xstat.str


范例,设置x技能的伤害公式为【人物的‘str’乘以5】:

RUBY 代码复制
  1. a.xstat.str * 5


----------------------------------------------------------分割线------------------------------------------------------------

脚本:
RUBY 代码复制
  1. #===============================================================================
  2. #                                                N.A.S.T.Y. Extra Stats
  3. #                                  Nelderson's Awesome Scripts To You
  4. # By: Nelderson
  5. # Made On: 12/19/2011
  6. # Last Updated : 3/27/2012
  7. #===============================================================================
  8. # Update History:
  9. # - Version 1.1  - Cleaned up some shit, and added enemies xstats for Enemies!
  10. # - 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' />
  11. #===============================================================================
  12. # *Notes:
  13. # - This script can be used to make all sorts of stats that can derive from
  14. #   an actor's level, and base stats.
  15. #
  16. # - This thing can be a pain to set up, but once it's done, it can be a very
  17. #   powerful way to include new stats into your game!
  18. #
  19. # - Made a quick edit to the status screen to show up to 6 stats!
  20. #
  21. # *Usage
  22. #
  23. # -First is the STATS section.  This is an array that holds all the new
  24. #  stats that everything else gets info from.
  25. #
  26. # - Next fill out the Default Level formula(Use Example Below as a guide)
  27. #   *ANYTHING that an actor has, you can base it off of (Except other XSTATS!)
  28. #           (level, hp, mp, atk, spi, agi, maxhp, etc.)
  29. #
  30. # -You can use the ACTOR and ENEMY NOTETAGS to customize
  31. #  the formulas for each actor.
  32. #
  33. #  Examples:
  34. #   Place the following in an actor's notebox(You must make one for each stat):
  35. #                 <xstat>
  36. #                 :str => '(level/3.5) + 16',
  37. #                 :con => '(level/5.6) + 12',
  38. #                 :dex => '(level/5.25) + 15 + agi',
  39. #                 :int => '(level/10.5) + 10',
  40. #                 :wis => '(level/10.5) + 10',
  41. #                 :cha => '(level/10.5) + 10',
  42. #                 <xstat_end>
  43. #
  44. #   Or you can place this in an actor's/enemy's notebox
  45. #                 <xstat>
  46. #                 :str => 15,
  47. #                 :con => 14,
  48. #                 :dex => 13,
  49. #                 :int => 12,
  50. #                 :wis => 11,
  51. #                 :cha => 0,
  52. #                 <xstat_end>
  53. #
  54. # - This script also uses notetags for weapons and armors to increase xstats
  55. #   if you want.  Just place in a notebox:
  56. #
  57. #                 <weapon_xstat: STAT x> , where STAT is th name of the new stat
  58. #
  59. #           Ex. <weapon_xstat: str 5> , would raise the actor's str +5
  60. #
  61. #  *For Scripters
  62. #
  63. #  -If you want to access the stats, just use:
  64. #                actor.xstat.STAT - Where STAT is the name of the new stat
  65. #          
  66. #           Ex. $game_actors[1].xstat.str , will return actor 1's str
  67. #  
  68. #===============================================================================
  69. # Credits:
  70. # -Nelderson and Zetu
  71. #  Original Script was made by Zetu, and I spiced the shit out of it!
  72. #===============================================================================
  73.  
  74. module Z26
  75.  
  76.   STATS = [:str,:con,:dex,:int,:wis,:cha]
  77.  
  78.   #Default xstat formulas for ACTORS
  79.   DEFAULT_LEVEL_FORMULA =
  80.                 {
  81.                   :str => '(level/3.5) + 16 + atk',
  82.                   :con => '(level/5.6) + 12',
  83.                   :dex => '(level/5.25) + 15 + agi',
  84.                   :int => '(level/10.5) + 10',
  85.                   :wis => '(level/10.5) + 10',
  86.                   :cha => '(level/10.5) + 10',
  87.                 }
  88.  
  89.   #Default xstat formulas for ENEMIES          
  90.   DEFAULT_FOR_ENEMIES =
  91.                 {
  92.                   :str => 0,
  93.                   :con => 0,
  94.                   :dex => 0,
  95.                   :int => 0,
  96.                   :wis => 0,
  97.                   :cha => 0,
  98.                 }
  99.  
  100.    def self.actor_level_formulas(actor_id)
  101.           jhh = ""
  102.           strin = $data_actors[actor_id].get_start_end_cache
  103.           strin.each do |i|
  104.                 jhh += i
  105.           end
  106.           return DEFAULT_LEVEL_FORMULA if strin == "" or strin == []
  107.           return eval("{#{jhh}}")
  108.         end
  109.  
  110.         def self.enemy_stats(enemy_id)
  111.           jhh = ""
  112.           strin = $data_enemies[enemy_id].get_start_end_cache
  113.           strin.each do |i|
  114.                 jhh += i
  115.           end
  116.           return DEFAULT_FOR_ENEMIES if strin == "" or strin == []
  117.           return eval("{#{jhh}}")
  118.         end
  119.  
  120.   #=============================================================================
  121.   SYMBOLS = []
  122.   for stat in STATS
  123.         SYMBOLS.push(stat)
  124.   end
  125.   Xstats = Struct.new(*SYMBOLS)
  126. end
  127.  
  128. class Game_Enemy < Game_Battler
  129.   attr_accessor :xstat
  130.  
  131.   alias z26_enemy_set initialize unless $@
  132.   def initialize(*args)
  133.         z26_enemy_set(*args)
  134.         @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
  135.         for stat in Z26::STATS
  136.           z26variate_stats(stat)
  137.         end
  138.   end
  139.  
  140.   def z26variate_stats(stat)
  141.         return if Z26.enemy_stats(@enemy_id)[stat].nil?
  142.         if Z26.enemy_stats(@enemy_id)[stat].is_a?(String)
  143.           set_in = eval(Z26.enemy_stats(@enemy_id)[stat]).to_i
  144.           eval("@xstat.#{stat} += #{set_in}")
  145.         else
  146.           set_in = Z26.enemy_stats(@enemy_id)[stat]
  147.           @xstat[stat] += set_in
  148.         end
  149.   end
  150. end
  151.  
  152. class Game_Actor < Game_Battler
  153.   attr_accessor :xstat
  154.  
  155.   alias z26_s setup unless $@
  156.   def setup(actor_id)
  157.         z26_s(actor_id)
  158.         @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
  159.         for item in equips.compact
  160.           z26variate_equip(item)
  161.         end
  162.         for stat in Z26::STATS
  163.           z26variate_stats(stat, @level)
  164.         end
  165.   end
  166.  
  167.   alias z26_change_equip change_equip
  168.   def change_equip(equip_type, item, test = false)
  169.         last_item = equips[equip_type]
  170.         z26_change_equip(equip_type, item)
  171.         z26variate_equip(item)
  172.         z26variate_equip(last_item, false)
  173.   end
  174.  
  175.   #=====================#
  176.   ##EDITED BY NELDERSON##
  177.   #=====================#
  178.   def z26variate_equip(item, adding = true)
  179.         return if item.nil?
  180.         for line in item.note.split(/[\r\n]+/).each{ |a|
  181.           case a
  182.           when /<weapon_xstat:[ ](.*)[ ](\d+)>/i
  183.                   if Z26::STATS.include?(eval(":" + $1))
  184.                         if adding
  185.                           eval("@xstat.#{$1} += #{$2}")
  186.                         else
  187.                         eval("@xstat.#{$1} -= #{$2}")
  188.                   end
  189.                 end
  190.           end
  191.           }
  192.         end
  193.   end
  194.  
  195.   def z26variate_stats(stat, level, adding = true)
  196.         return if Z26.actor_level_formulas(@actor_id)[stat].nil?
  197.         if Z26.actor_level_formulas(@actor_id)[stat].is_a?(String)
  198.           amount = eval(Z26.actor_level_formulas(@actor_id)[stat]).to_i
  199.         else
  200.           amount = Z26.actor_level_formulas(@actor_id)[stat]
  201.         end
  202.         if adding
  203.           eval("@xstat.#{stat} += #{amount}")
  204.         else
  205.           eval("@xstat.#{stat} -= #{amount}")
  206.         end
  207.   end
  208.  
  209.   alias z26level_up level_up unless $@
  210.   def level_up
  211.         for stat in Z26::STATS
  212.           z26variate_stats(stat, @level, false)
  213.         end
  214.         z26level_up
  215.         for stat in Z26::STATS
  216.           z26variate_stats(stat, @level)
  217.         end
  218.   end
  219. end
  220.  
  221. class Window_Status < Window_Selectable
  222.   def draw_block3(y)
  223.         draw_parameters(0, y)
  224.         draw_equipments(344, y)#288
  225.         draw_xstat_parameters(172, y)
  226.   end
  227.  
  228.   def draw_xstat_parameters(x, y)
  229.         @actor.xstat.size.times {|i|
  230.         draw_actor_xstat_param(@actor, x, y + line_height * i, i) }
  231.   end
  232. end
  233.  
  234. class Window_Base < Window
  235.   def draw_actor_xstat_param(actor, x, y, param_id)
  236.         id = Z26::STATS[param_id]
  237.         change_color(system_color)
  238.         draw_text(x, y, 120, line_height, id.capitalize)
  239.         change_color(normal_color)
  240.         draw_text(x + 120, y, 36, line_height, actor.xstat[id], 2)
  241.   end
  242. end
  243.  
  244. class RPG::BaseItem
  245.   def get_start_end_cache
  246.         record = false
  247.         temp = []
  248.         self.note.split(/[\r\n]+/).each do |line|
  249.           if line =~ /<xstat>/i
  250.                 record = true
  251.           elsif line =~ /<xstat_end>/i
  252.                 record = false
  253.           end
  254.           if record
  255.                 temp << line
  256.           end
  257.         end
  258.         return nil if temp == ""
  259.         temp.delete_at(0)
  260.         temp
  261.   end
  262. end


原帖链接:
http://forums.rpgmakerweb.com/in ... -nasty-extra-stats/

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
525 小时
注册时间
2012-2-23
帖子
186
5
 楼主| 发表于 2013-6-18 21:21:03 | 只看该作者
tyq4590 发表于 2013-6-18 18:57
在外站找到一个脚本应该可以帮到你。效果如下图:

这个会不会有点麻烦,必须要在角色的备注栏里写上吗?有没有简单点的?没有的话就不用了,就用你这个

点评

在备注栏里和在数据库的数值区设置能力值有什么区别吗?都是填入数据而已,想要把游戏做的更多元化当然就要比一般人多花点功夫咯:)  发表于 2013-6-18 21:37
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
525 小时
注册时间
2012-2-23
帖子
186
6
 楼主| 发表于 2013-6-18 21:38:39 | 只看该作者
alwsheng 发表于 2013-6-18 21:21
这个会不会有点麻烦,必须要在角色的备注栏里写上吗?有没有简单点的?没有的话就不用了,就用你这个 ...

好吧,谢谢你了,对了,有日站的网址么?我之前有记的,好像被我删了,有的话发我下

点评

不懂日文,从来不上日站。你再问问其他人吧。。。  发表于 2013-6-18 21:43
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
7
发表于 2013-6-18 21:48:03 | 只看该作者
113340 发表于 2013-6-18 16:18
2楼好渊博

但是有个小问题············第二个地址指向的VX的脚本············· ...

第二个地址是,通用

VX和VA通用,请看图书馆目录的最后楼
- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 14:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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