~Site
¤Accueil
¤Forum
¤Admin

~Base de scripts
¤Scripts de base
¤Scripts Menu
¤Scripts Combat
¤Scripts Système
¤Scripts Modifiés

Scripts de Base
Game_Temp
Game_System
Game_Switches
Game_Variables
Game_SelfSwitches
Game_Screen
Game_Picture
Game_Battler 1
Game_Battler 2
Game_Battler 3
Game_BattleAction
Game_Actor
Game_Enemy
Game_Actors
Game_Party
Game_Troop
Game_Map
Game_CommonEvent
Game_Character 1
Game_Character 2
Game_Character 3
Game_Event
Game_Player
Sprite_Character
Sprite_Battler
Sprite_Picture
Sprite_Timer
Spriteset_Map
Spriteset_Battle
Window_Base
Window_Selectable
Window_Command
Window_Help
Window_Gold
Window_PlayTime
Window_Steps
Window_MenuStatus
Window_Item
Window_Skill
Window_SkillStatus
Window_Target
Window_EquipLeft
Window_EquipRight
Window_EquipItem
Window_Status
Window_SaveFile
Window_ShopCommand
Window_ShopBuy
Window_ShopSell
Window_ShopNumber
Window_ShopStatus
Window_NameEdit
Window_NameInput
Window_InputNumber
Window_Message
Window_PartyCommand
Window_BattleStatus
Window_BattleResult
Window_DebugLeft
Window_DebugRight
Window_Dataset
Arrow_Base
Arrow_Enemy
Arrow_Actor
Interpreter 1
Interpreter 2
Interpreter 3
Interpreter 4
Interpreter 5
Interpreter 6
Interpreter 7
Scene_Title
Scene_Map
Scene_Menu
Scene_Item
Scene_Skill
Scene_Equip
Scene_Status
Scene_File
Scene_Save
Scene_Load
Scene_End
Scene_Battle 1
Scene_Battle 2
Scene_Battle 3
Scene_Battle 4
Scene_Shop
Scene_Name
Scene_Gameover
Scene_Debug
Main


Game_Event ::: posté le 2006-02-16 @ 09:38:00
Auteur: Yukihiro matsumoto

#============================================
# ¡ Game_Event
#----------------------------------------------
# @ƒCƒxƒ“ƒg‚ðˆµ‚¤ƒNƒ‰ƒX‚Å‚·BðŒ”»’è‚É‚æ‚éƒCƒxƒ“ƒgƒy[ƒWØ‚è‘Ö‚¦‚âA•À—ñˆ—
# ƒCƒxƒ“ƒgŽÀs‚Ȃǂ̋@”‚ðŽ‚Á‚Ä‚¨‚èAGame_Map ƒNƒ‰ƒX‚Ì“à•”‚ÅŽg—p‚³‚ê‚Ü‚·B
#============================================

class Game_Event < Game_Character
#------------------------------------------
# œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#------------------------------------------
attr_reader :trigger # ƒgƒŠƒK[
attr_reader :list # ŽÀs“à—e
attr_reader :starting # ‹N“®’†ƒtƒ‰ƒO
#------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
# map_id : ƒ}ƒbƒv ID
# event : ƒCƒxƒ“ƒg (RPG::Event)
#------------------------------------------
def initialize(map_id, event)
super()
@map_id = map_id
@event = event
@id = @event.id
@erased = false
@starting = false
@through = true
# ‰ŠúˆÊ’u‚Ɉړ®
moveto(@event.x, @event.y)
refresh
end
#------------------------------------------
# œ ‹N“®’†ƒtƒ‰ƒO‚̃NƒŠƒA
#------------------------------------------
def clear_starting
@starting = false
end
#------------------------------------------
# œ ƒI[ƒo[ƒgƒŠƒK[”»’è (“¯ˆÊ’u‚ð‹N“®ðŒ‚Æ‚·‚é‚©”Û‚©)
#------------------------------------------
def over_trigger?
# ƒOƒ‰ƒtƒBƒbƒN‚ªƒLƒƒƒ‰ƒNƒ^[‚ÅA‚·‚蔲‚¯ó‘Ԃł͂Ȃ¢ê‡
if @character_name != "" and not @through
# ‹N“®”»’è‚ͳ–Ê
return false
end
# ƒ}ƒbƒvã‚Å‚±‚̈ʒu‚ª’Ês•s‰Â”‚Èê‡
unless $game_map.passable?(@x, @y, 0)
# ‹N“®”»’è‚ͳ–Ê
return false
end
# ‹N“®”»’è‚Í“¯ˆÊ’u
return true
end
#------------------------------------------
# œ ƒCƒxƒ“ƒg‹N“®
#------------------------------------------
def start
# ŽÀs“à—e‚ª‹ó‚łȂ¢ê‡
if @list.size > 1
@starting = true
end
end
#------------------------------------------
# œ ˆêŽžÁ‹Ž
#------------------------------------------
def erase
@erased = true
refresh
end
#------------------------------------------
# œ ƒŠƒtƒŒƒbƒVƒ…
#------------------------------------------
def refresh
# ƒ[ƒJƒ‹•Ï” new_page ‚ð‰Šú‰»
new_page = nil
# ˆêŽžÁ‹Ž‚³‚ê‚Ä‚¢‚È‚¢ê‡
unless @erased
# ”Ô†‚̑傫‚¢ƒCƒxƒ“ƒgƒy[ƒW‚©‚燂ɒ²‚ׂé
for page in @event.pages.reverse
# ƒCƒxƒ“ƒgðŒ‚ð c ‚ÅŽQƉ”‚É
c = page.condition
# ƒXƒCƒbƒ` 1 ðŒŠm”F
if c.switch1_valid
if $game_switches[c.switch1_id] == false
next
end
end
# ƒXƒCƒbƒ` 2 ðŒŠm”F
if c.switch2_valid
if $game_switches[c.switch2_id] == false
next
end
end
# •Ï” ðŒŠm”F
if c.variable_valid
if $game_variables[c.variable_id] < c.variable_value
next
end
end
# ƒZƒ‹ƒtƒXƒCƒbƒ` ðŒŠm”F
if c.self_switch_valid
key = [@map_id, @event.id, c.self_switch_ch]
if $game_self_switches[key] != true
next
end
end
# ƒ[ƒJƒ‹•Ï” new_page ‚ðÝ’è
new_page = page
# ƒ‹[ƒv‚𔲂¯‚é
break
end
end
# ‘O‰ñ‚Æ“¯‚¶ƒCƒxƒ“ƒgƒy[ƒW‚Ìê‡
if new_page == @page
# ƒƒƒbƒhI—¹
return
end
# @page ‚ÉŒ»Ý‚̃Cƒxƒ“ƒgƒy[ƒW‚ðÝ’è
@page = new_page
# ‹N“®’†ƒtƒ‰ƒO‚ðƒNƒŠƒA
clear_starting
# ðŒ‚ð–ž‚½‚·ƒy[ƒW‚ª‚È‚¢ê‡
if @page == nil
# ŠeƒCƒ“ƒXƒ^ƒ“ƒX•Ï”‚ðÝ’è
@tile_id = 0
@character_name = ""
@character_hue = 0
@move_type = 0
@through = true
@trigger = nil
@list = nil
@interpreter = nil
# ƒƒƒbƒhI—¹
return
end
# ŠeƒCƒ“ƒXƒ^ƒ“ƒX•Ï”‚ðÝ’è
@tile_id = @page.graphic.tile_id
@character_name = @page.graphic.character_name
@character_hue = @page.graphic.character_hue
if @original_direction != @page.graphic.direction
@direction = @page.graphic.direction
@original_direction = @direction
@prelock_direction = 0
end
if @original_pattern != @page.graphic.pattern
@pattern = @page.graphic.pattern
@original_pattern = @pattern
end
@opacity = @page.graphic.opacity
@blend_type = @page.graphic.blend_type
@move_type = @page.move_type
@move_speed = @page.move_speed
@move_frequency = @page.move_frequency
@move_route = @page.move_route
@move_route_index = 0
@move_route_forcing = false
@walk_anime = @page.walk_anime
@step_anime = @page.step_anime
@direction_fix = @page.direction_fix
@through = @page.through
@always_on_top = @page.always_on_top
@trigger = @page.trigger
@list = @page.list
@interpreter = nil
# ƒgƒŠƒK[‚ª [•À—ñˆ—] ‚Ìê‡
if @trigger == 4
# •À—ñˆ——pƒCƒ“ƒ^ƒvƒŠƒ^‚ðì¬
@interpreter = Interpreter.new
end
# Ž©“®ƒCƒxƒ“ƒg‚Ì‹N“®”»’è
check_event_trigger_auto
end
#------------------------------------------
# œ ÚGƒCƒxƒ“ƒg‚Ì‹N“®”»’è
#------------------------------------------
def check_event_trigger_touch(x, y)
# ƒCƒxƒ“ƒgŽÀs’†‚Ìê‡
if $game_system.map_interpreter.running?
return
end
# ƒgƒŠƒK[‚ª [ƒCƒxƒ“ƒg‚©‚çÚG] ‚©‚ƒvƒŒƒCƒ„[‚ÌÀ•W‚ƈê’v‚µ‚½ê‡
if @trigger == 2 and x == $game_player.x and y == $game_player.y
# ƒWƒƒƒ“ƒv’†ˆÈŠO‚ÅA‹N“®”»’肪³–ʂ̃Cƒxƒ“ƒg‚È‚ç
if not jumping? and not over_trigger?
start
end
end
end
#------------------------------------------
# œ Ž©“®ƒCƒxƒ“ƒg‚Ì‹N“®”»’è
#------------------------------------------
def check_event_trigger_auto
# ƒgƒŠƒK[‚ª [ƒCƒxƒ“ƒg‚©‚çÚG] ‚©‚ƒvƒŒƒCƒ„[‚ÌÀ•W‚ƈê’v‚µ‚½ê‡
if @trigger == 2 and @x == $game_player.x and @y == $game_player.y
# ƒWƒƒƒ“ƒv’†ˆÈŠO‚ÅA‹N“®”»’肪“¯ˆÊ’u‚̃Cƒxƒ“ƒg‚È‚ç
if not jumping? and over_trigger?
start
end
end
# ƒgƒŠƒK[‚ª [Ž©“®ŽÀs] ‚Ìê‡
if @trigger == 3
start
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
super
# Ž©“®ƒCƒxƒ“ƒg‚Ì‹N“®”»’è
check_event_trigger_auto
# •À—ñˆ—‚ª—LŒø‚Ìê‡
if @interpreter != nil
# ŽÀs’†‚łȂ¢ê‡
unless @interpreter.running?
# ƒCƒxƒ“ƒg‚ðƒZƒbƒgƒAƒbƒv
@interpreter.setup(@list, @event.id)
end
# ƒCƒ“ƒ^ƒvƒŠƒ^‚ðXV
@interpreter.update
end
end
end
Design By RaZ © Watery Build 2005