Project1

标题: 仿QQ等级制(感谢yagami!!!!!!! ) [打印本页]

作者: 恐惧剑刃    时间: 2013-8-24 18:29
标题: 仿QQ等级制(感谢yagami!!!!!!! )
本帖最后由 恋′挂机 于 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
复制代码
素材
(非我制作)

截图:


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


作者: 嚴子    时间: 2013-8-24 18:32
前排围观~
目测好货!
作者: 小小猪猪    时间: 2013-8-25 09:39
不错,比起昨天优化了一些,对于等级数比较小的一些游戏比较适用。等级数大了就看着很烦人了……
作者: 876加几    时间: 2013-8-25 09:59
喂喂!太阳的大小是16×16,月亮的大小是14×14,注意大小的区分,还有,每两个符号要空16像素,状态呀神马的遮住了等级的描绘,建议你改一下状态文字的坐标。
作者: 玄胄武甲    时间: 2013-8-26 20:01
好神奇……可以创群么……
作者: 恐惧剑刃    时间: 2013-8-26 22:11
更新人工置顶
作者: yagami    时间: 2013-8-27 00:00
本帖最后由 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
复制代码

作者: 876加几    时间: 2013-8-30 10:24
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
复制代码

作者: 企鹅大虾    时间: 2022-6-11 15:31
  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
复制代码

作者: plain666    时间: 2022-6-11 16:15
好棒的代码,高手啊。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1