• Anmelden
  • »dany81191« ist der Autor dieses Themas

Motto: Boom Shak Ragga

  • Nachricht senden

1

Mittwoch, 17. Februar 2010, 13:47

Skills mit Tastendruck event

hey leute,
wie kann ich skills machen, die, bevor der skill ausgeführt wird, ein tastendruck event aufrufen, und falls die tastenkombination richtig eingegeben wurde, wird der skill ausgeführt, wenn nicht, abgebrochen??

hier das tastendruck script

Spoiler
#==============================================================================
# ** Quick Time Events V0.9
# QuickTimeEvents.rb by neko (10.09.2009)
#------------------------------------------------------------------------------
# http://www.rpg-studio.de/scriptdb/node/412
# Quick Time Events V0.9
#==============================================================================

#=================================================#
# Nekos famoses Quick Time Event Script
# >>>>>>>>> Version : zwischen 0 und 1
#---------------------------------------------------------------#
# (Es ist an Sinnlosigkeit und Simpelheit
# kaum zu überbieten, deshalbt wird bei
# Benutzung um keine Danksagung gebeten.
#=================================================#

class Scene_Geschick < Window_Base
def initialize(index, zeit)

# Dateinamen der Tasten; (Grafiken sollten 48x48 Pixel messen)
@Taste_UP = "TasteOben.png"
@Taste_DOWN = "TasteUnten.png"
@Taste_LEFT = "TasteLinks.png"
@Taste_RIGHT = "TasteRechts.png"
@Taste_OK = "TasteOK.png"
@Taste_ESC = "TasteEsc.png"
@Richtige_Eingabe = "TasteDone.png"
@Rich_Eing_Opacity = 255
# Dateinamen und Blending der Balken;...=["Name", (0=Norm, 1=Add, 2=Sub)]
# (Grafiken sollten 600x30 Pixel messen)
@Balken_Overlay = ["Geschick-ZeitFüllung.png", 0]
@Balken_BG = ["Geschick-Zeit.png", 0]
#---------------------------------------------------------------#

super(0, 310, 640, 80)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.z = 9998
@Maximale_Tasten = index
@Zeit = zeit
@Zeit_Intervall = 1.00000 / @Zeit / 3
end
def main
@spriteset = Spriteset_Map.new
$geschick = false
$tasten_need = []
@inx = 0
@show_x = 20
while @inx < @Maximale_Tasten
$tasten_need[@inx] = rand(6)
bitmap = RPG::Cache.picture(@Taste_UP) if $tasten_need[@inx] == 0
bitmap = RPG::Cache.picture(@Taste_DOWN) if $tasten_need[@inx] == 1
bitmap = RPG::Cache.picture(@Taste_LEFT) if $tasten_need[@inx] == 2
bitmap = RPG::Cache.picture(@Taste_RIGHT) if $tasten_need[@inx] == 3
bitmap = RPG::Cache.picture(@Taste_OK) if $tasten_need[@inx] == 4
bitmap = RPG::Cache.picture(@Taste_ESC) if $tasten_need[@inx] == 5
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48))
@inx += 1
@show_x += 48
end
@inx = 0
@show_x = 20
@addition_1 = Sprite.new
@addition_1.bitmap = RPG::Cache.picture(@Balken_BG[0])
@addition_1.blend_type = @Balken_BG[1]
@addition_1.x = 20
@addition_1.y = y + 10
@addition_1.z = 9997
@addition_2 = Sprite.new
@addition_2.bitmap = RPG::Cache.picture(@Balken_Overlay[0])
@addition_2.blend_type = @Balken_Overlay[1]
@addition_2.x = 20
@addition_2.y = y + 10
@addition_2.z = 9998
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@addition_1.dispose
@addition_2.dispose
@spriteset.dispose
self.contents.dispose
self.dispose
end
def update
if Input.trigger?(Input::C)
if $tasten_need[@inx] == 4
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
elsif Input.trigger?(Input::B)
if $tasten_need[@inx] == 5
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
elsif Input.trigger?(Input::UP)
if $tasten_need[@inx] == 0
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
elsif Input.trigger?(Input::DOWN)
if $tasten_need[@inx] == 1
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
elsif Input.trigger?(Input::LEFT)
if $tasten_need[@inx] == 2
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
elsif Input.trigger?(Input::RIGHT)
if $tasten_need[@inx] == 3
$game_system.se_play($data_system.cursor_se)
bitmap = RPG::Cache.picture(@Richtige_Eingabe)
self.contents.blt(@show_x, 0, bitmap, Rect.new(0, 0, 48, 48), @Rich_Eing_Opacity)
@inx += 1
@show_x += 48
else
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
end
if @inx >= @Maximale_Tasten
$game_system.se_play($data_system.decision_se)
$geschick = true
$scene = Scene_Map.new
return
end
@addition_1.update
@spriteset.update
@addition_2.zoom_x -= @Zeit_Intervall
@addition_2.update
if @addition_2.zoom_x <= 0
$game_system.se_play($data_system.buzzer_se)
$geschick = false
$scene = Scene_Map.new
end
end
end
zum Lesen den Text mit der Maus markieren
Spoiler
Bild
zum Lesen den Text mit der Maus markieren




Spoiler


DJ Laitier rocks the house!!

http://www.youtube.com/user/dany81191
zum Lesen den Text mit der Maus markieren

2

Freitag, 26. Februar 2010, 21:56

Das ist kompliziert in deinem Fall... du musst den entsprechenden Skill zwei mal anlegen. Einmal der Skill, der ein Common Event für den Tastendruck-Aufruf aufruft, und einmal den richtigen Skill der auch HP abzieht.

Erstmal einfach nur der Skill, der als Eigenschaft ein Common Event aufruft.
In das Common Event schreibst du rein (callscript, 3. Seite der eventbefehle ganz unten rechts):

Ruby Quellcode

1
2
$scene = Scene_Geschick.new(Einzugebende Tasten, Zeit)
@wait_count = 1


Danach machst du ein Conditional Branch und fragst auf "Script" ab (Seite 4 bei Conditional Branch):

Ruby Quellcode

1
$geschick


Wenn die Bedingung erfüllt ist, lässt du den RICHTIGEN, zweiten Skill ausführen auf den Gegner.
Wenn nicht gibst du ne Nachricht aus "Skill hat nicht funktioniert!" oder sowas.

Social Bookmarks