Sry vergessen(Ich döddel ) Code: #------------------------------------------------------------------------------ # This modification is so that you can spawn new events mainly for animations in # the battle system. Miss and summons will not work if this is not here. #------------------------------------------------------------------------------ class Anim_Miss < Game_Event def initialize(type = 0, anim_id = 0) @type = type @anim_id = anim_id @played = false anim = RPG::Event.new(0,0) super($game_map.map_id, anim) end def animated? return false end def start_anim case @type when 0 @animation_id = GTBS::MISS_ANIMATION #Animation ID of MISS!.. for spells that miss when 1 @animation_id = GTBS::SUMMON_ANIM_ID #Animation ID of SPAWN.. for summons (RAISE) else @animation_id = @anim_id end @played = true end def place(x,y) moveto(x,y) @id = $game_map.events.size + 1 $game_system.battle_events[@id] = self $scene.spriteset.event_sprites.push(Sprite_Character.new($scene.spriteset.viewport1,self)) @sprite = $scene.spriteset.event_sprites.last end #alias anim_miss_update update def update super() if @played == true and !@sprite.animation? $scene.spriteset.event_sprites.delete(@sprite) $game_map.events.delete(self) end end end class Turn_Sprite < Sprite_Base def initialize(viewport) @_damage_duration = 0 super(viewport) end def dispose_damage if @_damage_sprite != nil @_damage_sprite.bitmap.dispose @_damage_sprite.dispose @_damage_sprite = nil @_damage_duration = 0 end end def update update_damage super end def update_damage if @_damage_duration > 0 @_damage_duration -= 1 case @_damage_duration when 38..39 @_damage_sprite.y -= 4 when 36..37 @_damage_sprite.y -= 2 when 34..35 @_damage_sprite.y += 2 when 28..33 @_damage_sprite.y += 4 end @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32 if @_damage_duration == 0 dispose_damage end end end def damage(value, critical) dispose_damage if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = "Arial Black" bitmap.font.size = 32 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) if critical bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1) end @_damage_sprite = ::Sprite.new(self.viewport) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - (self.oy/1.5) @_damage_sprite.z = 3000 @_damage_duration = 60 end def doom_pop(value) #Used only for doom right now. dispose_damage if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = GTBS.font bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) @_damage_sprite = ::Sprite.new(self.viewport) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - (self.oy / 1.5) @_damage_sprite.z = 3000 @_damage_duration = 40 end def start_animation(animation, mirror = false, direction = 8) @direction = direction @turnable = animation.name.downcase.include?("[turn]") @updated = false super(animation, mirror) end def animation_set_sprites(frame) super(frame) for i in 0..15 sprite = @animation_sprites[i] if @turnable d = @direction sprite.angle += (d == 8 ? 0 : d == 6 ? 270 : d == 4 ? 90 : 180) end end end end class Bitmap def draw_outline_text(x,y,w,h,text,align=0,clear = 1) color = self.font.color.clone if clear == 1 self.font.color = Color.new(50,50,50,200) elsif clear == 0 self.font.color = Color.new(0,0,0) end self.draw_text(x+1,y+1,w,h,text,align) self.draw_text(x+1,y-1,w,h,text,align) self.draw_text(x-1,y-1,w,h,text,align) self.draw_text(x-1,y+1,w,h,text,align) self.draw_text(x-1,y,w,h,text,align) self.draw_text(x+1,y,w,h,text,align) self.draw_text(x,y+1,w,h,text,align) self.draw_text(x,y-1,w,h,text,align) self.font.color = color self.draw_text(x,y,w,h,text,align) end def gradation_rect(x, y, width, height, color1, color2, align = 0) if align == 0 for i in x...x + width red = color1.red + (color2.red - color1.red) * (i - x) / (width - 1) green = color1.green + (color2.green - color1.green) * (i - x) / (width - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - x) / (width - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - x) / (width - 1) color = Color.new(red, green, blue, alpha) fill_rect(i, y, 1, height, color) end elsif align == 1 for i in y...y + height red = color1.red + (color2.red - color1.red) * (i - y) / (height - 1) green = color1.green + (color2.green - color1.green) * (i - y) / (height - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - y) / (height - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - y) / (height - 1) color = Color.new(red, green, blue, alpha) fill_rect(x, i, width, 1, color) end elsif align == 2 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end elsif align == 3 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end end end end
#------------------------------------------------------------------------------ # This modification is so that you can spawn new events mainly for animations in # the battle system. Miss and summons will not work if this is not here. #------------------------------------------------------------------------------ class Anim_Miss < Game_Event def initialize(type = 0, anim_id = 0) @type = type @anim_id = anim_id @played = false anim = RPG::Event.new(0,0) super($game_map.map_id, anim) end def animated? return false end def start_anim case @type when 0 @animation_id = GTBS::MISS_ANIMATION #Animation ID of MISS!.. for spells that miss when 1 @animation_id = GTBS::SUMMON_ANIM_ID #Animation ID of SPAWN.. for summons (RAISE) else @animation_id = @anim_id end @played = true end def place(x,y) moveto(x,y) @id = $game_map.events.size + 1 $game_system.battle_events[@id] = self $scene.spriteset.event_sprites.push(Sprite_Character.new($scene.spriteset.viewport1,self)) @sprite = $scene.spriteset.event_sprites.last end #alias anim_miss_update update def update super() if @played == true and !@sprite.animation? $scene.spriteset.event_sprites.delete(@sprite) $game_map.events.delete(self) end end end class Turn_Sprite < Sprite_Base def initialize(viewport) @_damage_duration = 0 super(viewport) end def dispose_damage if @_damage_sprite != nil @_damage_sprite.bitmap.dispose @_damage_sprite.dispose @_damage_sprite = nil @_damage_duration = 0 end end def update update_damage super end def update_damage if @_damage_duration > 0 @_damage_duration -= 1 case @_damage_duration when 38..39 @_damage_sprite.y -= 4 when 36..37 @_damage_sprite.y -= 2 when 34..35 @_damage_sprite.y += 2 when 28..33 @_damage_sprite.y += 4 end @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32 if @_damage_duration == 0 dispose_damage end end end def damage(value, critical) dispose_damage if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = "Arial Black" bitmap.font.size = 32 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) if critical bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1) bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1) bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1) end @_damage_sprite = ::Sprite.new(self.viewport) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - (self.oy/1.5) @_damage_sprite.z = 3000 @_damage_duration = 60 end def doom_pop(value) #Used only for doom right now. dispose_damage if value.is_a?(Numeric) damage_string = value.abs.to_s else damage_string = value.to_s end bitmap = Bitmap.new(160, 48) bitmap.font.name = GTBS.font bitmap.font.size = 20 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1) bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1) bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1) if value.is_a?(Numeric) and value < 0 bitmap.font.color.set(176, 255, 144) else bitmap.font.color.set(255, 255, 255) end bitmap.draw_text(0, 12, 160, 36, damage_string, 1) @_damage_sprite = ::Sprite.new(self.viewport) @_damage_sprite.bitmap = bitmap @_damage_sprite.ox = 80 @_damage_sprite.oy = 20 @_damage_sprite.x = self.x @_damage_sprite.y = self.y - (self.oy / 1.5) @_damage_sprite.z = 3000 @_damage_duration = 40 end def start_animation(animation, mirror = false, direction = 8) @direction = direction @turnable = animation.name.downcase.include?("[turn]") @updated = false super(animation, mirror) end def animation_set_sprites(frame) super(frame) for i in 0..15 sprite = @animation_sprites[i] if @turnable d = @direction sprite.angle += (d == 8 ? 0 : d == 6 ? 270 : d == 4 ? 90 : 180) end end end end class Bitmap def draw_outline_text(x,y,w,h,text,align=0,clear = 1) color = self.font.color.clone if clear == 1 self.font.color = Color.new(50,50,50,200) elsif clear == 0 self.font.color = Color.new(0,0,0) end self.draw_text(x+1,y+1,w,h,text,align) self.draw_text(x+1,y-1,w,h,text,align) self.draw_text(x-1,y-1,w,h,text,align) self.draw_text(x-1,y+1,w,h,text,align) self.draw_text(x-1,y,w,h,text,align) self.draw_text(x+1,y,w,h,text,align) self.draw_text(x,y+1,w,h,text,align) self.draw_text(x,y-1,w,h,text,align) self.font.color = color self.draw_text(x,y,w,h,text,align) end def gradation_rect(x, y, width, height, color1, color2, align = 0) if align == 0 for i in x...x + width red = color1.red + (color2.red - color1.red) * (i - x) / (width - 1) green = color1.green + (color2.green - color1.green) * (i - x) / (width - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - x) / (width - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - x) / (width - 1) color = Color.new(red, green, blue, alpha) fill_rect(i, y, 1, height, color) end elsif align == 1 for i in y...y + height red = color1.red + (color2.red - color1.red) * (i - y) / (height - 1) green = color1.green + (color2.green - color1.green) * (i - y) / (height - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - y) / (height - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - y) / (height - 1) color = Color.new(red, green, blue, alpha) fill_rect(x, i, width, 1, color) end elsif align == 2 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end elsif align == 3 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end end end end
-- Meine Modelle zum download: http://forum.modding-union.com/index...html#msg148978 Mein modelling Tutorial: http://forum.modding-union.com/index...ic,5523.0.html
Foren-Regeln