| Bienvenue |
Bienvenue sur Planette Rpg Maker. Nous sommes heureux de vous accueillir sur ce forum créer pour RPG Maker. Vous y
trouverez des Tutoriaux, des Ressources,des scripts, des tests ainsi que des news regulieres sur l'actualité de l'informatique.
Vous trouverez aussi de multiples solutions au problèmes concernant votre P.C
Pour toutes questions ou problèmes éventuelles Planette rpg maker met à votre
disposition une adresse de messagerie
planette-rpg-maker@hotmail.fr
Bonne visites
ADMIN
|
| Auteur |
Message |
N♦N¥
Administrateur
 Hors ligne
Inscrit le: 24 Mai 2008 Messages: 275
Localisation: St Etienne  Point(s): 190 Moyenne de points: 0,69 |
|
A-RPG (Combat en temps réél) |
|
Uttisation:
Ce script permet de faire des combat entemps réel (ARPG) Pour faire un ennemi : Créez un évènement et mettez en commentaire : - "Enemy ID" où "ID" est le numéro de l'ennemi dans la base de données - "Die 1" ou "Die 2". Le chiffre correspond à l'interrupteur enclenché après la défaite de l'ennemi. 1 permet de désactiver l'interrupteur et 2 pour passer à l'interrupteur local 1 - "Follow" (c'est en deux script. Ouvrez l'éditeur de script (F11). Créez en un nouveau au dessus de "Main" et collez le code ci-dessous.) 1er script code : #============================================================================= # Window Hud #=============================================================================
class Window_Hud < Window_Base def initialize super(0,0,128,96) self.opacity = 0 # self.visible = false refresh end def refresh self.contents.clear actor = $game_actors[1] draw_actor_hp(actor, 0, 0, 96) draw_actor_mp(actor, 0, 32, 96) end def update # self.visible = true if $game_switches[1] == true # 1=interruptor que activa y desactiva el HUD refresh end end
class Scene_Map alias hud_main main alias hud_update update alias hud_terminate terminate def main @hud = Window_Hud.new hud_main end def update @hud.update hud_update end def terminate @hud.dispose end end
_________________ http://world5.monstersgame.fr/?ac=vid&vid=324044164
Dernière édition par N♦N¥ le Dim 26 Oct - 21:01 (2008); édité 1 fois
|
|
| Sam 24 Mai - 18:54 (2008) |
|
 |
Publicité
|
Publicité |
|
|
|
| Sam 24 Mai - 18:54 (2008) |
|
 |
N♦N¥
Administrateur
 Hors ligne
Inscrit le: 24 Mai 2008 Messages: 275
Localisation: St Etienne  Point(s): 190 Moyenne de points: 0,69 |
|
A-RPG (Combat en temps réél) |
|
Ouvrez l'éditeur de script (F11). Créez en un nouveau au dessus de "Main" et collez le code ci-dessous. Code:
#=================================== # Vlad ABS #=================================== #-------------------------------------------------------------- # Créditos a Vlad #-------------------------------------------------------------- # Para Crear un Enemigo, coloca las siguientes anotaciones: # Enemy ID - donde ID es la ID del enemigo en la base de datos. # Die X - donde X = 1 o 2 (1 borra el evento de enemigo, 2 pasa al interruptor local 'A') # Follow - Para que el evento siga al personaje automáticamente. #-------------------------------------------------------------- # Configuración General #-------------------------------------------------------------- #-------------------------------------------------------------- # Tecla de Ataque, cambia X por la letra que quieras: Attack_Button = Input::X #-------------------------------------------------------------- # Tecla de Habilidad, cambia Y por la letra que quieras: Skill_Button = {Input::Y => 0} #-------------------------------------------------------------- # Animación cuando el Héroe sube de Nivel: LevelUp_Ani = 40 #-------------------------------------------------------------- # Animación de ataque del enemigo, copia Enemy_atk_ani[2] = 13 # y cambia el 2 por la ID del enemigo, y el 13 por la ID de animación. Enemy_atk_ani = {} Enemy_atk_ani[2] = 13 #--------------------------------------------------------------
#-------------------------------------------------------------- # Game Character #-------------------------------------------------------------- class Game_Character attr_accessor :hp attr_accessor :mp attr_accessor :damage attr_accessor :critical attr_accessor :wait_ataque attr_accessor :die alias vlad_abs_gchar_initialize initialize def initialize @hp = 0 @mp = 0 @die = 0 $skill_for_use = 0 @wait_ataque = 0 @damage = nil @critical = false vlad_abs_gchar_initialize end def recebe_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]) self.damage = attacker_status.atk - receptor_status.def self.damage *= attacker_status.elements_max_rate(attacker_status.element_set) self.damage /= 100 self.damage = 0 if self.damage < 0 self.critical = (rand(100) < 4) self.damage *= 2 if self.critical if self.is_a?(Game_Player) $game_actors[1].hp -= self.damage if $game_actors[1].hp <= 0 $scene = Scene_Gameover.new end elsif self.is_a?(Game_Event) self.hp -= self.damage if self.hp <= 0 self.animation_id = 88 $game_actors[1].gain_exp(enemy_status.exp, 1) if @die == 1 self.erase elsif @die == 2 key = [$game_map.map_id, self.id, "A"] $game_self_switches[key] = true end refresh end end end def recebe_skl(attacker) for key in Skill_Button.keys sklid = Skill_Button[key] 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]) self.damage = $data_skills[sklid].atk_f - receptor_status.def self.damage *= attacker_status.elements_max_rate(attacker_status.element_set) self.damage /= 100 self.damage = 0 if self.damage < 0 self.critical = (rand(100) < 4) self.damage *= 2 if self.critical attacker_status.mp -= $data_skills[sklid].mp_cost if self.is_a?(Game_Player) $game_actors[1].hp -= self.damage $scene = Scene_Gameover.new if $game_actors[1].hp <= 0 elsif self.is_a?(Game_Event) self.hp -= self.damage if self.hp <0> 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 def raio(dx, dy) ax = (@x - dx) ** 2 ay = (@y - dy) ** 2 return Math.sqrt(ax + ay) end end
#-------------------------------------------------------------- # Game Event #-------------------------------------------------------------- class Game_Event < Game_Character attr_reader :inimigo attr_reader :enemy_status alias vlad_abs_gevent_initialize initialize alias vlad_abs_gevent_update update alias vlad_abs_gevent_refresh refresh def initialize(map_id, event) @inimigo = false @automove = false vlad_abs_gevent_initialize(map_id, event) 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> 0 self.wait_ataque -= 1 elsif $game_player.x == new_x and $game_player.y == new_y $game_player.recebe_atk(self) $game_player.animation_id = self.enemy_atk_animation_id $game_player.jump(0,0) self.wait_ataque = 60 end end if @automove unless moving? self.follow_hero($game_player.x, $game_player.y) end end end def refresh vlad_abs_gevent_refresh @inimigo = false @enemy_id = check_comment("Enemy") @automove = true if check_com("Follow") == true @die = check_comment("Die") if @enemy_id > 0 @inimigo = true @enemy_status = Game_Enemy.new(@enemy_id, @enemy_id) self.hp = @enemy_status.maxhp self.mp = @enemy_status.maxmp end end def enemy_atk_animation_id if Enemy_atk_ani[@enemy_id] return (@enemy_status.nil? ? 0 : Enemy_atk_ani[@enemy_id]) else return (@enemy_status.nil? ? 0 : 1) end end def Enemy_atk_ani return Enemy_atk_ani end end
#-------------------------------------------------------------- # Game Player #-------------------------------------------------------------- class Game_Player 0 self.wait_ataque -= 1 end def refresh vlad_abs_gplayer_refresh self.hp = $game_actors[1].hp self.mp = $game_actors[1].mp end if Input.trigger?(Attack_Button) and self.wait_ataque <0>= $data_skills[Skill_Button[key]].mp_cost and self.wait_ataque <0>= @exp_list[@level+1] and @exp_list[@level+1] > 0 level_up end while @exp last_level show_level_up end vlad_abs_change_exp(exp,show) end def show_level_up $game_player.animation_id = LevelUp_Ani $game_actors[1].hp = $game_actors[1].maxhp $game_actors[1].mp = $game_actors[1].maxmp end def LevelUp_Ani return LevelUp_Ani 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 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 vlad_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, "Fallo", 1) bitmap.font.color.set(255, 245, 155) bitmap.draw_text(0, 12, 160, 36, "Fallo", 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, "Crítico", 1) bitmap.font.color.set(255, 245, 155) bitmap.draw_text(0, 5, 160, 20, "Crítico", 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 Scene_Skill alias vlad_abs_sskill_initialize initialize alias vlad_abs_sskill_update update def initialize(actor_index = 0, equip_index = 0) @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 vlad_abs_sskill_initialize end def update update_skill @memory.update if @memory.active return update_memory if @memory.active vlad_abs_sskill_update end def update_skill for key in Skill_Button.keys if Input.trigger?(key) Sound.play_decision Skill_Button[key] = @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 def Skill_Button return Skill_Button end end
#-------------------------------------------------------------- # Fin del ABS #--------------------------------------------------------------
_________________ http://world5.monstersgame.fr/?ac=vid&vid=324044164
|
|
| Sam 24 Mai - 18:56 (2008) |
|
 |
|
|
|