Partagez
Aller en bas
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 13:24
Combat ARPG


Auteur : Arttroy Oniromancie

Version du script : Pas de Version Différente

Principe du script : Combat en Temps Réel sur Map (ARPG)

Instructions : Bonjour ! Comment allez vous ?! Moi Bien !
J'aimerai demander au personne qui savent Scripter de me faire une petite modification s'ils ont le temps bien sur !
Ce Script vient du Site Oniromancie http://www.rpg-maker.fr/tutoriels-487-a-rpg-basique-pour-rmvx-ace.html
Il marche très bien mais ce Script ne gère pas le Pex , Gold et Item obtenu sur un monstre ce qui est dommage . . .
Voyant que sur ce site , plein de personnes l'on relancer pendant 2 années sans que personnes ne se bouge sur
ce site , je fais appel a vous qui est un site rapide et actif Enfin voila ma demande si ceci est faisable !

Première Chose : Si cette personne pourrait Scripter pour que celui ci gère l'exp (Gold et Item pas obligé suivant son temps libre)

Deuxième Chose : A la mort du personnage ceci fait juste un " effacer en fond " suivi d'un Game Over , du coup je ne peux pas personnalier la mort de mon personnage . . . Hors en fouillant le Script j'avais vu qu'a la ligne 199 de ce Script il me semble que le Script fait appel à (Scene_GameOver) un truc du genre , si quelqu'un pourrait faire en sorte que ceci n'active pas le Scene_GameOver mais qui pourrait infliger l'Etat "Mort" dans la base de données pour que le personnage concerné soit infligé de l'Etat "Mort" pour qu'ensuite en Evenement Commun puisse faire une Condition "Si le Heros Obtient le Statues "Mort" " que je puisse par evement créer une animation avant que le Game Over ne s'affiche !

Voila ! C'étais ceci ! j'espere que je ne demande pas la Lune !
Merci d'avoir pris le temps de lire ma demande ceci me fait plaisir !
J'espere que quelqu'un pourrait m'aider et en faire aussi profiter à tout le monde !
PS : Si vous voulez utiliser ce Script il faut aller sur le lien ci dessus car il y'a quand même du travail à faire !
Une fois le travail fait , RPG vous trouvera environ 3 erreurs ! Celle du chiffredegat9n et celle des < i >
Renommer juste l'image chiffredegat9n par chiffredegat9 sans le n a la fin et < i > par [i] au 3 < i > du Script !

Si en cliquant sur Spoiler pour le Script vous ne voyez pas le Script surligner le , il sera la !

Screens :
Spoiler:
[résolu]Demande de Modification de Script Sanstitre40g

Script :
Code:
module ABS_Config
 Default_Animation = 1
 Opacity_Burn = 10
 Enemy_Recover = 60
 #--------------------------------------------------------------------------
 # Ici vous pourrez modifier la touche action par défaut c'est X
 # (touche A du clavier)
 #--------------------------------------------------------------------------
 Attack_Key = :X
 Player_Recover = 40
end

class Game_Map
 attr_accessor :enemies
 attr_accessor :damage_sprites
 alias abs_setup setup
 def setup(map_id)
   @enemies.nil? ? @enemies = [] : enemies.clear
   abs_setup(map_id)
 end
end

class ABS_Enemy
 include ABS_Config
 attr_accessor :hp
 attr_accessor :attack
 attr_accessor :defense
 attr_reader :name
 attr_reader :animation
 def initialize(id)
   enemy = Game_Enemy.new(0,id)
   @name = enemy.name
   note = enemy.enemy.note
   if note.include?("Animation=")
     aid = note.sub("Animation=","")
     @animation = aid.to_i  
   else
     @animation = Default_Animation
   end
   @hp = enemy.mhp
   @attack = enemy.atk
   @defense = enemy.def
   end
 end
 
class Game_Event < Game_Character
 attr_reader :enemy
 alias abs_setup_page_settings setup_page_settings
 alias abs_initialize initialize
 alias abs_update update
 alias abs_start start
 def initialize(map_id, event)
   @enemy = nil
   @recover =0
   abs_initialize(map_id, event)
 end
 def setup_page_settings
   abs_setup_page_settings
   check_enemy
 end
 def check_enemy
   unless @enemy.nil?
     @enemy = nil
     $game_map.enemies.delete(self) if $game_map.enemies.include?(self)
   end
   return if @list.nil?
   for command in @list
     next unless command.code == 108 or command.code == 408
     if command.parameters[0].include?("cmd:enemy=")
       id = command.parameters[0].sub("cmd:enemy=","")
       @enemy = ABS_Enemy.new(id.to_i)
       @trigger = 2
       $game_map.enemies.push(self)
     end
   end
 end
 def damage_enemy(value)
   jump(0,0)
   value -= @enemy.defense
   value = 0 if value < 0
   $game_map.damage_sprites.push(Damage_Sprite.new(self,value))
   @enemy.hp -= value
   if @enemy.hp <= 0
     $game_map.enemies.delete(self)
     RPG::SE.new("Collapse1",80).play
   end
 end
 def update
   if @enemy != nil
   @recover -= 1 if @recover > 0
   update_kill if @enemy.hp <= 0
   end
   abs_update
 end
 def update_kill
   if @opacity > 0
    @opacity-= ABS_Config::Opacity_Burn
   else
    @character_name = ""
    @opacity = 255
    @priority_type = 0
    @trigger = 0
    @enemy = nil
   end
 end
 def start
   @enemy.nil? ? abs_start : attack
 end
 def attack
   return if @enemy.hp <= 0 or @recover > 0
   @recover = ABS_Config::Enemy_Recover
   $game_player.animation_id = @enemy.animation
   $game_player.damage_hero(@enemy.attack)
 end
