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

Project1

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

[已经过期] set_text(item_text)文字颜色如何更改?

[复制链接]

Lv2.观梦者

梦石
0
星屑
685
在线时间
661 小时
注册时间
2012-10-21
帖子
350
跳转到指定楼层
1
发表于 2014-11-10 11:40:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,我使用了物品颜色脚本,不同等级的物品有不同颜色。
但是,另一个脚本在物品名字后附加了物品类别的信息(比如短剑的物品会变成短剑-(剑)),这样一来物品名字的颜色就变白了,请问如何既加上物品类别信息,又能显示物品名字颜色?

这是物品类别信息的代码
RUBY 代码复制
  1. alias :bm_base_si :set_item
  2.   def set_item(item)
  3.     return bm_base_si(item) unless BM::ADVANCED_HELP
  4.     unless item; set_text("") ; return; end
  5.     new_line = "\n"
  6.     icon = BM::HELP_DISPLAY[0] ? '\i[' + item.icon_index.to_s + '] ' : ""
  7.     name = BM::HELP_DISPLAY[1] ?   item.name  : ""
  8.     #name = BM::HELP_DISPLAY[1] ? '\c[2]' + item.name + '\c[0]' : ""
  9.     desc = BM::HELP_DISPLAY[2] ? item.description : ""
  10.     if item.is_a?(RPG::Weapon) || item.is_a?(RPG::Armor)
  11.       weight = $imported["XAIL-INVENTORY-WEIGHT"] ? weight = " - Weight: #{item.weight}." : ""
  12.       durability = $imported["XAIL-ITEM-DURABILITY"] ? durability = " - Durability: #{item.durability} / #{item.max_durability}." : ""
  13.     else weight = ""; durability = ""
  14.     end
  15.     if BM::HELP_DISPLAY[3]
  16.       if item.is_a?(RPG::Weapon) ; item_type = " (" + Vocab.weapon_types(item.wtype_id) + ")" end
  17.       if item.is_a?(RPG::Armor) ; item_type = " (" + Vocab.armor_types(item.atype_id) + ")" end
  18.     else; item_type = ""
  19.     end
  20.     item_text = icon + name + item_type.to_s + weight + durability + new_line + desc
  21.  
  22.  
  23.  
  24.     set_text(item_text)
  25.     change_color(normal_color)  
  26.  
  27.   end

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

2
发表于 2014-11-10 12:32:38 | 只看该作者
看物品颜色脚本是怎么更改的,照着那个脚本更改就好了

另外,你的脚本的第25行可以说明更改方法

点评

