- HareckMembre
- Nombre de messages : 359
Age : 31
Distinction : aucune
Date d'inscription : 26/09/2013
Ensemble de script pour la gestion de l'équipement
Mer 2 Oct 2013 - 11:37
Bonjour! J'ai trouvé un script super sympa qui m'a reconduit vers deux autres scripts très sympa également, et qui fonctionnent correctement! Je les ai trouvé sur un site anglophone (anglais, américain, français, allemand, j'en sais rien, mais l'auteur écriait en anglais. Ceci ne précise donc pas son origine)
Pour installer ces scripts, il vous faudra les placer en dessous de Material et au dessus de Main. Il vous faudra également les nommer comme dans le titre du script, par exemple, Title : Core - Equip Slots
L'auteur est précisé dans chaque scripts.
Comme vous pouvez le remarquer, ce sont des scripts relativement récent, et donc encore inconnue de la scène francophone.
Tout d'abord, il vous faudra installer ce script :
Ce dernier vous permettra d'avoir ceci :
Lien de la source : http://himeworks.wordpress.com/2013/07/13/core-equip-slots/
Ensuite, vous devrez installer celui ci :
Image :
Utilisation :
Dans la section configuration, vous devriez trouver ceci
Ensuite, il vous suffis d'aller dans vos items, dans la base de donnée, et de faire comme l'auteur :
Lien de la source : http://himeworks.wordpress.com/2013/07/25/custom-equip-types/
Et pour finir, nous avons le script le plus intéressant je trouve :
Ce script vous permet d'ajouter et de retirer en cours de partie des slots d'équipement! Vous pouvez donc commencer le jeu en ne pouvant équiper qu'une épée, et finir avec tout les équipements nécessaire à un personnage de JdR type D&D! (c'est à dire beaucoup...)
Ce script nécessite Core - Equip Slots
Utilisation + Screen :
Ajouter un équipement :
-Appeler un script, et y insérer ceci :
Retirer un équipement :
-Appeler un script, et y insérer ceci :
Lien de la source :
http://himeworks.wordpress.com/2013/07/13/dynamic-equip-slots/
Mot de Hareck :
Je n'ai vu nul part que l'auteur de souhaiter pas qu'on partage son script partout. Mais par respect pour son travail, je vous conseille tout de même d'aller voir son site web. Qui sait, vous trouverez peut-être une chaussure à votre pied, et même si comme moi, vous avez de très grand pied (en gros, que vous cherchez l'excellence, et facile d'utilisation)
J'ai essayer ses trois scripts, ils fonctionnent à merveille. Je pense l'utiliser pour mon projet, car y'a vraiment quelque chose à en tirer! Ne serrait-ce que pouvoir avoir des chaussures, des capes, etc...
Pour installer ces scripts, il vous faudra les placer en dessous de Material et au dessus de Main. Il vous faudra également les nommer comme dans le titre du script, par exemple, Title : Core - Equip Slots
L'auteur est précisé dans chaque scripts.
Comme vous pouvez le remarquer, ce sont des scripts relativement récent, et donc encore inconnue de la scène francophone.
Tout d'abord, il vous faudra installer ce script :
- Spoiler:
- Code:
=begin
#===============================================================================
Title: Core - Equip Slots
Author: Tsukihime
Date: Sep 22, 2013
--------------------------------------------------------------------------------
** Change log
Sep 22, 2013
- added support for dual wield feature
Jul 12, 2013
- Initial release
--------------------------------------------------------------------------------
** Terms of Use
* Free to use in commercial/non-commercial projects
* No real support. The script is provided as-is
* Will do bug fixes, but no compatibility patches
* Features may be requested but no guarantees, especially if it is non-trivial
* Credits to Tsukihime in your project
* Preserve this header
--------------------------------------------------------------------------------
** Description
This script provides core functionality for extending equip slots.
It improves the way equip slots are handled and allows you to assign
equip slots for each actor individually. It also sorts equip slots
automatically based on your order of choice.
--------------------------------------------------------------------------------
** Installation
Place this script below Materials and above Main
--------------------------------------------------------------------------------
** Usage
-- Assign initial equip slots --
Note-tag actors or classes with
<equip slot: x>
Where `x` is the equip type ID (etype ID). By default, they are as follows:
0 - weapon
1 - shield
2 - headgear
3 - bodygear
4 - accessory
Actor equip slots take precedence over class equip slots if both have been
assigned. If no equip slots are assigned, then the class receives default
equip slots defined in the configuration.
If you are using a custom equip script that allows you to define your own
equip types, you can use those etype ID's as well.
-- Sorting equip slots --
In the configuration, there is a Sort_Order that determines how your equip
slots will be sorted based on etype ID. You must provide a value for every
etype ID in your project.
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_CoreEquipSlots"] = true
#===============================================================================
# ** Configuration
#===============================================================================
module TH
module Core_Equip_Slots
# Order that the equip slots will be sorted. You must include all
# etype ID's defined in your project
Sort_Order = [0, 1, 2, 3, 4, 5, 6]
# Default slots to assign to actor if no slots are provided.
Default_Slots = [0,1,2,3,4]
# Assigns an equip slot
Regex = /<equip[-_ ]slot: (\d+)>/i
#===============================================================================
# ** Rest of script
#===============================================================================
def self.sort_order
Sort_Order
end
def initial_slots
load_notetag_Core_Equip_Slots if @initial_slots.nil?
return @initial_slots
end
end
end
#-------------------------------------------------------------------------------
# Load initial slots for actors and classes
#-------------------------------------------------------------------------------
module RPG
class Actor
include TH::Core_Equip_Slots
def load_notetag_Core_Equip_Slots
@initial_slots = []
res = self.note.scan(TH::Core_Equip_Slots::Regex)
res.each do |data|
@initial_slots << data[0].to_i
end
end
def has_slots?
load_notetag_Core_Equip_Slots if @initial_slots.nil?
return !@initial_slots.empty?
end
end
class Class
include TH::Core_Equip_Slots
def load_notetag_Core_Equip_Slots
@initial_slots = []
res = self.note.scan(TH::Core_Equip_Slots::Regex)
res.each do |data|
@initial_slots << data[0].to_i
end
@initial_slots = Default_Slots if @initial_slots.empty?
end
end
end
#-------------------------------------------------------------------------------
# An equip slot object. Holds a Game_BaseItem object and delegates most calls
# to it for backwards compatibility. The purpose of this class is to
# synchronize the slot ID's and the actual equip items themselves rather than
# storing them as two separate arrays in Game_Actor
#-------------------------------------------------------------------------------
class Game_EquipSlot
attr_reader :etype_id
attr_reader :initial_etype_id
def initialize(etype_id)
@etype_id = etype_id
@item = Game_BaseItem.new
@initial_etype_id = etype_id
end
def is_skill?; @item.is_skill?; end
def is_item?; @item.is_item?; end
def is_weapon?; @item.is_weapon?; end
def is_armor?; @item.is_armor?; end
def is_nil?; @item.is_nil? end
def object
@item.object
end
def object=(obj)
@item.object = obj
end
def set_etype(etype_id)
@etype_id = etype_id
end
def set_equip(weapon, item_id)
@item.set_equip(weapon, item_id)
end
def restore_etype
@etype_id = @initial_etype_id
end
end
#-------------------------------------------------------------------------------
# Abstract the equip slots to reference actual EquipSlot objects. Also
# synchronizes the slot ID's with the slot types.
#-------------------------------------------------------------------------------
class Game_Actor < Game_Battler
alias :th_core_equip_slots_initialize :initialize
def initialize(actor_id)
th_core_equip_slots_initialize(actor_id)
@last_dual_weapon_status = false
end
#-----------------------------------------------------------------------------
# Check
#-----------------------------------------------------------------------------
alias :th_core_equip_slots_refresh :refresh
def refresh
check_equip_slots
th_core_equip_slots_refresh
end
#-----------------------------------------------------------------------------
# Replaced. Create an array of EquipSlot objects instead of just Game_BaseItem
#-----------------------------------------------------------------------------
def init_equips(equips)
@equips = Array.new(initial_slots.size) {|i| Game_EquipSlot.new(initial_slots[i]) }
sort_equip_slots
equips.each_with_index do |item_id, i|
etype_id = index_to_etype_id(i)
slot_id = empty_slot(etype_id)
@equips[slot_id].set_equip(etype_id == 0, item_id) if slot_id
end
refresh
end
#-----------------------------------------------------------------------------
# Replaced. Etype ID's are pulled from the slots themselves
#-----------------------------------------------------------------------------
def equip_slots
@equips.collect {|slot| slot.etype_id }
end
#-----------------------------------------------------------------------------
# New. Returns the initial slots for the actor. Actor slots take precedence
# over class slots.
#-----------------------------------------------------------------------------
def initial_slots
return actor.initial_slots if actor.has_slots?
return self.class.initial_slots
end
#-----------------------------------------------------------------------------
# New. Sort equip slots based on sort order
#-----------------------------------------------------------------------------
def sort_equip_slots
@equips.sort_by! {|eslot| TH::Core_Equip_Slots.sort_order.index(eslot.etype_id)}
end
#-----------------------------------------------------------------------------
# New.
#-----------------------------------------------------------------------------
def check_equip_slots
check_dual_wield_slots if @last_dual_weapon_status != dual_wield?
end
#-----------------------------------------------------------------------------
# New.
#-----------------------------------------------------------------------------
def check_dual_wield_slots
@last_dual_weapon_status = dual_wield?
@equips.each do |slot|
if slot.initial_etype_id == 1
@last_dual_weapon_status ? slot.set_etype(0) : slot.restore_etype
end
end
end
end
#-------------------------------------------------------------------------------
# Adjust contents size to account for additional slots
#-------------------------------------------------------------------------------
class Window_EquipSlot < Window_Selectable
def refresh
create_contents
super
end
end
Ce dernier vous permettra d'avoir ceci :
Lien de la source : http://himeworks.wordpress.com/2013/07/13/core-equip-slots/
Ensuite, vous devrez installer celui ci :
- Spoiler:
- Code:
=begin
#===============================================================================
Title: Custom Equip Types
Author: Tsukihime
Date: Jul 25, 2013
--------------------------------------------------------------------------------
** Change log
Jul 25, 2013
- Initial release
--------------------------------------------------------------------------------
** Terms of Use
* Free to use in commercial/non-commercial projects
* No real support. The script is provided as-is
* Will do bug fixes, but no compatibility patches
* Features may be requested but no guarantees, especially if it is non-trivial
* Credits to Tsukihime in your project
* Preserve this header
--------------------------------------------------------------------------------
** Description
This script allows you to create custom equip types with their own equip
slot names. You can then assign custom equip types to different items.
--------------------------------------------------------------------------------
** Installation
Place this script below Materials and above Main
--------------------------------------------------------------------------------
** Usage
In the configuration section, set up the Equip_Types table with the custom
equip types. Each equip type is given a unique number and a name.
To assign a custom equip type to an item, note-tag it with
<equip type: x>
Where x is one of the equip type ID's that you have set up in the table.
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_CustomEquipTypes"] = true
#===============================================================================
# ** Configuration
#===============================================================================
module TH
module Custom_Equip_Types
# Set up your equip types here.
# Format: etypeID => name
Equip_Types = {
#-Default Equips Types----------------------------------------------------
0 => "Weapon",
1 => "Shield",
2 => "Bodygear",
3 => "Headgear",
4 => "Accessory",
#-Custom Equips Types-----------------------------------------------------
5 => "Gloves",
6 => "Boots",
7 => "Hands"
}
#===============================================================================
# ** Rest of script
#===============================================================================
Regex = /<equip[-_ ]type:\s*(\d+)/i
end
end
module RPG
class EquipItem < BaseItem
alias :th_custom_equip_types_etype_id :etype_id
def etype_id
load_notetag_custom_equip_type unless @custom_etype_checked
th_custom_equip_types_etype_id
end
def load_notetag_custom_equip_type
@custom_etype_checked = true
res = self.note.match(TH::Custom_Equip_Types::Regex)
@etype_id = res[1].to_i if res
end
end
end
module Vocab
def self.etype(etype_id)
TH::Custom_Equip_Types::Equip_Types[etype_id]
end
end
Image :
Utilisation :
Dans la section configuration, vous devriez trouver ceci
Ensuite, il vous suffis d'aller dans vos items, dans la base de donnée, et de faire comme l'auteur :
Lien de la source : http://himeworks.wordpress.com/2013/07/25/custom-equip-types/
Et pour finir, nous avons le script le plus intéressant je trouve :
- Spoiler:
- Code:
=begin
#===============================================================================
Title: Dynamic Equip Slots
Author: Tsukihime
Date: Jul 13, 2013
--------------------------------------------------------------------------------
** Change log
Jul 13, 2013
- Initial release
--------------------------------------------------------------------------------
** Terms of Use
* Free to use in commercial/non-commercial projects
* No real support. The script is provided as-is
* Will do bug fixes, but no compatibility patches
* Features may be requested but no guarantees, especially if it is non-trivial
* Credits to Tsukihime in your project
* Preserve this header
--------------------------------------------------------------------------------
** Description
This script allows you to add or remove equip slots during the game using
script calls. You can add or remove equip slots as many times as you want
using simple script calls.
--------------------------------------------------------------------------------
** Required
Core - Equip Slots
(http://himeworks.wordpress.com/2013/07/13/core-equip-slots/)
--------------------------------------------------------------------------------
** Installation
Place this script below Core - Equip Slots and above Main
--------------------------------------------------------------------------------
** Usage
The following methods are available for adding or removing equip slots
using script calls:
add_equip_slot(actor_id, etype_id)
remove_equip_slot(actor_id, etype_id)
When an equip is removed, the item is returned to your inventory.
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_DynamicEquipSlots"] = true
#===============================================================================
# ** Configuration
#===============================================================================
module TH
module Dynamic_Equip_Slots
end
end
#===============================================================================
# ** Rest of script
#===============================================================================
class Game_Interpreter
#-----------------------------------------------------------------------------
# New. Adds an equip slot with the given etype to the specified actor.
#-----------------------------------------------------------------------------
def add_equip_slot(actor_id, etype_id)
$game_actors[actor_id].add_equip_slot(etype_id)
end
#-----------------------------------------------------------------------------
# New. Removes an equip slot with the given etype from the specified actor.
#-----------------------------------------------------------------------------
def remove_equip_slot(actor_id, etype_id)
$game_actors[actor_id].remove_equip_slot(etype_id)
end
end
class Game_Actor < Game_Battler
#-----------------------------------------------------------------------------
# New. Adds an equip slot to the actor with the given etype id
#-----------------------------------------------------------------------------
def add_equip_slot(etype_id)
@equips.push(Game_EquipSlot.new(etype_id))
sort_equip_slots
end
#-----------------------------------------------------------------------------
# New. Deletes an equip slot for the given etype. If there are multiple slots
# with that etype, simply removes one at random. Any equipped items in that
# slot is returned to the inventory.
#-----------------------------------------------------------------------------
def remove_equip_slot(etype_id)
slot_id = @equips.index {|eslot| eslot.etype_id == etype_id }
return unless slot_id
change_equip(slot_id, nil)
@equips.delete_at(slot_id)
end
end
Ce script vous permet d'ajouter et de retirer en cours de partie des slots d'équipement! Vous pouvez donc commencer le jeu en ne pouvant équiper qu'une épée, et finir avec tout les équipements nécessaire à un personnage de JdR type D&D! (c'est à dire beaucoup...)
Ce script nécessite Core - Equip Slots
Utilisation + Screen :
Ajouter un équipement :
-Appeler un script, et y insérer ceci :
- Code:
add_equip_slot(actor_id, etype_id)
Retirer un équipement :
-Appeler un script, et y insérer ceci :
- Code:
remove_equip_slot(actor_id, etype_id)
Lien de la source :
http://himeworks.wordpress.com/2013/07/13/dynamic-equip-slots/
Mot de Hareck :
Je n'ai vu nul part que l'auteur de souhaiter pas qu'on partage son script partout. Mais par respect pour son travail, je vous conseille tout de même d'aller voir son site web. Qui sait, vous trouverez peut-être une chaussure à votre pied, et même si comme moi, vous avez de très grand pied (en gros, que vous cherchez l'excellence, et facile d'utilisation)
J'ai essayer ses trois scripts, ils fonctionnent à merveille. Je pense l'utiliser pour mon projet, car y'a vraiment quelque chose à en tirer! Ne serrait-ce que pouvoir avoir des chaussures, des capes, etc...
Re: Ensemble de script pour la gestion de l'équipement
Lun 14 Oct 2013 - 11:47
Bonjour,
Merci du partage, mais je ne les utilises pas par soucis de compatibilité. L'auteur précise bien sur son site http://himeworks.wordpress.com/about-2/ que tout type de projet est accepté sans licence, mais qu'un don ne serait pas de trop.
Si jamais, Yanfly dispose également de son Ace Equip Engine, qui fonctionne sur le même principe.
Merci du partage, mais je ne les utilises pas par soucis de compatibilité. L'auteur précise bien sur son site http://himeworks.wordpress.com/about-2/ que tout type de projet est accepté sans licence, mais qu'un don ne serait pas de trop.
Si jamais, Yanfly dispose également de son Ace Equip Engine, qui fonctionne sur le même principe.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum