Bienvenue sur RM-Land : Le forum !
Après votre inscription, vous aurez accès à tout le forum : Partage de ressources, de scripts, résolution de vos problèmes, présentations de projets et montage de teams.
 
AccueilLe sitePortailFAQRechercherS'enregistrerConnexion

Partagez | 
 

 Réserve d'objet

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: Réserve d'objet   Jeu 3 Juil - 2:39

Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: Réserve d'objet   Jeu 3 Juil - 10:17

essaye de mettre plus d'explication, et le code essaye de l'aficher sur cette page,et un screen ne ferait de mal a personne

merci commeme du partage
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: Réserve d'objet   Jeu 3 Juil - 11:45

Nom : Script pour avoir une reserve d'objets
Auteur : ASHKA
Nombre de script : 1 plus une insertion de script obligatoire
Info : ce systeme est semblable à celui de fat chocobo dans les vieux FF.
C'est-à-dire que la reserve n'est pas accessible par le menu mais plutôt par un PNJ.

L'appel se fait par l'insertion de script suivante :
Code
$scene = Scene_Reserve.new

Utilisation :

Il faut placer ceci en insertion de script au debut du jeu pour initialiser les valeurs :

Code
for i in $data_items
$reserve_objet[i.id] = 0
end
for i in $data_weapons
$reserve_arme[i.id] = 0
end
for i in $data_armors
$reserve_armure[i.id] = 0
end


Créez un nouveau script dans " Materials " et collez y ceci :

Code
################################################################################
=begin
Script de reserve d'objet


Important !!

