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

Project1

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

[已经解决] 等級處理問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
331 小时
注册时间
2012-8-8
帖子
342
跳转到指定楼层
1
发表于 2013-10-11 21:01:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5星屑
本帖最后由 みかげ 于 2013-10-14 06:03 编辑

http://sdrv.ms/GP77pK

很簡單的問題...

我想在窗口顯示等級...



當升級時...那個字幕很煩...所以希望移除...

(移除字幕)

改成在左側中間偏下方(紅框處)提示...並在角色頭上加個"Level up"的信息

(紅框處:提示升級信息、角色頭上加個"Level up"的提示)

@冰鎮史萊姆 麻煩你了><

抱歉...紅色字不清楚。

最佳答案

查看完整内容

其实上一版本已经大概写好了,但是之所以不行的原因其实和这个战斗系统本身有很多关系。 也就是说我一次获得一对道具他只会显示最后获得的 所以说我只能改了一下顺序,先获得道具,再升级,这样玩家才能看到自己升级了=。= 这个战斗系统果然提示系统蛋疼,所以说我最后还是写好了,楼上的最好删掉=。= class 0 gtext = 'Gold ' + @enemy.gold.to_s if @enemy.gold > 0 $game_player.pop_damage("#{etext} #{gtext}") i ...

点评

行走图好有趣=w=  发表于 2013-10-11 21:10
[工作室]工作室招人,有興趣擊點這裡
[和弦代寫]代寫和弦店開幕了!如果有寫好的主旋律不會配和弦,請點這裡
[音樂教室]橘光音樂教室招生中!有興趣的來點這裡報名。

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
2
发表于 2013-10-11 21:01:56 | 只看该作者
其实上一版本已经大概写好了,但是之所以不行的原因其实和这个战斗系统本身有很多关系。
这个战斗系统左下角提示没法很好地处理多个信息的情况

也就是说我一次获得一对道具他只会显示最后获得的
所以说即使有了升级信息但是由于升级在获得掉落道具之前发生所以一般看不到升级

所以说我只能改了一下顺序,先获得道具,再升级,这样玩家才能看到自己升级了=。=

这个战斗系统果然提示系统蛋疼,所以说我最后还是写好了,楼上的最好删掉=。=
RUBY 代码复制
  1. class << PearlKernel
  2.   def draw_lv(obj, x, y, actor)
  3.     string = 'Lv. ' + (actor.level).to_i.to_s
  4.     obj.draw_text(x, y, 80, 32, string,2)
  5.   end
  6. end
  7.  
  8.  
  9.  
  10. class Sprite_LifeBars < Sprite
  11.   def refresh_contents
  12.     self.bitmap.clear
  13.     self.bitmap.font.size = 19
  14.     @erasetimer = 180
  15.     self.opacity = 255
  16.     if battler.is_a?(Game_Actor)
  17.       @old_exp = battler.exp
  18.       @old_tp = battler.tp
  19.       self.x = ScreenPos_X
  20.       self.y = ScreenPos_Y
  21.       h  = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions
  22.       if PearlBars::ActorsHp != ""
  23.         @pimg = Cache.picture(PearlBars::ActorsHp)  if @pimg.nil?
  24.         @bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?
  25.         @pimp = Cache.picture(PearlBars::ActorsMp)  if @pimp.nil?
  26.         PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,
  27.         @pimg, battler,true)
  28.         PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)
  29.         if PearlBars::ActorsExp != ""
  30.           @piexp = Cache.picture(PearlBars::ActorsExp)  if @piexp.nil?
  31.           PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)
  32.         end
  33.       else
  34.         hc = HP_Color ; mc = MP_Color ; ec = EX_Color
  35.         PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
  36.         PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)
  37.         PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
  38.         #PearlKernel.draw_lv(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
  39.         PearlKernel.draw_lv(self.bitmap, TP_Info[0]+40, TP_Info[1], battler)
  40.       end
  41.       PearlKernel.draw_tp(self.bitmap, TP_Info[0], TP_Info[1], battler)
  42.  
  43.     else battler.is_a?(Game_Enemy)
  44.       if boss?
  45.         self.x = BeScreenPos_X
  46.         self.y = BeScreenPos_Y
  47.         h  = BHP_BarDimentions ; hc = BHP_Color
  48.         if PearlBars::BossEne != ""
  49.           @n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?
  50.           @n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?
  51.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  52.           @n_img, battler,true)
  53.         else
  54.           PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)
  55.         end
  56.       else
  57.         self.x = NeScreenPos_X
  58.         self.y = NeScreenPos_Y
  59.         h  = EHP_BarDimentions ; hc = EHP_Color
  60.         if PearlBars::NormalEne != ""
  61.           @n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?
  62.           @n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?
  63.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  64.           @n_img, battler,true)
  65.         else
  66.           PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)
  67.         end
  68.       end
  69.     end
  70.   end
  71. end
  72.  
  73. class Sprite_DamagePop < Sprite
  74.   attr_reader   :target
  75.   def initialize(viewport, target,text=nil)
  76.     super(viewport)
  77.     @target = target
  78.     self.bitmap = Bitmap.new(200, 50)
  79.     self.bitmap.font.size = 20
  80.     case rand(4)
  81.     when 0 then @resto_plus = 0.5
  82.     when 1 then @resto_plus = 0.6
  83.     when 2 then @resto_plus = 0.7
  84.     when 3 then @resto_plus = 0.8
  85.     end
  86.     create_text_for_display
  87.     @text = text if text
  88.     set_text
  89.     update
  90.   end
  91. end
  92.  
  93.  
  94. class Spriteset_Map
  95.   def add_new_popup(target,text)
  96.     text = Sprite_DamagePop.new(@viewport1, DamagePop_Obj.new(target),text)
  97.     @damagepop_sprites.push(text)
  98.   end
  99.  
  100. end
  101.  
  102.  
  103. class Game_Actor < Game_Battler
  104.   #--------------------------------------------------------------------------
  105.   # ● 顯示等級上升的信息
  106.   #     new_skills : 學會的新技能的數組
  107.   #--------------------------------------------------------------------------
  108.   def display_level_up(new_skills)
  109.     new_popup(self,'Level Up!')
  110.     $game_system.item_object = [:string, "Level Up!"]
  111.     return unless SceneManager.scene.is_a? Scene_Map
  112.  
  113.   end
  114. end
  115.  
  116.  
  117. class Scene_Map
  118.   attr_accessor :spriteset
  119. end
  120.  
  121. class Spriteset_Map
  122.   attr_accessor :item_sprite
  123. end
  124.  
  125. class Sprite_PopItem < Sprite
  126.  
  127.   def set_bitmap
  128.     #puts "Item: #{@item}, Num: #{@num}"
  129.     operand = ''
  130.     @item.nil? ? operand = Vocab::currency_unit : operand = @item.name unless @item == :string
  131.     string = operand + ' X' + @num.to_s
  132.     if @item == :string
  133.       string = @num.to_s
  134.     end
  135.     self.bitmap = Bitmap.new(26 + string.length * 9, 28)
  136.     self.bitmap.fill_rect(0, 0, self.bitmap.width, 28, Color.new(0, 0, 0, 100))
  137.     self.bitmap.font.size = 20
  138.     bitmap = Cache.system("Iconset")
  139.     unless @item == :string
  140.       icon = @item.nil? ? PearlItemPop::GoldIcon : @item.icon_index
  141.       rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  142.       self.bitmap.blt(4, 0, bitmap, rect)
  143.     end
  144.     x = 28
  145.     x = 5 if @item == :string
  146.     self.bitmap.draw_text(x, 0, 250, 32, string)
  147.   end
  148. end
  149.  
  150. module Kernel
  151.   def new_popup(target,text)
  152.     new_target = target
  153.     if target == $game_party.leader
  154.       new_target = $game_player
  155.     elsif target.is_a? Game_Actor
  156.       new_target = $game_player.followers[$game_party.members.index(target)]
  157.     end
  158.     SceneManager.scene.instance_eval{@spriteset.add_new_popup(new_target,text)}  
  159.   end
  160. end
  161.  
  162.  
  163. class Game_Event < Game_Character
  164.   def kill_enemy
  165.     @secollapse = nil
  166.     [url=home.php?mod=space&uid=472765]@killed[/url] = true
  167.     @priority_type = 0 if @deadposee
  168.     gain_gold
  169.     gain_exp
  170.     etext = 'Exp '  + @enemy.exp.to_s if @enemy.exp > 0
  171.     gtext = 'Gold ' + @enemy.gold.to_s if @enemy.gold > 0
  172.     $game_player.pop_damage("#{etext} #{gtext}") if etext || gtext
  173.     make_drop_items
  174.     run_assigned_commands
  175.   end
  176. end
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
191
在线时间
835 小时
注册时间
2012-9-16
帖子
1811
3
发表于 2013-10-11 21:15:58 | 只看该作者
话说能等会儿么?明天我有时间,可以帮你~话说我VAVX都接触一年多了,虽然目前在使用VX但是VA脚本我还会。

