| | Crissaegrim ABS | |
| | Autor | Mensagem |
---|
UrsooCm Equipe ManaSoft•
Reputação : 0 Número de Mensagens : 68 Idade : 30 Localização : Cruzeiro, SP Área : Mais de um Maker Usado : RPG Maker VX Data de inscrição : 15/03/2008
| Assunto: Crissaegrim ABS Sáb Mar 15, 2008 10:21 pm | |
| Citação: | #============================================================================== # Crissaegrim ABS #============================================================================== #-------------------------------------------------------------- # Créditos a Vlad, Chronos e Drod #-------------------------------------------------------------- # Para Criar um Inimigo, coloque os seguintes comentários: # Enemy ID - onde ID é o id do monstro no database; # Die X - onde X = 0 ou 1,2,3,4 (0 apaga o evento do inimigo, 1 liga a switch local 'A', 2 liga a switch local 'B', 3 liga a switch local 'C', 4 liga a switch local 'D') # OBS.: Die X onde X > 4 ,ativa uma switch X; # Follow X - Para o evento seguir o herói automaticamente, mude X para a distância da visão do inimigo. #-------------------------------------------------------------- # CONFIGURAÇÃO GERAL #-------------------------------------------------------------- module Crissaegrim_ABS #-------------------------------------------------------------- #Tecla de Ataque, mude o A para outra tecla que queira: Attack_Button = Input::X #-------------------------------------------------------------- # Tecla de Skill, mude os números para outra tecla que queira: Skill_Button = {Input::Y=> 0, Input::Z => 0} #-------------------------------------------------------------- # Tecla de Ítem, mude os números para outra tecla que queira: Item_Button = {Input::L => 0, Input::R => 0} #-------------------------------------------------------------- Distance_Weapons = {} # Armas de Distância. # Para criar uma arma de distância, copie: Distance_Weapons[U] = [V, W, X, Y, Z] e mude: # U:ID da Arma, V:Char, W:Velocidade, X:Distância, Y:Munição, Z:Tempo de espera para atacar # PS: O gráfico do projétil DEVE SER um gráfico sozinho. Distance_Weapons[4] = ["!$Arrow", 6, 5, 21, 30] #-------------------------------------------------------------- Distance_Skills = {} # Skills de Distância. # Para criar uma skill de distância, copie: Distance_Skills[V] = [W, X, Y, Z] e mude: # V:ID da Arma, W:Char, X:Velocidade, Y:Distância, Z:Tempo de espera para atacar # PS: O gráfico do projétil DEVE SER um gráfico sozinho. Distance_Skills[59] = ["!$FireBall", 4, 5, 60] Distance_Skills[63] = ["!$EnergyBall_2", 4, 5, 60] Distance_Skills[67] = ["!$EnergyBall_6", 4, 5, 60] Distance_Skills[71] = ["!$EnergyBall", 4, 5, 60] Distance_Skills[73] = ["!$EnergyBall_6", 4, 5, 60] Distance_Skills[76] = ["!$EnergyBall_5", 4, 5, 60] Distance_Skills[79] = ["!$EnergyBall_4", 4, 5, 60] #-------------------------------------------------------------- Distance_Items = {} # Ítens de Distância. # Para criar um ítem de distância, copie: Distance_Items[U] = [V, W, X, Y, Z] e mude: # U:ID da Arma, V:Char, W:Velocidade, X:Distância, Y:Munição, Z:Tempo de espera para atacar # PS: O gráfico do projétil DEVE SER um gráfico sozinho. Distance_Items[16] = ["!$EnergyBall_3", 6, 5, 16, 30] Distance_Items[18] = ["!$EnergyBall", 6, 5, 18, 30] Distance_Items[20] = ["!$EnergyBall_6", 6, 5, 20, 30] #-------------------------------------------------------------- #Animação qando o Herói passa de Level. #Mude o 40 para o ID da animação. LevelUp_Ani = 40 #-------------------------------------------------------------- #Animação do ataque do inimigo, copie Enemy_atk_ani[X] = Y # e mude o X para o ID do inimigo, e Y para o ID da animação. Enemy_atk_ani = {} Enemy_atk_ani[2] = 13 Enemy_atk_ani[3] = 19 #-------------------------------------------------------------- end #============================================================================== #-------------------------------------------------------------- # Game Character #-------------------------------------------------------------- class Game_Character attr_accessor :hp attr_accessor :mp attr_accessor :damage attr_accessor :critical attr_accessor :wait_action attr_accessor :die alias crissaegrim_abs_gchar_initialize initialize def initialize @hp = 0 @mp = 0 @die = 0 @wait_action = 0 @damage = nil @critical = false crissaegrim_abs_gchar_initialize end def recive_atk(attacker) attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1]) receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1]) if self.is_a?(Game_Player) $game_actors[1].attack_effect(attacker_status) dmg = $game_actors[1].make_attack_damage_value(attacker_status) $game_player.damage = dmg $scene = Scene_Gameover.new if $game_actors[1].hp <= 0 elsif self.is_a?(Game_Event) self.enemy_status.make_attack_damage_value(attacker_status) dmg = self.enemy_status.make_attack_damage_value(attacker_status) self.damage = dmg self.hp -= dmg self.kill_enemy if self.hp <= 0 end end def recive_skill(attacker, skill) attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1]) receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1]) if self.is_a?(Game_Player) dmag = $game_actors[1].make_obj_damage_value($game_actors[1], $data_skills[skill]) $game_actors[1].skill_effect($game_actors[1], $data_skills[skill]) $game_player.damage = dmag $scene = Scene_Gameover.new if $game_actors[1].hp <= 0 elsif self.is_a?(Game_Event) dmg = enemy_status.make_obj_damage_value(enemy_status, $data_skills[skill]) enemy_status.skill_effect(enemy_status, $data_skills[skill]) self.hp -= dmg self.damage = dmg self.kill_enemy if self.hp <= 0 end end def recive_itemeffect(attacker, item) attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1]) receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1]) if self.is_a?(Game_Player) dmag = $game_actors[1].make_obj_damage_value($game_actors[1], $data_items[item]) $game_actors[1].item_effect($game_actors[1], $data_items[item]) $game_player.damage = dmag $scene = Scene_Gameover.new if $game_actors[1].hp <= 0 elsif self.is_a?(Game_Event) dmg = enemy_status.make_obj_damage_value(enemy_status, $data_items[item]) enemy_status.item_effect($game_actors[1], $data_items[item]) self.hp -= dmg self.damage = dmg self.kill_enemy if self.hp <= 0 end end def kill_enemy $game_actors[1].gain_exp(enemy_status.exp, 1) Sound::play_enemy_collapse if @die == 0 self.erase elsif @die == 1 key = [$game_map.map_id, self.id, "A"] $game_self_switches[key] = true elsif @die == 2 key = [$game_map.map_id, self.id, "B"] $game_self_switches[key] = true elsif @die == 3 key = [$game_map.map_id, self.id, "C"] $game_self_switches[key] = true elsif @die == 4 key = [$game_map.map_id, self.id, "D"] $game_self_switches[key] = true else $game_switches[@die] = true $game_map.need_refresh = true end @automove = false refresh end def follow_hero(dx, dy) sx = @x - dx sy = @y - dy if sx == 0 and sy == 0 return end abs_sx = sx.abs abs_sy = sy.abs if abs_sx == 0 sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end return elsif abs_sy == 0 sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end return end if abs_sx == abs_sy rand(2) == 0 ? abs_sx += 1 : abs_sy += 1 end if abs_sx > abs_sy sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end else sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end end end end
#-------------------------------------------------------------- # Game Event #-------------------------------------------------------------- class Game_Event < Game_Character attr_reader :inimigo attr_reader :enemy_status attr_accessor :move_speed attr_accessor :through alias crissaegrim_abs_gevent_initialize initialize alias crissaegrim_abs_gevent_update update alias crissaegrim_abs_gevent_refresh refresh def initialize(map_id, event) @inimigo = false @automove = false crissaegrim_abs_gevent_initialize(map_id, event) end def update crissaegrim_abs_gevent_update if self.wait_action > 0 self.wait_action -= 1 end if @inimigo new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0)) new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0)) if $game_player.x == new_x and $game_player.y == new_y and self.wait_action <= 0 for action in $data_enemies[@enemy_id].actions next unless enemy_status.conditions_met?(action) case action.kind when 0 case action.basic when 0 $game_player.recive_atk(self) $game_player.animation_id = self.enemy_atk_animation_id $game_player.jump(0,0) when 1..3 return end when 1 case $data_skills[action.skill_id].scope when 1..6 if $data_enemies[@enemy_id].maxmp >= $data_skills[action.skill_id].mp_cost $data_enemies[@enemy_id].maxmp -= $data_skills[action.skill_id].mp_cost $game_player.animation_id = $data_skills[action.skill_id].animation_id $game_player.jump(0,0) $game_player.recive_skill(self, action.skill_id) end when 7..11 if $data_enemies[@enemy_id].maxmp >= $data_skills[action.skill_id].mp_cost $data_enemies[@enemy_id].maxmp -= $data_skills[action.skill_id].mp_cost enemy_status.skill_effect(enemy_status, $data_skills[action.skill_id]) rec = enemy_status.make_obj_damage_value(enemy_status, $data_skills[action.skill_id]) self.hp -= rec self.animation_id = $data_skills[action.skill_id].animation_id end end end end speed = $data_enemies[@enemy_id].agi / 10 self.wait_action = 60 - speed end end if @automove unless moving? self.follow_hero($game_player.x, $game_player.y) if in_range?(self, $game_player, @follow_distance) end end end def in_range?(event, target, distance) x = (event.x - target.x) * (event.x - target.x) y = (event.y - target.y) * (event.y - target.y) r = x + y return true if r <= (distance * distance) return false end def refresh crissaegrim_abs_gevent_refresh @inimigo = false @enemy_id = check_comment("Enemy") @die = check_comment("Die") @follow_distance = check_comment("Follow") @automove = true if @follow_distance > 0 if @enemy_id > 0 @inimigo = true @enemy_status = Game_Enemy.new(1, @enemy_id) self.hp = @enemy_status.maxhp self.mp = @enemy_status.maxmp end end def check_com(comentario) return false if @list.nil? or @list.size <= 0 for item in @list if item.code == 108 or item.code == 408 if item.parameters[0].downcase.include?(comentario.downcase) return true end end end end def check_comment(comentario) com = comentario.downcase return 0 if @list.nil? or @list.size <= 0 for item in @list if item.code == 108 or item.code == 408 if item.parameters[0].downcase =~ /#{com}[ ]?(\d+)?/ return $1.to_i end end end return 0 end def enemy_atk_animation_id if Crissaegrim_ABS::Enemy_atk_ani[@enemy_id] return (@enemy_status.nil? ? 0 : Crissaegrim_ABS::Enemy_atk_ani[@enemy_id]) else return (@enemy_status.nil? ? 0 : 1) end end end |
| |
| | | UrsooCm Equipe ManaSoft•
Reputação : 0 Número de Mensagens : 68 Idade : 30 Localização : Cruzeiro, SP Área : Mais de um Maker Usado : RPG Maker VX Data de inscrição : 15/03/2008
| Assunto: Crissaegrim ABS pt.2 Sáb Mar 15, 2008 10:22 pm | |
| Citação: | #-------------------------------------------------------------- # Game Player #-------------------------------------------------------------- class Game_Player < Game_Character alias crissaegrim_abs_gplayer_initialize initialize alias crissaegrim_abs_gplayer_update update alias crissaegrim_abs_gplayer_refresh refresh def initialize crissaegrim_abs_gplayer_initialize @distance = Distance_Base.new end def update crissaegrim_abs_gplayer_update if self.wait_action > 0 self.wait_action -= 1 end @distance.update #-------------------------------------------------------------- if Input.trigger?(Crissaegrim_ABS::Attack_Button) and self.wait_action <= 0 if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id) hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02) if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][3]]) $game_map.events[1].moveto(hero_x, hero_y) $game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][0],0) $game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][1] $game_map.events[1].through = true $game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][3]]) case $game_player.direction when 2 $game_map.events[1].turn_down when 4 $game_map.events[1].turn_left when 6 $game_map.events[1].turn_right when 8 $game_map.events[1].turn_up end end self.wait_action = Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][4] end else new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) for event in $game_map.events.values if event.inimigo if event.x == new_x and event.y == new_y event.recive_atk(self) event.animation_id = self.player_atk_animation_id event.jump(0,0) speed = $game_actors[1].agi / 10 self.wait_action = 60 - speed break end end end end end if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id) $game_map.events[1].refresh weapon_x = $game_map.events[1].x weapon_y = $game_map.events[1].y for event in $game_map.events.values if event.inimigo if event.x == weapon_x and event.y == weapon_y event.recive_atk(self) event.animation_id = self.player_atk_animation_id event.jump(0,0) $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0,0) end end end end #-------------------------------------------------------------- for button in Crissaegrim_ABS::Skill_Button.keys if Input.trigger?(button) and Crissaegrim_ABS::Skill_Button[button] != nil and Crissaegrim_ABS::Skill_Button[button] != 0 and $game_actors[1].mp >= $data_skills[Crissaegrim_ABS::Skill_Button[button]].mp_cost and self.wait_action <= 0 @skl = Crissaegrim_ABS::Skill_Button[button] $game_temp.common_event_id = $data_skills[@skl].common_event_id if $data_skills[@skl].common_event_id > 0 Sound.play_use_skill if Crissaegrim_ABS::Distance_Skills.has_key?(@skl) hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02) if $game_actors[1].mp >= $data_skills[@skl].mp_cost $game_map.events[1].moveto(hero_x, hero_y) $game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Skills[@skl][0],0) $game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Skills[@skl][1] $game_map.events[1].through = true $game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl]) case $game_player.direction when 2 $game_map.events[1].turn_down when 4 $game_map.events[1].turn_left when 6 $game_map.events[1].turn_right when 8 $game_map.events[1].turn_up end end self.wait_action = Crissaegrim_ABS::Distance_Skills[@skl][3] end else case $data_skills[@skl].scope when 1..6 new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) for event in $game_map.events.values if event.inimigo if event.x == new_x and event.y == new_y $game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl]) event.recive_skill(self, @skl) event.animation_id = self.player_skl_animation_id(@skl) event.jump(0,0) end end end when 7..11 $game_actors[1].mp -= $game_actors[1].calc_mp_cost($data_skills[@skl]) $game_player.animation_id = player_skl_animation_id(@skl) $game_actors[1].skill_effect($game_actors[1], $data_skills[@skl]) end speed = $game_actors[1].agi / 10 self.wait_action = 60 - speed break end end end if Crissaegrim_ABS::Distance_Skills.has_key?(@skl) $game_map.events[1].refresh weapon_x = $game_map.events[1].x weapon_y = $game_map.events[1].y for event in $game_map.events.values if event.inimigo if event.x == weapon_x and event.y == weapon_y event.recive_skill(self, @skl) event.animation_id = self.player_skl_animation_id(@skl) event.jump(0,0) $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0,0) end end end end #-------------------------------------------------------------- for button in Crissaegrim_ABS::Item_Button.keys if Input.trigger?(button) and Crissaegrim_ABS::Item_Button[button] != nil and Crissaegrim_ABS::Item_Button[button] != 0 and $game_party.item_number($data_items[Crissaegrim_ABS::Item_Button[button]]) > 0 and self.wait_action <= 0 @itm = Crissaegrim_ABS::Item_Button[button] $game_temp.common_event_id = $data_items[@itm].common_event_id if $data_items[@itm].common_event_id > 0 if Crissaegrim_ABS::Distance_Items.has_key?(@itm) hero_x = ($game_player.x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) hero_y = ($game_player.y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) if $game_map.passable?(hero_x, hero_y) or $game_map.passable?(hero_x, hero_y, 0x02) if $game_party.has_item?($data_items[Crissaegrim_ABS::Distance_Items[@itm][3]]) $game_map.events[1].moveto(hero_x, hero_y) $game_map.events[1].set_graphic(Crissaegrim_ABS::Distance_Items[@itm][0],0) $game_map.events[1].move_speed = Crissaegrim_ABS::Distance_Items[@itm][1] $game_map.events[1].through = true $game_party.consume_item($data_items[Crissaegrim_ABS::Distance_Items[@itm][3]]) case $game_player.direction when 2 $game_map.events[1].turn_down when 4 $game_map.events[1].turn_left when 6 $game_map.events[1].turn_right when 8 $game_map.events[1].turn_up end end self.wait_action = Crissaegrim_ABS::Distance_Items[@itm][4] end else case $data_items[@itm].scope when 1..6 new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0)) new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0)) for event in $game_map.events.values if event.inimigo if event.x == new_x and event.y == new_y event.recive_itemeffect(self, @itm) event.animation_id = $data_items[@itm].animation_id $game_party.consume_item($data_items[@itm]) event.jump(0,0) end end end when 7..11 $game_player.animation_id = player_item_animation_id(@itm) $game_actors[1].item_effect($game_actors[1], $data_items[@itm]) $game_party.consume_item($data_items[@itm]) end speed = $game_actors[1].agi / 10 self.wait_action = 60 - speed end end end if Crissaegrim_ABS::Distance_Items.has_key?(@itm) $game_map.events[1].refresh weapon_x = $game_map.events[1].x weapon_y = $game_map.events[1].y for event in $game_map.events.values if event.inimigo if event.x == weapon_x and event.y == weapon_y event.recive_itemeffect(self, @itm) event.animation_id = $data_items[@itm].animation_id event.jump(0,0) $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0,0) end end end end #-------------------------------------------------------------- def player_atk_animation_id return ($game_actors[1].nil? ? 0 : $game_actors[1].atk_animation_id) end def player_skl_animation_id(skl) return ($game_actors[1].nil? ? 0 : $data_skills[skl].animation_id) end def player_item_animation_id(itm) return ($game_actors[1].nil? ? 0 : $data_items[itm].animation_id) end end end #-------------------------------------------------------------- # Game Actor #-------------------------------------------------------------- class Game_Actor alias crissaegrim_abs_change_exp change_exp def change_exp(exp, show) last_level = @level last_skills = skills @exp = [[exp, 9999999].min, 0].max while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 level_up end while @exp < @exp_list[@level] level_down end @hp = [@hp, maxhp].min @mp = [@mp, maxmp].min if show and @level > last_level show_level_up end crissaegrim_abs_change_exp(exp,show) end def show_level_up $game_player.animation_id = Crissaegrim_ABS::LevelUp_Ani $game_actors[1].hp = $game_actors[1].maxhp $game_actors[1].mp = $game_actors[1].maxmp $game_player.damage = "Level Up" end end #-------------------------------------------------------------- # Distance Weapons #-------------------------------------------------------------- class Distance_Base < Game_Character def initialize refresh end def refresh if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id) weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0)) weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0)) if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02) unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end end if $game_map.events[1].moving? == false $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end for button in Crissaegrim_ABS::Skill_Button.keys if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button]) weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0)) weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0)) if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02) unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end end if $game_map.events[1].moving? == false $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end end for key in Crissaegrim_ABS::Item_Button.keys if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key]) weapondistance_x = ($game_map.events[1].x + ($game_map.events[1].direction == 4 ? -1 : $game_map.events[1].direction == 6 ? 1 : 0)) weapondistance_y = ($game_map.events[1].y + ($game_map.events[1].direction == 8 ? -1 : $game_map.events[1].direction == 2 ? 1 : 0)) if $game_map.passable?(weapondistance_x, weapondistance_y) or $game_map.passable?(weapondistance_x, weapondistance_y, 0x02) unless $game_map.events[1].moving?; $game_map.events[1].move_away_from_player end end if $game_map.events[1].moving? == false $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end end end |
| |
| | | UrsooCm Equipe ManaSoft•
Reputação : 0 Número de Mensagens : 68 Idade : 30 Localização : Cruzeiro, SP Área : Mais de um Maker Usado : RPG Maker VX Data de inscrição : 15/03/2008
| Assunto: Crissaegrim ABS pt.3 Sáb Mar 15, 2008 10:23 pm | |
| Citação: | def update if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id) case $game_player.direction when 2 map_height = $game_player.y + Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2] when 4 map_width = $game_player.x - Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2] when 6 map_width = $game_player.x + Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2] when 8 map_height = $game_player.y - Crissaegrim_ABS::Distance_Weapons[$game_actors[1].weapon_id][2] end if Crissaegrim_ABS::Distance_Weapons.has_key?($game_actors[1].weapon_id) if map_width == $game_map.events[1].x or $game_map.events[1].x == 0 $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) elsif map_height == $game_map.events[1].y or $game_map.events[1].y == 0 $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end refresh end for button in Crissaegrim_ABS::Skill_Button.keys if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button]) case $game_player.direction when 2 map_height = $game_player.y + Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2] when 4 map_width = $game_player.x - Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2] when 6 map_width = $game_player.x + Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2] when 8 map_height = $game_player.y - Crissaegrim_ABS::Distance_Skills[Crissaegrim_ABS::Skill_Button[button]][2] end if Crissaegrim_ABS::Distance_Skills.has_key?(Crissaegrim_ABS::Skill_Button[button]) if map_width == $game_map.events[1].x or $game_map.events[1].x == 0 $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) elsif map_height == $game_map.events[1].y or $game_map.events[1].y == 0 $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end refresh end end for key in Crissaegrim_ABS::Item_Button.keys if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key]) case $game_player.direction when 2 map_height = $game_player.y + Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2] when 4 map_width = $game_player.x - Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2] when 6 map_width = $game_player.x + Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2] when 8 map_height = $game_player.y - Crissaegrim_ABS::Distance_Items[Crissaegrim_ABS::Item_Button[key]][2] end if Crissaegrim_ABS::Distance_Items.has_key?(Crissaegrim_ABS::Item_Button[key]) if map_width == $game_map.events[1].x $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) elsif map_height == $game_map.events[1].y $game_map.events[1].set_graphic("",0) $game_map.events[1].moveto(0, 0) end end refresh end end end end #-------------------------------------------------------------- # Sprite Base #-------------------------------------------------------------- class Sprite_Base alias animation animation_set_sprites def animation_set_sprites(frame) cell_data = frame.cell_data for i in 0..15 sprite = @animation_sprites[i] next if sprite == nil pattern = cell_data[i, 0] if pattern == nil or pattern == -1 sprite.visible = false next end if pattern < 100 sprite.bitmap = @animation_bitmap1 else sprite.bitmap = @animation_bitmap2 end sprite.visible = true sprite.src_rect.set(pattern % 5 * 192, pattern % 100 / 5 * 192, 192, 192) if @animation_mirror sprite.x = @animation_ox - cell_data[i, 1] / 2 sprite.y = @animation_oy - cell_data[i, 2] / 2 sprite.angle = (360 - cell_data[i, 4]) sprite.mirror = (cell_data[i, 5] == 0) else sprite.x = @animation_ox + cell_data[i, 1] / 2 sprite.y = @animation_oy + cell_data[i, 2] / 2 sprite.angle = cell_data[i, 4] sprite.mirror = (cell_data[i, 5] == 1) end sprite.z = self.z + 300 sprite.ox = 96 sprite.oy = 96 sprite.zoom_x = cell_data[i, 3] / 200.0 sprite.zoom_y = cell_data[i, 3] / 200.0 sprite.opacity = cell_data[i, 6] * self.opacity / 255.0 sprite.blend_type = cell_data[i, 7] end end end #-------------------------------------------------------------- # Sprite Character #-------------------------------------------------------------- class Sprite_Character < Sprite_Base alias crissaegrim_abs_spchar_update update def initialize(viewport, character = nil) super(viewport) @character = character @balloon_duration = 0 @_damage_duration = 0 update end def update super if @_damage_duration > 0 @_damage_duration -=1 @_damage_sprite.x = self.x if @_damage_duration <= 0 dispose_damage end end if @character != nil and @character.damage != nil damage(@character.damage, @character.critical) @character.damage = nil @character.critical = false end crissaegrim_abs_spchar_update 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 = "Georgia" bitmap.font.size = 22 bitmap.font.italic = true if value.is_a?(Numeric) and value <= 0 bitmap.font.color.set(0, 0, 0) bitmap.draw_text(1, 13, 160, 36, "Miss", 1) bitmap.font.color.set(255, 245, 155) bitmap.draw_text(0, 12, 160, 36, "Miss", 1) else bitmap.font.color.set(0, 0, 0) bitmap.draw_text(1, 13, 160, 36, damage_string, 1) bitmap.font.color.set(255, 255, 255) bitmap.draw_text(0, 12, 160, 36, damage_string, 1) end if critical bitmap.font.color.set(0, 0, 0) bitmap.draw_text(1, 6, 160, 20, "Critical", 1) bitmap.font.color.set(255, 245, 155) bitmap.draw_text(0, 5, 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 / 2 - 40 @_damage_sprite.z += 99999 @_damage_duration = 30 end def show_text(string, size=16, color=0) dispose_damage damage_string = string if string.is_a?(Array) array = true else array = false end bitmap = Bitmap.new(160, 48) bitmap.font.name = "Georgia" bitmap.font.size = size bitmap.font.italic = true if array for i in 0..string.size next if damage_string[i] == nil bitmap.font.color.set(96, 96-20, 0) if color == 0 bitmap.font.color.set(0, 0, 0) if color != 0 bitmap.draw_text(-1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1) bitmap.draw_text(+1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1) bitmap.draw_text(-1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1) bitmap.draw_text(+1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1) bitmap.font.color.set(255, 245, 155) if color == 0 bitmap.font.color.set(144, 199, 150) if color == 1 bitmap.font.color.set(197, 147, 190)if color == 2 bitmap.font.color.set(138, 204, 198)if color == 3 bitmap.draw_text(0, (12+(16*i))-16, 160, 36, damage_string[i], 1) end else bitmap.font.color.set(96, 96-20, 0) if color == 0 bitmap.font.color.set(0, 0, 0) if color != 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) bitmap.font.color.set(255, 245, 155) if color == 0 bitmap.font.color.set(144, 199, 150) if color == 1 bitmap.font.color.set(197, 147, 190)if color == 2 bitmap.font.color.set(138, 204, 198)if color == 3 bitmap.draw_text(0, 12, 160, 36, damage_string, 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 / 2 @_damage_sprite.z = 3000 @_damage_duration = 30 end def dispose_damage if @_damage_sprite != nil @_damage_sprite.dispose @_damage_sprite = nil end end end
#-------------------------------------------------------------- # Window Skill #-------------------------------------------------------------- class Window_Skill < Window_Selectable alias crissaegrim_abs_wskill_draw_item draw_item def draw_item(index) crissaegrim_abs_wskill_draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) skill = @data[index] if skill != nil rect.width -= 4 enabled = true draw_item_name(skill, rect.x, rect.y, enabled) self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2) end end end class Scene_Skill alias crissaegrim_abs_sskill_start start alias crissaegrim_abs_sskill_update update alias crissaegrim_abs_sskill_update_skill_selection update_skill_selection def start @memory = Window_Command.new(150, ["Memorizada!"]) @memory.active = false @memory.visible = false @memory.x = (544 - @memory.width) / 2 @memory.y = (416 - @memory.height) / 2 @memory.z = 1500 crissaegrim_abs_sskill_start end def update @memory.update if @memory.active crissaegrim_abs_sskill_update return update_memory if @memory.active end def update_skill_selection crissaegrim_abs_sskill_update_skill_selection for button in Crissaegrim_ABS::Skill_Button.keys if Input.trigger?(button) Sound.play_decision Crissaegrim_ABS::Skill_Button[button] = @skill_window.skill.id @memory.active = @memory.visible = true @skill_window.active = false end end end def update_memory if Input.trigger?(Input::C) Sound.play_decision @memory.active = @memory.visible = false @skill_window.active = true end end end #-------------------------------------------------------------- # Window Item #-------------------------------------------------------------- class Scene_Item alias crissaegrim_abs_sitem_start start alias crissaegrim_abs_sitem_update update alias crissaegrim_abs_sitem_update_item_selection update_item_selection def start @memory = Window_Command.new(150, ["Memorizado!"]) @memory.active = false @memory.visible = false @memory.x = (544 - @memory.width) / 2 @memory.y = (416 - @memory.height) / 2 @memory.z = 1500 crissaegrim_abs_sitem_start end def update @memory.update if @memory.active crissaegrim_abs_sitem_update return update_memory if @memory.active end def update_item_selection crissaegrim_abs_sitem_update_item_selection for button in Crissaegrim_ABS::Item_Button.keys if Input.trigger?(button) Sound.play_decision Crissaegrim_ABS::Item_Button[button] = @item_window.item.id @memory.active = @memory.visible = true @item_window.active = false end end end def update_memory if Input.trigger?(Input::C) Sound.play_decision @memory.active = @memory.visible = false @item_window.active = true end end end #-------------------------------------------------------------- # Fim do ABS #-------------------------------------------------------------- |
| |
| | | UrsooCm Equipe ManaSoft•
Reputação : 0 Número de Mensagens : 68 Idade : 30 Localização : Cruzeiro, SP Área : Mais de um Maker Usado : RPG Maker VX Data de inscrição : 15/03/2008
| | | | Lezard Valleth Novato
Reputação : 0 Número de Mensagens : 4 Área : Caçador de Resources Data de inscrição : 27/06/2008
| Assunto: Re: Crissaegrim ABS Sex Jun 27, 2008 5:02 pm | |
| qual eh a funçao desse script oq ele vem a fazer ? | |
| | | UrsooCm Equipe ManaSoft•
Reputação : 0 Número de Mensagens : 68 Idade : 30 Localização : Cruzeiro, SP Área : Mais de um Maker Usado : RPG Maker VX Data de inscrição : 15/03/2008
| Assunto: lol malz¬¬ Seg Ago 11, 2008 12:41 pm | |
| pra falar a verdade eu nem reparei q eskeci de dizer ¬¬ ele é o lendario modo de batalha em tempo real do xp, só q dessa vez produzido para o vx.. Modo Action Based System.. flows | |
| | | Conteúdo patrocinado
| Assunto: Re: Crissaegrim ABS | |
| |
| | | | Crissaegrim ABS | |
|
| Permissões neste sub-fórum | Não podes responder a tópicos
| |
| |
| |