collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Caterpillar  (Gelesen 9667 mal)

ERZENGEL

  • Gast
Caterpillar
« am: Januar 24, 2008, 21:05:23 »
  • Vorwort:
    In einen Caterpillar-Skript versteht man, das die aktuelle Truppe hinter den Helden hinterherläuft. Dies ist eine Modifikation von Diedrupo an den Skript von Trickster, der das Original für den RPGXP, geskriptet hat.

  • Anleitung:
    Einfach normal einfügen. Siehe FAQ (RGSS2, Wie baue ich die Skripte ein?)
    Weitere Einstellungen werden in den ersten Zeilen erklärt.

  • Screenshots:


  • Skript:
    Spoiler for Hiden:
      # MAX_SIZE = maximale Anzahl der folgenden Helden
      # CATERPILLAR = ID eines Switches um das Skript an-/auszuschalten.
      #--------------------------------------------------------------------------
      # * Konstanten
      #--------------------------------------------------------------------------
      MAX_SIZE = 8
      CATERPILLAR = 2

    class Game_Player
      #--------------------------------------------------------------------------
      # * Move Down
      #     turn_enabled : a flag permits direction change on that spot
      #--------------------------------------------------------------------------
      def move_down(turn_enabled = true)    
        super(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Left
      #     turn_enabled : a flag permits direction change on that spot
      #--------------------------------------------------------------------------
      def move_left(turn_enabled = true)
        super(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Right
      #     turn_enabled : a flag permits direction change on that spot
      #--------------------------------------------------------------------------
      def move_right(turn_enabled = true)
        super(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move up
      #     turn_enabled : a flag permits direction change on that spot
      #--------------------------------------------------------------------------
      def move_up(turn_enabled = true)
        super(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Lower Left
      #--------------------------------------------------------------------------
      def move_lower_left
        super
      end
      #--------------------------------------------------------------------------
      # * Move Lower Right
      #--------------------------------------------------------------------------
      def move_lower_right
        super
      end
      #--------------------------------------------------------------------------
      # * Move Upper Left
      #--------------------------------------------------------------------------
      def move_upper_left
        super
      end
      #--------------------------------------------------------------------------
      # * Move Upper Right
      #--------------------------------------------------------------------------
      def move_upper_right
        super
      end
    end

    class Game_Follower < Game_Character
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader   :actor
      attr_accessor :move_speed
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(actor)
        super()
        @through = true
        @actor = actor
      end
      #--------------------------------------------------------------------------
      # * Set Actor
      #--------------------------------------------------------------------------
      def actor=(actor)
        @actor = actor
        setup
      end
      #--------------------------------------------------------------------------
      # * Setup
      #--------------------------------------------------------------------------
      def setup
        if @actor != nil      
          @character_name = $game_actors[@actor].character_name
          @character_index = $game_actors[@actor].character_index
        else
          @character_name = ""
          @character_index = 0
        end
        @opacity = 255
        @blend_type = 0
        @priority_type = 0
      end
      
      #--------------------------------------------------------------------------
      # * Screen Z
      #--------------------------------------------------------------------------
      def screen_z
        if $game_player.x == @x and $game_player.y == @y
          return $game_player.screen_z - 1
        end
        super
      end
      #--------------------------------------------------------------------------
      # * Same Position Starting Determinant (Disabled)
      #--------------------------------------------------------------------------
      def check_event_trigger_here(triggers)
        result = false
        return result
      end
      #--------------------------------------------------------------------------
      # * Front Envent Starting Determinant (Disabled)
      #--------------------------------------------------------------------------
      def check_event_trigger_there(triggers)
        result = false
        return result
      end
      #--------------------------------------------------------------------------
      # * Touch Event Starting Determinant (Disabled)
      #--------------------------------------------------------------------------
      def check_event_trigger_touch(x, y)
        result = false
        return result
      end
    end

    class Spriteset_Map
      alias_method :spriteset_map_create_characters, :create_characters
      def create_characters
        spriteset_map_create_characters
        $game_party.followers.each do |char|
          @character_sprites << Sprite_Character.new(@viewport1, char)
        end
      end
    end

    class Game_Party

      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader :followers
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_party_initialize, :initialize
      def initialize
        trick_caterpillar_party_initialize
        @followers = Array.new(MAX_SIZE - 1) {Game_Follower.new(nil)}
        @move_list = []
      end
      #--------------------------------------------------------------------------
      # * Update Followers
      #--------------------------------------------------------------------------
      def update_followers
        flag = $game_player.transparent || $game_switches[CATERPILLAR]
        @followers.each_with_index do |char, i|
          char.actor = @actors[i + 1]
          char.move_speed = $game_player.move_speed
          if $game_player.dash?
            char.move_speed += 1
          end
          char.update
          char.transparent = flag
        end
      end
      #--------------------------------------------------------------------------
      # * Move To Party
      #--------------------------------------------------------------------------
      def moveto_party(x, y)
        @followers.each {|char| char.moveto(x, y)}
        @move_list.clear
      end
      #--------------------------------------------------------------------------
      # * Move Party
      #--------------------------------------------------------------------------
      def move_party
        @move_list.each_index do |i|
          if @followers[i] == nil
            @move_list[i...@move_list.size] = nil
            next
          end
          case @move_list[i].type
          when 2
            @followers[i].move_down(*@move_list[i].args)
          when 4
            @followers[i].move_left(*@move_list[i].args)
          when 6
            @followers[i].move_right(*@move_list[i].args)
          when 8
            @followers[i].move_up(*@move_list[i].args)
          when j
            @followers[i].move_lower_left
          when 3
            @followers[i].move_lower_right
          when 7
            @followers[i].move_upper_left
          when 9
            @followers[i].move_upper_right
          when 5
            @followers[i].jump(*@move_list[i].args)
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Add Move List
      #--------------------------------------------------------------------------
      def update_move(type, *args)
        move_party
        @move_list.unshift(Game_MoveListElement.new(type, args))
      end
    end

    class Game_MoveListElement
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(type, args)
        @type = type
        @args = args
      end
      #--------------------------------------------------------------------------
      # * Type
      #--------------------------------------------------------------------------
      def type
        return @type
      end
      #--------------------------------------------------------------------------
      # * Args
      #--------------------------------------------------------------------------
      def args
        return @args
      end
    end

    class Game_Player
      #--------------------------------------------------------------------------
      # * Public Instance Variables
      #--------------------------------------------------------------------------
      attr_reader :move_speed
      
      #--------------------------------------------------------------------------
      # * Update
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_update, :update
      def update
        $game_party.update_followers
        trick_caterpillar_player_update
      end
      #--------------------------------------------------------------------------
      # * Moveto
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_moveto, :moveto
      def moveto(x, y)
        $game_party.moveto_party(x, y)
        trick_caterpillar_player_moveto(x, y)
      end
      #--------------------------------------------------------------------------
      # * Move Down
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_down, :move_down
      def move_down(turn_enabled = true)
        if passable?(@x, @y+1)
          $game_party.update_move(2, turn_enabled)
        end    
        trick_caterpillar_player_move_down(turn_enabled)    
      end
      #--------------------------------------------------------------------------
      # * Move Left
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_left, :move_left
      def move_left(turn_enabled = true)
        if passable?(@x-1, @y)
          $game_party.update_move(4, turn_enabled)
        end
        trick_caterpillar_player_move_left(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Right
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_right, :move_right
      def move_right(turn_enabled = true)
        if passable?(@x+1, @y)
          $game_party.update_move(6, turn_enabled)
        end
        trick_caterpillar_player_move_right(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Up
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_up, :move_up
      def move_up(turn_enabled = true)
        if passable?(@x, @y-1)
          $game_party.update_move(8, turn_enabled)
        end
        trick_caterpillar_player_move_up(turn_enabled)
      end
      #--------------------------------------------------------------------------
      # * Move Lower Left
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_lower_left, :move_lower_left
      def move_lower_left
        if passable?(@x - 1, @y) and passable?(@x, @y + 1)
          $game_party.update_move(1)
        end
        trick_caterpillar_player_move_lower_left
      end
      #--------------------------------------------------------------------------
      # * Move Lower Right
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_lower_right, :move_lower_right
      def move_lower_right
        if passable?(@x + 1, @y) and passable?(@x, @y + 1)
          $game_party.update_move(3)
        end
        trick_caterpillar_player_move_lower_right
      end
      #--------------------------------------------------------------------------
      # * Move Upper Left
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_upper_left, :move_upper_left
      def move_upper_left
        if passable?(@x - 1, @y) and passable?(@x, @y - 1)
          $game_party.update_move(7)
        end
        trick_caterpillar_player_move_upper_left
      end
      #--------------------------------------------------------------------------
      # * Move Upper Right
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_move_upper_right, :move_upper_right
      def move_upper_right
        if passable?(@x + 1, @y) and passable?(@x, @y - 1)
          $game_party.update_move(9)
        end
        trick_caterpillar_player_move_upper_right
      end
      #--------------------------------------------------------------------------
      # * Jump
      #--------------------------------------------------------------------------
      alias_method :trick_caterpillar_player_jump, :jump
      def jump(x_plus, y_plus)
        new_x = @x + x_plus
        new_y = @y + y_plus
        if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y)
          $game_party.update_move(5, x_plus, y_plus)
        end
        trick_caterpillar_player_jump(x_plus, y_plus)
      end
    end
    Spoiler for Hiden:
  • Links:
« Letzte Änderung: Januar 24, 2008, 21:18:29 von ERZENGEL »

Caterpillar

Offline Seph

  • bLUbb?
  • Mr. MACK-Tile
  • ***
  • Beiträge: 224
Caterpillar
« Antwort #1 am: Januar 24, 2008, 21:09:56 »
Des Script fand ich ja für den XP schon sehr brauchbar und jetz gibts des a schon für den VX.
Könnt ich ja in meinem Game benutzen weiß aber noch net.
Danke fürs posten. happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]

Caterpillar

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Caterpillar
« Antwort #2 am: Januar 24, 2008, 22:25:28 »
Hi,

wie sieht das denn aus, wenn man Teleporter nutzt?

Ansich finde ich das Caterpillar Script toll.

MFG Markus

Caterpillar

ERZENGEL

  • Gast
Caterpillar
« Antwort #3 am: Januar 24, 2008, 22:30:31 »
Funktioniert auch. Wär ja sonst ein bissl dumm ^^

Caterpillar

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Caterpillar
« Antwort #4 am: Januar 24, 2008, 22:38:46 »
Hi,

klar. Aber sieht das nicht ein wenig seltsam aus, wenn nur
der 1. Held teleportiert wird und der Rest keine Animation macht?
Könnte man natürlich auch anpassen, aber dann müsste man ja jedem MP abziehen.

MFG Markus

Caterpillar

Offline Baur

  • Mr. MACK-Tile
  • ***
  • Beiträge: 272
    • http://
Caterpillar
« Antwort #5 am: Januar 25, 2008, 08:15:01 »
Was für ne Animation, wird doch nur der Screen kurzzeitig abgedunkelt, hast du da Anims dazugepackt?

Meine Einstellung zu Caterpillar ist zweigeteilt. An und für sich ganz nett, nur werden halt die Move-Events immer etwas umständlich, z.B., wenn die Truppe in Inneräumen durch Türen geht, oder bei Cutszenes, wenn nur ein Held ein Move-Event hat und die anderen stehnbleiben. Dann muss man für die anderen immer extra Char-Events machen.

Hat mich immer genervt beim XP, lass es diesmal glaub ich weg.
« Letzte Änderung: Januar 25, 2008, 12:13:40 von Baur »
Formerly known as [size=]Rabu[/size] *g*

PS: In nächster Zeit selten im Forum. RL sucks.

Caterpillar

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
Caterpillar
« Antwort #6 am: Januar 25, 2008, 10:33:29 »
Hi,

jo. Also nicht jeder Teleport ist animiert. Beim Laufen ist es ganz normal ein Fade-Out und dann ein Fade-In.

Aber ich werde noch zwei Teleporter machen (in Form eines Items, mit dem man sich zu größeren Städten porten kann und als Bodenplatte, die einen durch Gebäude mit mehreren Stockwerken portet).
Die Animation sieht ganz nett aus, würde aber komisch sein, wenn jeder die nutzen würde.
Daher lasse ich es wohl auch weg.

Finde das Script aber ansich durchaus nützlich.

MFG Markus

Caterpillar

Offline Noa3

  • Alles Sucher und Finder, Mööööööp
  • Mr. MACK-Tile
  • ***
  • Beiträge: 215
Caterpillar
« Antwort #7 am: März 31, 2008, 00:06:57 »
hy ich habe ein prob
ich habe das sript mit bei mir drinn und es funzt
nicht ich habe (leider) mein pc platt gemacht und ich hatte keine sicherheits kopie von irgendwas
und damals lief es einbahn frei und jetz wo ich alles wieder neu gemacht habe und wieder mit eingebunden habe geht es nicht sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /]

ich habe die vermutung das es an der id vom script bei mir liegt und wisst ihr wie ich die id 2 aktivire?

Caterpillar

ERZENGEL

  • Gast
Caterpillar
« Antwort #8 am: März 31, 2008, 06:23:16 »
In den Event Commands gibts auf der 1. Seite in der Sektion Game Progression einen Button, der Control Switches heißt. Auf den klickst du wählst dort den Switch mit der ID 2 aus und ON muss aktiviert sein. Sieht dann so aus:
« Letzte Änderung: März 31, 2008, 06:23:40 von ERZENGEL »

Caterpillar

Talyana Meriweather Rahl

  • Gast
Caterpillar
« Antwort #9 am: Mai 05, 2008, 01:07:45 »
Zitat
MAX_SIZE = 8
  CATERPILLAR = 2

Heisst das man muss beim Call Script CATERPILLAR = (id des helden) angeben damit dieser hinter den helden erscheint? o.o

Caterpillar

ERZENGEL

  • Gast
Caterpillar
« Antwort #10 am: Mai 05, 2008, 01:19:51 »
Nö ^^
Einfach im Skript hinter CATERPILLAR = die ID eines Switches schreiben, mit dem du das Skript (de-)aktivierst.

Caterpillar

Talyana Meriweather Rahl

  • Gast
Caterpillar
« Antwort #11 am: Mai 05, 2008, 01:53:02 »
Achso^^ cool xD gut ^-^
Das is einfacher und irgendwie feiner =P na ok beides is nervig aber praktisch^^
Danke für die schnelle Antwort^^

Re: Caterpillar

Offline PD

  • Mr. MACK-Tile
  • ***
  • Beiträge: 277
    • Nocturn Offiziell (Youtube-Kanal)
Re: Caterpillar
« Antwort #12 am: November 19, 2008, 10:56:01 »
hm...bei mir gehts net...
ich hab den switch erstellt, extra mit der id 2 wies ja voreigestellt is un lass den switch auch gleich im intro text aktiviere aber wenn ich dann n party mitglied bekomm lauft der net hinter mir her...
was is dann falsch? ich mein ich hab des script jetzt 3 ma eingefügt, wieder gelöscht, wieder eingefügt un auf fehler durchsucht aber stimmt alles...
warum gehts dann aber net?

Re: Caterpillar

Offline Redeemer

  • Database-Verunstalter
  • **
  • Beiträge: 179
Re: Caterpillar
« Antwort #13 am: November 19, 2008, 11:06:22 »
also bei mir gehts soweit ich weiß setzt sich der switch von allein auf on musst da nix extra schalten

Re: Caterpillar

Offline Lanari

  • Panty Lover
  • Database-Verunstalter
  • **
  • Beiträge: 124
  • FAIL BLOG!
Re: Caterpillar
« Antwort #14 am: November 19, 2008, 11:13:47 »
Danke Engel ^^ wollte es schon fast erfragen &lt;_&lt; ^^


 


 Bild des Monats

rooftop party

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