end

class Game_Player < Game_Character
 alias abs_initialize initialize
 alias abs_update update
 def initialize
   @wait = 0
   @recover = 0
   @kill_player = false
   abs_initialize
 end
 def update
   @recover -= 1 if @recover > 0
   update_attack if @recover == 0 and Input.trigger?(ABS_Config::Attack_Key)
   update_kill if @kill_player
   update_wait_time
   abs_update
 end
 def update_attack
   return if @kill_player
   for enemy in $game_map.enemies
     ax = @x - enemy.x
     ay = @y - enemy.y
     case @direction
     when 2
       attack_enemy(enemy) if ax == 0 and ay == -1
     when 4
       attack_enemy(enemy) if ay == 0 and ax == 1
     when 6
       attack_enemy(enemy) if ay == 0 and ax == -1
     when 8
       attack_enemy(enemy) if ax == 0 and ay == 1
     end
   end
   @can_move = true
   @wait = 25
 #--------------------------------------------------------------------------
 # Pour l'animation du héros, ça se passe ici, modifier la valeur de :
 #  @animation_id =
 # Le chiffre doit correspondre à celui de l'animation dans votre base de
 # données
 # Positions :
 #  when 2 -> bas
 #  when 4 -> gauche
 #  when 6 -> droite
 #  when 8 -> haut
 #--------------------------------------------------------------------------

   case @direction
     when 2
       @animation_id = 5
     when 4
       @animation_id = 2
     when 6
       @animation_id = 3
     when 8
       @animation_id = 4
   end
 end
 def attack_enemy(event)
   hero = $game_party.members[0]
   event.damage_enemy(hero.atk)
   event.animation_id = hero.weapons[0].animation_id
   @recover = ABS_Config::Player_Recover
 end
 def damage_hero(value)
   jump(0,0)
   return if @kill_player
   hero = $game_party.members[0]
   value -= hero.def
   value = 0 if value < 0
   $game_map.damage_sprites.push(Damage_Sprite.new(self,value))
   if value > hero.hp
     hero.hp = 1
     @kill_player = true
     RPG::SE.new("Collapse1",80).play
   else
    hero.hp -= value
   end
 end      
 def update_kill
   if @opacity > 0
    @opacity-= ABS_Config::Opacity_Burn
   else
     SceneManager.goto(Scene_Gameover)
   end
 end
 def update_wait_time
   if @wait > 0
     @wait -= 1
   else
     @can_move = false
   end
 end
end
class Spriteset_Map
 alias abs_initialize initialize
 alias abs_update update
 alias abs_dispose dispose
 def initialize
 $game_map.damage_sprites = []
 abs_initialize
 end
 def update
   abs_update
   trash = []
   for sprite in $game_map.damage_sprites
     sprite.update
     trash.push(sprite) if sprite.disposed?
   end
   for item in trash
     $game_map.damage_sprites.delete(item)
   end
   trash.clear
 end
 def dispose
   abs_dispose
   for sprite in $game_map.damage_sprites
     sprite.bitmap.dispose
     sprite.dispose
   end
   $game_map.damage_sprites.clear
 end
end
 #--------------------------------------------------------------------------
 # Les dégâts sont limités d'origine à 999HP si vous voulez changer cela,
 # modifiez ces lignes
 #     chiffre = [value%1000/100,value%100/10,value%10]
 #     for i in [0,1,2]
 #--------------------------------------------------------------------------

