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

Project1

 找回密码
 注册会员
搜索

仿QQ等级制(感谢yagami!!!!!!! )

查看数: 3585 | 评论数: 9 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-8-24 18:29

正文摘要:

本帖最后由 恋′挂机 于 2013-8-28 14:11 编辑 感谢yagami!!!!!!! #感谢yagami!!!!!!!今天突然发现原脚本有个小BUG现已修复。 module LEVEL#用户设置区 STAR = RPG::Cache.picture("star") MOON = RPG ...

回复

plain666 发表于 2022-6-11 16:15:05
好棒的代码,高手啊。
企鹅大虾 发表于 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
复制代码
876加几 发表于 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
复制代码
yagami 发表于 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
恐惧剑刃 发表于 2013-8-26 22:11:12
更新人工置顶
玄胄武甲 发表于 2013-8-26 20:01:06
好神奇……可以创群么……
876加几 发表于 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
小小猪猪 发表于 2013-8-25 09:39:14
不错,比起昨天优化了一些,对于等级数比较小的一些游戏比较适用。等级数大了就看着很烦人了……
嚴子 发表于 2013-8-24 18:32:38
前排围观~
目测好货!
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-4 03:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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