查看: 4421|回复: 9

[RMXP发布] 仿QQ等级制(感谢yagami!!!!!!! )

[复制链接]

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
发表于 2013-8-24 18:29:03 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 恋′挂机 于 2013-8-28 14:11 编辑

感谢yagami!!!!!!!
  1. #感谢yagami!!!!!!!今天突然发现原脚本有个小BUG现已修复。
  2. module LEVEL#用户设置区
  3. STAR = RPG::Cache.picture("star")
  4. MOON = RPG::Cache.picture("moon")
  5. SUN = RPG::Cache.picture("sun")
  6. JIANGE = 0;SIZE = 12;JINZHI = 4#间距;大小;进制
  7. end  
  8. class Window_Base < Window;include LEVEL
  9. def draw_actor_level(actor, x, y)
  10. moon = actor.level / LEVEL::JINZHI;star = actor.level % LEVEL::JINZHI
  11. sun = moon / LEVEL::JINZHI;moon %= LEVEL::JINZHI;jiange = LEVEL::JIANGE
  12. rect = Rect.new(0, 0, LEVEL::SIZE, LEVEL::SIZE)
  13. while sun>0
  14.   self.contents.blt(x + 32 + jiange, y + 12, SUN, rect)
  15.   jiange += LEVEL::SIZE + LEVEL::JIANGE;sun -= 1;end
  16. while moon>0
  17.   self.contents.blt(x + 32 + jiange, y + 12, MOON, rect)
  18.   jiange += LEVEL::SIZE + LEVEL::JIANGE;moon -= 1;end
  19. while star>0
  20.   self.contents.blt(x + 32 + jiange, y + 12, STAR, rect)
  21.   jiange += LEVEL::SIZE + LEVEL::JIANGE;star -= 1;end
  22. self.contents.font.color = crisis_color
  23. self.contents.draw_text(x, y, 32, 32, "Lv")
  24. self.contents.font.color = Color.new(255, 50, 50, 255)
  25. self.contents.draw_text(x + 32, y + 1, 24, 32, actor.level.to_s, 2);end;end
复制代码
素材
star.png sun.png moon.png (非我制作)

截图:
1.jpg

工程那种东西...没必要的吧...

评分

参与人数 1星屑 +10 收起 理由
876加几 + 10 我很赞同

查看全部评分

梦石
3
星屑
50
在线时间
762 小时
注册时间
2010-8-17
回帖
594
发表于 2013-8-24 18:32:38 | 显示全部楼层
前排围观~
目测好货!
回复 0 1

使用道具 举报

梦石
0
星屑
1350
在线时间
275 小时
注册时间
2011-3-18
回帖
36
发表于 2013-8-25 09:39:14 | 显示全部楼层
不错,比起昨天优化了一些,对于等级数比较小的一些游戏比较适用。等级数大了就看着很烦人了……
回复

使用道具 举报

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
回帖
1303
发表于 2013-8-25 09:59:55 | 显示全部楼层
喂喂!太阳的大小是16×16,月亮的大小是14×14,注意大小的区分,还有,每两个符号要空16像素,状态呀神马的遮住了等级的描绘,建议你改一下状态文字的坐标。

点评

我把大小全部改为12×12的了,每个图片之间空10个像素。至于状态在Window_MenuStatus自己改一下draw_actor_state(actor, x + 90, y + 32)吧~!那个“x+90”就是X坐标  发表于 2013-8-25 12:08
呃,发糖贴好冷清呀!
回复

使用道具 举报

梦石
0
星屑
138
在线时间
140 小时
注册时间
2012-7-25
回帖
328
发表于 2013-8-26 20:01:06 | 显示全部楼层
好神奇……可以创群么……
回复

使用道具 举报

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
 楼主| 发表于 2013-8-26 22:11:12 | 显示全部楼层
更新人工置顶
回复

使用道具 举报

梦石
0
星屑
3703
在线时间
3081 小时
注册时间
2011-11-17
回帖
943
发表于 2013-8-27 00:00:13 | 显示全部楼层
本帖最后由 yagami 于 2013-8-27 00:15 编辑

那帖子 貌似我也看过 还把思路写上去了 LZ你这样 工作量太大 要尽量少硬编码 那次 懒得找RM代码 用C写了下思路 这次顺便写成XP的  碰到这种东西 第一个要想到的是循环 而不是硬编码
  1. class Window_Base < Window
  2. def draw_actor_level(actor, x, y)
  3. starbitmap=RPG::Cache.picture("star")
  4. moonbitmap = RPG::Cache.picture("moon")
  5. sunbitmap = RPG::Cache.picture("sun")

  6. lv = actor.level
  7. jiange=0
  8. size=12##图片大小
  9. jinzhi = 4# 4等级1进位
  10. moon=lv/jinzhi
  11. star=lv%jinzhi
  12. sun=moon/jinzhi
  13. moon%=jinzhi
  14. rect=Rect.new(0, 0, size, size)
  15. while sun>0
  16.   self.contents.blt(x+32+jiange, y+12, sunbitmap, rect)
  17.   jiange+=size
  18.   sun-=1
  19. end
  20. while moon>0
  21.   self.contents.blt(x+32+jiange, y+12, moonbitmap, rect)
  22.   jiange+=size
  23.   moon-=1
  24. end
  25. while star>0
  26.   self.contents.blt(x+32+jiange, y+12, starbitmap, rect)
  27.   jiange+=size
  28.   star-=1
  29. end
  30. end
  31. end
复制代码

点评

嗯拿来学习下谢谢  发表于 2013-8-27 10:47
这样等级多少都无所谓了 还能灵活的换图片 只要改间隔大小就行 还能换进制 比如QQ是4 你可以改成其他的 总之 要考虑维护性  发表于 2013-8-27 00:01
回复

使用道具 举报

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
回帖
1303
发表于 2013-8-30 10:24:36 | 显示全部楼层
yagami的脚本明显就有一个大姨妈:QQ等级和数字等级重叠了。
经过优化的脚本:
  1. #感谢yagami!!!!!!!今天突然发现原脚本有个小BUG现已修复。
  2. module LEVEL#用户设置区
  3. STAR = RPG::Cache.picture("Level_Star")
  4. MOON = RPG::Cache.picture("Level_Moon")
  5. SUN = RPG::Cache.picture("Level_Sun")
  6. JIANGE = 0;SIZE = 16;JINZHI = 4#间距;大小;进制
  7. end  
  8. class Window_Base < Window;include LEVEL
  9. def draw_actor_level(actor, x, y)
  10. moon = actor.level / LEVEL::JINZHI;star = actor.level % LEVEL::JINZHI
  11. sun = moon / LEVEL::JINZHI;moon %= LEVEL::JINZHI;jiange = LEVEL::JIANGE
  12. rect = Rect.new(0, 0, LEVEL::SIZE, LEVEL::SIZE)
  13. while sun>0
  14.   self.contents.blt(x + 64 + jiange, y + 8, SUN, rect)
  15.   jiange += LEVEL::SIZE + LEVEL::JIANGE;sun -= 1;end
  16. while moon>0
  17.   self.contents.blt(x + 64 + jiange, y + 10, MOON, rect)
  18.   jiange += LEVEL::SIZE + LEVEL::JIANGE;moon -= 1;end
  19. while star>0
  20.   self.contents.blt(x + 64 + jiange, y + 12, STAR, rect)
  21.   jiange += LEVEL::SIZE + LEVEL::JIANGE;star -= 1;end
  22. self.contents.font.color = system_color
  23. self.contents.draw_text(x, y, 32, 32, "Lv")
  24. self.contents.font.color = normal_color
  25. self.contents.draw_text(x + 32, y + 1, 24, 32, actor.level.to_s, 2);end;end
复制代码
呃,发糖贴好冷清呀!
回复

使用道具 举报

梦石
0
星屑
95
在线时间
94 小时
注册时间
2021-4-23
回帖
37
发表于 2022-6-11 15:31:37 | 显示全部楼层
  1. #感谢yagami!!!!!!!今天突然发现原脚本有个小BUG现已修复。
  2. module LEVEL#用户设置区
  3. STAR = RPG::Cache.picture("Level_Star")
  4. MOON = RPG::Cache.picture("Level_Moon")
  5. SUN = RPG::Cache.picture("Level_Sun")
  6. JIANGE = 0;SIZE = 16;JINZHI = 4#间距;大小;进制
  7. end  
  8. class Window_Base < Window;include LEVEL
  9. def draw_actor_level(actor, x, y)
  10. moon = actor.level / LEVEL::JINZHI;star = actor.level % LEVEL::JINZHI
  11. sun = moon / LEVEL::JINZHI;moon %= LEVEL::JINZHI;jiange = LEVEL::JIANGE
  12. rect = Rect.new(0, 0, LEVEL::SIZE, LEVEL::SIZE)
  13. while sun>0
  14.   self.contents.blt(x + 64 + jiange, y + 8, SUN, rect)
  15.   jiange += LEVEL::SIZE + LEVEL::JIANGE;sun -= 1;end
  16. while moon>0
  17.   self.contents.blt(x + 64 + jiange, y + 10, MOON, rect)
  18.   jiange += LEVEL::SIZE + LEVEL::JIANGE;moon -= 1;end
  19. while star>0
  20.   self.contents.blt(x + 64 + jiange, y + 12, STAR, rect)
  21.   jiange += LEVEL::SIZE + LEVEL::JIANGE;star -= 1;end
  22. self.contents.font.color = system_color
  23. self.contents.draw_text(x, y, 23, 33, "Lv")
  24. self.contents.font.color = normal_color
  25. self.contents.draw_text(x + 24, y + 1, 24, 32, actor.level.to_s, 2);end;end
复制代码
1340134074180388038
回复

使用道具 举报

梦石
0
星屑
26087
在线时间
1595 小时
注册时间
2016-1-6
回帖
3441

超评测参与极短28参与极短27参与极短26参与极短25参与

发表于 2022-6-11 16:15:05 | 显示全部楼层
好棒的代码,高手啊。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部