~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_Character 1 ::: posté le 2006-02-16 @ 09:31:00
Auteur: Yukihiro matsumoto

#============================================
# ¡ Game_Character (•ªŠ„’è‹` 1)
#--------------------------------------------
# @ƒLƒƒƒ‰ƒNƒ^[‚ðˆµ‚¤ƒNƒ‰ƒX‚Å‚·B‚±‚̃Nƒ‰ƒX‚Í Game_Player ƒNƒ‰ƒX‚Æ Game_Event
# ƒNƒ‰ƒX‚̃X[ƒp[ƒNƒ‰ƒX‚Æ‚µ‚ÄŽg—p‚³‚ê‚Ü‚·B
#============================================

class Game_Character
#------------------------------------------
# œ ŒöŠJƒCƒ“ƒXƒ^ƒ“ƒX•Ï”
#------------------------------------------
attr_reader :id # ID
attr_reader :x # ƒ}ƒbƒv X À•W (˜_—À•W)
attr_reader :y # ƒ}ƒbƒv Y À•W (˜_—À•W)
attr_reader :real_x # ƒ}ƒbƒv X À•W (ŽÀÀ•W * 128)
attr_reader :real_y # ƒ}ƒbƒv Y À•W (ŽÀÀ•W * 128)
attr_reader :tile_id # ƒ^ƒCƒ‹ ID (0 ‚È‚ç–³Œø)
attr_reader :character_name # ƒLƒƒƒ‰ƒNƒ^[ ƒtƒ@ƒCƒ‹–¼
attr_reader :character_hue # ƒLƒƒƒ‰ƒNƒ^[ F‘Š
attr_reader :opacity # •s“§–¾“x
attr_reader :blend_type # ‡¬•û–@
attr_reader :direction # Œü‚«
attr_reader :pattern # ƒpƒ^[ƒ“
attr_reader :move_route_forcing # ˆÚ“®ƒ‹[ƒg‹­§ƒtƒ‰ƒO
attr_reader :through # ‚·‚蔲‚¯
attr_accessor :animation_id # ƒAƒjƒ[ƒVƒ‡ƒ“ ID
attr_accessor :transparent # “§–¾ó‘Ô
attr_accessor :move_speed
#------------------------------------------
# œ ƒIƒuƒWƒFƒNƒg‰Šú‰»
#------------------------------------------
def initialize
@id = 0
@x = 0
@y = 0
@real_x = 0
@real_y = 0
@tile_id = 0
@character_name = ""
@character_hue = 0
@opacity = 255
@blend_type = 0
@direction = 2
@pattern = 0
@move_route_forcing = false
@through = false
@animation_id = 0
@transparent = false
@original_direction = 2
@original_pattern = 0
@move_type = 0
@move_speed = 4
@move_frequency = 6
@move_route = nil
@move_route_index = 0
@original_move_route = nil
@original_move_route_index = 0
@walk_anime = true
@step_anime = false
@direction_fix = false
@always_on_top = false
@anime_count = 0
@stop_count = 0
@jump_count = 0
@jump_peak = 0
@wait_count = 0
@locked = false
@prelock_direction = 0
end
#------------------------------------------
# œ ˆÚ“®’†”»’è
#------------------------------------------
def moving?
# ˜_—À•W‚ÆŽÀÀ•W‚ªˆá‚Á‚Ä‚¢‚ê‚Έړ®’†
return (@real_x != @x * 128 or @real_y != @y * 128)
end
#------------------------------------------
# œ ƒWƒƒƒ“ƒv’†”»’è
#------------------------------------------
def jumping?
# ƒWƒƒƒ“ƒvƒJƒEƒ“ƒg‚ª 0 ‚æ‚è‘å‚«‚¯‚ê‚΃Wƒƒƒ“ƒv’†
return @jump_count > 0
end
#------------------------------------------
# œ Žp¨‚Ì‹¸³
#------------------------------------------
def straighten
# ˆÚ“®ŽžƒAƒjƒ‚Ü‚½‚Í’âŽ~ŽžƒAƒjƒ‚ª ON ‚̏ꍇ
if @walk_anime or @step_anime
# ƒpƒ^[ƒ“‚ð 0 ‚ɐݒè
@pattern = 0
end
# ƒAƒjƒƒJƒEƒ“ƒg‚ðƒNƒŠƒA
@anime_count = 0
# ƒƒbƒN‘O‚ÌŒü‚«‚ðƒNƒŠƒA
@prelock_direction = 0
end
#------------------------------------------
# œ ˆÚ“®ƒ‹[ƒg‚Ì‹­§
# move_route : V‚µ‚¢ˆÚ“®ƒ‹[ƒg
#------------------------------------------
def force_move_route(move_route)
# ƒIƒŠƒWƒiƒ‹‚̈ړ®ƒ‹[ƒg‚ð•Û‘¶
if @original_move_route == nil
@original_move_route = @move_route
@original_move_route_index = @move_route_index
end
# ˆÚ“®ƒ‹[ƒg‚ð•ÏX
@move_route = move_route
@move_route_index = 0
# ˆÚ“®ƒ‹[ƒg‹­§ƒtƒ‰ƒO‚ðƒZƒbƒg
@move_route_forcing = true
# ƒƒbƒN‘O‚ÌŒü‚«‚ðƒNƒŠƒA
@prelock_direction = 0
# ƒEƒFƒCƒgƒJƒEƒ“ƒg‚ðƒNƒŠƒA
@wait_count = 0
# ƒJƒXƒ^ƒ€ˆÚ“®
move_type_custom
end
#------------------------------------------
# œ ’ʍs‰Â””»’è
# x : X À•W
# y : Y À•W
# d : •ûŒü (0,2,4,6,8) ¦ 0 = ‘S•ûŒü’ʍs•s‰Â‚̏ꍇ‚ð”»’è (ƒWƒƒƒ“ƒv—p)
#------------------------------------------
def passable?(x, y, d)
# V‚µ‚¢À•W‚ð‹‚ß‚é
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# À•W‚ªƒ}ƒbƒvŠO‚̏ꍇ
unless $game_map.valid?(new_x, new_y)
# ’ʍs•s‰Â
return false
end
# ‚·‚蔲‚¯ ON ‚̏ꍇ
if @through
# ’ʍs‰Â
return true
end
# ˆÚ“®Œ³‚̃^ƒCƒ‹‚©‚çŽw’è•ûŒü‚ɏo‚ç‚ê‚È‚¢ê‡
unless $game_map.passable?(x, y, d, self)
# ’ʍs•s‰Â
return false
end
# ˆÚ“®æ‚̃^ƒCƒ‹‚ÉŽw’è•ûŒü‚©‚ç“ü‚ê‚È‚¢ê‡
unless $game_map.passable?(new_x, new_y, 10 - d)
# ’ʍs•s‰Â
return false
end
# ‘SƒCƒxƒ“ƒg‚̃‹[ƒv
for event in $game_map.events.values
# ƒCƒxƒ“ƒg‚̍À•W‚ªˆÚ“®æ‚ƈê’v‚µ‚½ê‡
if event.x == new_x and event.y == new_y
# ‚·‚蔲‚¯ OFF ‚È‚ç
unless event.through
# Ž©•ª‚ªƒCƒxƒ“ƒg‚̏ꍇ
if self != $game_player
# ’ʍs•s‰Â
return false
end
# Ž©•ª‚ªƒvƒŒƒCƒ„[‚ŁA‘ŠŽè‚̃Oƒ‰ƒtƒBƒbƒN‚ªƒLƒƒƒ‰ƒNƒ^[‚̏ꍇ
if event.character_name != ""
# ’ʍs•s‰Â
return false
end
end
end
end
# ƒvƒŒƒCƒ„[‚̍À•W‚ªˆÚ“®æ‚ƈê’v‚µ‚½ê‡
if $game_player.x == new_x and $game_player.y == new_y
# ‚·‚蔲‚¯ OFF ‚È‚ç
unless $game_player.through
# Ž©•ª‚̃Oƒ‰ƒtƒBƒbƒN‚ªƒLƒƒƒ‰ƒNƒ^[‚̏ꍇ
if @character_name != ""
# ’ʍs•s‰Â
return false
end
end
end
# ’ʍs‰Â
return true
end
#------------------------------------------
# œ ƒƒbƒN
#------------------------------------------
def lock
# ‚·‚łɃƒbƒN‚³‚ê‚Ä‚¢‚éê‡
if @locked
# ƒƒƒbƒhI—¹
return
end
# ƒƒbƒN‘O‚ÌŒü‚«‚ð•Û‘¶
@prelock_direction = @direction
# ƒvƒŒƒCƒ„[‚Ì•û‚ðŒü‚­
turn_toward_player
# ƒƒbƒN’†ƒtƒ‰ƒO‚ðƒZƒbƒg
@locked = true
end
#------------------------------------------
# œ ƒƒbƒN’†”»’è
#------------------------------------------
def lock?
return @locked
end
#------------------------------------------
# œ ƒƒbƒN‰ðœ
#------------------------------------------
def unlock
# ƒƒbƒN‚³‚ê‚Ä‚¢‚È‚¢ê‡
unless @locked
# ƒƒƒbƒhI—¹
return
end
# ƒƒbƒN’†ƒtƒ‰ƒO‚ðƒNƒŠƒA
@locked = false
# Œü‚«ŒÅ’è‚Å‚È‚¢ê‡
unless @direction_fix
# ƒƒbƒN‘O‚ÌŒü‚«‚ª•Û‘¶‚³‚ê‚Ä‚¢‚ê‚Î
if @prelock_direction != 0
# ƒƒbƒN‘O‚ÌŒü‚«‚𕜋A
@direction = @prelock_direction
end
end
end
#------------------------------------------
# œ Žw’èˆÊ’u‚Ɉړ®
# x : X À•W
# y : Y À•W
#------------------------------------------
def moveto(x, y)
@x = x % $game_map.width
@y = y % $game_map.height
@real_x = @x * 128
@real_y = @y * 128
@prelock_direction = 0
end
#------------------------------------------
# œ ‰æ–Ê X À•W‚̎擾
#------------------------------------------
def screen_x
# ŽÀÀ•W‚ƃ}ƒbƒv‚Ì•Ž¦ˆÊ’u‚©‚ç‰æ–ʍÀ•W‚ð‹‚ß‚é
return (@real_x - $game_map.display_x + 3) / 4 + 16
end
#------------------------------------------
# œ ‰æ–Ê Y À•W‚̎擾
#------------------------------------------
def screen_y
# ŽÀÀ•W‚ƃ}ƒbƒv‚Ì•Ž¦ˆÊ’u‚©‚ç‰æ–ʍÀ•W‚ð‹‚ß‚é
y = (@real_y - $game_map.display_y + 3) / 4 + 32
# ƒWƒƒƒ“ƒvƒJƒEƒ“ƒg‚ɉž‚¶‚Ä Y À•W‚ð¬‚³‚­‚·‚é
if @jump_count >= @jump_peak
n = @jump_count - @jump_peak
else
n = @jump_peak - @jump_count
end
return y - (@jump_peak * @jump_peak - n * n) / 2
end
#------------------------------------------
# œ ‰æ–Ê Z À•W‚̎擾
# height : ƒLƒƒƒ‰ƒNƒ^[‚̍‚‚³
#------------------------------------------
def screen_z(height = 0)
# Å‘O–Ê‚É•Ž¦ƒtƒ‰ƒO‚ª ON ‚̏ꍇ
if @always_on_top
# –³ðŒ‚É 999
return 999
end
# ŽÀÀ•W‚ƃ}ƒbƒv‚Ì•Ž¦ˆÊ’u‚©‚ç‰æ–ʍÀ•W‚ð‹‚ß‚é
z = (@real_y - $game_map.display_y + 3) / 4 + 32
# ƒ^ƒCƒ‹‚̏ꍇ
if @tile_id > 0
# ƒ^ƒCƒ‹‚̃vƒ‰ƒCƒIƒŠƒeƒB * 32 ‚ð‘«‚·
return z + $game_map.priorities[@tile_id] * 32
# ƒLƒƒƒ‰ƒNƒ^[‚̏ꍇ
else
# ‚‚³‚ª 32 ‚ð’´‚¦‚Ä‚¢‚ê‚Î 31 ‚ð‘«‚·
return z + ((height > 32) ? 31 : 0)
end
end
#------------------------------------------
# œ –΂ݐ[‚³‚̎擾
#------------------------------------------
def bush_depth
# ƒ^ƒCƒ‹‚̏ꍇA‚Ü‚½‚͍őO–Ê‚É•Ž¦ƒtƒ‰ƒO‚ª ON ‚̏ꍇ
if @tile_id > 0 or @always_on_top
return 0
end
# ƒWƒƒƒ“ƒv’†ˆÈŠO‚Ŗ΂ݑ®«‚̃^ƒCƒ‹‚È‚ç 12A‚»‚êˆÈŠO‚È‚ç 0
if @jump_count == 0 and $game_map.bush?(@x, @y)
return 12
else
return 0
end
end
#------------------------------------------
# œ ’nŒ`ƒ^ƒO‚̎擾
#------------------------------------------
def terrain_tag
return $game_map.terrain_tag(@x, @y)
end
end
Design By RaZ © Watery Build 2005