collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Fehler beim Bedürfnisssystem von Herendil  (Gelesen 838 mal)

Offline NeoXodus

  • Ralph
  • *
  • Beiträge: 5
Fehler beim Bedürfnisssystem von Herendil
« am: Dezember 02, 2011, 22:58:48 »
Hallo,
ich würde gerne das Bedürfnisssystem von Herendil benutzen. Leider kommt folgender Fehler:

Da ich mit RGSS nicht auskenne, hab ich keine Ahnung was das für ein Fehler ist.
Hier nochmal das Script, ich hab alles gemacht, was in der Anleitung steht:
Spoiler for Hiden:
#+###=-............-=###*.............-**-.............+#=##=+-...........
#*####:............-####=-..........-*####=:...........*##########*+-.....
#*##@#:............-####=-........-*@@######=:.........*###==########*....
#*####:............-####=-......-*#######=####=:.......*##=#:.-+=##==-....
#*#######=+--......-####=-....-=#########=######=:.....*####+-............
#*#####@#####@#=+:--#####-..-=@###==-:####*-*###@#=-...*#@######=+-.......
#*####+:*#############===-..-###==-..:##==*..-*####-...*#==##########+....
#*####+.....-:*#########=-...-==-....:####*....-*#-....*####**=######-....
#*#######*+-......-:####=-...........:####*............*####:.....-:-.....
#*####==##=###=+:-.-=##==-...........:##==*............*#=##:.............
#*####+:*==#############=-...........:####*............*###=:.............
#*####:.....-+=##=######=-...........:###=*............*##=#:.............
#*####:..........-:=####=-...........:###=*............*####:.............
#*@###:............-#=##=-...........:####*............*##@#:.............
#*####:............-####=-...........:###=*............*##=#:.............
#*####:............-####=-...........:####*............*####:.............
#*####:............-####=-...........:####*............*####:.............
#*#==#:............-=###=-...........:###=*............*####:.............
#-+++:..............:+++-.............++++-............-++++..............
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#        Bedürfnissystem
#           Version 3.0 (last edit 13.06.2011)
#              by Herendil Turindo Aldadur
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#        Konfigurationsbereich - hier gemäß der Anleitung alles einstellen
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
module NEEDS
  SEKUNDEN     = 01 # Variable für die Sekundenberechnung
  BEDUERFNISSE = {# Muster:
                  # Variable, Maximum, CE-id, Intervall
  "Hunger"     =>  [02,       100,     1,      10],
  "Müdigkeit"  =>  [03,       100,     2,      20], 
  "Hygene"     =>  [04,       100,     1,      16]# Am dieser Stelle ein Komma
                                                  # einfügen, um neue Bedürfnisse
                                                  # hinzuzufügen
  } # Unbedingt stehen lassen
  S_X = 0     # Position des Bedürfnisfensters auf dem Bildschirm in X-Richtung
  S_Y = 0     # Position des Bedürfnisfensters auf dem Bildschirm in Y-Richtung
  OPACITY = 255 # Deckkraft der Fensterränder und  -innren
  ANZEIGE        = 01   # Switch zur Regulierung der Fenstersichtbarkeit
                        # Switch off -> Anzeige an
  WARN_TIME      = 30   # Prozentualer Wert für erste Warnung
  WARNING        = "Das Bedürfnis %s ist unter 30% gesunken!" # Erste Warnung
  CRIT_TIME      = 10   # Prozentualer Wert für kritische Warnung
  CRIT_WARN      = "Das Bedürfnis %s ist unter 10% gesunken!!" # Zweite Warnung
  START_MAX      = true # Alle Bedürfnisse bei Spielstart maximiert?
                        # true -> ja; false -> nein                                         
  IN_MENU        = true # Soll das Bedürfnisfenster im Menu zu sehen sein?
                        # true -> ja; false -> nein
  RECOVER_ADD    = 'all'# Der Event-Befehl "Recover all" maximiert auch alle
                        # Bedürfnisse, die automatisch sinken.
                        # true -> ja; false -> nein; 'all' -> nur bei ganze Gruppe
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Funktionaler Bereich - ab dieser Trennung sind alle Änderungen nicht empfohlen
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Window_Beduerfnisse
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Window_Beduerfnisse < Window_Base
  def initialize
    super(NEEDS::S_X, NEEDS::S_Y, 150, (24*NEEDS::BEDUERFNISSE.keys.size+24))
    self.opacity = NEEDS::OPACITY
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.font.size = 16
    a = []
    for i in (NEEDS::BEDUERFNISSE).keys
      o = NEEDS::BEDUERFNISSE[i]
      self.contents.draw_text(0, (NEEDS::BEDUERFNISSE.keys.index(i)*24), 71, 16, "#{i}: ", 2)
      draw_gauge(70,(NEEDS::BEDUERFNISSE.keys.index(i)*24-10), $game_variables[o[0]], o[1])
    end
    self.visible = !$game_switches[NEEDS::ANZEIGE]
  end
 
  def draw_gauge(x,y, value, max)
    gw = 40 * value / max
    c = get_colour(value, max)
    gc1 = text_color(c[1])
    gc2 = text_color(c[0])
    self.contents.fill_rect(x-1, y + WLH - 9, 40+2, 6+2, text_color()
    self.contents.fill_rect(x, y + WLH - 8, 40, 6, text_color(15))
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
  def get_colour(value, max)
    case (value*100.00)/max
    when  0...11;  return [10,18]
    when 10...21;  return [2,10]
    when 20...31;  return [21,14]
    when 30...71;  return [0,17]     
    when 70...81;  return [24,29]
    when 80...91;  return [3,28]
    when 90...101; return [11,28]
    else
      return [15,15]
    end
  end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Scene_Map
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Scene_Map
  alias needs_start start
  alias needs_update update
  alias need_terminate terminate
  def start
    needs_start
    @beduerfnis_window = Window_Beduerfnisse.new
    @warned30 = []
    @warned10 = []
  end
 
  def update
    needs_update
    update_needs
    check_needs
    @beduerfnis_window.refresh
  end
 
  def terminate
    @beduerfnis_window.dispose
    need_terminate
  end
 
  def update_needs
    if Graphics.frame_count % Graphics.frame_rate == 0
      $game_variables[NEEDS::SEKUNDEN] += 1
      for i in (NEEDS::BEDUERFNISSE).keys
        o = NEEDS::BEDUERFNISSE[i]
        next if o[3] <= 0
        next unless $game_variables[NEEDS::SEKUNDEN] % o[3] == 0
        @factor = 1
        @factor = ($game_map.name.gsub('[F:','')).split(']')[0].to_f if $game_map.name.include?("[F:")
        for area in $data_areas.values
          next unless (area.map_id == $game_map.map_id)
          next unless area.name.include?("[F:")
          x = (area.rect.x)...(area.rect.x+area.rect.width)
          y = (area.rect.y)...(area.rect.y+area.rect.height)
          next unless x.include?($game_player.x) and y.include?($game_player.y)
          @factor = (area.name.gsub('[F:','')).split(']')[0].to_f
        end
        @factor = event_factor? unless event_factor? == false
        $game_variables[o[0]] -= (1*@factor)
      end
    end
  end
 
  def event_factor?
    for i in $game_map.events.keys
      event = $game_map.events[i]
      next unless ((event.x == $game_player.x) && (event.y == $game_player.y))
      next unless event.name.include?('[F:')
      return ((event.name.gsub('[F:','')).split(']')[0].to_f)
    end
    return false
  end
 
  def check_needs
    for i in (NEEDS::BEDUERFNISSE).keys
      o = NEEDS::BEDUERFNISSE[i]
      if $game_variables[o[0]] > o[1]
        $game_variables[o[0]] = o[1]
      elsif $game_variables[o[0]] <= 0
        if o[2] != nil
          $game_temp.common_event_id = o[2]
          $game_variables[o[0]] += 1
        end
      elsif 100.00*$game_variables[o[0]]/o[1] <= NEEDS::CRIT_TIME
        run_crit_warning i if not @warned10.include?(i)
      elsif 100.00*$game_variables[o[0]]/o[1] <= NEEDS::WARN_TIME
        run_warning i if not @warned30.include?(i)
      elsif ($game_variables[o[0]]*100.00/o[1]) > NEEDS::WARN_TIME
        @warned30.delete(i)
      elsif ($game_variables[o[0]]*100.00/o[1]) > NEEDS::CRIT_TIME
        @warned10.delete(i)
      end
    end
  end
 
  def run_warning(name)
    p(NEEDS::WARNING.gsub('%s', name))
    @warned30 << name
  end
 
  def run_crit_warning(name)
    p(NEEDS::CRIT_WARN.gsub('%s', name))
    @warned10 << name
  end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Scene_Menu
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Scene_Menu < Scene_Base
  alias need_start start
  alias need_update update
  alias need_terminate terminate
  def start
    need_start
    if NEEDS::IN_MENU
      @needs = Window_Beduerfnisse.new
      @needs.opacity = 255
      @needs.x = 0
      @needs.y = @command_window.height+@command_window.y
      @needs.width = @command_window.width
    end
  end
 
  def update
    need_update
    @needs.refresh
    @needs.visible = true
  end
 
  def terminate
    @needs.dispose
    need_terminate
  end
end

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Scene_Title
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Scene_Title < Scene_Base
  alias load_database_name load_database
  def load_database
    load_database_name
    $data_mapinfos      = load_data("Data/MapInfos.rvdata")
    for key in $data_mapinfos.keys
      $data_mapinfos[key] = $data_mapinfos[key].name
    end
  end
 
  alias command_new_needs command_new_game
  def command_new_game
    command_new_needs
    if NEEDS::START_MAX
      for i in (NEEDS::BEDUERFNISSE).keys
        o = NEEDS::BEDUERFNISSE[i]
        $game_variables[o[0]] = o[1]
      end
    end
  end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Game_Map
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Game_Map 
  def name
    $data_mapinfos[@map_id]
  end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#         Game_Interpreter
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class Game_Interpreter
 
  def erholen_all(prozent = 100, absolut = 0)
    for i in NEEDS::BEDUERFNISSE.keys
      erholen(i, prozent, absolut)
    end
  end
 
  def erholen(beduerfnis, prozent = 100, absolut = 0)
    rel = NEEDS::BEDUERFNISSE[beduerfnis][1]*(prozent/100.00)
    $game_variables[NEEDS::BEDUERFNISSE[beduerfnis][0]] += (rel+absolut)
  end
 
  def erschöpfen_all(prozent = 100, absolut = 0)
    for i in NEEDS::BEDUERFNISSE.keys
      erschöpfen(i, prozent, absolut)
    end
  end
 
  def erschöpfen(beduerfnis, prozent = 100, absolut = 0)
    rel = NEEDS::BEDUERFNISSE[beduerfnis][1]*(prozent/100.00)
    $game_variables[NEEDS::BEDUERFNISSE[beduerfnis][0]] -= (rel+absolut)
  end
 
  alias command_314_needs command_314
  def command_314
    case NEEDS::RECOVER_ADD
    when true
      for i in NEEDS::BEDUERFNISSE.keys
        erholen(i)
      end
    when 'all'
      if @params[0] == 0
        for i in NEEDS::BEDUERFNISSE.keys
          next if NEEDS::BEDUERFNISSE[i][3] <= 0
          erholen(i)
        end
      end
    end
    command_314_needs
  end 
end

class Game_Event < Game_Character
  attr_reader   :name
  alias needs_initialize initialize
  def initialize(map_id, event)
    needs_initialize(map_id, event)
    @name = event.name
  end
end
MfG
NeoXodus

Re: Fehler beim Bedürfnisssystem von Herendil

Offline Boogatie Roll

  • VX-Meister
  • ****
  • Beiträge: 676
  • Java[Spiele] Programmierer
    • BRolls Game Website
Re: Fehler beim Bedürfnisssystem von Herendil
« Antwort #1 am: Dezember 03, 2011, 12:16:52 »
kopier mal die zeile 85 raus und schreib sie hier rein. einfach wenn der error kommt in den scipt editor, dann ist er automatisch an der stelle.

Re: Fehler beim Bedürfnisssystem von Herendil

Offline NeoXodus

  • Ralph
  • *
  • Beiträge: 5
Re: Fehler beim Bedürfnisssystem von Herendil
« Antwort #2 am: Dezember 03, 2011, 16:01:57 »
    self.contents.fill_rect(x, y + WLH - 8, 40, 6, text_color(15))

 


 Bild des Monats

rooftop party

Views: 3615
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