collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: [CBSNIPPET]ChaosBlenders Code Snippets  (Gelesen 1410 mal)

chaosBlender

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« am: Mai 22, 2008, 11:48:24 »
Also...

In diesem Thread werde ich nach und nach, immer wieder kleine Codesnippets reineditieren, die euch das Leben mitm Maker n bisschen vereinfachen sollen. Vielleicht findet's ja jemand nützlich ^^

Event ID aus Namen auslesen:
Spoiler for Hiden:

chaosBlenders
=* Event ID aus Namen auslesen *=
~snippet~

Das ist ein kurzes Codesnippet, mit dem Ihr die entsprechende Event-ID zum angegebenen Eventnamen rausfindet.

Wie wird es genutzt?

Einfach per Call-Script Befehl:
[blockquote]$variable = $game_map.get_id_from_name(name)
Den Parameter name durch den Eventnamen in Anführungszeichen ersetzen (z.B. "HalloEvent")[/blockquote]Wichtig ist, dass jedes Event nen eigenen Namen besitzt. Haben zwei oder mehr Events den gleichen Namen, gibt die Funktion die höhchste Event ID zurück.

class Game_Map
 
     def setup_events
       @events = {}          # Map event
       @event_name = {}
       for i in @map.events.keys
         @events[i] = Game_Event.new(@map_id, @map.events[i])
         @event_name[i] = @map.events[i].name
       end
       @common_events = {}   # Common event
       for i in 1...$data_common_events.size
         @common_events[i] = Game_CommonEvent.new(i)
       end
     end
    
      def get_id_from_name(name)
       @evid = @event_name.index(name)
       return @evid
     end
 end

Einfach über Main einfügen.

Anmerkung: ERZENGEL hat n Snippet geschrieben, mit dem die Event-ID's als Array ausgegeben werden. Vielleicht isser ja so nett, das hier zu posten ^^
Instant Transfer:
Spoiler for Hiden:

chaosBlenders
=* Instant Transfer *=
~snippet~

Das hier ist ein kleines Snippet, mit dem ihr mit Hilfe eines Switches das Fade-Out und Fade-In bei Transfer abschalten könnt. So wird der Spieler direkt und ohne Übergang auf die nächste Mapa geportet (Praktisch, wenn man z.B. ne Riesenmap aus lauter kleineren Maps machen mächte).

Wie wird es genutzt?

Zunächst muss ein Switch erstellt werden (Name ist dabei wurscht).

Die ID des Switches wird dann direkt am Anfang des Scripts eingefügt bei:
[blockquote]SWITCH_INSTATELE = switch_id
Den Parameter switch durch die ID des erstellten Switches ersetzen.
[/blockquote]Danach muss einfach der Switch AN oder AUS-geschalten werden, um den Instant-Teleport zu aktivieren oder zu deaktivieren.

class Scene_Map
  
  SWITCH_INSTATELE = switch_id
  
  alias cb_it_update_transfer_player update_transfer_player
  def update_transfer_player
    if $game_switches[SWITCH_INSTATELE] == true
      return unless $game_player.transfer?
      @spriteset.dispose              
      $game_player.perform_transfer  
      $game_map.autoplay              
      $game_map.update
      @spriteset = Spriteset_Map.new  
      Input.update
    else
      cb_it_update_transfer_player
    end
  end
end

Einfach über Main einfügen.
Dash Stopper:
Spoiler for Hiden:

chaosBlenders
=* Dash Stopper *=
~snippet~

Hier ein kleines Snippet, um global (im ganzen Spiel) das Rennen (bei gedrückter Shift-Taste) abzuschalten.

Wie wird es genutzt?

Das Script wird einfach, so wie es ist, über Main eingefügt.

class Game_Character
    def update_move
    distance = 2 ** @move_speed
    @real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
    @real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
    @real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
    @real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
    update_bush_depth unless moving?
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
  end
end

Woratana hat nen wesentlich einfacheren Weg gefunden, das Dashen zu stoppen (die Funktion muss ich irgendwie übersehen haben ^^):

Über Main einfügen:
class Game_Player
  def dash?
     return false
  end
end

Danke nochma, Wora ^^

-chaosBlender
« Letzte Änderung: Juni 10, 2008, 10:59:07 von chaosBlender »

[CBSNIPPET]ChaosBlenders Code Snippets

Dainreth

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #1 am: Mai 22, 2008, 12:41:20 »
Ich frage mich immer wieder, wofür man diese Funktion gebrauchen kann. Das Skript sieht ganz nett aus, schön, dass du dir die Arbeit gemacht hast. Aber wie gesagt, mich würde wirklich mal interessieren, wofür man das nutzen kann.
btw. schön, dass wir noch einen Skripter an Bord haben! :)

[CBSNIPPET]ChaosBlenders Code Snippets

chaosBlender

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #2 am: Mai 22, 2008, 12:43:07 »
Naja, weiß net... Irgendjemandem fällt bestimmt was ein. Ich habs benutzt, um bestimmte Bilder bei einem Event anzeigen zu lassen, ohne dass ich zuerst die Event-ID raussuchen, bzw. die x und y koordinaten des Events auslesen muss^^

[CBSNIPPET]ChaosBlenders Code Snippets

Dainreth

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #3 am: Mai 22, 2008, 13:13:30 »
Ach so verstehe, der Einfachheit wegen ;)

[CBSNIPPET]ChaosBlenders Code Snippets

chaosBlender

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #4 am: Juni 10, 2008, 09:32:25 »
So, habe mal ein neues Snippet mit in die Liste gepackt, mit dem man das Fade-Out/In beim Transfer per Switch abschalten kann.

EDIT:Habe noch ein Snippet eingefügt, das das Dashen im ganzen Spiel abschaltet.
« Letzte Änderung: Juni 10, 2008, 09:40:52 von chaosBlender »

[CBSNIPPET]ChaosBlenders Code Snippets

woratana

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #5 am: Juni 10, 2008, 10:54:34 »
Nice snippets :D

Though, some script I think there is easier way to do it.
For example, to stop actor from dash, you can do this

class Game_Player
  def dash?
     return false
  end
end

Also, be careful about the compatibility issue when you script. :)

[CBSNIPPET]ChaosBlenders Code Snippets

chaosBlender

  • Gast
[CBSNIPPET]ChaosBlenders Code Snippets
« Antwort #6 am: Juni 10, 2008, 10:58:05 »
Oh, you're right xD. Wonder why I haven't seen this function xP. Thanks wora ^^

Yeah and about the compatibility: I try to make the scripts as compatible as possible, though I haven't encountered any problems with the scripts yet happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]

 


 Bild des Monats

rooftop party

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