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

Project1

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

[已经解决] 如何自己添加人物属性

[复制链接]

Lv1.梦旅人

梦石
0
星屑
765
在线时间
1 小时
注册时间
2014-10-3
帖子
4
跳转到指定楼层
1
发表于 2014-10-5 15:00:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
VA里的状态属性少,能自己添加新的属性吗?,例如,添加力量,  智力,什么的。本人新手不会
哪个高手会,求救,详细点 ,先谢谢了。

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-10-5 15:09:07 | 只看该作者
提问区首页就有两个类似的问题……

我的建议:新手就别想添加属性这种事情了

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 最近想添加新属性的人这么多-_-||.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
765
在线时间
1 小时
注册时间
2014-10-3
帖子
4
3
 楼主| 发表于 2014-10-5 15:12:57 | 只看该作者
额。谢谢了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
帖子
386
4
发表于 2014-10-5 15:29:45 | 只看该作者
liuguangsixue 发表于 2014-10-5 15:12
额。谢谢了

修改属性需要改动脚本,这对新手来说不简单。
目前你有两条路可走
1-请人定制
2-自学自做(学脚本)
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
5
发表于 2014-10-5 15:56:49 | 只看该作者
这个很麻烦……而且没法像VA预设的那样使用和操作起来很方便……
我也是建议你熟悉VA后再进行这些内容的扩展。

此外你可以通过更改用语,用现有的数据代替。

点评

诶,那我很期待诶呢~ (我都在打算直接动默认脚本加属性,用事件赋值了……  发表于 2014-10-5 16:17
我正在写一个新增属性脚本…… 但是设置区域坑爹到不会脚本没法设置……  发表于 2014-10-5 16:14
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
6
发表于 2014-10-5 19:34:05 | 只看该作者
本帖最后由 VIPArcher 于 2014-10-5 19:35 编辑

RUBY 代码复制
  1. =begin
  2. #===============================================================================
  3. #                                                N.A.S.T.Y. Extra Stats
  4. #                                  Nelderson's Awesome Scripts To You
  5. # By: Nelderson
  6. # Made On: 12/19/2011
  7. # Last Updated : 3/27/2012
  8.  
  9. 该脚本来源于
  10. [url]http://forums.rpgmakerweb.com/index.php?/topic/998-nasty-extra-stats/[/url]
  11.  
  12. 发布者/作者?:Member+
  13. #===============================================================================
  14. # Update History:
  15. # - Version 1.1  - Cleaned up some shit, and added enemies xstats for Enemies!
  16. # - 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' />
  17. 在人物备注填写,属性成长
  18. <xstat>
  19. :str => '(level/3.5) + 16',
  20. :con => '(level/5.6) + 12',
  21. :dex => '(level/5.25) + 15 + agi',
  22. :int => '(level/10.5) + 10',
  23. :wis => '(level/10.5) + 10',
  24. :cha => '(level/10.5) + 10',
  25. <xstat_end>
  26.  
  27.       也可以直接在备注填写固定属性
  28. <xstat>
  29. :str => 15,
  30. :con => 14,
  31. :dex => 13,
  32. :int => 12,
  33. :wis => 11,
  34. :cha => 0,
  35. <xstat_end>
  36.  
  37. 在武器或护甲的备注里按照如下格式填写可以让该装备增加对应属性
  38. <weapon_xstat: STAT x>
  39. 范例,让装备增加5点‘str’  <weapon_xstat: str 5>
  40. 调用属性:$game_actors[1].xstat.X     例:$game_actors[1].xstat.str
  41. 伤害公式范例:    a.xstat.str * 5
  42. #===============================================================================
  43. =end
  44. module Z26
  45.  
  46.   STATS = [:力量,:耐力,:灵巧,:敏捷,:魔力,:智力]
  47.  
  48.   #Default xstat formulas for ACTORS
  49.   #玩家基础属性
  50.   DEFAULT_LEVEL_FORMULA =
  51.                 {
  52.                   :力量 => 1,
  53.                   :耐力 => 1,
  54.                   :灵巧 => 1,
  55.                   :敏捷 => 1,
  56.                   :魔力 => 1,
  57.                   :智力 => 1,
  58.                 }
  59.  
  60.   #Default xstat formulas for ENEMIES\
  61.   #敌对基础属性
  62.   DEFAULT_FOR_ENEMIES =
  63.                 {
  64.                   :力量 => 1,
  65.                   :耐力 => 1,
  66.                   :灵巧 => 1,
  67.                   :敏捷 => 1,
  68.                   :魔力 => 1,
  69.                   :智力 => 1,
  70.                 }
  71.  
  72.    def self.actor_level_formulas(actor_id)
  73.           jhh = ""
  74.           strin = $data_actors[actor_id].get_start_end_cache
  75.           strin.each do |i|
  76.                 jhh += i
  77.           end
  78.           return DEFAULT_LEVEL_FORMULA if strin == "" or strin == []
  79.           return eval("{#{jhh}}")
  80.         end
  81.  
  82.         def self.enemy_stats(enemy_id)
  83.           jhh = ""
  84.           strin = $data_enemies[enemy_id].get_start_end_cache
  85.           strin.each do |i|
  86.                 jhh += i
  87.           end
  88.           return DEFAULT_FOR_ENEMIES if strin == "" or strin == []
  89.           return eval("{#{jhh}}")
  90.         end
  91.  
  92.   #=============================================================================
  93.   SYMBOLS = []
  94.   for stat in STATS
  95.         SYMBOLS.push(stat)
  96.   end
  97.   Xstats = Struct.new(*SYMBOLS)
  98. end
  99.  
  100. class Game_Enemy < Game_Battler
  101.   attr_accessor :xstat
  102.  
  103.   alias z26_enemy_set initialize unless $@
  104.   def initialize(*args)
  105.         z26_enemy_set(*args)
  106.         @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
  107.         for stat in Z26::STATS
  108.           z26variate_stats(stat)
  109.         end
  110.   end
  111.  
  112.   def z26variate_stats(stat)
  113.         return if Z26.enemy_stats(@enemy_id)[stat].nil?
  114.         if Z26.enemy_stats(@enemy_id)[stat].is_a?(String)
  115.           set_in = eval(Z26.enemy_stats(@enemy_id)[stat]).to_i
  116.           eval("@xstat.#{stat} += #{set_in}")
  117.         else
  118.           set_in = Z26.enemy_stats(@enemy_id)[stat]
  119.           @xstat[stat] += set_in
  120.         end
  121.   end
  122. end
  123.  
  124. class Game_Actor < Game_Battler
  125.   attr_accessor :xstat
  126.  
  127.   alias z26_s setup unless $@
  128.   def setup(actor_id)
  129.         z26_s(actor_id)
  130.         @xstat = Z26::Xstats.new(*([0]*Z26::STATS.size))
  131.         for item in equips.compact
  132.           z26variate_equip(item)
  133.         end
  134.         for stat in Z26::STATS
  135.           z26variate_stats(stat, @level)
  136.         end
  137.   end
  138.  
  139.   alias z26_change_equip change_equip
  140.   def change_equip(equip_type, item, test = false)
  141.         last_item = equips[equip_type]
  142.         z26_change_equip(equip_type, item)
  143.         z26variate_equip(item)
  144.         z26variate_equip(last_item, false)
  145.   end
  146.  
  147.   #=====================#
  148.   ##EDITED BY NELDERSON##
  149.   #=====================#
  150.   def z26variate_equip(item, adding = true)
  151.         return if item.nil?
  152.         for line in item.note.split(/[\r\n]+/).each{ |a|
  153.           case a
  154.           when /<weapon_xstat:[ ](.*)[ ](\d+)>/i
  155.                   if Z26::STATS.include?(eval(":" + $1))
  156.                         if adding
  157.                           eval("@xstat.#{$1} += #{$2}")
  158.                         else
  159.                         eval("@xstat.#{$1} -= #{$2}")
  160.                   end
  161.                 end
  162.           end
  163.           }
  164.         end
  165.   end
  166.  
  167.   def z26variate_stats(stat, level, adding = true)
  168.         return if Z26.actor_level_formulas(@actor_id)[stat].nil?
  169.         if Z26.actor_level_formulas(@actor_id)[stat].is_a?(String)
  170.           amount = eval(Z26.actor_level_formulas(@actor_id)[stat]).to_i
  171.         else
  172.           amount = Z26.actor_level_formulas(@actor_id)[stat]
  173.         end
  174.         if adding
  175.           eval("@xstat.#{stat} += #{amount}")
  176.         else
  177.           eval("@xstat.#{stat} -= #{amount}")
  178.         end
  179.   end
  180.  
  181.   alias z26level_up level_up unless $@
  182.   def level_up
  183.         for stat in Z26::STATS
  184.           z26variate_stats(stat, @level, false)
  185.         end
  186.         z26level_up
  187.         for stat in Z26::STATS
  188.           z26variate_stats(stat, @level)
  189.         end
  190.   end
  191. end
  192.  
  193. class Window_Status < Window_Selectable
  194.   def draw_block3(y)
  195.         draw_parameters(0, y)
  196.         draw_equipments(344, y)#288
  197.         draw_xstat_parameters(172, y)
  198.   end
  199.  
  200.   def draw_xstat_parameters(x, y)
  201.         @actor.xstat.size.times {|i|
  202.         draw_actor_xstat_param(@actor, x, y + line_height * i, i) }
  203.   end
  204. end
  205.  
  206. class Window_Base < Window
  207.   def draw_actor_xstat_param(actor, x, y, param_id)
  208.         id = Z26::STATS[param_id]
  209.         change_color(system_color)
  210.         draw_text(x, y, 120, line_height, id.capitalize)
  211.         change_color(normal_color)
  212.         draw_text(x + 120, y, 36, line_height, actor.xstat[id], 2)
  213.   end
  214. end
  215.  
  216. class RPG::BaseItem
  217.   def get_start_end_cache
  218.         record = false
  219.         temp = []
  220.         self.note.split(/[\r\n]+/).each do |line|
  221.           if line =~ /<xstat>/i
  222.                 record = true
  223.           elsif line =~ /<xstat_end>/i
  224.                 record = false
  225.           end
  226.           if record
  227.                 temp << line
  228.           end
  229.         end
  230.         return nil if temp == ""
  231.         temp.delete_at(0)
  232.         temp
  233.   end
  234. end

拿去用吧

以后发脚本用<>代码框。 VIPArcher留
- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-19 20:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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