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

Project1

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

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

[复制链接]

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
跳转到指定楼层
1
发表于 2013-8-24 18:29:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 恋′挂机 于 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
复制代码
素材
(非我制作)

截图:


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

评分

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

查看全部评分

Lv3.寻梦者

梦石
3
星屑
50
在线时间
762 小时
注册时间
2010-8-17
帖子
681
2
发表于 2013-8-24 18:32:38 | 只看该作者
前排围观~
目测好货!
回复 支持 0 反对 1

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1350
在线时间
275 小时
注册时间
2011-3-18
帖子
40
3
发表于 2013-8-25 09:39:14 | 只看该作者
不错,比起昨天优化了一些,对于等级数比较小的一些游戏比较适用。等级数大了就看着很烦人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
帖子
1535
4
发表于 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
呃,发糖贴好冷清呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
112
在线时间
136 小时
注册时间
2012-7-25
帖子
339
5
发表于 2013-8-26 20:01:06 | 只看该作者
好神奇……可以创群么……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
6
 楼主| 发表于 2013-8-26 22:11:12 | 只看该作者
更新人工置顶
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3583
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
7
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
帖子
1535
8
发表于 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
复制代码
呃,发糖贴好冷清呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
214
在线时间
71 小时
注册时间
2021-4-23
帖子
29
9
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22502
在线时间
1145 小时
注册时间
2016-1-6
帖子
3406

极短25参与

10
发表于 2022-6-11 16:15:05 | 只看该作者
好棒的代码,高手啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 01:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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