forum rpg maker kingdom
Administrateurs : dante, Ryu
 
 forum rpg maker kingdom  marche central  script 

 Personnage qui se suivent

Nouveau sujet   Répondre
 
Bas de pagePages : 1  
myk22
espion
myk22
136 messages postés
   Posté le 13-09-2005 à 19:10:50   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

Il suffit de créer un script "Game_Party_Actor" et de coller ce code dedans :

il faut le mettre en dessou de main

#
#

# Train_Actor

#

# fukuyama@alles.or.jp

# http://www4.big.or.jp/~fukuyama/

#



# ●透明状態用スイッチ設定

# true だとスイッチ制御を行う

# TRAIN_ACTOR_TRANSPARENT_SWITCH = false

TRAIN_ACTOR_TRANSPARENT_SWITCH = true



# ●透明状態用スイッチ番号

# この番号のスイッチがONだと透明になる

TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 20



# 定数

#Input::DOWN = 2

#Input::LEFT = 4

#Input::RIGHT = 6

#Input::UP = 8

DOWN_LEFT = 1

DOWN_RIGHT = 3

UP_LEFT = 7

UP_RIGHT = 9

JUMP = 5



class Game_Party_Actor < Game_Character

def initialize

super()

@through = true

end

def setup(actor)

# キャラクターのファイル名と色相を設定

if actor != nil

@character_name = actor.character_name

@character_hue = actor.character_hue

else

@character_name = ""

@character_hue = 0

end

# 不透明度と合成方法を初期化

@opacity = 255

@blend_type = 0

end

def screen_z(height = 0)

if $game_player.x == @x and $game_player.y == @y

return $game_player.screen_z(height) - 1

end

super(height)

end

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

# ● 下に移動

# turn_enabled : その場での向き変更を許可するフラグ

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

def move_down(turn_enabled = true)

# 下を向く

if turn_enabled

turn_down

end

# 通行可能な場合

if passable?(@x, @y, Input::DOWN)

# 下を向く

turn_down

# 座標を更新

@y += 1

end

end

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

# ● 左に移動

# turn_enabled : その場での向き変更を許可するフラグ

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

def move_left(turn_enabled = true)

# 左を向く

if turn_enabled

turn_left

end

# 通行可能な場合

if passable?(@x, @y, Input::LEFT)

# 左を向く

turn_left

# 座標を更新

@x -= 1

end

end

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

# ● 右に移動

# turn_enabled : その場での向き変更を許可するフラグ

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

def move_right(turn_enabled = true)

# 右を向く

if turn_enabled

turn_right

end

# 通行可能な場合

if passable?(@x, @y, Input::RIGHT)

# 右を向く

turn_right

# 座標を更新

@x += 1

end

end

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

# ● 上に移動

# turn_enabled : その場での向き変更を許可するフラグ

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

def move_up(turn_enabled = true)

# 上を向く

if turn_enabled

turn_up

end

# 通行可能な場合

if passable?(@x, @y, Input::UP)

# 上を向く

turn_up

# 座標を更新

@y -= 1

end

end

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

# ● 左下に移動

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

def move_lower_left

# 向き固定でない場合

unless @direction_fix

# 右向きだった場合は左を、上向きだった場合は下を向く

@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)

end

# 下→左、左→下 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or

(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))

# 座標を更新

@x -= 1

@y += 1

end

end

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

# ● 右下に移動

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

def move_lower_right

# 向き固定でない場合

unless @direction_fix

# 左向きだった場合は右を、上向きだった場合は下を向く

@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)

end

# 下→右、右→下 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or

(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))

# 座標を更新

@x += 1

@y += 1

end

end

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

# ● 左上に移動

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

def move_upper_left

# 向き固定でない場合

unless @direction_fix

# 右向きだった場合は左を、下向きだった場合は上を向く

@direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)

end

# 上→左、左→上 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or

(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))

# 座標を更新

@x -= 1

@y -= 1

end

end

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

# ● 右上に移動

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

def move_upper_right

# 向き固定でない場合

unless @direction_fix

# 左向きだった場合は右を、下向きだった場合は上を向く

@direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)

end

# 上→右、右→上 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or

(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))

# 座標を更新

@x += 1

@y -= 1

end

end



def set_move_speed(move_speed)

@move_speed = move_speed

end

end



class Spriteset_Map

def setup_actor_character_sprites?

return @setup_actor_character_sprites_flag != nil

end

def setup_actor_character_sprites(characters)

if !setup_actor_character_sprites?

index_game_player = 0

@character_sprites.each_index do |i|

if @character_sprites[i].character.instance_of?(Game_Player)

index_game_player = i

break

end

end

for character in characters.reverse

@character_sprites.unshift(

Sprite_Character.new(@viewport1, character)

)

end

@setup_actor_character_sprites_flag = true

end

end

end



class Scene_Map

def setup_actor_character_sprites(characters)

@spriteset.setup_actor_character_sprites(characters)

end

end



class Game_Party

def set_transparent_actors(transparent)

@transparent = transparent

end

def setup_actor_character_sprites

if @characters == nil

@characters = []

for i in 1 .. 4

@characters.push(Game_Party_Actor.new)

end

end

if @actors_chach == nil

@actors_chach = []

end

if @actors_chach != @actors

@actors_chach = @actors.clone

for i in 1 .. 4

@characters[i - 1].setup(actors[i])

end

end

if $scene.instance_of?(Scene_Map)

$scene.setup_actor_character_sprites(@characters)

end

end

def update_party_actors

setup_actor_character_sprites

transparent = $game_player.transparent

if transparent == false

if TRAIN_ACTOR_TRANSPARENT_SWITCH

transparent = $game_switches[TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX]

else

transparent = $game_player.transparent

end

end

for character in @characters

character.transparent = transparent

character.set_move_speed($game_player.get_move_speed)

character.update

end

end

def moveto_party_actors( x, y )

setup_actor_character_sprites

for character in @characters

character.moveto( x, y )

end

if @move_list == nil

@move_list = []

end

for i in 0 .. 10

@move_list[i] = nil

end

end

def move_party_actors

if @move_list == nil

@move_list = []

for i in 0 .. 10

@move_list[i] = nil

end

end

@move_list.each_index do |i|

if @characters[i] != nil

case @move_list[i].type

when Input::DOWN

@characters[i].move_down(@move_list[i].args[0])

when Input::LEFT

@characters[i].move_left(@move_list[i].args[0])

when Input::RIGHT

@characters[i].move_right(@move_list[i].args[0])

when Input::UP

@characters[i].move_up(@move_list[i].args[0])

when DOWN_LEFT

@characters[i].move_lower_left

when DOWN_RIGHT

@characters[i].move_lower_right

when UP_LEFT

@characters[i].move_upper_left

when UP_RIGHT

@characters[i].move_upper_right

when JUMP

@characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])

end

end

end

end

class Move_List_Element

def initialize(type,args)

@type = type

@args = args

end

def type() return @type end

def args() return @args end

end

def add_move_list(type,*args)

@move_list.unshift(Move_List_Element.new(type,args)).pop

end

def move_down_party_actors(turn_enabled = true)

move_party_actors

add_move_list(Input::DOWN,turn_enabled)

end

def move_left_party_actors(turn_enabled = true)

move_party_actors

add_move_list(Input::LEFT,turn_enabled)

end

def move_right_party_actors(turn_enabled = true)

move_party_actors

add_move_list(Input::RIGHT,turn_enabled)

end

def move_up_party_actors(turn_enabled = true)

move_party_actors

add_move_list(Input::UP,turn_enabled)

end

def move_lower_left_party_actors

move_party_actors

add_move_list(DOWN_LEFT)

end

def move_lower_right_party_actors

move_party_actors

add_move_list(DOWN_RIGHT)

end

def move_upper_left_party_actors

move_party_actors

add_move_list(UP_LEFT)

end

def move_upper_right_party_actors

move_party_actors

add_move_list(UP_RIGHT)

end

def jump_party_actors(x_plus, y_plus)

move_party_actors

add_move_list(JUMP,x_plus, y_plus)

end

end



module Game_Player_Module

def update

$game_party.update_party_actors

super

end

def moveto( x, y )

super

$game_party.moveto_party_actors( x, y )

end

def move_down(turn_enabled = true)

if passable?(@x, @y, Input::DOWN)

$game_party.move_down_party_actors(turn_enabled)

end

super(turn_enabled)

end

def move_left(turn_enabled = true)

if passable?(@x, @y, Input::LEFT)

$game_party.move_left_party_actors(turn_enabled)

end

super(turn_enabled)

end

def move_right(turn_enabled = true)

if passable?(@x, @y, Input::RIGHT)

$game_party.move_right_party_actors(turn_enabled)

end

super(turn_enabled)

end

def move_up(turn_enabled = true)

if passable?(@x, @y, Input::UP)

$game_party.move_up_party_actors(turn_enabled)

end

super(turn_enabled)

end

def move_lower_left

# 下→左、左→下 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or

(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))

$game_party.move_lower_left_party_actors

end

super

end

def move_lower_right

# 下→右、右→下 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or

(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))

$game_party.move_lower_right_party_actors

end

super

end

def move_upper_left

# 上→左、左→上 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or

(passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))

$game_party.move_upper_left_party_actors

end

super

end

def move_upper_right

# 上→右、右→上 のどちらかのコースが通行可能な場合

if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or

(passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))

$game_party.move_upper_right_party_actors

end

super

end

def jump(x_plus, y_plus)

# 新しい座標を計算

new_x = @x + x_plus

new_y = @y + y_plus

# 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合

if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)

$game_party.jump_party_actors(x_plus, y_plus)

end

super(x_plus, y_plus)

end



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

# move_speed を外から見れるように

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

def get_move_speed

return @move_speed

end

end



class Game_Player

include Game_Player_Module

end



Message édité le 13-09-2005 à 19:16:36 par myk22
dante
administrateur
dante
254 messages postés
   Posté le 13-09-2005 à 19:26:36   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

merci pour ce script je vais le tester et vous dire ce que ca donne
je l'est tester mais il ya trop de bug je vais essayer de reparer

Message édité le 13-09-2005 à 19:32:45 par dante
myk22
espion
myk22
136 messages postés
   Posté le 13-09-2005 à 19:36:44   Voir le profil de myk22 (Offline)   Répondre à ce message   http://createurderpg.forumactif.com   Envoyer un message privé à myk22   

moi je l'ai essaye qu'un petit moment alors je sais pas dire
dante
administrateur
dante
254 messages postés
   Posté le 13-09-2005 à 19:43:56   Voir le profil de dante (Offline)   Répondre à ce message   Envoyer un message privé à dante   

ca marche la je vient de le re tester
Haut de pagePages : 1  
 
 forum rpg maker kingdom  marche central  script  Personnage qui se suiventNouveau sujet   Répondre
 
Identification rapide :         
 
Divers
Imprimer ce sujet
Aller à :   
 
créer forum