- 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.
![amelioration du script Area+_character de dricc Ac110](https://i.servimg.com/u/f81/14/41/94/87/ac110.png)
et quand ils sont pas dans une area (la map ici est nommer Kitmop, comme dans la démo de dricc)
![amelioration du script Area+_character de dricc Ac210](https://i.servimg.com/u/f81/14/41/94/87/ac210.png)
![Very Happy](https://2img.net/i/fa/i/smiles/icon_biggrin.png)
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
![amelioration du script Area+_character de dricc Ac110](https://i.servimg.com/u/f81/14/41/94/87/ac110.png)
et quand ils sont pas dans une area (la map ici est nommer Kitmop, comme dans la démo de dricc)
![amelioration du script Area+_character de dricc Ac210](https://i.servimg.com/u/f81/14/41/94/87/ac210.png)
- 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
|
|