Ergebnis 1 bis 6 von 6

Thema: Events verdoppeln lassen?! (Im Spiel)

  1. #1

    Events verdoppeln lassen?! (Im Spiel)

    Gibt es eine Möglichkeit während des Spielens ein bestimmtes Event zu verdoppeln und anschließend zum Player zu teleportieren?

    Habe keine passenden Button unter Event-Scripting gefunden.
    Also das mit den Teleportieren über Variabeln zum Player krieg ich schon hin.

    Nur wie soll ich das Event verdoppeln lassen, es gibt jediglich die möglichkeit:
    "Set Event Location..." mit den mann Events tauschen und versetzten kann jedoch nicht verdoppeln.

    Es soll nämlich so sein wenn der Player im Spiel zB Enter (C) drückt er verschiedene Objekte spawnen kann (zB nen Schild oder nen Stein).
    Und das unendlich, und nicht nur einmal und dann ist das Event weg.

    Is das irgendwie Möglich? Gibts Ruby-Scripts dazu oder weiss jemand doch ne Event-Scripting Methode???

    Wäre sehr Dankbar für Hilfe!

    PS: Es ist der Rpg Maker XP

    Geändert von chrisbyRRC (24.03.2009 um 09:44 Uhr) Grund: Ergänzung

  2. #2
    also das hier ist jetzt ohne die verdopplung. (es wird jedes mal ein neues event erstellt)
    sollte allerdings für dein spawnding reichen.

    einfach neues script über main und dann einfügen.


    zur verwendung:
    um ein neues event zu erstellen musst du bei call script (event commands letzte seite) $scene.newevent(*diverse argumente*) aufrufen.

    Code:
    $scene.newevent(X-Coord,Y-Coord,Charsetname,CommonEventNr)
    x und y coord sollten klar sein
    kannst dort $game_player.x bzw $game_player.y einsetzen.
    charsetname ist der name des charsets, dass das event haben soll.
    commoneventnr gibt die nr des common events an, deren commandos das event dann hat.

    wenn du nur $scene.newevent ohne argumente aufrufst. bekommste nen arshes clon auf den koordinaten des spieler, der nix macht außer schön rumstehen

    die methode gibt nebenbei das neue event zurück, dh du kannst im call script noch ein paar sachen verändern.
    bsp:
    Code:
    event = $scene.newevent(0,0,"002-Fighter02",1)
    event.turn_left
    credits gehn an mich, wenn dus benutzt


    edit:
    wenn du das spiel speicherst und wieder lädst, sind die neu erstellten events noch immer da!
    ausnahme:
    wenn du das spiel speicherst und es danach im editor veränderst, wird die map beim spiel fortsetzen neu geladen. dadurch werden nur die events erstellt, die auch im editor sind. dh die neu erstellten events sind wieder weg!

    Geändert von Shining Advances (24.03.2009 um 11:21 Uhr)

  3. #3
    Alternativ zum Skript von ´Shining Advances´ könnte ich noch das "Event klonen"- Skript empfehlen:

    Zitat Zitat
    Mit diesem Skript kann man Events auf einer Map klonen. Der gesamte Eventcode wird dabei übernommen.
    Code:
    #-------------------------------------------------------------------------- 
    # Events klonen V1 @ Abt Ploutôn
    #-------------------------------------------------------------------------- 
    
    # Monsta Edit: 1.0 05.06.07
    
    # Aufruf:
    # $game_map.add_event(map_id,id,x,y)
    # ...weitere Events...
    # $scene.spriteset.refresh
    
    # Neuerungen vom Monsta Edit
    # - Man kann sich die ID des neuen Events zurückgeben lassen (@id = $game_map.add...)
    # - Bug mit Self Switches bei geklonten Events behoben
    # - Die Zeile "$game_map.need_refresh = true" brauch nicht mehr ins Call Skript
    # - ID's werden richtig ersetzt (siehe Post SLB)
    
    class Spriteset_Map
      #-------------------------------------------------------------------------- 
      def refresh
        $game_map.need_refresh = true
        unless @character_sprites == nil 
          for sprite in @character_sprites 
            sprite.dispose 
          end 
        end
        @character_sprites = [] 
        for i in $game_map.events.keys.sort 
          sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) 
    	  @character_sprites.push(sprite) 
        end 
        @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
      end
      #-------------------------------------------------------------------------- 
    end
    
    class Game_Map
      #-------------------------------------------------------------------------- 
      def add_event(map_id,id,x,y)
        s = 1
        (1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
        map = load_data(sprintf("Data/Map%03d.rxdata", map_id)) 
        ev = map.events[id] 
        ev.id = s 
        @events[s] = Game_Event.new(@map_id, ev)
        @events[s].moveto(x, y)
        return @events[s].id
      end 
      #-------------------------------------------------------------------------- 
    end
    
    class Scene_Map 
      #-------------------------------------------------------------------------- 
      attr_accessor :spriteset 
      #-------------------------------------------------------------------------- 
    end
    Nunja die Funktion steht im Skriptkopf...
    Ansonsten hier noch ne kleine Anleitung:

    Zitat Zitat
    Benutzungsweise:

    Einfach auf einer neuen Map ein Event machen mit Parallel oer Autostartfunktion und folgendes in ein Eventskript Eintippen wenn man ein Event klonen will:

    $game_map.add_event(map_id,id,x,y)
    $scene.spriteset.refresh

    und für 2 Events:

    $game_map.add_event(map_id,id,x,y)
    $game_map.add_event(map_id,id,x,y)
    $scene.spriteset.refresh

    Und so weiter...

    map_id Die Map wo das Event rumsteht
    id Die Id des Events also 8 oder 873
    x,y die Koordinaten wo das Event auf der neuen Map hin soll.
    Mit Hero x und y Variablen kann man das Event ja nachdem man es auf die Map teleportiert hat auch noch zum Helden teleportieren- aber damit müsstest du dich ja auskennen ;-).

    EDIT:
    Achso, hier noch die
    Quelle des Skripts

    Geändert von Skorp (24.03.2009 um 17:58 Uhr)

  4. #4
    Joa alta!!!!
    GEIL!!!! Das fetzt ja vielen Dank euch beiden, wenn das alles so hinhaut denn isses genau das was ich gesucht hab.

    Vielen Dank hätte nich Gedacht das is die schon so als geniale Scripts gibt.

    Credits gebühren natürlich euch!

    EDIT:
    @Shining Advances:
    Super es funktioniert! Gibts ne Möglichkeit die gespawnten events durchgehbar zu machen (wie bei normalen event der schalter "Through" unter "Options") Gibts vllt. nen Script-Befehl den Ich gleich dahintersetzen kann?

    Geändert von chrisbyRRC (24.03.2009 um 21:26 Uhr) Grund: EDIT

  5. #5
    füg bei dem script am ende
    Code:
    class Game_Event
      attr_accessor :through
    end
    ein.

    un dann bei call script
    Code:
    event = $scene.newevent
    event.through = true

  6. #6
    Einfach nur Geil!
    Es funktioniert! Du bist der Beste

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •