- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
amelioration du script Area+_character de dricc
Jeu 15 Oct 2009 - 20:08
grâce à ce scripts les PNJ disent le nom de la map quand ils sont hors des areas
fini les "Nulle part".
Détail:
Ce script fonctionne grâce au nom des aréa et le nom des map .La seul chose que vous avez à faire est dans l'event de PNJ de faire cette appelle de script: set_var_area_name(x) où x est id d'une variable.Ensuite dans le message du personnage vous insérez \v[90] là où doit parraitre le nom en question.
le script s'insère dans au dessus le main.
et quand ils sont pas dans une area (la map ici est nommer Kitmop, comme dans la démo de dricc)
fini les "Nulle part".
Détail:
Ce script fonctionne grâce au nom des aréa et le nom des map .La seul chose que vous avez à faire est dans l'event de PNJ de faire cette appelle de script: set_var_area_name(x) où x est id d'une variable.Ensuite dans le message du personnage vous insérez \v[90] là où doit parraitre le nom en question.
le script s'insère dans au dessus le main.
- Spoiler:
- Code:
##################################################
### Area character V1.1
### script d'origine crée par dricc
###Légèrement modifié par Azuma-01
##################################################
# Gere les deplacements aléatoires des personnages
# mettez [AREA] dans le nom de l'evenement et celui-ci ne pourra pas sortir de la zone ou il est
#nouveauté: Quand les characters sont hors des aeras ils disent le nom de la map plutôt que Nulle part
################################################################################
#===================================================================
# class Game_Map
class Game_Map
attr_accessor :show_name
alias azuma_map_name_window_setup setup
def setup(map_id)
azuma_map_name_window_setup(map_id)
@show_name = true
end
def name
map_infos = load_data("Data/MapInfos.rvdata")
name = map_infos[@map_id].name
name.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
return name
end
end
#===================================================================
#class Game_Character
class Game_Event
attr_reader :name
alias dricc_area initialize
def initialize(map_id, event)
@name = event.name
dricc_area(map_id, event)
end
#--------------------------------------------------------------------------
# * Move at Random
#--------------------------------------------------------------------------
def move_random
if @name.index('[AREA]') != nil
case rand(4)
when 0; move_down(false) if area_name(@x,@y) == area_name(@x,@y + 1) and AREA::area_info(area_name(@x,@y + 1))[0]
when 1; move_left(false) if area_name(@x,@y) == area_name(@x - 1,@y ) and AREA::area_info(area_name(@x- 1,@y))[0]
when 2; move_right(false) if area_name(@x,@y) == area_name(@x + 1,@y) and AREA::area_info(area_name(@x + 1,@y))[0]
when 3; move_up(false) if area_name(@x,@y) == area_name(@x,@y - 1) and AREA::area_info(area_name(@x,@y - 1))[0]
end
else
case rand(4)
when 0; move_down(false) if AREA::area_info(area_name(@x,@y + 1))[0]
when 1; move_left(false) if AREA::area_info(area_name(@x- 1,@y))[0]
when 2; move_right(false) if AREA::area_info(area_name(@x + 1,@y))[0]
when 3; move_up(false) if AREA::area_info(area_name(@x,@y - 1))[0]
end
end
end
#--------------------------------------------------------------------------
# * 1 Step Forward
#--------------------------------------------------------------------------
def move_forward
if @name.index('[AREA]') != nil
case @direction
when 2; move_down(false) if area_name(@x,@y) == area_name(@x,@y + 1) and AREA::area_info(area_name(@x,@y + 1))[0]
when 4; move_left(false) if area_name(@x,@y) == area_name(@x - 1,@y ) and AREA::area_info(area_name(@x- 1,@y))[0]
when 6; move_right(false) if area_name(@x,@y) == area_name(@x + 1,@y) and AREA::area_info(area_name(@x + 1,@y))[0]
when 8; move_up(false) if area_name(@x,@y) == area_name(@x,@y - 1) and AREA::area_info(area_name(@x,@y - 1))[0]
end
else
case @direction
when 2; move_down(false) if AREA::area_info(area_name(@x,@y + 1))[0]
when 4; move_left(false) if AREA::area_info(area_name(@x- 1,@y))[0]
when 6; move_right(false) if AREA::area_info(area_name(@x + 1,@y))[0]
when 8; move_up(false) if AREA::area_info(area_name(@x,@y - 1))[0]
end
end
end
def area_name_cur
return area_name(@x,@y)
end
#--------------------------------------------------------------------------
# * Determine if in Area
# area : Area data (RPG::Area)
#--------------------------------------------------------------------------
def in_area?(area,x,y)
return false if area == nil
return false if $game_map.map_id != area.map_id
return false if x < area.rect.x
return false if y < area.rect.y
return false if x >= area.rect.x + area.rect.width
return false if y >= area.rect.y + area.rect.height
return true
end
def area_name(x,y)
curr_area = nil
for area in $data_areas.values
if in_area?(area,x,y)
if curr_area == nil then
curr_area = area.name
end
end
end
return curr_area
end
end
class Game_Interpreter
def area_name_cur
event = get_character(0)
return event.area_name_cur
end
def set_var_area_name(var_id)
$game_variables[var_id] = area_name_cur
if $game_variables[var_id] == 0
id = $game_map.map_id
if area_name_cur != nil
$game_variables[var_id] = $Data_Maps.values[id].name
else
$game_variables[var_id] = $game_map.name
end
end
end
end
et quand ils sont pas dans une area (la map ici est nommer Kitmop, comme dans la démo de dricc)
- ZangtherOldMembre
- Nombre de messages : 1711
Date d'inscription : 07/08/2009
Re: amelioration du script Area+_character de dricc
Jeu 15 Oct 2009 - 20:44
C'est gentil mais avec des screens, une meilleure présentation et plus d'explications seraient pas mal non?
Du genre comment on l'utilise et des truc du genre.
PS : Sinon je sais que c'est pas mes affaires mais t'a demandé l'autorisation à Dricc pour publier une version modifiée de son script?
Du genre comment on l'utilise et des truc du genre.
PS : Sinon je sais que c'est pas mes affaires mais t'a demandé l'autorisation à Dricc pour publier une version modifiée de son script?
- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
Re: amelioration du script Area+_character de dricc
Lun 19 Oct 2009 - 17:59
Voilà! j' espère que c'est plus clair.
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: amelioration du script Area+_character de dricc
Mar 20 Oct 2009 - 14:14
Et pas d'inquiétude pour les problemes d'autorisation ... Mon script est 100% dispo .
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum