魔塔吧 关注:64,886贴子:2,160,155
  • 14回复贴,共1

大家帮我看看我写的24层脚本

只看楼主收藏回复

刷新时等待没用,显示不了窗口,请各位高手帮帮我,多谢啊
















$怪物生命变量=53
$窗口开关=53
$秒杀机会=10
#----------------------------------------------------------------------------
# ■ 战斗系统                                 by 魔塔Z剑
#----------------------------------------------------------------------------
#@zd = Window_zd.new            开  
#@zd .dispose                   关
#本脚本只支持本样板
#----------------------------------------------------------------------------
class Interpreter
  def vs
@zd = Window_zd.new
e=Enemy_property.new($game_variables[4])
$game_variables[$怪物生命变量]=e.ehp
loop do
if $game_actors[$game_variables[1]+1].weapon_id==0
av=1 #没有装备武器则用1号[空手]动画
else
av=$data_weapons[$game_actors[$game_variables[1]+1].weapon_id].animation1_id
av=1 if av==0#武器没有动画则用1号[空手]动画
end#if
#根据角色装备的武器决定动画
$game_map.events[@event_id].opacity=255
$game_map.events[@event_id].animation_id=av
e=Enemy_property.new($game_variables[4])
$game_variables[$怪物生命变量]-=e.mg
@wait_count=5
@zd .dispose
@zd = Window_zd.new
if $game_variables[$怪物生命变量]<=0
break
end#if
#勇士受伤害
@e=$game_variables[4]
@w=$data_enemies[@e].name.split(':')[1].to_i
@w=1 if @w==0
$game_player.animation_id=@w
e=Enemy_property.new($game_variables[4])
$game_actors[$game_variables[1]+1].hp-=e.eg
if $game_actors[$game_variables[1]+1].hp==0
$game_variables[19]=1
$game_temp.common_event_id=12
#[结局判定]
break
end#if
@wait_count=5
@zd .dispose
@zd = Window_zd.new
end#loop do
@zd .dispose
end#def
end#class
  
#----------------------------------------------------------------------------
# ■ 战斗窗口                                 by 魔塔Z剑
#----------------------------------------------------------------------------
class Window_zd < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化窗口
  #--------------------------------------------------------------------------
  def initialize
    super(192, 160, 416, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity=100
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    
    self.contents.font.color = system_color
    draw_actor_graphic($game_party.actors[0], 95, 32)
    self.contents.draw_text(70, 3, 70, 70, "勇士")
    return if $game_variables[4]==0#错误时中断
    bitmap = RPG::Cache.battler($data_enemies[$game_variables[4]].battler_name , $data_enemies[$game_variables[4]].battler_hue )
    src_rect = Rect.new(0, 0,bitmap.width, bitmap.height)
    self.contents.blt(300, 0, bitmap, src_rect)
    self.contents.draw_text(285, 0, 70, 70, $data_enemies[$game_variables[4]].name.split(':')[0].to_s)
#------------------------------------------------------------------------------
# ● 判断怪物类型
#------------------------------------------------------------------------------
    @orbatk=$game_variables[44]
    @orbdef=$game_variables[45]
    @orbhp=$game_variables[46]
    @ma=$game_actors[$game_variables[1]+1].str
    @md=$game_actors[$game_variables[1]+1].dex#勇防
    @mma=@ma
    @mmd=@md
    @ea=$data_enemies[$game_variables[4]].atk
    @ed=$data_enemies[$game_variables[4]].pdef
    @ehp=$data_enemies[$game_variables[4]].maxhp
    @ma=($game_actors[$game_variables[1]+1].str*@orbatk).to_i
    @md=($game_actors[$game_variables[1]+1].dex*@orbdef).to_i
    @mhp=$game_actors[$game_variables[1]+1].hp
    @pro="EXP:#{$data_enemies[$game_variables[4]].exp}   gold:#{$data_enemies[$game_variables[4]].gold}"
###############################################################################
#以下是属性
###############################################################################
    self.contents.draw_text(180, 83, 300, 70, @pro.to_s)
    self.contents.font.color = text_color(2)
    self.contents.draw_text(170, 0, 50, 30, "V S")
    self.contents.font.color = system_color
    self.contents.draw_text(3, 23, 70, 70, "生命"+@mhp.to_s)
    self.contents.draw_text(230, 23, 70, 70, "生命"+$game_variables[$怪物生命变量].to_s)
    self.contents.draw_text(3, 43, 70, 70, "攻击"+@mma.to_s+"+"+(@ma-@mma).to_s)
    self.contents.draw_text(230, 43, 70, 70, "攻击"+@ea.to_s)
    self.contents.draw_text(3, 63, 70, 70, "防御"+@mmd.to_s+"+"+(@md-@mmd).to_s)
    self.contents.draw_text(230, 63, 70, 70, "防御"+@ed.to_s)
  end
end 


1楼2008-01-06 13:43回复
    脚本技术太高了


    2楼2008-01-06 14:00
    回复
      ...


      3楼2008-01-06 14:01
      回复
        用那能力窗口改会简单点.


        4楼2008-01-06 14:02
        回复
          可以直接用事件,但是我不知道怎样用脚本刷新窗


          5楼2008-01-06 14:03
          回复
            • 218.204.243.*
            refresh


            6楼2008-01-06 14:07
            回复
              多谢,我现在不用脚本运行战斗了


              7楼2008-01-06 14:08
              回复
                我爱用事件.


                8楼2008-01-06 14:11
                回复
                  刷新只需要定义函数:
                  输入脚本: def refresh(actor,event) 
                  即可。
                  建议战斗系统用以下代码
                  class Game_Battler 

                   def attack_effect(attacker) 

                   str = [attacker.str - 0].max 
                   self.damage =attacker.str - dex / 1 
                   
                   self.hp -= self.damage 

                  end 
                  end


                  9楼2008-01-06 16:33
                  回复
                    我还没看完,不过我好象看出了你少了一个
                    $战斗结束后等待的时间 = num


                    10楼2008-01-06 16:35
                    回复
                      战斗窗口用以下即可:
                       def refresh(actor,event) 
                       self.contents.clear 
                       self.contents.font.size = 16 
                       enemy = event.enemy 
                       w = get(enemy.name) 
                       self.contents.draw_text(@width-w-32,0,w,16,enemy.name) 
                       w = get("血:#{enemy.hp}") 
                       self.contents.draw_text(@width-w-32,16,w,16,"血:" + (enemy.hp.to_s)) 
                       w = get("攻击:#{enemy.atk}") 
                       self.contents.draw_text(@width-w-32,48,w,16,"攻击:" + (enemy.str.to_s)) 
                       w = get("防御:#{enemy.pdef}") 
                       self.contents.draw_text(@width-w-32,64,w,16,"防御:" + (enemy.dex.to_s)) 
                       unless enemy.skill.nil? 
                       w = get("Skill:" + (enemy.skill.name)) 
                       else 
                       w = get("Skill:" + ("无")) 
                       end 
                       unless enemy.skill.nil? 
                       self.contents.draw_text(@width-w-32,80,w,16,"Skill:" + (enemy.skill.name)) 
                       else 
                       self.contents.draw_text(@width-w-32,80,w,16,"Skill:" + ("无")) 
                       end 
                       draw_actor_graphic($game_party.actors[0], 85, 32) 
                       self.contents.draw_text(4,0,get(actor.name),16,actor.name) 
                       self.contents.draw_text(4,16,get((actor.hp.to_s) + ":HP"),16,(actor.hp.to_s) + ":血") 
                       self.contents.draw_text(4,48,get((actor.str.to_s) + ":str"),16,(actor.str.to_s) + ":攻击") 
                       self.contents.draw_text(4,64,get((actor.dex.to_s) + ":dex"),16,(actor.dex.to_s) + ":防御") 
                       end 
                      end


                      11楼2008-01-06 16:37
                      回复
                        以上代码经过测试,可以正常使用.
                        .....就发这么多.


                        12楼2008-01-06 16:38
                        回复
                          LZ。我可以把源代码全给你


                          13楼2008-01-06 16:41
                          回复
                            • 121.207.187.*
                            可楼上说了那么多到底怎么使用呢?我放到2215的样板里··可不会用··


                            14楼2008-01-06 16:42
                            回复
                              LZ不在


                              15楼2008-01-06 17:13
                              回复