VX-Tutorial - Die Levelabfrage bzw. das Level als Bedingung
Hallo und willkommen zu einem weiteren Tutorial von mir. Sicher gibt es dies irgendwo in kürzerer oder anderer Form schon, denn der VX existiert ja schon ein paar Jahre.
Wichtig bevor wir anfangen: stellt sicher das ihr DIESES SKRIPT (http://www.rpgvx.net/index.php?topic=3531.msg47330#msg47330) eingefügt und so eingesetzt habt wie es beschrieben ist. Dieser Gameinterpreter Fix fixed einige Variablenfunktionen des VX. So, nun legen wir aber los
Original-Code für Variablen-Fix
#==============================================================================
# Game_Interpreter (Variablen-Fix)
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
def command_122
value = 0
case @params[3] # Operand
when 0 # Constant
value = @params[4]
when 1 # Variable
value = $game_variables[@params[4]]
when 2 # Random
value = @params[4] + rand(@params[5] - @params[4] + 1)
when 3 # Item
value = $game_party.item_number($data_items[@params[4]])
when 4 # Actor
actor = $game_actors[@params[4]]
if actor != nil
case @params[5]
when 0 # Level
value = actor.level
when 1 # Experience
value = actor.exp
when 2 # HP
value = actor.hp
when 3 # MP
value = actor.mp
when 4 # Maximum HP
value = actor.maxhp
when 5 # Maximum MP
value = actor.maxmp
when 6 # Attack
value = actor.atk
when 7 # Defense
value = actor.def
when 8 # Spirit
value = actor.spi
when 9 # Agility
value = actor.agi
end
end
when 5 # Enemy
enemy = $game_troop.members[@params[4]]
if enemy != nil
case @params[5]
when 0 # HP
value = enemy.hp
when 1 # MP
value = enemy.mp
when 2 # Maximum HP
value = enemy.maxhp
when 3 # Maximum MP
value = enemy.maxmp
when 4 # Attack
value = enemy.atk
when 5 # Defense
value = enemy.def
when 6 # Spirit
value = enemy.spi
when 7 # Agility
value = enemy.agi
end
end
when 6 # Character
character = get_character(@params[4])
if character != nil
case @params[5]
when 0 # x-coordinate
value = character.x
when 1 # y-coordinate
value = character.y
when 2 # direction
value = character.direction
when 3 # screen x-coordinate
value = character.screen_x
when 4 # screen y-coordinate
value = character.screen_y
end
end
when 7 # Other
case @params[4]
when 0 # map ID
value = $game_map.map_id
when 1 # number of party members
value = $game_party.members.size
when 2 # gold
value = $game_party.gold
when 3 # steps
value = $game_party.steps
when 4 # play time
value = Graphics.frame_count / Graphics.frame_rate
when 5 # timer
value = $game_system.timer / Graphics.frame_rate
when 6 # save count
value = $game_system.save_count
end
end
for i in @params[0] .. @params[1] # Batch control
case @params[2] # Operation
when 0 # Set
$game_variables[i] = value
when 1 # Add
$game_variables[i] += value
when 2 # Sub
$game_variables[i] -= value
when 3 # Mul
$game_variables[i] *= value
when 4 # Div
$game_variables[i] /= value if value != 0
when 5 # Mod
$game_variables[i] %= value if value != 0
end
if $game_variables[i] > 99999999 # Maximum limit check
$game_variables[i] = 99999999
end
if $game_variables[i] < -99999999 # Minimum limit check
$game_variables[i] = -99999999
end
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
end
#==============================================================================
Worum geht es in diesem Tutorial?
Kurz gesagt, ihr wollt das euer Charakter sein Level als Bedingung für irgendetwas hat, dann benutz ihr die Variable "LEVEL" bezogen auf den ausgewählten Charakter.
Schritt 1
(http://s1.directupload.net/images/120308/temp/47f9e38u.png) (http://s1.directupload.net/file/d/2823/47f9e38u_png.htm)
Ihr seht ihr kommt nicht an der Wache vorbei, die den einzigen Weg zur Kiste blockiert. Dies auch standardmäßig anwendbar wenn ihr soetwas wie Gebietssperren einführt :O
Schritt 2
(http://s7.directupload.net/images/120308/temp/tc9pxge7.png) (http://s7.directupload.net/file/d/2823/tc9pxge7_png.htm)
Grund warum er euch nicht durchlässt ist euer Level. Ich habe hier zusätzlich zu der Eventabfrage des Levels auch noch in die Messagebox die Anzeige eures Aktuellen Levels eingefügt wie ihr am Skript in Schritt 4 ablesen könnt.
Schritt 3
(http://s7.directupload.net/images/120308/temp/kkohx52l.png) (http://s7.directupload.net/file/d/2823/kkohx52l_png.htm)
Die Wache weist euch somit an, noch mehr zu trainieren.
Schritt 4
(http://s7.directupload.net/images/120308/temp/t2jwd2a4.png) (http://s7.directupload.net/file/d/2823/t2jwd2a4_png.htm)
Nun aber zum Skript: Unter Punkt 1 stellt ihr die Variable wie auf Bild 4b ein. Ich hab jetzt den Ralph genommen, ihr könnt aber jeden charakter nehmen den ihr wollt :)
Punkt 2 setzt den Befehl an dieses Event das es euch nicht durchlässt es sei denn Variable 4 "Leveltest" (in der der aktuelle Wert eures Levels gespeichert ist) is 5 oder höher.
Punkt 3: Gegebenenfalls ihr seid schon level 5 oder höher, dürft ihr passieren und das Event bzw. der NPC macht den weg für euch frei.
Punkt 4 könnt ihr wirklich handhaben wie ihr wollt, ihr könnt auch nichts eintragen! Denn ihr hab die "Bedingung" nicht erfüllt und kommt somit nicht durch.
Schritt 4b
(http://s14.directupload.net/images/120308/temp/yfmx9cn6.png) (http://s14.directupload.net/file/d/2823/yfmx9cn6_png.htm)
So hier nochmal das Bild der Variable zur veranschaulichung! Sollte eigentlich klar :)
Schritt 5
(http://s1.directupload.net/images/120308/temp/mbnoja9e.png) (http://s1.directupload.net/file/d/2823/mbnoja9e_png.htm)
Hier habe ich mir einen kleinen Levelpusch-Kristall gebastelt. Ich hab ihm den Befehl gegeben, dass sobald ich ihn anspreche, er das Level meiner Party um 5 erhöht. Also da wir standardmäßig immer Level 1 sind, bin ich nun Level 6.
Schritt 6
(http://s1.directupload.net/images/120308/temp/bc5vguml.png) (http://s1.directupload.net/file/d/2823/bc5vguml_png.htm)
Gehen wir nun erneut zu der Wache, lässt sie uns passieren da wir jetzt ja Level 5+ sind und die Bedingung erfüllen.
Schritt 7
(http://s7.directupload.net/images/120308/temp/kkd7xn3h.png) (http://s7.directupload.net/file/d/2823/kkd7xn3h_png.htm)
Tja und und nun können wir die Kiste plündern *____*
Ich hoff die Anfänger unter euch konnten ein bisschen was lernen und verstehen nun die Variablenfunktion ein wenig mehr.
Bis zum nächsten Tutorial.
Lg Kvote