collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Infrared System Script  (Gelesen 1043 mal)

Offline Kasaar

  • Epic Scripter !!
  • Eventmeister
  • ***
  • Beiträge: 305
  • Satanistischer Misantroph... noch Fragen? ]:)
Infrared System Script
« am: August 12, 2010, 21:56:07 »
Ihr wollt ein Event unsichtbar machen und es soll trotzdem da sein? Ganz einfach mit dem Stealth Script...
Was braucht ihr?
- Ein Item und ein Common Event...

Das Item ist sozusagen euer Infrarotsichtgerät, welches durch den Common Event befehl mit der Zeile
$infrared.toggle ein/aus geschaltet wird...
Man kann es natürlich auch durch ein Event auf der Map machen...
Außerdem braucht ihr noch das wichtigste:
Das Script...

Spoiler for Hiden:
#-------------------------------------------------------------------------------
#
#                           Infrared System
#                    code by HamsterHai aka. Sartekk
#                           Released 12.08.2010
#                           version 1.0
#
#-------------------------------------------------------------------------------

# Comment um ein Event als Stealth anzeigen zu lassen
STEALTH_COMMAND = "Stealth"

# Comment um einem Stealth Event einen gewissen Schimmer ala MGS zu geben
LIGHTSEER_COMMAND = "Lightseer"

# Sichtbarkeitsgrad bei Lighseer
LIGHTSEER_GRADE = 40

# Comment um mit einem gestealthten Event interagieren zu können
ST_INTERACT_COMMAND = "Interact"

# Condition ob bei Toggle Player auch rot werden soll
RED_PLAYER = true

#-------------------------------------------------------------------------------

class Infrarot
 
  attr_accessor :toggled
 
  def initialize
    @toggled = false
  end
 
  def toggle
    @old_tone = $game_map.screen.tone
    case @toggled
    when true;@toggled = false
      $game_map.screen.start_tone_change(Tone.new(0,0,0,0),1)
      if RED_PLAYER
        $game_player.blend_type = 0
      end
    when false;@toggled = true
      $game_map.screen.start_tone_change(Tone.new(255,70,70,20),1)
      if RED_PLAYER
        $game_player.blend_type = 1
      end
    end
  end
end

class Scene_Title < Scene_Base
  alias infrarot create_game_objects
  def create_game_objects
    infrarot
    $infrared = Infrarot.new
  end
end

class Game_Event < Game_Character
  alias infrarot_init initialize
  alias infrarot_refresh refresh
  alias infrared_update update
 
  attr_reader :id
  attr_accessor :interact
  attr_accessor :lightseer
  attr_accessor :stealth
 
  def initialize(map_id, event)
    infratoggle
    @lightseer = lightseer
    @stealth = stealth
    @interact = interact
    infrarot_init(map_id, event)
  end
 
  def refresh
    infrarot_refresh
    @stealth = check_comment(STEALTH_COMMAND)
    @lightseer = check_comment(LIGHTSEER_COMMAND)
    @interact = check_comment(ST_INTERACT_COMMAND)
  end
 
  def update
    infrared_update
    infratoggle
  end
 
  def infratoggle
    if @stealth
      case $infrared.toggled
      when false
        if @lightseer
          @opacity = LIGHTSEER_GRADE if not @opacity == LIGHTSEER_GRADE
        else
          @opacity = 0 if not @opacity == 0
        end
        @through = true
      when true
        @opacity = 255
        @blend_type = 1 if not @blend_type== 1
        @through = false
      end
    else
      case $infrared.toggled
      when true;@blend_type = 1 if not @blend_type== 1
      when false;@blend_type = 0 if not @blend_type == 0 
      end
    end
  end
 
  def check_comment(comment)
    com = comment.downcase
    return false if @list.nil? or @list.size <= 0
    for item in @list
      if item.code == 108 or item.code == 408
        if item.parameters[0].include?(com)
          return true
        end
      end
    end
    return false
  end
 
  alias infra_touch check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    return if not @interact and not $infrared.toggled and @stealth
    check_event_trigger_touch(x, y)
  end
 
