RPGVX.net

  RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet von: yoru-san am Mai 20, 2011, 17:52:39

Titel: [solved] script mit switch aktivieren
Beitrag von: yoru-san am Mai 20, 2011, 17:52:39
hallo, hier meine frage:
habe ingame einen switch und würde gerne einen teil vom script starten lassen, wenn der switch im game aktiviert wird.
in pseude-sprache sollte das etwa so aussehen:

wenn switch mit switch id 5 =aktiviert
      ausgabe variable

habe im internet nach befehlen gesucht und folgenden probiert:
 
if $game_switches [5] == true
       self.contents.draw_text(30, 0, 80, 400, var1)

 else 
 end

fehlermeldung: undefined method [] for nil:NilClass

ohne if-anweisung funktioniert die ausgabe.

was mach ich falsch, was muss ich tun? (sorry, bin ne niete im programmieren  :cry: )
Titel: Re: script mit switch aktivieren
Beitrag von: Kasaar am Mai 20, 2011, 18:59:43
an sich ist das Script ja richtig... allerdings stelln sich mir die fragen
1.: Wo haste diesen Schnipsel drin?
2.: haste ma mit $game_switches[5] verscuht? weil du hast nochn leerzeichen ... glaube das führt auch zu nem fehler
Titel: Re: script mit switch aktivieren
Beitrag von: yoru-san am Mai 20, 2011, 22:52:15
1) in window_status:

def refresh
(...)
end

$game_switches[5]
(...)

2) ohne leerzeichen kommt die gleiche fehlermeldung
Titel: Re: script mit switch aktivieren
Beitrag von: yoru-san am Mai 20, 2011, 23:08:37
sry wegen doppelpost, weiß nicht wo ich löschen kann  :misdoubt:

hier mal der teil vom code den ich verändert hab:

lass Window_Status < Window_Base
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     actor : actor
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 0, 544, 416)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #-------------------------------------------------------------------------
 
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 4, 0)
    draw_actor_class(@actor, 128, 0)
    draw_actor_face(@actor, 8, 32)
    draw_basic_info(128, 32)
    draw_variable(4, 128)
  end
 
     
 if $game_switches[5] == true

    def draw_variable(x, y)
      var1 ="Stärke:"
      var2 ="Speed:"
      var3 ="Waffenkunst:"
      var4 ="Ki-kontrolle:"
      var5 ="Resistenz:"
      extra1 = $game_variables[003]
      extra2 = $game_variables[004]
      extra3 = $game_variables[005]
      extra4 = $game_variables[006]
      extra5 = $game_variables[007]
      self.contents.font.color = normal_color
      self.contents.draw_text(30, 0, 80, 400, var1)
      self.contents.draw_text(30, 0, 80, 450, var2)
      self.contents.draw_text(30, 0, 80, 500, var3)
      self.contents.draw_text(30, 0, 80, 550, var4)
      self.contents.draw_text(30, 0, 80, 600, var5)
      self.contents.draw_text(60, 0, 80, 400, extra1, 2)
      self.contents.draw_text(60, 0, 80, 450, extra2, 2)
      self.contents.draw_text(60, 0, 80, 500, extra3, 2)
      self.contents.draw_text(60, 0, 80, 550, extra4, 2)
      self.contents.draw_text(60, 0, 80, 600, extra5, 2)
    end
   
    else 
      def draw_variable(x, y)
      end
 
 end


  #--------------------------------------------------------------------------
  # * Draw Basic Information
  #     x : Draw spot X coordinate
  #     y : Draw spot Y coordinate
  #--------------------------------------------------------------------------
  def draw_basic_info(x, y)
   
    draw_actor_state(@actor, x, y + WLH * 1)
    draw_actor_hp(@actor, x, y + WLH * 2)
    draw_actor_mp(@actor, x, y + WLH * 3)
  end

(usw...)
Titel: Re: script mit switch aktivieren
Beitrag von: Rackos am Mai 21, 2011, 03:18:05
für das was du vor hast empfelhle ich dir das deity hud deluxe
erfüllt die gleichen optionen mit besseren einbindungen und ist leicht zu bediehnen
Titel: Re: script mit switch aktivieren
Beitrag von: FlipelyFlip am Mai 21, 2011, 09:56:21
heyey,

die Switchabfrage gehört in die Methode draw_variable(x,y) (:

würde dann bei dir wie folgt aussehn:

def draw_variable(x,y)
  if $game_switches[3] == true
    (deine Codezeilen aus dem draw_variable(x,y)
  end
end

wobei ich mich grad Frage wofür du bei draw_variable noch x und y angibst, obwohl es
in der Methode selbst dann nicht gebraucht wird oO
Mach die mal weg, dann dürfte es funktionieren wenn ich mich nicht irre.

lg flip
Titel: Re: script mit switch aktivieren
Beitrag von: yoru-san am Mai 21, 2011, 14:10:05
heyey,

die Switchabfrage gehört in die Methode draw_variable(x,y) (:
yay, es funktioniert   :haha_zwinker:

für das was du vor hast empfelhle ich dir das deity hud deluxe
das wäre ne option, aber jetz funktionierts ja^^

wobei ich mich grad Frage wofür du bei draw_variable noch x und y angibst, obwohl es
in der Methode selbst dann nicht gebraucht wird oO

stimmt, ka warum ich das noch drin hatte  :what:


jedenfalls vielen dank für die schnelle hilfe!  :haha:
SimplePortal 2.3.3 © 2008-2010, SimplePortal