Heyho Comunity,
Ich habe da ein kleines Problemchen.
Ich versuche einen Skill mit der Fähigkeit, das sie Leben des Gegners in Heilung des Helden
umwandelt, mit Hilfe eines Scripts und den Common Events zu basteln.
Dieser ist
sehr wichtig für die
Vampirische Klasse in meinem Projekt.
Also z.B.: Cross Cut fügt dem Gegner, sagen wir mal 230 Schaden zu.
Nun soll die hälfte des zugefügten Schadens, also 115, als Heilung für den Helden gelten.
Aber der Held wird um den verursachten Schaden, also 230, geheilt.
Wie gesagt es soll nur die Hälfte bzw. ein Viertel sein.
Script:
# HP Absorbption Skills
# by RPG Advocate
# Sample code used for an 'absorb' common event:
#
# absorb = $game_temp.damage_hook * -1
# $scene.active_battler.damage = absorb
# $scene.active_battler.damage_pop=true
# $scene.active_battler.hp -= absorb
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
# This class handles temporary data that is not included with save data.
# Refer to "$game_temp" for the instance of this class.
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :damage_hook # damage hook
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias has_initialize initialize
def initialize
# Original call
has_initialize
# Initialize damage hook
@damage_hook = 50
end
end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# This class deals with battlers. It's used as a superclass for the Game_Actor
# and Game_Enemy classes.
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Apply Skill Effects
# user : the one using skills (battler)
# skill : skill
#--------------------------------------------------------------------------
alias has_skill_effect skill_effect
def skill_effect(user, skill, dilute = 1)
# Original call
effective = has_skill_effect(user, skill)
# Set hook to damage
if self.damage.is_a?(Numeric)
$game_temp.damage_hook += self.damage
end
# End Method
return effective
end
end
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :active_battler
#--------------------------------------------------------------------------
# * Frame Update (main phase step 1 : action preparation)
#--------------------------------------------------------------------------
alias has_up4s1 update_phase4_step1
def update_phase4_step1
# Reset damage hook
$game_temp.damage_hook = 0
# Original call
has_up4s1
end
end
zum Lesen den Text mit der Maus markieren
Common Event:
@>Script:absorb = $game_temp.damage_hook * -1
: :$scene.active_battler.damage = absorb
: :$scene.active_battler.damage_pop=true
: :$scene.active_battler.hp -= absorb
zum Lesen den Text mit der Maus markieren
Ich habe schon einige dinge getestet, um nicht unbedingt fragen zu müssen, Aber ich kenne mich mit
scripten kein bisschen aus
Kann mir wer da helfen?
Hoffe auf Schnelle Antworten.
Für die, die es auch interresiert:
Es liegt am Common Event.
So sieht es aus wenn es die Hälfte als Leben gutschreibt:
@>Script:absorb = $game_temp.damage_hook * -1
: :$scene.active_battler.damage=absorb/2
: :$scene.active_battler.damage_pop=true
: :$scene.active_battler.hp -= absorb
zum Lesen den Text mit der Maus markieren
Hinter dem ": :$scene.active_battler.damage=absorb" einfach ein /2 einfügen.
So dann sage ich mal Danke für die Hilfe hier...
Ich werde mich sicherlich nochmal melden.
Gruß
Red_Blood