end

class Game_Player < Game_Character
  attr_accessor   :opacity               
  attr_accessor   :blend_type 
 
 
  def check_event_trigger_here(triggers)
    return false if $game_map.interpreter.running?
    result = false
    for event in $game_map.events_xy(@x, @y)
      return if not event.interact and not $infrared.toggled and event.stealth
      if triggers.include?(event.trigger) and event.priority_type != 1
        event.start
        result = true if event.starting
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Determine if Front Event is Triggered
  #     triggers : Trigger array
  #--------------------------------------------------------------------------
  def check_event_trigger_there(triggers)
    return false if $game_map.interpreter.running?
    result = false
    front_x = $game_map.x_with_direction(@x, @direction)
    front_y = $game_map.y_with_direction(@y, @direction)
    for event in $game_map.events_xy(front_x, front_y)
      return if not event.interact and not $infrared.toggled and event.stealth
      if triggers.include?(event.trigger) and event.priority_type == 1
        event.start
        result = true
      end
    end
    if result == false and $game_map.counter?(front_x, front_y)
      front_x = $game_map.x_with_direction(front_x, @direction)
      front_y = $game_map.y_with_direction(front_y, @direction)
      for event in $game_map.events_xy(front_x, front_y)
        return if not event.interact and not $infrared.toggled and event.stealth
        if triggers.include?(event.trigger) and event.priority_type == 1
          event.start
          result = true
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Determine if Touch Event is Triggered
  #     x : x-coordinate
  #     y : y-coordinate
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    return false if $game_map.interpreter.running?
    result = false
    for event in $game_map.events_xy(x, y)
      return if not event.interact and not $infrared.toggled and event.stealth
      if [1,2].include?(event.trigger) and event.priority_type == 1
        event.start
        result = true
      end
    end
    return result
  end
end

Das Script ist auf Version 1.0
v 2.0 folgt bald mit neuen features ;) Also freut euch drauf

viel Spaß damit
mfG HamsterHai
Besucht mich auf


Und gebt Kommentare im Blog =)

Re: Infrared System Script

Offline Colonios

  • Maker Nerd
  • VX-Kenner
  • ****
  • Beiträge: 596
  • Events <3
Re: Infrared System Script
« Antwort #1 am: August 12, 2010, 22:57:56 »
Ich versteh nicht so ganz, was du mit unsichtbar meinst...? Kann man doch auch mit nem Switch machen, der durch das CE im Item an oder aus geschaltet wird...?

Bitte genauer erklären, danke :)

MfG

Re: Infrared System Script

Offline rayman

  • Eventkenner
  • Eventmeister
  • ***
  • Beiträge: 358
Re: Infrared System Script
« Antwort #2 am: August 12, 2010, 23:21:18 »
Ich versteh das jetzt auch nicht so ganz :(
Kannst du das vllt. genauer erklären?
RPG-EVOLUTION:



Re: Infrared System Script

Offline Kasaar

  • Epic Scripter !!
  • Eventmeister
  • ***
  • Beiträge: 305
  • Satanistischer Misantroph... noch Fragen? ]:)
Re: Infrared System Script
« Antwort #3 am: August 13, 2010, 09:16:33 »
doch man kann das ganze mit switchs machen, allerdings ist es unnötig weil man dafür dann mehrere Conditions braucht oder 2 pages.. mit dem Script brauhcst du max. 3 comments...
Bin nicht so gut im erklären, also hab ich ma 2 Screens gemacht

Einmal mit Toggle = aus, also ohne infrarot zu aktivieren...
Spoiler for Hiden:

Und einmal mit Toggle = an
Spoiler for Hiden:

Bei Toggle = aus sieht man den im stealth ohne lightseer nicht, die mit lightseer kann man nur ein bisschen erkennen(ala metal gear solid).. ist Toggle allerdings an sieht man alles in einem Rot Ton, auch die gestealthten

Aber wie gesagt, bis jetzt ist das interagieren noch nicht fertig, dass wird in v2.0 kommen
Besucht mich auf


Und gebt Kommentare im Blog =)

 


 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