Placer ceci en insertion de script au tout debut du jeu ( premiere map )
( Dans un event en demarrage auto, puis apres activation d'un interrupteur local )

for i in $data_items
$reserve_objet[i.id] = 0
end
for i in $data_weapons
$reserve_arme[i.id] = 0
end
for i in $data_armors
$reserve_armure[i.id] = 0
end

Appel en insertion de script =
$scene = Scene_Reserve.new
=end
################################################################################
class Scene_Reserve < Scene_Base

def initialize(menu_index = 0)
@menu_index = menu_index
end

def start
super
create_menu_background
@help_window = Window_Help.new
@command = Window_Entete.new
@command.help_window = @help_window
@command.index = @menu_index
@sac = Window_Item.new(0, 120, 544, 296)
@sac.index = -1
@sac.visible = true
@sac.active = false
@reserve = Window_Reserve.new
@reserve.index = -1
@reserve.visible = false
@reserve.active = false
@transfert = Window_Transfert.new
@transfert.z = 150
@transfert.visible = false
end

def terminate
super
dispose_menu_background
@help_window.dispose
@command.dispose
@sac.dispose
@reserve.dispose
@transfert.dispose
end

def update
super
update_menu_background
@help_window.update
@command.update
@sac.update
@reserve.update
@transfert.update
if @command.active
update_command
elsif @sac.active
update_sac
elsif @reserve.active
update_reserve
elsif @transfert.visible
update_transfert
end
end

def update_command
case @command.index
when 0
@sac.visible = true
@reserve.visible = false
when 1
@sac.visible = false
@reserve.visible = true
end
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
Sound.play_decision
case @command.index
when 0
@sac.active = true
@sac.index = 0
@command.active = false
@command.index = -1
when 1
@reserve.active = true
@reserve.index = 0
@command.active = false
@command.index = -1
end
end
end

def update_sac
if Input.trigger?(Input::B)
Sound.play_cancel
@command.active = true
@command.index = 0
@sac.active = false
@sac.index = -1
elsif Input.trigger?(Input::C)
@type = "sac"
@item = @sac.item
if @item != nil
Sound.play_decision
max = $game_party.item_number(@item)
@transfert.set(@type, @item, max)
@transfert.visible = true
@sac.active = false
else
Sound.play_buzzer
end
end
end

def update_reserve
if Input.trigger?(Input::B)
Sound.play_cancel
@command.active = true
@command.index = 1
@reserve.active = false
@reserve.index = -1
elsif Input.trigger?(Input::C)
@type = "reserve"
@item = @reserve.item
if @item != nil
Sound.play_decision
if @item.is_a?(RPG::Item)
max = $reserve_objet[@item.id]
elsif @item.is_a?(RPG::Weapon)
max = $reserve_arme[@item.id]
elsif @item.is_a?(RPG::Armor)
max = $reserve_armure[@item.id]
end
@transfert.set(@type, @item, max)
@transfert.visible = true
@reserve.active = false
else
Sound.play_buzzer
end
end
end

def update_transfert
if Input.trigger?(Input::B)
Sound.play_cancel
if @type == "sac"
@sac.active = true
elsif @type == "reserve"
@reserve.active = true
end
@transfert.visible = false
elsif Input.trigger?(Input::C)
Sound.play_decision
if @type == "sac"
$game_party.lose_item(@item, @transfert.number)
if @item.is_a?(RPG::Item)
$reserve_objet[@item.id] += @transfert.number
elsif @item.is_a?(RPG::Weapon)
$reserve_arme[@item.id] += @transfert.number
elsif @item.is_a?(RPG::Armor)
$reserve_armure[@item.id] += @transfert.number
end
@sac.active = true
@sac.refresh
@reserve.refresh
@transfert.visible = false
elsif @type == "reserve"
if @item.is_a?(RPG::Item)
$reserve_objet[@item.id] -= @transfert.number
elsif @item.is_a?(RPG::Weapon)
$reserve_arme[@item.id] -= @transfert.number
elsif @item.is_a?(RPG::Armor)
$reserve_armure[@item.id] -= @transfert.number
end
$game_party.gain_item(@item, @transfert.number)
@reserve.active = true
@reserve.refresh
@sac.refresh
@transfert.visible = false
end
end
end

end # Scene_Reserve
################################################################################
class Window_Transfert < Window_Base

def initialize
super(32, 157, 480, 102)
@type = type
@depart = nil
@max = 1
@number = 0
end

def set(type, depart, max)
@type = type
@depart = depart
@max = max
@number = 0
refresh
end

def number
return @number
end

def refresh
self.contents.clear
self.contents.font.color = normal_color
if @type == "sac"
self.contents.draw_text(200, 0, 100, 32, "Inventaire", 1)
self.contents.draw_text(300, 0, 50, 32, " ==> ", 1)
self.contents.draw_text(350, 0, 100, 32, "Reserve", 1)
elsif @type == "reserve"
self.contents.draw_text(200, 0, 100, 32, "Reserve", 1)
self.contents.draw_text(300, 0, 50, 32, " ==> ", 1)
self.contents.draw_text(350, 0, 100, 32, "Inventaire", 1)
end
draw_item_name(@depart, 0, 40)
if @depart.is_a?(RPG::Item)
num = $reserve_objet[@depart.id]
elsif @depart.is_a?(RPG::Weapon)
num = $reserve_arme[@depart.id]
elsif @depart.is_a?(RPG::Armor)
num = $reserve_armure[@depart.id]
end
if @type == "sac"
self.contents.draw_text(240, 40, 40, 32, ($game_party.item_number(@depart) - @number).to_s)
self.contents.draw_text(300, 40, 50, 32, " ==> ", 1)
self.contents.draw_text(390, 40, 40, 32, (num + @number).to_s)
elsif @type == "reserve"
self.contents.draw_text(240, 40, 40, 32, (num - @number).to_s)
self.contents.draw_text(300, 40, 50, 32, " ==> ", 1)
self.contents.draw_text(390, 40, 40, 32, ($game_party.item_number(@depart) + @number).to_s)
end
end

def update
super
if self.active
last_number = @number
if Input.repeat?(Input::RIGHT) and @number < @max
unless @type == "reserve" and ($game_party.item_number(@depart) + @number) == 99
@number += 1
end
end
if Input.repeat?(Input::LEFT) and @number >= 1
@number -= 1
end
if Input.repeat?(Input::UP) and (@number + 10) <= @max
unless @type == "reserve" and ($game_party.item_number(@depart) + @number + 10) > 99
@number += 10
end
end
if Input.repeat?(Input::DOWN) and (@number - 10) >= 0
@number -= 10
end
if @number != last_number
Sound.play_cursor
refresh
end
end
end
end
################################################################################
class Window_Reserve < Window_Selectable

def initialize
super(0, 120, 544, 296)
@column_max = 2
self.index = 0
refresh
end

def item
return @data[self.index]
end

def include?(item)
return false if item == nil
if $game_temp.in_battle
return false unless item.is_a?(RPG::Item)
end
return true
end

def enable?(item)
return $game_party.item_can_use?(item)
end

def refresh
@data = []
for item in $data_items
if $reserve_objet[item.id] != 0
next unless include?(item)
@data.push(item)
if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
self.index = @data.size - 1
end
end
end
for item in $data_weapons
if $reserve_arme[item.id] != 0
next unless include?(item)
@data.push(item)
end
end
for item in $data_armors
if $reserve_armure[item.id] != 0
next unless include?(item)
@data.push(item)
end
end
@data.push(nil) if include?(nil)
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end

def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
if item.is_a?(RPG::Item)
number = $reserve_objet[item.id]
elsif item.is_a?(RPG::Weapon)
number = $reserve_arme[item.id]
elsif item.is_a?(RPG::Armor)
number = $reserve_armure[item.id]
end
enabled = enable?(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
end
end

def update_help
@help_window.set_text(item == nil ? "" : item.description)
end
end
################################################################################
class Window_Entete < Window_Selectable

def initialize
super(0, 56, 544, 64)
@item_max = 2
@column_max = 2
@index = -1
refresh
end

def refresh
self.contents.clear
@data = ["Inventaire", "Reserve"]
for i in 0..@data.size
self.contents.draw_text(i * 256, 0, 256, 32, @data[i].to_s, 1)
end
end

def update_cursor
if @index < 0
self.cursor_rect.empty
else
row = @index / @column_max
if row < top_row
self.top_row = row
end
if row > bottom_row
self.bottom_row = row
end
rect = Rect.new(0, 0, 0, 0)
rect.width = 256
rect.height = WLH
rect.x = @index * 256
rect.y = 5
self.cursor_rect = rect
end
end

def update_help
text = ""
case @index
when 0
text = "Permet de gerer les objets de l'inventaire."
when 1
text = "Permet de gerer les objets mis en reserve."
end
@help_window.set_text(text, 1)
end

end # class Window_Detection
################################################################################
class Scene_Title < Scene_Base
def start
super
$reserve_objet = Hash.new(0)
$reserve_arme = Hash.new(0)
$reserve_armure = Hash.new(0)
load_database # Load database
create_game_objects # Create game objects
check_continue # Determine if continue is enabled
create_title_graphic # Create title graphic
create_command_window # Create command window
play_title_music # Play title screen music
end
end
################################################################################
class Scene_File < Scene_Base
def write_save_data(file)
characters = []
for actor in $game_party.members
characters.push([actor.character_name, actor.character_index])
end
$game_system.save_count += 1
$game_system.version_id = $data_system.version_id
@last_bgm = RPG::BGM::last
@last_bgs = RPG::BGS::last
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
Marshal.dump(@last_bgm, file)
Marshal.dump(@last_bgs, file)
Marshal.dump($game_system, file)
Marshal.dump($game_message, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
Marshal.dump($reserve_objet, file)
Marshal.dump($reserve_arme, file)
Marshal.dump($reserve_armure, file)
end

def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
@last_bgm = Marshal.load(file)
@last_bgs = Marshal.load(file)
$game_system = Marshal.load(file)
$game_message = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
$reserve_objet = Marshal.load(file)
$reserve_arme = Marshal.load(file)
$reserve_armure = Marshal.load(file)
if $game_system.version_id != $data_system.version_id
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
end
end



P'tit screen :


Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: Réserve d'objet   Jeu 3 Juil - 18:59

Bon script je l'ai jamais vue du partage
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Réserve d'objet   

Revenir en haut Aller en bas
 
Réserve d'objet
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» quel est cette objet
» Objet de Collection
» Le crafting d'objet
» [Theme] L’objet du désir (PV tous les serpentards)
» je cherche objet rare...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RM-Land : le forum :: Quartier des makers :: Bibliothèque-
Sauter vers: