- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
--------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 14:55
Un grand merci à Skillo pour l'énorme travaille qu'il à fournie pour amélioré mon script et donc sortir une nouvelle version^^
bien voici la démo:
Auteur: Adurna et Skillo
version: 2.0
date de dernière modification:11/05/2010
et les screens:
Ancienne version içi:
v1.1
bien voici la démo:
Auteur: Adurna et Skillo
version: 2.0
date de dernière modification:11/05/2010
et les screens:
Ancienne version içi:
- Spoiler:
- auteur:Adurna
version:1.0
date de dernière modification:12.07.2010
screen:v1.0
v1.1
description:
ce system permet au joueur de prendre de note pour ne pas oublier des indice, des idées, des conseille, ect...
il est trés simple d'utilisation:
par évent->appelle de script :
- Code:
$scene = Scene_Note.new
il faut le configuré un tout petit peut
-gardé un héros vierge pour le script , il sert de mémoire comme décrit içi:
- Code:
Actor_note= 1 #index du héros qui sert de "mémoire"
code:
[spoiler]- Code:
######################################################################
######### #########
###### Note system V1.0 By Adurna ######
### ###
###### realise: 21.02.1 ######
######### #########
######################################################################
module Adurna
Actor_note= 1 #index du héros qui sert de "mémoire"
Nbr_carac_max = 100 #nombre de caractère max comprit entre 0 et 100
end
class Scene_Note < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_actors[Adurna::Actor_note]
@edit_window = Window_NoteEdit.new(@actor,Adurna::Nbr_carac_max)
@input_window = Window_NoteInput.new
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@edit_window.update
@input_window.update
if Input.repeat?(Input::B)
if @edit_window.index > 0 # Not at the left edge
Sound.play_cancel
@edit_window.back
end
elsif Input.trigger?(Input::C)
if @input_window.is_decision # If cursor is positioned on [OK]
if @edit_window.name == "" # If name is empty
@edit_window.restore_default # Return to default name
if @edit_window.name == ""
Sound.play_buzzer
else
Sound.play_decision
end
else
Sound.play_decision
@actor.name = @edit_window.name # Change actor name
return_scene
end
elsif @input_window.character != "" # If text characters are not empty
if @edit_window.index == @edit_window.max_char # at the right edge
Sound.play_buzzer
else
Sound.play_decision
@edit_window.add(@input_window.character) # Add text character
end
end
end
end
end
class Window_NoteEdit < Window_Base
attr_reader :name # name
attr_reader :index # cursor position
attr_reader :max_char # maximum number of characters
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
# max_char : maximum number of characters
#--------------------------------------------------------------------------
def initialize(actor, max_char)
super(0, 0, 545, 170)
@actor = actor
@name = actor.name
@max_char = max_char
name_array = @name.split(//)[0...@max_char] # Fit within max length
@name = ""
for i in 0...name_array.size
@name += name_array[i]
end
@default_name = @name
@index = name_array.size
self.active = false
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Return to Default Name
#--------------------------------------------------------------------------
def restore_default
@name = @default_name
@index = @name.split(//).size
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Add Text Character
# character : text character to be added
#--------------------------------------------------------------------------
def add(character)
if @index < @max_char and character != ""
@name += character
@index += 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Delete Text Character
#--------------------------------------------------------------------------
def back
if @index > 0
name_array = @name.split(//) # Delete one character
@name = ""
for i in 0...name_array.size-1
@name += name_array[i]
end
@index -= 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Get rectangle for displaying items
# index : item number
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = 1212- (@max_char + 1) * 12 + index * 24
rect.y = 0
rect.width = 24
rect.height = WLH
return rect
end
def item_rect2(index)
rect2 = Rect.new(0, 0, 0, 0)
rect2.x = 732- (@max_char + 1) * 12 + index * 24
rect2.y = 24
rect2.width = 24
rect2.height = WLH
return rect2
end
def item_rect3(index)
rect3 = Rect.new(0, 0, 0, 0)
rect3.x = 252- (@max_char + 1) * 12 + index * 24
rect3.y = 48
rect3.width = 24
rect3.height = WLH
return rect3
end
def item_rect4(index)
rect4 = Rect.new(0, 0, 0, 0)
rect4.x = -228- (@max_char + 1) * 12 + index * 24
rect4.y = 72
rect4.width = 24
rect4.height = WLH
return rect4
end
def item_rect5(index)
rect5 = Rect.new(0, 0, 0, 0)
rect5.x = -708- (@max_char + 1) * 12 + index * 24
rect5.y = 96
rect5.width = 24
rect5.height = WLH
return rect5
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
c = '_' if c == nil
if i<20
self.contents.draw_text(item_rect(i), c, 1)
end
if i>19
if i<40
self.contents.draw_text(item_rect2(i), c, 1)
end
end
if i>19
if i<60
self.contents.draw_text(item_rect3(i), c, 1)
end
end
if i>59
if i<80
self.contents.draw_text(item_rect4(i), c, 1)
end
end
if i>79
self.contents.draw_text(item_rect5(i), c, 1)
end
end
end
#--------------------------------------------------------------------------
# * Update cursor
#--------------------------------------------------------------------------
def update_cursor
self.cursor_rect = item_rect(@index)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_cursor
end
end
class Window_NoteInput < Window_Base
ADURNA = [ 'A','B','C','D','E', 'a','b','c','d','e', '/','*','-','+','=',
'F','G','H','I','J', 'f','g','h','i','j', '"','{','}','[',']',
'K','L','M','N','O', 'k','l','m','n','o', '~','(',')','@','|',
'P','Q','R','S','T', 'p','q','r','s','t', '?','.','/','§',',',
'U','V','W','X','Y', 'u','v','w','x','y', ';',':','!','µ','%',
'Z',' ',' ',' ',' ', 'z',' ',' ',' ',' ', '¤','¨','°','²','^',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü', '<','>','£','$','♪',
'1','2','3','4','5', 'â','ê','î','ô','û', 'Â','Ê','Î','Ô','Û',
'6','7','8','9','0', 'è','é','à','ù','ç', '&',' ',' ',' ','OK']
TABLE = [ADURNA]
def initialize(mode = 0)
super(0, 170, 545, 248)
@mode = mode
@index = 0
refresh
update_cursor
end
def character
if @index < 133
return TABLE[@mode][@index]
else
return ""
end
end
def is_mode_change
return (@index == 133)
end
def is_decision
return (@index == 134)
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = index % 15 * 32 + index % 15 / 5 * 16
rect.y = index / 15 * WLH
rect.width = 32
rect.height = WLH
return rect
end
def refresh
self.contents.clear
for i in 0..134
rect = item_rect(i)
rect.x += 2
rect.width -= 4
self.contents.draw_text(rect, TABLE[@mode][i], 1)
end
end
def update_cursor
self.cursor_rect = item_rect(@index)
end
def cursor_down(wrap)
if @index <120
@index += 15
elsif wrap
@index -= 120
end
end
def cursor_up(wrap)
if @index >= 15
@index -= 15
elsif wrap
@index += 120
end
end
def cursor_right(wrap)
if @index % 15 < 14
@index += 1
elsif wrap
@index -= 14
end
end
def cursor_left(wrap)
if @index % 15 > 0
@index -= 1
elsif wrap
@index += 14
end
end
def cursor_to_decision
@index = 134
end
#--------------------------------------------------------------------------
# * Move to Next Page
#--------------------------------------------------------------------------
def cursor_pagedown
@mode = (@mode + 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Move to Previous Page
#--------------------------------------------------------------------------
def cursor_pageup
@mode = (@mode + TABLE.size - 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
last_mode = @mode
last_index = @index
if Input.repeat?(Input::DOWN)
cursor_down(Input.trigger?(Input::DOWN))
end
if Input.repeat?(Input::UP)
cursor_up(Input.trigger?(Input::UP))
end
if Input.repeat?(Input::RIGHT)
cursor_right(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_left(Input.trigger?(Input::LEFT))
end
if Input.trigger?(Input::A)
cursor_to_decision
end
if Input.trigger?(Input::R)
cursor_pagedown
end
if Input.trigger?(Input::L)
cursor_pageup
end
if Input.trigger?(Input::C) and is_mode_change
cursor_pagedown
end
if @index != last_index or @mode != last_mode
Sound.play_cursor
end
update_cursor
end
end
v1.1
- Spoiler:
- Code:
######################################################################
######### #########
###### Note system V1.1 By Adurna ######
### ###
###### realise: 21.02.1 ######
######### #########
######################################################################
module Adurna
Actor_note= 1
Nbr_carac_max = 100
Font = "font_note"
end
class Scene_Note < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_actors[Adurna::Actor_note]
@edit_window = Window_NoteEdit.new(@actor,Adurna::Nbr_carac_max)
@edit_window.opacity = 0
@input_window = Window_NoteInput.new
@input_window.opacity = 0
@font = Sprite.new
@font.bitmap = Cache.picture(Adurna::Font)
@font.x =0
@font.y =0
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
@font.dipose
dispose_menu_background
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@edit_window.update
@input_window.update
if Input.repeat?(Input::B)
if @edit_window.index > 0 # Not at the left edge
Sound.play_cancel
@edit_window.back
end
elsif Input.trigger?(Input::C)
if @input_window.is_decision # If cursor is positioned on [OK]
if @edit_window.name == "" # If name is empty
@edit_window.restore_default # Return to default name
if @edit_window.name == ""
Sound.play_buzzer
else
Sound.play_decision
end
else
Sound.play_decision
@actor.name = @edit_window.name # Change actor name
return_scene
end
elsif @input_window.character != "" # If text characters are not empty
if @edit_window.index == @edit_window.max_char # at the right edge
Sound.play_buzzer
else
Sound.play_decision
@edit_window.add(@input_window.character) # Add text character
end
end
end
end
end
class Window_NoteEdit < Window_Base
attr_reader :name # name
attr_reader :index # cursor position
attr_reader :max_char # maximum number of characters
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
# max_char : maximum number of characters
#--------------------------------------------------------------------------
def initialize(actor, max_char)
super(0, 0, 545, 170)
@actor = actor
@name = actor.name
@max_char = max_char
name_array = @name.split(//)[0...@max_char] # Fit within max length
@name = ""
for i in 0...name_array.size
@name += name_array[i]
end
@default_name = @name
@index = name_array.size
self.active = false
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Return to Default Name
#--------------------------------------------------------------------------
def restore_default
@name = @default_name
@index = @name.split(//).size
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Add Text Character
# character : text character to be added
#--------------------------------------------------------------------------
def add(character)
if @index < @max_char and character != ""
@name += character
@index += 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Delete Text Character
#--------------------------------------------------------------------------
def back
if @index > 0
name_array = @name.split(//) # Delete one character
@name = ""
for i in 0...name_array.size-1
@name += name_array[i]
end
@index -= 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Get rectangle for displaying items
# index : item number
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = 1212- (@max_char + 1) * 12 + index * 24
rect.y = 0
rect.width = 24
rect.height = WLH
return rect
end
def item_rect2(index)
rect2 = Rect.new(0, 0, 0, 0)
rect2.x = 732- (@max_char + 1) * 12 + index * 24
rect2.y = 24
rect2.width = 24
rect2.height = WLH
return rect2
end
def item_rect3(index)
rect3 = Rect.new(0, 0, 0, 0)
rect3.x = 252- (@max_char + 1) * 12 + index * 24
rect3.y = 48
rect3.width = 24
rect3.height = WLH
return rect3
end
def item_rect4(index)
rect4 = Rect.new(0, 0, 0, 0)
rect4.x = -228- (@max_char + 1) * 12 + index * 24
rect4.y = 72
rect4.width = 24
rect4.height = WLH
return rect4
end
def item_rect5(index)
rect5 = Rect.new(0, 0, 0, 0)
rect5.x = -708- (@max_char + 1) * 12 + index * 24
rect5.y = 96
rect5.width = 24
rect5.height = WLH
return rect5
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
c = '_' if c == nil
if i<20
self.contents.draw_text(item_rect(i), c, 1)
end
if i>19
if i<40
self.contents.draw_text(item_rect2(i), c, 1)
end
end
if i>19
if i<60
self.contents.draw_text(item_rect3(i), c, 1)
end
end
if i>59
if i<80
self.contents.draw_text(item_rect4(i), c, 1)
end
end
if i>79
self.contents.draw_text(item_rect5(i), c, 1)
end
end
end
#--------------------------------------------------------------------------
# * Update cursor
#--------------------------------------------------------------------------
def update_cursor
self.cursor_rect = item_rect(@index)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_cursor
end
end
class Window_NoteInput < Window_Base
ADURNA = [ 'A','B','C','D','E', 'a','b','c','d','e', '/','*','-','+','=',
'F','G','H','I','J', 'f','g','h','i','j', '"','{','}','[',']',
'K','L','M','N','O', 'k','l','m','n','o', '~','(',')','@','|',
'P','Q','R','S','T', 'p','q','r','s','t', '?','.','/','§',',',
'U','V','W','X','Y', 'u','v','w','x','y', ';',':','!','µ','%',
'Z',' ',' ',' ',' ', 'z',' ',' ',' ',' ', '¤','¨','°','²','^',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü', '<','>','£','$','♪',
'1','2','3','4','5', 'â','ê','î','ô','û', 'Â','Ê','Î','Ô','Û',
'6','7','8','9','0', 'è','é','à','ù','ç', '&',' ',' ',' ','OK']
TABLE = [ADURNA]
def initialize(mode = 0)
super(0, 170, 545, 248)
@mode = mode
@index = 0
refresh
update_cursor
end
def character
if @index < 133
return TABLE[@mode][@index]
else
return ""
end
end
def is_mode_change
return (@index == 133)
end
def is_decision
return (@index == 134)
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = index % 15 * 32 + index % 15 / 5 * 16
rect.y = index / 15 * WLH
rect.width = 32
rect.height = WLH
return rect
end
def refresh
self.contents.clear
for i in 0..134
rect = item_rect(i)
rect.x += 2
rect.width -= 4
self.contents.draw_text(rect, TABLE[@mode][i], 1)
end
end
def update_cursor
self.cursor_rect = item_rect(@index)
end
def cursor_down(wrap)
if @index <120
@index += 15
elsif wrap
@index -= 120
end
end
def cursor_up(wrap)
if @index >= 15
@index -= 15
elsif wrap
@index += 120
end
end
def cursor_right(wrap)
if @index % 15 < 14
@index += 1
elsif wrap
@index -= 14
end
end
def cursor_left(wrap)
if @index % 15 > 0
@index -= 1
elsif wrap
@index += 14
end
end
def cursor_to_decision
@index = 134
end
#--------------------------------------------------------------------------
# * Move to Next Page
#--------------------------------------------------------------------------
def cursor_pagedown
@mode = (@mode + 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Move to Previous Page
#--------------------------------------------------------------------------
def cursor_pageup
@mode = (@mode + TABLE.size - 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
last_mode = @mode
last_index = @index
if Input.repeat?(Input::DOWN)
cursor_down(Input.trigger?(Input::DOWN))
end
if Input.repeat?(Input::UP)
cursor_up(Input.trigger?(Input::UP))
end
if Input.repeat?(Input::RIGHT)
cursor_right(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_left(Input.trigger?(Input::LEFT))
end
if Input.trigger?(Input::A)
cursor_to_decision
end
if Input.trigger?(Input::R)
cursor_pagedown
end
if Input.trigger?(Input::L)
cursor_pageup
end
if Input.trigger?(Input::C) and is_mode_change
cursor_pagedown
end
if @index != last_index or @mode != last_mode
Sound.play_cursor
end
update_cursor
end
end
pour cela il faut un image nommée font_note dans le dossier pictures
un grand merci à Mist' qui m'a tiré d'un bon ptit problème!!!
- Shadow of LifeMembre
- Nombre de messages : 870
Age : 28
Localisation : Joyeux. Comment ça c'est pas la bonne case ?
Distinction : Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman
Soumis ^^
Date d'inscription : 13/09/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 15:02
Merci !!!
Merci beaucoup pour ce script Arduna !
Merci du partage !
Voila, voila.
Merci beaucoup pour ce script Arduna !
Merci du partage !
Voila, voila.
- DjidaneMembre
- Nombre de messages : 1444
Age : 31
Localisation : Paris
Distinction : Héritier d'Alexdream (mais on l'aime quand même).
Lèche cul professionnel
et il aime ça!!!
Date d'inscription : 30/12/2008
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 15:09
Sympas sa !
Merci du partage Adurna
Merci du partage Adurna
- BalbereithStaffeux retraité
- Nombre de messages : 4129
Age : 31
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' ]
Date d'inscription : 13/05/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 15:33
par contre est-il possible de le combiner avec le script de menu, et ainsi multiplier les notes ?
avec ce schéma :
menu principal -> note -> note 1, note 2, note 3, note 4, note 5...
car ils est vrai que le script est très pratique pour des jeux d'intrigues, d'enquête ^^ jolie boulot, bien fait, rien à dire ^^
avec ce schéma :
menu principal -> note -> note 1, note 2, note 3, note 4, note 5...
car ils est vrai que le script est très pratique pour des jeux d'intrigues, d'enquête ^^ jolie boulot, bien fait, rien à dire ^^
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 15:37
oui facile mais par contre il faudra un héro par note
je m'occupe de ça dés que j'ai fini un ptite amélioration graphique
je m'occupe de ça dés que j'ai fini un ptite amélioration graphique
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 17:49
nouvelle version:
pour cela il faut un image nommée font_note dans le dossier pictures
- Code:
######################################################################
######### #########
###### Note system V1.0 By Adurna ######
### ###
###### realise: 21.02.1 ######
######### #########
######################################################################
module Adurna
Actor_note= 1
Nbr_carac_max = 100
Font = "font_note"
end
class Scene_Note < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_actors[Adurna::Actor_note]
@edit_window = Window_NoteEdit.new(@actor,Adurna::Nbr_carac_max)
@edit_window.opacity = 0
@input_window = Window_NoteInput.new
@input_window.opacity = 0
@Window_Font = Window_Font.new(0,0)
@Window_Font .opacity = 0
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@edit_window.update
@input_window.update
if Input.repeat?(Input::B)
if @edit_window.index > 0 # Not at the left edge
Sound.play_cancel
@edit_window.back
end
elsif Input.trigger?(Input::C)
if @input_window.is_decision # If cursor is positioned on [OK]
if @edit_window.name == "" # If name is empty
@edit_window.restore_default # Return to default name
if @edit_window.name == ""
Sound.play_buzzer
else
Sound.play_decision
end
else
Sound.play_decision
@actor.name = @edit_window.name # Change actor name
return_scene
end
elsif @input_window.character != "" # If text characters are not empty
if @edit_window.index == @edit_window.max_char # at the right edge
Sound.play_buzzer
else
Sound.play_decision
@edit_window.add(@input_window.character) # Add text character
end
end
end
end
end
class Window_NoteEdit < Window_Base
attr_reader :name # name
attr_reader :index # cursor position
attr_reader :max_char # maximum number of characters
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
# max_char : maximum number of characters
#--------------------------------------------------------------------------
def initialize(actor, max_char)
super(0, 0, 545, 170)
@actor = actor
@name = actor.name
@max_char = max_char
name_array = @name.split(//)[0...@max_char] # Fit within max length
@name = ""
for i in 0...name_array.size
@name += name_array[i]
end
@default_name = @name
@index = name_array.size
self.active = false
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Return to Default Name
#--------------------------------------------------------------------------
def restore_default
@name = @default_name
@index = @name.split(//).size
refresh
update_cursor
end
#--------------------------------------------------------------------------
# * Add Text Character
# character : text character to be added
#--------------------------------------------------------------------------
def add(character)
if @index < @max_char and character != ""
@name += character
@index += 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Delete Text Character
#--------------------------------------------------------------------------
def back
if @index > 0
name_array = @name.split(//) # Delete one character
@name = ""
for i in 0...name_array.size-1
@name += name_array[i]
end
@index -= 1
refresh
update_cursor
end
end
#--------------------------------------------------------------------------
# * Get rectangle for displaying items
# index : item number
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = 1212- (@max_char + 1) * 12 + index * 24
rect.y = 0
rect.width = 24
rect.height = WLH
return rect
end
def item_rect2(index)
rect2 = Rect.new(0, 0, 0, 0)
rect2.x = 732- (@max_char + 1) * 12 + index * 24
rect2.y = 24
rect2.width = 24
rect2.height = WLH
return rect2
end
def item_rect3(index)
rect3 = Rect.new(0, 0, 0, 0)
rect3.x = 252- (@max_char + 1) * 12 + index * 24
rect3.y = 48
rect3.width = 24
rect3.height = WLH
return rect3
end
def item_rect4(index)
rect4 = Rect.new(0, 0, 0, 0)
rect4.x = -228- (@max_char + 1) * 12 + index * 24
rect4.y = 72
rect4.width = 24
rect4.height = WLH
return rect4
end
def item_rect5(index)
rect5 = Rect.new(0, 0, 0, 0)
rect5.x = -708- (@max_char + 1) * 12 + index * 24
rect5.y = 96
rect5.width = 24
rect5.height = WLH
return rect5
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
c = '_' if c == nil
if i<20
self.contents.draw_text(item_rect(i), c, 1)
end
if i>19
if i<40
self.contents.draw_text(item_rect2(i), c, 1)
end
end
if i>19
if i<60
self.contents.draw_text(item_rect3(i), c, 1)
end
end
if i>59
if i<80
self.contents.draw_text(item_rect4(i), c, 1)
end
end
if i>79
self.contents.draw_text(item_rect5(i), c, 1)
end
end
end
#--------------------------------------------------------------------------
# * Update cursor
#--------------------------------------------------------------------------
def update_cursor
self.cursor_rect = item_rect(@index)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_cursor
end
end
class Window_NoteInput < Window_Base
ADURNA = [ 'A','B','C','D','E', 'a','b','c','d','e', '/','*','-','+','=',
'F','G','H','I','J', 'f','g','h','i','j', '"','{','}','[',']',
'K','L','M','N','O', 'k','l','m','n','o', '~','(',')','@','|',
'P','Q','R','S','T', 'p','q','r','s','t', '?','.','/','§',',',
'U','V','W','X','Y', 'u','v','w','x','y', ';',':','!','µ','%',
'Z',' ',' ',' ',' ', 'z',' ',' ',' ',' ', '¤','¨','°','²','^',
'Ä','Ë','Ï','Ö','Ü', 'ä','ë','ï','ö','ü', '<','>','£','$','♪',
'1','2','3','4','5', 'â','ê','î','ô','û', 'Â','Ê','Î','Ô','Û',
'6','7','8','9','0', 'è','é','à','ù','ç', '&',' ',' ',' ','OK']
TABLE = [ADURNA]
def initialize(mode = 0)
super(0, 170, 545, 248)
@mode = mode
@index = 0
refresh
update_cursor
end
def character
if @index < 133
return TABLE[@mode][@index]
else
return ""
end
end
def is_mode_change
return (@index == 133)
end
def is_decision
return (@index == 134)
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = index % 15 * 32 + index % 15 / 5 * 16
rect.y = index / 15 * WLH
rect.width = 32
rect.height = WLH
return rect
end
def refresh
self.contents.clear
for i in 0..134
rect = item_rect(i)
rect.x += 2
rect.width -= 4
self.contents.draw_text(rect, TABLE[@mode][i], 1)
end
end
def update_cursor
self.cursor_rect = item_rect(@index)
end
def cursor_down(wrap)
if @index <120
@index += 15
elsif wrap
@index -= 120
end
end
def cursor_up(wrap)
if @index >= 15
@index -= 15
elsif wrap
@index += 120
end
end
def cursor_right(wrap)
if @index % 15 < 14
@index += 1
elsif wrap
@index -= 14
end
end
def cursor_left(wrap)
if @index % 15 > 0
@index -= 1
elsif wrap
@index += 14
end
end
def cursor_to_decision
@index = 134
end
#--------------------------------------------------------------------------
# * Move to Next Page
#--------------------------------------------------------------------------
def cursor_pagedown
@mode = (@mode + 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Move to Previous Page
#--------------------------------------------------------------------------
def cursor_pageup
@mode = (@mode + TABLE.size - 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
last_mode = @mode
last_index = @index
if Input.repeat?(Input::DOWN)
cursor_down(Input.trigger?(Input::DOWN))
end
if Input.repeat?(Input::UP)
cursor_up(Input.trigger?(Input::UP))
end
if Input.repeat?(Input::RIGHT)
cursor_right(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_left(Input.trigger?(Input::LEFT))
end
if Input.trigger?(Input::A)
cursor_to_decision
end
if Input.trigger?(Input::R)
cursor_pagedown
end
if Input.trigger?(Input::L)
cursor_pageup
end
if Input.trigger?(Input::C) and is_mode_change
cursor_pagedown
end
if @index != last_index or @mode != last_mode
Sound.play_cursor
end
update_cursor
end
end
class Window_Font < Window_Base
def initialize(x, y)
super(x, y,999, 999)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
@font = Sprite.new
@font.bitmap = Cache.picture(Adurna::Font)
@font.ox =0
@font.oy =0
end
def update
@font.ox = 0
@font.oy =0
end
end
pour cela il faut un image nommée font_note dans le dossier pictures
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 17:58
C'est sympa tout ça, mais est-il possible d'enlever les "_", ça ne fait pas très beau...
Et je plussoie l'idée de Balbereith, ça m'intéresserais beaucoup
Et je plussoie l'idée de Balbereith, ça m'intéresserais beaucoup
- Shadow of LifeMembre
- Nombre de messages : 870
Age : 28
Localisation : Joyeux. Comment ça c'est pas la bonne case ?
Distinction : Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman
Soumis ^^
Date d'inscription : 13/09/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 18:58
Merci encore pour la nouvelle version : tu es actif Arduna aujourd'hui.
Je te re-remercie . Continu comme ça.
Voila, voila.
Je te re-remercie . Continu comme ça.
Voila, voila.
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Dim 21 Fév 2010 - 20:32
merci à tous de l'interé que vous porté à mon script
voila ptite mise à jour : http://www.mediafire.com/?g4y0czni4jm
voila ptite mise à jour : http://www.mediafire.com/?g4y0czni4jm
- ZangtherOldMembre
- Nombre de messages : 1711
Date d'inscription : 07/08/2009
Re: --------Note sytem-------- By Adurna et Skillo
Sam 27 Fév 2010 - 15:55
Tu utilise les noms de héros pour stocker les notes ?
Pourquoi ne pas utiliser un tableau ?
Pourquoi ne pas utiliser un tableau ?
- DjidaneMembre
- Nombre de messages : 1444
Age : 31
Localisation : Paris
Distinction : Héritier d'Alexdream (mais on l'aime quand même).
Lèche cul professionnel
et il aime ça!!!
Date d'inscription : 30/12/2008
Re: --------Note sytem-------- By Adurna et Skillo
Dim 14 Mar 2010 - 23:55
Petit truc au sujet de ce script :
Un bug asser embêtant ce produit , le héros prend le nom de ce qui est écris sur la note !
Serais-ce possible de résoudre ce problème ?
Un bug asser embêtant ce produit , le héros prend le nom de ce qui est écris sur la note !
Serais-ce possible de résoudre ce problème ?
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 0:34
A la place de :
D'ailleurs, adurna, tu devras ne pas utiliser le nom du héro mais un hash. Ca te permet de sauvegarder les notes en fonction d'un titre:
- Code:
@actor.name = @edit_window.name # Change actor name
- Code:
$note = @edit_window.name
D'ailleurs, adurna, tu devras ne pas utiliser le nom du héro mais un hash. Ca te permet de sauvegarder les notes en fonction d'un titre:
- Code:
$notes = {}
$notes["Super titre"] = "ma très longue longue longue et longue note"
- DjidaneMembre
- Nombre de messages : 1444
Age : 31
Localisation : Paris
Distinction : Héritier d'Alexdream (mais on l'aime quand même).
Lèche cul professionnel
et il aime ça!!!
Date d'inscription : 30/12/2008
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 0:52
Voilà une réponse bien claire .
Merci à toi Berka pour ton aide
EDIT :
Escuse moi de te déranger , mais la solution que tu m'as donner pour le script d'Adurna "bloc note" possède un petit problème :
une fois la manip que tu m'as dit faire est faite , pour rappeler la note je devis utiliser cette appel :
Mais il ce trouve qu'une fois celà appeler j'obtient ceci :
Je crois compendre que l'appel de script ne devrais pas être celui là .
Merci à toi Berka pour ton aide
EDIT :
Escuse moi de te déranger , mais la solution que tu m'as donner pour le script d'Adurna "bloc note" possède un petit problème :
une fois la manip que tu m'as dit faire est faite , pour rappeler la note je devis utiliser cette appel :
- Code:
$note = @edit_window.name
Mais il ce trouve qu'une fois celà appeler j'obtient ceci :
Je crois compendre que l'appel de script ne devrais pas être celui là .
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 19:21
bah en même temps Djidane je veux pas être méchant mais il faut apprendre à lire dans la présentation tout le bla bla autour de script s'est pas pour faire chier^^
et oui Berka, Mist' me l'a déjà dit mais le truc s'est que je sais même pas se que s'est alors de la à savoir comment l'utilisé XD
Adurna a écrit:
il faut le configuré un tout petit peut
-gardé un héros vierge pour le script , il sert de mémoire comme décrit içi:
Code:
Actor_note= 1 #index du héros qui sert de "mémoire"
et oui Berka, Mist' me l'a déjà dit mais le truc s'est que je sais même pas se que s'est alors de la à savoir comment l'utilisé XD
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 20:38
Djidane, j'ai vu ce post. Si je n'y ai pas répondu, c'est que je n'avais pas le temps sur le moment. Pas besoin donc de me contacter par mp.
Tu dois faire la différenciation entre assignation et récupération
L'assignation:
a = b
La récupération:
a
Or, ce que tu fais en appelant
Cette instance est portée par une variable d'instance. Son n'accès n'est possible que dans l'instance meme, donc entre class XXX et le end final de la classe.
C'est donc normale que tu aies un message d'erreur: dans ton événement, donc traité par la classe Game_Interpreter tu cherches à appeler une variable d'instance de la classe Scene_Note
La variable @edit_window est donc nulle, elle n'a pas de propriété name.
Il faut que tu fasses une récupération:
seulement:
$note
Tu dois faire la différenciation entre assignation et récupération
L'assignation:
a = b
La récupération:
a
Or, ce que tu fais en appelant
- Code:
$note = @edit_window.name
Cette instance est portée par une variable d'instance. Son n'accès n'est possible que dans l'instance meme, donc entre class XXX et le end final de la classe.
C'est donc normale que tu aies un message d'erreur: dans ton événement, donc traité par la classe Game_Interpreter tu cherches à appeler une variable d'instance de la classe Scene_Note
La variable @edit_window est donc nulle, elle n'a pas de propriété name.
Il faut que tu fasses une récupération:
seulement:
$note
- NaëlMembre
- Nombre de messages : 558
Age : 27
Localisation : n.f. : repérage, dans l'espace ou dans le temps.
Distinction : aucune
Date d'inscription : 07/02/2010
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 20:57
Merci beaucoup, je le teste dès que je peux !
J'attendais vraiment ce script et je me préparais à faire une demande !
J'attendais vraiment ce script et je me préparais à faire une demande !
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Lun 15 Mar 2010 - 21:11
tu t'apprêtais à faire une demande XD
ça va faire un mois que je l'ai fait ce script!!!
ça va faire un mois que je l'ai fait ce script!!!
- DjidaneMembre
- Nombre de messages : 1444
Age : 31
Localisation : Paris
Distinction : Héritier d'Alexdream (mais on l'aime quand même).
Lèche cul professionnel
et il aime ça!!!
Date d'inscription : 30/12/2008
Re: --------Note sytem-------- By Adurna et Skillo
Sam 20 Mar 2010 - 2:13
Ah ouais daccord .
Merci à toi Berka pour cette explication et encore merci pour ton script Adurna
Merci à toi Berka pour cette explication et encore merci pour ton script Adurna
- NaëlMembre
- Nombre de messages : 558
Age : 27
Localisation : n.f. : repérage, dans l'espace ou dans le temps.
Distinction : aucune
Date d'inscription : 07/02/2010
Re: --------Note sytem-------- By Adurna et Skillo
Sam 20 Mar 2010 - 15:45
Disons que je l'ai vu au bon moment, alors ^^
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Mar 8 Juin 2010 - 20:06
Un grand merci à Skillo pour l'énorme travaille qu'il à fournie pour amélioré mon script et donc sortir une nouvelle version^^
bien voici la démo:
Auteur: Adurna et Skillo
et les screens:
bien voici la démo:
Auteur: Adurna et Skillo
et les screens:
- Dudu'Staffeux retraité
- Nombre de messages : 2060
Age : 33
Distinction : Apprenti KGB-boy en avenir
[Coco' ]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009
Re: --------Note sytem-------- By Adurna et Skillo
Lun 12 Juil 2010 - 23:09
et hop maj
version amélioré pour il y a un bonus pour ce qui utilise un de mes menu^^(menu qui sont également à mettre à jours ^^)
les notes sont accessible depuis celui si^^
voila sinon pas de changement
version amélioré pour il y a un bonus pour ce qui utilise un de mes menu^^(menu qui sont également à mettre à jours ^^)
les notes sont accessible depuis celui si^^
voila sinon pas de changement
- Black'Membre
- Nombre de messages : 351
Localisation : Far, far away
Distinction : aucune
Date d'inscription : 19/04/2010
Re: --------Note sytem-------- By Adurna et Skillo
Jeu 29 Juil 2010 - 15:35
Ça, c'est avec la dernière version du script, avec l'idée de Balbereith, non ?
Sinon :
Merci du partage, mais je ferait peut-être un petit pack de ressources pour le "Font_Note" quand je serais revenu de vacances...
Sinon :
Merci du partage, mais je ferait peut-être un petit pack de ressources pour le "Font_Note" quand je serais revenu de vacances...
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|