- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
[résolu]Demande de Modification de Script
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:
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
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
Jeu 18 Juin 2015 - 13:26
Je ne sais pas pourquoi le Script s'affiche en blanc . . .
Quel novice je suis . . .
Quel novice je suis . . .
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
Jeu 18 Juin 2015 - 20:48
Je vous en remercie !
Et Merci
Et Merci
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]Demande de Modification de Script
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.
Il existe aussi d'autres scripts plus "abouti" ou plutôt complet qui gère le A-rpg du style XAS par exemple.
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
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
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
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
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 ?
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 ?
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
Ven 19 Juin 2015 - 16:10
D'accord !
Je vous en remerci !
Si ceci marche vraiment je vous appellerais Dieu :p
Je vous en remerci !
Si ceci marche vraiment je vous appellerais Dieu :p
- EraMakerMembre
- Nombre de messages : 21
Age : 30
Distinction : aucune
Date d'inscription : 17/06/2015
Re: [résolu]Demande de Modification de Script
Ven 19 Juin 2015 - 16:26
ça marche !
Et Bien !
Je vous remercie 100 000 fois pour votre aide !!
Et Bien !
Je vous remercie 100 000 fois pour votre aide !!
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|