点评

可以呀...等待你的好消息。  发表于 2013-10-11 21:17

——旧坑欢迎戳
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3228
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
4
发表于 2013-10-11 21:23:32 | 只看该作者
喵呜喵5他有地图显示变量的脚本,另外,升级提示可以在事件那里修改,有取消显示提示框的钩

点评

這個是ABS的、不是默認系統的...我想修改裡面的...那提示框應該是腳本裡的東西...  发表于 2013-10-11 21:31
回复

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

5
发表于 2013-10-11 21:31:56 | 只看该作者
这个血槽怎么这么像win7的进度条....

点评

围观VA区版主搞基。。。。  发表于 2013-10-12 09:45
Sion~吐槽(水)要用点评啊!下次再被我抓到,就把你抓进小黑屋去然后***……(和谐大雾~  发表于 2013-10-11 21:53

评分

参与人数 1星屑 -5 收起 理由
Mic_洛洛 -5 开门。查水表~

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3228
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
6
发表于 2013-10-11 21:58:40 | 只看该作者
好吧,懒得下载范例了,你在脚本里全局搜索def display_level_up函数,把里面的内容清了,换句话说,就是
def display_level_up
end
完了,试试吧

点评

但是還是要有升級提示...不是清完就沒事了...還要讓左側和升級角色提示升級。  发表于 2013-10-11 22:09
回复

使用道具 举报

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
7
发表于 2013-10-11 22:29:53 | 只看该作者
除了左下角的提示之外都写好了,都是这个作者君太不给其他开发者面子了(其实是你太渣了吧, 中午回家之后再写后半部分吧:
  1. class << PearlKernel
  2.   def draw_lv(obj, x, y, actor)
  3.     string = 'Lv. ' + (actor.level).to_i.to_s
  4.     obj.draw_text(x, y, obj.width, 32, string)
  5.   end
  6. end



  7. class Sprite_LifeBars < Sprite
  8.   def refresh_contents
  9.     self.bitmap.clear
  10.     self.bitmap.font.size = 19
  11.     @erasetimer = 180
  12.     self.opacity = 255
  13.     if battler.is_a?(Game_Actor)
  14.       @old_exp = battler.exp
  15.       @old_tp = battler.tp
  16.       self.x = ScreenPos_X
  17.       self.y = ScreenPos_Y
  18.       h  = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions
  19.       if PearlBars::ActorsHp != ""
  20.         @pimg = Cache.picture(PearlBars::ActorsHp)  if @pimg.nil?
  21.         @bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?
  22.         @pimp = Cache.picture(PearlBars::ActorsMp)  if @pimp.nil?
  23.         PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,
  24.         @pimg, battler,true)
  25.         PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)
  26.         if PearlBars::ActorsExp != ""
  27.           @piexp = Cache.picture(PearlBars::ActorsExp)  if @piexp.nil?
  28.           PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)
  29.         end
  30.       else
  31.         hc = HP_Color ; mc = MP_Color ; ec = EX_Color
  32.         PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
  33.         PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)
  34.         PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
  35.         #PearlKernel.draw_lv(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
  36.         PearlKernel.draw_lv(self.bitmap, TP_Info[0]+70, TP_Info[1], battler)
  37.       end
  38.       PearlKernel.draw_tp(self.bitmap, TP_Info[0], TP_Info[1], battler)
  39.       
  40.     else battler.is_a?(Game_Enemy)
  41.       if boss?
  42.         self.x = BeScreenPos_X
  43.         self.y = BeScreenPos_Y
  44.         h  = BHP_BarDimentions ; hc = BHP_Color
  45.         if PearlBars::BossEne != ""
  46.           @n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?
  47.           @n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?
  48.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  49.           @n_img, battler,true)
  50.         else
  51.           PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)
  52.         end
  53.       else
  54.         self.x = NeScreenPos_X
  55.         self.y = NeScreenPos_Y
  56.         h  = EHP_BarDimentions ; hc = EHP_Color
  57.         if PearlBars::NormalEne != ""
  58.           @n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?
  59.           @n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?
  60.           PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
  61.           @n_img, battler,true)
  62.         else
  63.           PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)
  64.         end
  65.       end
  66.     end
  67.   end
  68. end

  69. class Sprite_DamagePop < Sprite
  70.   attr_reader   :target
  71.   def initialize(viewport, target,text=nil)
  72.     super(viewport)
  73.     @target = target
  74.     self.bitmap = Bitmap.new(200, 50)
  75.     self.bitmap.font.size = 20
  76.     case rand(4)
  77.     when 0 then @resto_plus = 0.5
  78.     when 1 then @resto_plus = 0.6
  79.     when 2 then @resto_plus = 0.7
  80.     when 3 then @resto_plus = 0.8
  81.     end
  82.     create_text_for_display
  83.     @text = text if text
  84.     set_text
  85.     update
  86.   end
  87. end


  88. class Spriteset_Map
  89.   def add_new_popup
  90.     text = Sprite_DamagePop.new(@viewport1, DamagePop_Obj.new($game_player),"Level Up!")
  91.     @damagepop_sprites.push(text)
  92.   end
  93.   
  94. end


  95. class Game_Actor < Game_Battler
  96.   #--------------------------------------------------------------------------
  97.   # ● 顯示等級上升的信息
  98.   #     new_skills : 學會的新技能的數組
  99.   #--------------------------------------------------------------------------
  100.   def display_level_up(new_skills)
  101.     #$game_system.item_object = [:string, "#{self.name} is now #{self.level}"]
  102.     #@damagepop_sprites.push(Sprite_DamagePop.new(@viewport1, target))
  103.     #SceneManager.scene.instance_eval{@spriteset.instance_eval{@item_object = [:string, "#{self.name} is now #{self.level}"]}}
  104.     SceneManager.scene.instance_eval{@spriteset.add_new_popup()}
  105.   end
  106. end
  107. class Sprite_PopItem < Sprite
  108.   
  109.   def set_bitmap
  110.     @item.nil? ? operand = Vocab::currency_unit : operand = @item.name
  111.     string = operand + ' X' + @num.to_s
  112.     if @item == :string
  113.       puts 'hi'
  114.       string = @num.to_s
  115.     end
  116.     self.bitmap = Bitmap.new(26 + string.length * 9, 28)
  117.     self.bitmap.fill_rect(0, 0, self.bitmap.width, 28, Color.new(0, 0, 0, 100))
  118.     self.bitmap.font.size = 20
  119.     bitmap = Cache.system("Iconset")
  120.     icon = @item.nil? ? PearlItemPop::GoldIcon : @item.icon_index
  121.     rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24)
  122.     self.bitmap.blt(4, 0, bitmap, rect) unless @item == :string
  123.     self.bitmap.draw_text(28, 0, 250, 32, string)
  124.   end
  125. end

复制代码

点评

LBQ
↓于是我今天写吧。。毕竟左下角那货略坑。。  发表于 2013-10-13 22:56
我還在等左下角提示...等你寫好我再認可。  发表于 2013-10-13 18:23
謝謝...就剩下那左下角的提示了...  发表于 2013-10-12 01:10

评分

参与人数 1星屑 +20 收起 理由
yangjunyin2002 + 20 555...万恶的LBQ

查看全部评分

『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-4 13:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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