collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: (Tech) Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?  (Gelesen 2723 mal)

Offline Michel

  • Event-Jongleur
  • **
  • Beiträge: 57
Liebe VxRowdys!

Ich bin auf der Suche nach einem Script,
mit dem man eine Waffe nur ab einem
bestimmten Parameter benutzen kann...

so wie bei Gothic zum Beispiel...

das heißt: Breitschwert ab Stärke von 35
oder: Feuerball ab Mana von 20
usw...

gibt es so ein oder ein ähnliches Script?

lg michel

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

Offline Colonios

  • Maker Nerd
  • VX-Kenner
  • ****
  • Beiträge: 596
  • Events <3
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #1 am: Juli 08, 2009, 00:35:44 »
Das kannst du gut mit nem Common Event Lösen, dass auf Parallel im Spiel läuft.

Du speicherst die Mana oder was auch immer immer in einer Variable. Diese Variable gibt an, welche waffen man tragen kann. Im parallel Event checkst du dann immer, ob die Waffe ausgerüstet wird/ist. Wenn sie ausgerüstet wird, und der Spieler nicht genügend Punkte hat, dann lässt du ne message erscheien "nicht genügend Punkte" und nimmst dem Actor die ausrüstung wieder weg.

Wenn die richtige Punktezahl erreicht ist, dann passiert nicht und der Spieler kann mit der Waffe rumlaufen.


MfG

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

Offline Michel

  • Event-Jongleur
  • **
  • Beiträge: 57
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #2 am: Juli 08, 2009, 02:00:07 »
Gute Idee.. und ich habs auch versucht.. nur..

1. Ich hab schon fünf andere Common-Event-Parallel-Prozesse laufen,
   und mein PC ist sieben Jahre alt..

2. Dein Event-Vorschlag erlaubt es nicht, die Waffe in das Inventar aufzunehmen, wenn die entsprechende Variable zu gering ist. Das würde aber Sinn machen (wenn man den Gegenstand nicht benützen kann, könnte man ihn verkaufen).

Das ideale Script sieht so aus, dass man jeden Gegenstand ins Inventar aufnehmen kann. ERST wenn man im Menu den Charakter mit dem Gegenstand ausrüsten will, DANN kommt die entsprechende Meldung zB "35 Stärke benötigt"
oder der Gegenstand ist einfach grau markiert oder so etwas in der Art..

In Rollenspielen ist es das non-plus-ultra
Es wäre wirklich super, wenn es diese Sache auch für den VX gibt..

Lg michel

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

Offline Colonios

  • Maker Nerd
  • VX-Kenner
  • ****
  • Beiträge: 596
  • Events <3
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #3 am: Juli 08, 2009, 12:06:43 »
Zu 1.: Ok, dass ist natürlich unvorteilhaft...

Zu 2.: Du benutzt ja nicht "Change Weapons" sondern "Change Equipment" ;) Das ist untenrechts auf der ersten Seite. Und dein Conditional Branch ist auf der zweiten Seite und heist auch "if Weapon is Equiptet...". Damit verhinderst du nur, dass der Hero die Waffe benutzen kann, nicht, dass er sie im Inventory haben kann, ergo kann man sie verkaufen ;)

MfG

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

MelekTaus

  • Gast
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #4 am: Juli 08, 2009, 12:23:14 »
Meintest du so etwas in die Richtung?

#==============================================================================
# MelekTaus' MinReq
# Version: ???
#------------------------------------------------------------------------------
# Anleitung
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Um die erforderliche Stärke einer Waffe/Rüstung festzulegen trage folgendes
# in den Notes ein: <stärke X>   (X => erforderliche Stärke)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Um die Stärke eines Characters festzulegen oder abzurufen verwende folgendes:
# actor(X).stärke = Y  --> Die Stärke von Actor X (ID aus der Datenbank) => Y
# member(X).stärke = Y --> Die Stärke von Member X (Index aus der Gruppe) => Y
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  attr_accessor :stärke
  #--------------------------------------------------------------------------
  alias melektaus_minreq_game_player_initialize initialize
  def initialize
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    melektaus_minreq_game_player_initialize
    @stärke = 0
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Game_Interpreter
  #--------------------------------------------------------------------------
  def actor(id)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return $game_actors[id]
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
  def member(index)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return $game_party.members[index]
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Window_Warning < Window_Base
  #--------------------------------------------------------------------------
  def initialize(text)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    super(72, 172, 400, 72)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    self.contents.draw_text(0, 0, 368, 20, text, 1)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    text = "(Drücke eine Taste um fortzufahren...)"
    self.contents.font.size -= 4
    self.contents.draw_text(0, 20, 368, 16, text, 1)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    begin
      Graphics.update
      Input.update
    end until Input.trigger?(Input::C) or Input.trigger?(Input::B)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    dispose
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Scene_Equip < Scene_Base
  #--------------------------------------------------------------------------
  def get_stärke(item)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return 0 if item == nil
    array = item.note.split("<stärke ")
    return 0 if array.size < 2
    return array[1].split(" >")[0].to_i
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
  def update_item_selection
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
    elsif Input.trigger?(Input::C)
      stärke = get_stärke(@item_window.item)
      actor_stärke = @actor.stärke
      if stärke > actor_stärke
        Sound.play_buzzer
        text = "Erforderliche Stärke: " + stärke.to_s
        text += " (Zurzeit: " + actor_stärke.to_s + ")"
        Window_Warning.new(text)
        return
      end
      Sound.play_equip
      @actor.change_equip(@equip_window.index, @item_window.item)
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
      @equip_window.refresh
      for item_window in @item_windows
        item_window.refresh
      end
    end
    #--------------------------------------------------------------------------
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
(Über Main im Script-Editor reinkopieren)

