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

Project1

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

[已经解决] 【已解决】如何实现一个等级多重名称

[复制链接]

Lv4.逐梦者

梦石
0
星屑
5176
在线时间
1344 小时
注册时间
2018-1-16
帖子
387
跳转到指定楼层
1
发表于 2020-11-12 20:01:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 l734273398 于 2020-11-13 15:17 编辑

如题,看题目可能会有点糊涂,
打个比方:当1号开关打开时,使用【1号系列的等级名称】,当2号开关打开时,使用【2系列的等级名称】以此类推

【当打开1号开关】【1级名称=菜鸡】【2级名称=小菜鸡】
【当打开2号开关】【1级名称=勇士】【2级名称=小勇士】



RUBY 代码复制
  1. LEVEL_LIST = {
  2.   1=>"菜鸡",
  3.   2=>"小菜鸡",
  4.  
  5. }
  6. class Window_Base < Window
  7.   def draw_actor_level(actor, x, y)
  8.     if LEVEL_LIST.has_key?(actor.level)
  9.       self.contents.draw_text(x, y, 128, 32, LEVEL_LIST[actor.level])
  10.     else
  11.       self.contents.font.color = system_color
  12.       self.contents.draw_text(x, y, 32, 32, "Lv")
  13.       self.contents.font.color = normal_color
  14.       self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
  15.     end
  16.   end
  17. end

RUBY 代码复制
  1. LEVEL_LIST = {
  2.   1=>"勇士",
  3.   2=>"小勇士",
  4.  
  5. }
  6. class Window_Base < Window
  7.   def draw_actor_level(actor, x, y)
  8.     if LEVEL_LIST.has_key?(actor.level)
  9.       self.contents.draw_text(x, y, 128, 32, LEVEL_LIST[actor.level])
  10.     else
  11.       self.contents.font.color = system_color
  12.       self.contents.draw_text(x, y, 32, 32, "Lv")
  13.       self.contents.font.color = normal_color
  14.       self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
  15.     end
  16.   end
  17. end

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
3
发表于 2020-11-12 21:38:28 | 只看该作者
我更建议用变量,如下是当变量10为1的话会使用菜鸡,2会使用勇士,不设定时返回默认。
  1. class Window_Base
  2.   alias cool_alias_draw_actor_level draw_actor_level
  3.   def draw_actor_level(actor, x, y)
  4.     varId = 10 #变量号
  5.     #变量值 => { 等级 => 名称 }
  6.     list = {
  7.       1 => {
  8.         1 => "菜鸡",
  9.         2 => "小菜鸡",
  10.       },
  11.       2 => {
  12.         1 => "勇士",
  13.         2 => "小勇士",
  14.       }
  15.     }
  16.     set = list[$game_variables[varId]]
  17.     if set and set[actor.level]
  18.       self.contents.font.color = normal_color
  19.       self.contents.draw_text(x, y, 64, 32, set[actor.level])
  20.     else
  21.       cool_alias_draw_actor_level(actor, x, y)
  22.     end
  23.   end
  24. end
复制代码

点评

实际上这么搞的话开关和变量没区别···用到脚本了直接让开关X等于123456789就行了···  发表于 2020-11-13 12:40
好的,谢谢  发表于 2020-11-12 22:05
我建议用变量是因为只需要一个变量就可以控制,开关则是需要到两个或以上,抱着能省就省当然是变量优先XD。  发表于 2020-11-12 22:04
谢谢了,不过之所以用开关的话,是因为开关决定一些剧情的开启,而不同的开关可以会造成不同的等级名称  发表于 2020-11-12 21:40

评分

参与人数 1+1 收起 理由
l734273398 + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36442
在线时间
10800 小时
注册时间
2009-3-15
帖子
4814
2
发表于 2020-11-12 21:28:26 | 只看该作者
RUBY 代码复制
  1. LEVEL_LIST = {
  2.   1=>"菜鸡",
  3.   2=>"小菜鸡",
  4.  
  5. }
  6. LEVEL_LIST2 = {
  7.   1=>"勇士",
  8.   2=>"小勇士",
  9.  
  10. }
  11. class Window_Base < Window
  12.   def draw_actor_level(actor, x, y)
  13.     if LEVEL_LIST.has_key?(actor.level) or LEVEL_LIST2.has_key?(actor.level)
  14.       self.contents.draw_text(x, y, 128, 32, LEVEL_LIST[actor.level]) if $game_switches[1]
  15.       self.contents.draw_text(x, y, 128, 32, LEVEL_LIST2[actor.level]) if $game_switches[2]
  16.     else
  17.       self.contents.font.color = system_color
  18.       self.contents.draw_text(x, y, 32, 32, "Lv")
  19.       self.contents.font.color = normal_color
  20.       self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
  21.     end
  22.   end
  23. end

评分

参与人数 3星屑 +50 +2 收起 理由
taeckle + 1 大神威武!
RyanBern + 50 认可答案
l734273398 + 1 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 11:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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