AddOn Projectile (aRPG en semi-event)
Voila le premier AddOn du script présenté içi :
http://forum.rpgcreative.net/f28-rmxp-arpg-en-semi-event-t17299.html#195582Il vous faut donc l'avoir installé avant d'installer ce script çi.
Ce script permet de créer des events "projectiles" qui feront des dégâts physiques ou magiques sur les monstres&ennemis.
Voir après le script pour les explications.
Script : AddOn : Projectile- Code: Tout sélectionner
#====================================================================
# ■ AddOn : Arc
# aRPG par Darkleo
#====================================================================
class Game_Character
# ID du terrain traversable par les projectiles (ex : eau, rocher etc...)
ID_TERRAIN = 7
attr_writer :direction
#--------------------------------------------------------------------------
def project_special
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
return true unless $game_map.valid?(new_x, new_y)
for event in $game_map.events.values
if [event.x, event.y] == [@x, @y]
return true unless event.through or event.character_name.empty?
end
end
return true if [$game_player.x, $game_player.y] == [@x, @y]
!$game_map.passable?(@x, @y, @direction) and terrain_tag != ID_TERRAIN
end
#--------------------------------------------------------------------------
def projectile(id)
new_id = 1
while $game_map.events.has_key?(new_id)
new_id += 1
end
$game_map.events[new_id] =
Game_Event.new($game_map.id, RPG::Event.new(@x, @y))
$game_map.events[new_id].same_as(id)
$game_map.events[new_id].id = new_id
$game_map.events[new_id].direction = @direction
$scene.update_chara_sprite
end
#--------------------------------------------------------------------------
end
#====================================================================
class Scene_Map
# Afficher les events nouvellement crees
def update_chara_sprite
@spriteset.update_chara_sprite
end
end
class Spriteset_Map
def update_chara_sprite
for sprite in @character_sprites
sprite.dispose
end
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
end
end
#====================================================================
Explications :Pour utiliser un arc qui lancera des flèches, il vous faut paramétrer l'attaque du héros.
Ca se passe dans le script "aRPG Game_Player". la syntaxe est la suivante :
- Code: Tout sélectionner
when 5 # 5 est l'ID de l'arme qui fait office d'arc
@character_name_plus = "_truc" # Ici mettez ce qui se rajoutera au nom du charas du héros.
projectile(2) # Chargera l'event dont l'ID est 2
Dans l'event voulu de la map 1, paramétrez comme ceci :
Paramètres :- Code: Tout sélectionner
Mode de déplacement : "Ne bouge pas"
Condition de déclenchement : "Processus parallèle"
NOTA BENE: Il faudra penser à activer le mode fantôme !Commandes- Code: Tout sélectionner
Déplacer un évènement > Cet évènement > Un pas en avant
Condition : Si Script "$game_map.events[@event_id].project_special"
<> Déplacer un évènement > Cet évènement > hit_p(50, '')
(50 sont les dégats qui seront infligés)
<> Effacer cet évènement
Fin
Pour permettre aux flèches de passer par exemple aux dessus d'obstacles (eau, troncs, etc...) paramétrez dans "Gestion des chipsets" les éléments, en ID de terrain 7.
7 peut être modifié ligne 7 de ce script.
Pour des exemples plus concrets, la démo du système complet contient deux projectiles, une flèche et une boule de feu.
aRPG.exe - 0.33MBEDIT: depuis la dernière correction, la démo n'est plus à jour.
Si vous voulez tout de même la télécharger, il faudra changer le premier script, activer le mode fantôme des deux events projectiles map 1, et changer la commande script.Enjoy !
_________________

Projets