Wenn das grob hinhaut, dann kann ich das natürlich noch erweitern/ausbessern^^

MfG, MelekTaus

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

Offline Michel

  • Event-Jongleur
  • **
  • Beiträge: 57
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #5 am: Juli 08, 2009, 13:14:10 »
WOW... das Script funktioniert einwandfrei !!

Gibt's nichts daran auszusetzen!

Aber könntest du das gleiche mit... geschicklichkeit machen?

Und noch eine Frage: Würde das Script funktionieren,
wenn eine Waffe Stärke UND Geschick erfordern würde?

Lg michel

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

MelekTaus

  • Gast
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #6 am: Juli 08, 2009, 13:38:37 »
Gesagt - Getan ;)
#==============================================================================
# MelekTaus' MinReq
# Version: ???
#------------------------------------------------------------------------------
# Anleitung
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Um die erforderliche Stärke einer Waffe/Rüstung festzulegen trage folgendes
# in den Notes ein: <stärke X>   (X => erforderliche Stärke)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Um die Stärke eines Characters festzulegen oder abzurufen verwende folgendes:
# actor(X).stärke = Y  --> Die Stärke von Actor X (ID aus der Datenbank) => Y
# member(X).stärke = Y --> Die Stärke von Member X (Index aus der Gruppe) => Y
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Atrribut:geschicklichkeit wurde hinzugefügt
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  attr_accessor :stärke
  attr_accessor :geschicklichkeit
  #--------------------------------------------------------------------------
  alias melektaus_minreq_game_player_initialize initialize
  def initialize
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    melektaus_minreq_game_player_initialize
    @stärke = 0
    @geschicklichkeit = 0
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Game_Interpreter
  #--------------------------------------------------------------------------
  def actor(id)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return $game_actors[id]
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
  def member(index)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return $game_party.members[index]
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Window_Warning < Window_Base
  #--------------------------------------------------------------------------
  def initialize(text = ["", ""])
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    height = 72
    height += 20 if text[0] != "" and text[1] != ""
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    super(72, 172, 460, height)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    y = -20
    self.contents.draw_text(0, y += 20, 428, 20, text[0], 1) if text[0] != ""
    self.contents.draw_text(0, y += 20, 428, 20, text[1], 1) if text[1] != ""
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    text = "(Drücke eine Taste um fortzufahren...)"
    self.contents.font.size -= 4
    self.contents.draw_text(0, y += 20, 428, 16, text, 1)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    begin
      Graphics.update
      Input.update
    end until Input.trigger?(Input::C) or Input.trigger?(Input::B)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    dispose
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
end
#==============================================================================
class Scene_Equip < Scene_Base
  #--------------------------------------------------------------------------
  def get_stärke(item)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return 0 if item == nil
    array = item.note.split("<stärke ")
    return 0 if array.size < 2
    return array[1].split(" >")[0].to_i
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
  def get_geschicklichkeit(item)
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return 0 if item == nil
    array = item.note.split("<geschicklichkeit ")
    return 0 if array.size < 2
    return array[1].split(" >")[0].to_i
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  end
  #--------------------------------------------------------------------------
  def update_item_selection
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
    elsif Input.trigger?(Input::C)
      text = ["", ""]
      stärke = get_stärke(@item_window.item)
      actor_stärke = @actor.stärke
      if stärke > actor_stärke
        text[0] += "Erforderliche Stärke: " + stärke.to_s
        text[0] += " (Zurzeit: " + actor_stärke.to_s + ")"
      end
      geschicklichkeit = get_geschicklichkeit(@item_window.item)
      actor_geschicklichkeit = @actor.geschicklichkeit
      if geschicklichkeit > actor_geschicklichkeit
        text[1] += "Erforderliche Geschicklichkeit: " + geschicklichkeit.to_s
        text[1] += " (Zurzeit: " + actor_geschicklichkeit.to_s + ")"
      end
      if text != ["", ""]
        Sound.play_buzzer
        Window_Warning.new(text)
        return
      end
      Sound.play_equip
      @actor.change_equip(@equip_window.index, @item_window.item)
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
      @equip_window.refresh
      for item_window in @item_windows
        item_window.refresh
      end
    end
    #--------------------------------------------------------------------------
  end
  #--------------------------------------------------------------------------
end
#==============================================================================

MfG, MelekTaus
« Letzte Änderung: Juli 08, 2009, 13:40:41 von MelekTaus »

Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?

Offline Michel

  • Event-Jongleur
  • **
  • Beiträge: 57
Re: Waffe/Spruchrolle ab bestimmter Stärke/Geschick/Mana... ?
« Antwort #7 am: Juli 08, 2009, 14:22:07 »
Danke an MelekTaus und Colonios!

@ MelekTaus

Ich habe entdeckt, dass ein wichtiges Element in der Sache noch fehlt.
Ich machs gleich spezifisch:

Immer wenn der Charakter ein neues Level erreicht,
soll ein Fenster kommen, wo man 2 Punkte auf Stärke
und/oder Geschicklichkeit aufteilen kann ...(actor(1).stärke + 1 oder so...)

Könntest du das noch dazuscripten?

Wenn nicht, könnt ich's im Notfall mit nem Common Event versuchen...

Lg michel










« Letzte Änderung: Juli 08, 2009, 17:13:12 von Michel »

 


 Bild des Monats

rooftop party

Views: 3950
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal