查看: 2122|回复: 3

[已经解决] 怎么让职业的属性显示在状态界面

[复制链接]
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2016-3-9 10:33:25 | 显示全部楼层 |阅读模式

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

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

×
就是那个,火a水b风d
可以显示在装备那个坐标。装备没必要在状态显示。

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2016-3-9 14:15:39 | 显示全部楼层
本帖最后由 cinderelmini 于 2016-3-9 15:15 编辑

本来以为不是很难……查了半天F1,找到了代码之后……
突然发现问的是【职业】而不是【武器】………………………………
于是回头继续查F1…………
然后发现……卧槽好坑……XP代码库里似乎没有给读数据库属性列表的相关…………
肿么办…………于是…………
鱼唇的窝只能自己手动把属性列表敲出来惹………………
不说了…………窝好累………………咸鱼.jpg

然后其实是鱼唇的窝并没有学会好好翻F1……其实读数据库属性列表的相关还是存在的……
窝差不多是个辣鸡了.jpg
代码在这
  1. class Game_System
  2.   #-----------------------------------
  3.   # ○ 获取指定职业的属性有效度
  4.   #    class_id    :职业ID
  5.   #-----------------------------------
  6.   def class_element_ranks(class_id)
  7.     # 属性有效度对应的字母,和数据库对应,不要改
  8.     rank_table = {
  9.     1 => "A",
  10.     2 => "B",
  11.     3 => "C",
  12.     4 => "D",
  13.     5 => "E",
  14.     6 => "F"}
  15.     list = []
  16.     for element_id in 1...$data_system.elements.size
  17.       name = $data_system.elements[element_id]
  18.       rank = rank_table[$data_classes[class_id].element_ranks[element_id]]
  19.       list << [name, rank]
  20.     end
  21.     return list
  22.   end
  23. end

  24. class Window_Base < Window
  25.   #-----------------------------------
  26.   # ○ 描绘角色的职业属性有效度
  27.   #    actor       :角色
  28.   #    x,y        :坐标
  29.   #    width       :描绘的宽度(不填默认255)
  30.   #    column_max  :描绘的列数(不填默认2列)
  31.   #-----------------------------------
  32.   def draw_class_element_rank(actor, x, y, width = 255, column_max = 2)
  33.     # 一行的行高,可自定义
  34.     line_height = 28
  35.     # 以下不要随便改
  36.     real_width = width / column_max - 8 * column_max
  37.     element_list = $game_system.class_element_ranks(actor.class_id)
  38.     for i in 0...element_list.size
  39.       e_name = element_list[i][0]
  40.       e_rank = element_list[i][1]
  41.       cx = x + i % column_max * width / column_max
  42.       cy = y + i / column_max * line_height
  43.       self.contents.font.color = system_color
  44.       self.contents.draw_text(cx, cy, real_width, line_height, e_name)
  45.       self.contents.font.color = normal_color
  46.       self.contents.draw_text(cx, cy, real_width, line_height, e_rank, 2)
  47.     end
  48.   end
  49. end
复制代码

用法就是在需要描绘职业属性有效度的Window类里建立了contents之后,使用
  1. draw_class_element_rank(actor, x, y, width = 255, column_max = 2)
复制代码
来描绘,其中actor是要描绘的角色,后面的宽度和列数可以不用填,默认255宽度描绘两列。
(说了这么多其实用法就跟draw_actor_name之类的一样用就是了…………)
(然后就是代码里面Game_System类里的属性列表【element_list】方法里的内容要根据数据库的属性列表自行修改……)

窝不管……敲都敲了…………窝要好人卡………………(打滚………………

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
yang1zhi + 15
RyanBern + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2016-3-9 14:33:58 | 显示全部楼层
cinderelmini 发表于 2016-3-9 14:15
本来以为不是很难……查了半天F1,找到了代码之后……
突然发现问的是【职业】而不是【武器】……………… ...
RPG::System
Data class for the system.

SuperclassObject
Attributesmagic_number
Magic number used for update checks. Updates changed values every time data is saved in RPGXP.

party_members
The initial party. An array of actor IDs.

elements
Element list. Text array using element IDs as subscripts, with the element in the 0 position being nil.


switches
Switch list. Text array using switch IDs as subscripts, with the element in the 0 position being nil.

variables
Variable list. Text array using variable IDs as subscripts, with the element in the 0 position being nil.

窝不管……窝要一个完美的解释………………(打滚………………

评分

参与人数 1星屑 +66 收起 理由
cinderelmini + 66 卧槽……窝翻了半天F1居然没翻到………….

查看全部评分

回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

 楼主| 发表于 2016-3-9 20:47:30 | 显示全部楼层
本帖最后由 yang1zhi 于 2016-3-9 20:57 编辑
cinderelmini 发表于 2016-3-9 14:15
本来以为不是很难……查了半天F1,找到了代码之后……
突然发现问的是【职业】而不是【武器】……………… ...


很好用。


我把你的改了下,改成显示状态。
结果      self.contents.draw_text(cx, cy, real_width, line_height, e_name)说是错的



我成功了
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部