Logiciel pour créer un A-RPG ( zelda...)

Résolu
james01472 Messages postés 302 Date d'inscription   Statut Membre Dernière intervention   -  
 Shin26omega -
Bonjour,
Je cherche depuis au moins 2 semaine un logiciel permettent de créer un A-RPG, un jeu style Zelda GameBoy Advance
( un peu comme ca : http://www.consoleclassix.com/... )

J'ai déja créer un RPG avec rpg maker vx, mais je ne trouve pas de scripts poue le rendre en a-rpg...
voila

En éspérent q'une bonne âme puisse m'aider !! =)
Configuration: Windows XP
Internet Explorer 7.0

8 réponses

  1. julienRPG
     
    J'ai le scripte que tu cherche pour rpg maker vx
    le voila:
    il est en 2 partie a mettre diferrament
    partie1:
    #=============================================================================
    # 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

    partie 2:
    #===================================
    # 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
    $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
    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
    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
    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 update
    vlad_abs_gevent_update
    if @inimigo
    new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
    new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
    if self.wait_ataque > 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 < Game_Character
    alias vlad_abs_gplayer_update update
    alias vlad_abs_gplayer_refresh refresh
    def update
    vlad_abs_gplayer_update
    if self.wait_ataque > 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
    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.recebe_atk(self)
    event.animation_id = self.player_atk_animation_id
    event.jump(0,0)
    self.wait_ataque = 30
    break
    end
    end
    end
    end
    for key in Skill_Button.keys
    if Input.trigger?(key) and Skill_Button[key] != nil and Skill_Button[key] != 0 and $game_actors[1].mp >= $data_skills[Skill_Button[key]].mp_cost and self.wait_ataque <= 0
    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.recebe_skl(self)
    event.animation_id = self.player_skl_animation_id
    event.jump(0,0)
    self.wait_ataque = 60
    break
    end
    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
    for key in Skill_Button.keys
    sklid = Skill_Button[key]
    return ($game_actors[1].nil? ? 0 : $data_skills[sklid].animation_id)
    end
    end
    def Attack_Button
    return Attack_Button
    end
    def Skill_Button
    return Skill_Button
    end
    end
    end

    #--------------------------------------------------------------
    # Game Actor
    #--------------------------------------------------------------
    class Game_Actor
    alias vlad_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
    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 < Sprite_Base
    alias vlad_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
    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
    #--------------------------------------------------------------
    16
    1. El lagado
       
      Peux tu m'expliquer s'il te plaît comment on l'utilise?
      Merci d'avance

      El lagado
      0
    2. linkforlife
       
      Bonjour,
      Où inscrit-on les scripts exactement?

      Merci d'avance,
      linkforlife
      0
    3. mmmm
       
      pour utiliser le scripte
      cliquer double fois sur l'évennement puis ajouter une commentaire
      "flowing"
      "enmis ID"
      0
    4. Fuizziy
       
      Pff pour les scripts on va dans editeur de script dans la barre d outils du logiciel, l icone est une petite feuille de papier avec un crayon....
      Une fenetre s ouvre... Avec la molette tu vas tout en bas de celle ci et tu cherche l onglet "main"
      A partir de la tu clic DROIT dessus, inserer, et tu copie colle le script...
      0
  2. Quen54
     
    Je viens de trouver un logiciel rien que pour fait des a-rpg => ZQuest et Zelda Classic
    Lien: http://guelnika.alexzone.net/?cell=telechargement&dir=prog
    7
  3. Aide-Rpg
     
    Appuyer "F11", une fenetre souvrira nommé "Editeur de script".
    A gauche vous avez la liste des scripts et a droite le scripts.
    Pour ajouter un script
    1: Trouvez le script nommé "Main"
    2: Cliquer avec le button froite de la souris dessus main
    3: Cliquer "Nouveau Script"
    4: Nommer votre nouveau sript
    5: Copier coller le script desiré.
    (ps: faite attention de ne pas copier coller les partie Code1 Code2, il ne font que vous dire les script 1 et 2)

    Pour plus d'information, aide ou meme scripts visitez: Publicité supprimée Modération CCM
    et inscrivez vous sur le forum!

    Bonne journer!
    3
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Bluebird
     
    Hum rpg maker n'est pas fameux pour faire du "Zelda"
    Je te conseil graal qui permet de faire des "zelda" jouable sur internet a plusieur
    voici l'adresse,c'est gratuit et tout a fait legal:
    https://graal-maker.xooit.com/index.php
    2
    1. Phantom Yunka
       
      Ouais mais pour ouvrir les ports c'est galère en plus c'est Online...
      Menfin avec la commande singleplayer dans chaque map on peut en faire un jeu offline mais bon...
      Et pis si vous allez sur Graal n'hésitez pas a aller sur le serveur de Bluebird : Lumina.
      0
    2. Bluebird
       
      Merci yunka lol,un petit coup de pouce est toujour apprecier.
      0
    3. Shin26omega
       
      Pour info, le serveur Lumina n'est plus maintenu. Il se concentre sur le projet Kingdom of Shadow. Mais le forum est toujours opérationnel, et ouvrir les ports est moins galère que ce que j'ai pu dire à l'époque, étant enfant.
      0
  6. metalesse
     
    Bonjour a tous,
    Le lien donné par Quen54 est mort, Si quelqu'un pouvait le remettre, ce serais sympa :)
    De plus, Le script de JulienRPG est pour RPG maker VX , mais est-ce qu'il marche aussi sur RPGMaker XP ?

    Merci d'avance.

    Bonne journée
    2
  7. BenjiRPG49360
     
    avec le script qui a été posté quasiment tout en haut il suffit d'aller à
    Créer un évent
    Mettre le personnage choisi en character

    Puis faire

    Insérer un commentaire :
    EnemyX
    Die2
    FollowY

    Où X= Numéro de l'ennemi dans la base de donnée (par défaut : Slime=1)
    Et Y= Distance à laquelle le monstre peut vous voir (Ex: si vous voulez qu'il vous voit à 3 cases mettez Follow3)

    Bye
    2
    1. mirki
       
      Je viens juste de voir et à 2 minutes près trop cool
      Merci Benjirpg49360
      0
  8. hyden
     
    C'est super mais comment on fait les skills ?
    0