出错了,undefine cap 什么的……  发表于 2014-11-10 15:45
啥?(你的item.color是哪个脚本的方法?我写的那个物品颜色描绘脚本返回的是一个整数呢。  发表于 2014-11-10 15:40
我能调用item.color,但是那个是一个类似Color.new(186,85,211)这样的东西,请问怎么转换成\\[3]这样的控制符?  发表于 2014-11-10 15:35
参考第6行和第8行的做法.  发表于 2014-11-10 15:29
是可以,但是我要怎么调用物品名字颜色?  发表于 2014-11-10 15:28
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
661 小时
注册时间
2012-10-21
帖子
350
3
 楼主| 发表于 2014-11-10 15:09:11 | 只看该作者
taroxd 发表于 2014-11-10 12:32
看物品颜色脚本是怎么更改的,照着那个脚本更改就好了

另外,你的脚本的第25行可以说明更改方法 ...

第25行是我添加的,没啥作用……
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2014-11-10 15:31:38 | 只看该作者
本帖最后由 VIPArcher 于 2014-11-10 15:33 编辑

换这个物品颜色描绘脚本
https://rpg.blue/thread-372466-1-1.html
第7行改成
  1. name = BM::HELP_DISPLAY[1] ? "\c[#{item.color}]" + item.name + '\c[0]' : ""
复制代码
未测试

点评

在361行到363行那里有用到类似的用法。还有你楼下的那个脚本我似乎没看到会冲突的方法。  发表于 2014-11-10 16:03
参考这个脚本对这个物品颜色描绘脚本的使用http://rm.66rpg.com/thread-372430-1-1.html  发表于 2014-11-10 16:01
咱把你的脚本全改成item.color2了,但是还是出错,貌似是\c[#{item.color2}]这个不对?  发表于 2014-11-10 15:57
不能,方法都告诉你了,或许是我写的脚本和你的某脚本冲突了,你试试吧那个脚本里的RPG::BaseItem#color方法名改成不易冲突的名字  发表于 2014-11-10 15:52
抱歉打错……undefined upcase  发表于 2014-11-10 15:47
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
685
在线时间
661 小时
注册时间
2012-10-21
帖子
350
5
 楼主| 发表于 2014-11-10 15:52:08 | 只看该作者
这是我的物品颜色脚本,包括物品前缀后缀什么的其他功能,你只看颜色部分就好

RUBY 代码复制
  1. #Weapon/Armor Randomization v1.2
  2. #----------#
  3. #Features: Allow the stats of an item to be randomized, yay! Also can tack
  4. #           on random prefixes and suffixes. Oooh, fancy.
  5. #
  6. #Usage:    Basic Usage:
  7. #
  8. #           Note tags for weapons and armors:
  9. #
  10. #            <HP amount>  <HP% amount>  <ATK amount>  <ATK% amount>
  11. #            <MP amount>  <MP% amount>  <DEF amount>  <DEF% amount>
  12. #          <MAT amount>  <MAT% amount>  <MDF amount>  <MDF% amount>
  13. #          <AGI amount>  <AGI% amount>  <LUK amount>  <LUK% amount>
  14. #          <PRICE amount> <PRICE% amount>
  15. #
  16. #           Where amount is the amount to be randomly added on, with % being
  17. #             a percentage instead of specific.
  18. #           Examples: <HP 500>  or  <HP% 10>
  19. #
  20. #           Script calls:
  21. #            add_armor(base_id, amount)
  22. #            add_weapon(base_id, amount)
  23. #         
  24. #           These script calls create a new version of the item of the base_id
  25. #            number, with randomized stats as set in their note.
  26. #
  27. #          Advanced Usage:
  28. #         
  29. #           Note tags for weapons and armors:
  30. #
  31. #            <SUFFIX# rarity>    <PREFIX# rarity>
  32. #
  33. #           Where # is the id number of the affix and rarity is the chance of it
  34. #            occuring with 100 always occuring and 1 almost never occuring.
  35. #            Multiple affix notes can be added and the first one that passes it's
  36. #            rarity chance will be added.
  37. #           Examples: <PREFIX1 50>  or  <SUFFIX2 90>
  38. #
  39. #          The Complicated Part: (Affixes)
  40. #           See that AFFIXES hash down there? That's where you set these up.
  41. #           Basic setup is:
  42. #             ID => { :symbol => data, },
  43. #           You can have as many different symbols in there as you want, each
  44. #            seperated by a comma, and don't forget the comma between each AFFIX
  45. #            id.
  46. #
  47. #           Usable Symbols:
  48. #          :name = "name"
  49. #
  50. #   :hp,   :mp,   :atk,   :def,   :mat,   :mdf,   :agi,   :luk    (random bonus)
  51. #   :Shp,  :Smp,  :Satk,  :Sdef,  :Smat,  :Smdf,  :Sagi,  :Sluk   (static bonus)
  52. #   :hpP,  :mpP,  :atkP,  :defP,  :matP,  :mdfP,  :agiP,  :lukP   (random % bonus)
  53. #   :ShpP, :SmpP, :SatkP, :SdefP, :SmatP, :SmdfP, :SagiP, :SlukP  (static % bonus)
  54. #
  55. #   :price, :Sprice, :priceP, :SpriceP
  56. #
  57. #       each of these goes :symbol = value
  58. #
  59. #          The fun part, :features
  60. #           You can have as many features as you want, set up in an array:
  61. #           :features = [[code, id, value],[code, id, value]] etc...
  62. #          But what are the codes, ids, and values?? Don't worry, I found out:
  63. #
  64. #           Element Rate   = 11, element_id, float value
  65. #           Debuff Rate    = 12, param_id, float value
  66. #           State Rate     = 13, state_id, float value
  67. #           State Resist   = 14, state_id, 0
  68. #
  69. #           Parameter      = 21, param_id, float value
  70. #           Ex-Parameter   = 22, exparam_id, float value
  71. #           Sp-Parameter   = 23, spparam_id, float value
  72. #
  73. #           Atk Element    = 31, element_id, 0
  74. #           Atk State      = 32, state_id, float value
  75. #           Atk Speed      = 33, 0, value
  76. #           Atk Times+     = 34, 0, value
  77. #
  78. #           Add Skill Type = 41, skill_type, 0
  79. #          Seal Skill Type = 42, skill_type, 0
  80. #           Add Skill      = 43, skill_id, 0
  81. #           Seal Skill     = 44, skill_id, 0
  82. #
  83. #           Equip Weapon   = 51, weapon_skill, 0
  84. #           Equip Armor    = 52, armor_skill, 0
  85. #           Fix Equip      = 53, item_type, 0
  86. #           Seal Equip     = 54, item_type, 0
  87. #           Slot Type      = 55, 1, 0
  88. #
  89. #           Action Times+  = 61, 0, value
  90. #           Special Flag   = 62, flag_id, 0
  91. #          Collapse Effect = 62, flag_id, 0
  92. #           Party Ability  = 63, flag_id, 0
  93. #
  94. #     float value = percentage value where 1 = 100%, 0.75 = 75%, and 1.25 = 125%
  95. #     param_id, 0=hp, 1=mp, 2=atk, 3=def, 4=mat, 5=mdf, 6=agi, 7=luk
  96. #
  97. #     Examples: [21, 2, 1.5] which would increase atk to 150%
  98. #               [62, 0, 0]   which makes the item give the auto-battle flag
  99. #               [32, 1, 0.5] which gives a 50% of applying death state
  100. #
  101. #----------#
  102. #-- Script by: Vlue of Daimonious Tails
  103. #
  104. #- Questions or comments can be:
  105. #    posted on the thread for the script
  106. #    given by email: [email][email protected][/email]
  107. #    provided on facebook: [url]http://www.facebook.com/DaimoniousTailsGames[/url]
  108. #    posed on site: daimonioustails.wordpress.com
  109. #
  110. #--- Free to use in any project with credit given
  111.  
  112. AFFIXES = { 1 => { :name => "Bronze ",
  113.                    :SatkP => 10,},
  114.  
  115.             2 => { :name => "Iron ",
  116.                    :SatkP => 30,},
  117.  
  118.             3 => { :name => "Steel ",
  119.                    :SatkP => 60,},
  120.  
  121.             4 => { :name => "Mithril ",
  122.                    :SatkP => 100,},
  123.  
  124.             5 => { :name => "Harder Mithril ",
  125.                    :SatkP => 150,},
  126.  
  127.             100 => { :name => " of Power",
  128.                    :SatkP => 40,
  129.                    :SmatP => 40,},
  130.  
  131.             200 => { :name => " of Defense",
  132.                    :SdefP => 40,
  133.                    :SmdfP => 40,},
  134.  
  135.             300 => { :name => " of Speed",
  136.                    :SagiP => 80,},
  137.  
  138.             400 => { :name => " of Better Speed",
  139.                    :features => [[34,0,2]],},
  140.             }
  141.  
  142. #If true, then weapons and armors dropped by enemies will be randomized
  143. RANDOM_ENEMY_DROPS = true
  144.  
  145. class Game_Interpreter
  146.   def add_weapon(id, am)
  147.     $game_party.add_weapon(id, am)
  148.   end
  149.   def add_armor(id, am)
  150.     $game_party.add_armor(id, am)
  151.   end
  152. end
  153.  
  154. class Game_Party
  155.   alias rig_initialize initialize
  156.   def initialize
  157.     rig_initialize
  158.     @saved_weapons = $data_weapons
  159.     @saved_armors = $data_armors
  160.   end
  161.   attr_accessor :saved_weapons
  162.   attr_accessor :saved_armors
  163.   def add_weapon(id, amount)
  164.     item = Marshal.load(Marshal.dump($data_weapons[id]))
  165.     item.id = $data_weapons.size
  166.     edit_item(item)
  167.     edit_affixes(item)
  168.     $data_weapons.each do |base_item|
  169.       next if base_item.nil?
  170.       if ( item.params == base_item.params &&
  171.           item.price == base_item.price &&
  172.           item.name == base_item.name )
  173.         $game_party.gain_item(base_item, amount)
  174.         return
  175.       end
  176.     end
  177.     $data_weapons.push(item)
  178.     $game_party.gain_item(item, amount)
  179.   end
  180.   def add_armor(id, amount)
  181.     item = Marshal.load(Marshal.dump($data_armors[id]))
  182.     item.id = $data_armors.size
  183.     edit_item(item)
  184.     edit_affixes(item)
  185.     $data_armors.push(item)
  186.     $game_party.gain_item(item, amount)
  187.   end
  188.   def edit_affixes(item)
  189.     note = item.note.clone
  190.     while note.include?("<SUF")
  191.       id = note =~ /<SUFFIX(\d+) (\d+)>/
  192.       if !AFFIXES[$~[1].to_i].nil?
  193.         break if add_affix(item, $~[1].to_i, false) if rand(100) < $2.to_i
  194.         note[id] = "N"
  195.       else
  196.         msgbox("Affix #" + $1 + " doesn't exist. \nItem creation failed.")
  197.         return
  198.       end
  199.     end
  200.     while note.include?("<PRE")
  201.       id = note =~ /<PREFIX(\d+) (\d+)>/
  202.       if !AFFIXES[$~[1].to_i].nil?
  203.         break if add_affix(item, $~[1].to_i, true) if rand(100) < $2.to_i
  204.         note[id] = "N"
  205.       else
  206.         msgbox("Affix #" + $1 + " doesn't exist. \nItem creation failed.")
  207.         return
  208.       end
  209.     end
  210.   end
  211.   def add_affix(item, id, prefix)
  212.     affix = AFFIXES[id]
  213.     if prefix && !affix[:name].nil?
  214.       item.name = affix[:name] + item.name
  215.     elsif !affix[:name].nil?
  216.       item.name = item.name + affix[:name]
  217.     end
  218.     item.params[0] += rand(affix[:hp]) if !affix[:hp].nil?
  219.     item.params[1] += rand(affix[:mp]) if !affix[:mp].nil?
  220.     item.params[2] += rand(affix[:atk]) if !affix[:atk].nil?
  221.     item.params[3] += rand(affix[:def]) if !affix[:def].nil?
  222.     item.params[4] += rand(affix[:mat]) if !affix[:mat].nil?
  223.     item.params[5] += rand(affix[:mdf]) if !affix[:mdf].nil?
  224.     item.params[6] += rand(affix[:agi]) if !affix[:agi].nil?
  225.     item.params[7] += rand(affix[:luk]) if !affix[:luk].nil?
  226.     item.price += rand(affix[:price]) if !affix[:price].nil?
  227.  
  228.     item.params[0] += affix[:Shp] if !affix[:Shp].nil?
  229.     item.params[1] += affix[:Smp] if !affix[:Smp].nil?
  230.     item.params[2] += affix[:Satk] if !affix[:Satk].nil?
  231.     item.params[3] += affix[:Sdef] if !affix[:Sdef].nil?
  232.     item.params[4] += affix[:Smat] if !affix[:Smat].nil?
  233.     item.params[5] += affix[:Smdf] if !affix[:Smdf].nil?
  234.     item.params[6] += affix[:Sagi] if !affix[:Sagi].nil?
  235.     item.params[7] += affix[:Sluk] if !affix[:Sluk].nil?
  236.     item.price += affix[:Sprice] if !affix[:Sprice].nil?
  237.  
  238.     item.params[0] += item.params[0] * (rand(affix[:hpP])) / 100 if !affix[:hpP].nil?
  239.     item.params[1] += item.params[1] * (rand(affix[:mpP])) / 100 if !affix[:mpP].nil?
  240.     item.params[2] += item.params[2] * (rand(affix[:atkP])) / 100 if !affix[:atkP].nil?
  241.     item.params[3] += item.params[3] * (rand(affix[:defP])) / 100 if !affix[:defP].nil?
  242.     item.params[4] += item.params[4] * (rand(affix[:matP])) / 100 if !affix[:matP].nil?
  243.     item.params[5] += item.params[5] * (rand(affix[:mdfP])) / 100 if !affix[:mdfP].nil?
  244.     item.params[6] += item.params[6] * (rand(affix[:agiP])) / 100 if !affix[:agiP].nil?
  245.     item.params[7] += item.params[7] * (rand(affix[:lukP])) / 100 if !affix[:lukP].nil?
  246.     item.price += item.price * (rand(affix[:priceP])) / 100 if !affix[:priceP].nil?
  247.  
  248.     item.params[0] += item.params[0] * affix[:ShpP] / 100 if !affix[:ShpP].nil?
  249.     item.params[1] += item.params[1] * affix[:SmpP] / 100 if !affix[:SmpP].nil?
  250.     item.params[2] += item.params[2] * affix[:SatkP] / 100 if !affix[:SatkP].nil?
  251.     item.params[3] += item.params[3] * affix[:SdefP] / 100 if !affix[:SdefP].nil?
  252.     item.params[4] += item.params[4] * affix[:SmatP] / 100 if !affix[:SmatP].nil?
  253.     item.params[5] += item.params[5] * affix[:SmdfP] / 100 if !affix[:SmdfP].nil?
  254.     item.params[6] += item.params[6] * affix[:SagiP] / 100 if !affix[:SagiP].nil?
  255.     item.params[7] += item.params[7] * affix[:SlukP] / 100 if !affix[:SlukP].nil?
  256.     item.price += item.price * affix[:SpriceP] / 100 if !affix[:SpriceP].nil?
  257.  
  258.     if !affix[:features].nil?
  259.       for feature in affix[:features]
  260.         new_feature = RPG::BaseItem::Feature.new(feature[0], feature[1], feature[2])
  261.         item.features.push(new_feature)
  262.       end
  263.     end
  264.  
  265.     return true
  266.   end
  267.   def edit_item(item)
  268.     item.note =~ /<HP (\d+)>/
  269.     item.params[0] += rand($~[1].to_i) if $~
  270.     item.note =~ /<MP (\d+)>/
  271.     item.params[1] += rand($~[1].to_i) if $~
  272.     item.note =~ /<ATK (\d+)>/
  273.     item.params[2] += rand($~[1].to_i) if $~
  274.     item.note =~ /<DEF (\d+)>/
  275.     item.params[3] += rand($~[1].to_i) if $~
  276.     item.note =~ /<MAT (\d+)>/
  277.     item.params[4] += rand($~[1].to_i) if $~
  278.     item.note =~ /<MDF (\d+)>/
  279.     item.params[5] += rand($~[1].to_i) if $~
  280.     item.note =~ /<AGI (\d+)>/
  281.     item.params[6] += rand($~[1].to_i) if $~
  282.     item.note =~ /<LUK (\d+)>/
  283.     item.params[7] += rand($~[1].to_i) if $~
  284.     item.note =~ /<PRICE (\d+)>/
  285.     item.price += rand($~[1].to_i) if $~
  286.  
  287.     item.note =~ /<HP% (\d+)>/
  288.     item.params[0] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  289.     item.note =~ /<MP% (\d+)>/
  290.     item.params[1] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  291.     item.note =~ /<ATK% (\d+)>/
  292.     item.params[2] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  293.     item.note =~ /<DEF% (\d+)>/
  294.     item.params[3] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  295.     item.note =~ /<MAT% (\d+)>/
  296.     item.params[4] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  297.     item.note =~ /<MDF% (\d+)>/
  298.     item.params[5] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  299.     item.note =~ /<AGI% (\d+)>/
  300.     item.params[6] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  301.     item.note =~ /<LUK% (\d+)>/
  302.     item.params[7] += item.params[2] * (rand($~[1].to_i)) / 100 if $~
  303.     item.note =~ /<PRICE% (\d+)>/
  304.     item.price += item.price * (rand($~[1].to_i)) / 100 if $~
  305.   end
  306. end
  307.  
  308. module BattleManager
  309.   def self.gain_drop_items
  310.     $game_troop.make_drop_items.each do |item|
  311.       if RANDOM_ENEMY_DROPS
  312.         if item.is_a?(RPG::Weapon)
  313.           $game_party.add_weapon(item.id, 1)
  314.           item = $data_weapons[-1]
  315.         elsif item.is_a?(RPG::Armor)
  316.           $game_party.add_armor(item.id, 1)
  317.           item = $data_armors[-1]
  318.         else
  319.           $game_party.gain_item(item, 1)
  320.         end
  321.       else
  322.         $game_party.gain_item(item, 1)
  323.       end
  324.       $game_message.add(sprintf(Vocab::ObtainItem, item.name))
  325.     end
  326.     wait_for_message
  327.   end
  328. end
  329.  
  330. class Scene_Load
  331.   alias rig_on_load_success on_load_success
  332.   def on_load_success
  333.     rig_on_load_success
  334.     $data_weapons = $game_party.saved_weapons
  335.     $data_armors = $game_party.saved_armors
  336.   end
  337. end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 05:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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