class Damage_Sprite < Sprite
 def initialize(target,value)
   super(nil)
   @target = target
   chiffre = [value%1000/100,value%100/10,value%10]
   for i in [0,1,2]
     if chiffre<i> == 0
       chiffre<i> = nil
     else
       break
     end
   end
   chiffre.compact!
   if chiffre.size == 0
     chiffre = [0]
   end
 #--------------------------------------------------------------------------
 # dans cette partie si vous utilisez d'autres images pour l'affichage des dégâts
 # respectez des dimensions de 19 X 24 ou modifiez les valeurs égales à celles-ci
 #--------------------------------------------------------------------------

   self.bitmap = Bitmap.new(19*chiffre.size,20)
   for i in 0...chiffre.size
     src_bitmap = Cache.picture("chiffredegat" + chiffre<i>.to_s)
     src_rect = Rect.new(0,0,19,24)
     self.bitmap.blt(19*i, 0, src_bitmap, src_rect)
   end
 #--------------------------------------------------------------------------
 # Cette partie concerne l'affichage des dégâts modifiez la valeur de
 # @target.screen_x ou @target.screen_y pour modifier la position de l'affichage
 #--------------------------------------------------------------------------
   if value >= 100 #centaines
     self.ox = 60
     self.x = @target.screen_x + 20
     self.y = @target.screen_y - 70
   elsif value >= 10 #dizaines
     self.ox = 50
     self.x = @target.screen_x + 40
     self.y = @target.screen_y - 70
   else #unités
     self.ox = 45
     self.x = @target.screen_x + 60
     self.y = @target.screen_y - 70
   end
   self.z = 999
   @timer = 20
 end
 def update
   self.x = @target.screen_x + 40
   self.y = @target.screen_y - 70
   if @timer > 0
     @timer -= 1
     self.zoom_x += 0.01
     self.zoom_y += 0.01
   else
     self.opacity > 0 ? self.opacity -= 15 : dispose
   end
 end
 def dispose
   self.bitmap.dispose
   super
 end
end
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 13:26
Je ne sais pas pourquoi le Script s'affiche en blanc . . .
Quel novice je suis . . .
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Résolu Re: [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 20:13
J'ai édité ton post pour l'affichage du script (à mettre entre balises code).
Bon courage!
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 20:48
Je vous en remercie !

Et Merci Smile
Spytje
Spytje
Administrateur

Nombre de messages : 5933
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Résolu Re: [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 22:52
Je vais déplacer ton post dans les demandes d'aide car ici c'est pour présenter un script fini, tu auras certainement plus de chance de recevoir réponse à ta question.

Il existe aussi d'autres scripts plus "abouti" ou plutôt complet qui gère le A-rpg du style XAS par exemple.

_________________
[résolu]Demande de Modification de Script 911

LE PROJET SUR FACEBOOK

N'hésitez pas à suivre la page  [résolu]Demande de Modification de Script 344805
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Résolu Re: [résolu]Demande de Modification de Script

le Jeu 18 Juin 2015 - 23:27
J'avais 5 minutes, et j'ai retrouvé ceci.

Petite vidéo de démo :



EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 1:47
D'accord Je vous remerci !

Oui j'avais déja vu cette video mais j'ai jamais réussi à le prendre . . .
Meme quand je le télécharge , je ne peux pas prendre de Script ou de Fichier
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 12:37
Ce que tu télécharges est une démo, tu dois pouvoir l'ouvrir avec RMVX Ace.
Tu auras peut-être un fichier à remplacer pour pouvoir lancer le projet (de mon temps je me souviens qu'entre versions de RM y'avait un conflit à l'ouverture de projet), mais si tu étais plus précis, je serais plus à même de t'aider.

Quand tu télécharges et que tu ouvres l'archive (si c'est bien une archive), ça te donne quoi? Tu as décompressé le contenu de l'archive?
T'as un outil du genre WinRar ou 7Zip?
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 13:41
Alors en faite je vois bien qu'il y'a une Démo et un Projet oui
Quand j'extrais le Projet il me marque un truc du genre " Impossible de lire les données du Héros "
j'Utilise WinRar

Quel fichier dois je remplacer ou modifier ?
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 13:53
Extrait ton dossier de démo dans un dossier où tu le souhaites.
Crées un nouveau projet dans RMVX Ace.
Fermes RPG Maker.

Copies les dossiers "Audio", "Data", "Graphics", "Movies" et "System" du projet de démo, et colles les dans le dossier du nouveau projet créé. (Ca ne comprend pas les fichiers "Game.ini", "Game.rvproj2" et "Game.exe", ceux là, tu les laisses tranquilles)

Ouvre le nouveau projet préalablement créé.

Ca devrait fonctionner.

(Y'a plus court, mais c'est cool comme ça aussi)
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 16:10
D'accord !
Je vous en remerci !
Si ceci marche vraiment je vous appellerais Dieu :p
EraMaker
EraMaker
Membre

Nombre de messages : 21
Age : 25
Distinction : aucune
Date d'inscription : 17/06/2015

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 16:26
ça marche !
Et Bien !
Je vous remercie 100 000 fois pour votre aide !!
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Résolu Re: [résolu]Demande de Modification de Script

le Ven 19 Juin 2015 - 17:32
Y'a pas de quoi, c'est avec plaisir!
Plutôt que de m'appeler Dieu, commences par me tutoyer, ça me suffira amplement! Wink

Je déplace en résolu, alors!
Bonne continuation Smile

P.S : Attention aux double-posts x)
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum