Mage Lv.11
Age : 27 Inscrit le : 02/03/2009 Messages : 513
| Sujet: Re: Lvl Equipmment Sam 7 Nov 2009 - 18:53 | |
| oui il existe tiens le voici : il y a deux script met celui-là juste au dessus : Nomme le comme tu veux sa change rien - Spoiler:
- Code:
-
#============================================================================== # ** Notes Field System #------------------------------------------------------------------------------ # By Syvkal # Version 1.5 # 05-29-08 #==============================================================================
module NOTES def get_tag(field, tag, extra_tag = "") note = ""+field note = note.split(" ") for i in 0...note.size if note[i].include?(tag + extra_tag) tags = note[i] tags.slice!(tag) if extra_tag != "" tags.slice!(extra_tag) end tags = tags.split(/,s*/) return tags end end return nil end def get_multiple_tag(field, tag, extra_tag = "") note = ""+field note = note.split(" ") for i in 0...note.size if note[i].include?(tag + extra_tag) tags = note[i] tags.slice!(tag) if extra_tag != "" tags.slice!(extra_tag) end tags = tags.split(/,s*/) for i in 0...tags.size if tags[i].include?('&') tags[i] = tags[i].split(/s*&s*/) end end return tags end end return nil end def has_tag?(field, tag, extra_tag = "") note = ""+field if note.include?(tag + extra_tag) return true end return false end def get_tag_area(field, area_tags) note = ""+field if note.include?(area_tags) @yes = false note = note.split(/#{area_tags}/) note = note[1] return note else return "" end end end
mais celui-là juste en dessous : Nomme le comme tu veux ^^ - Spoiler:
- Code:
-
#============================================================================== # ** Conditional Skills And Equipment #------------------------------------------------------------------------------ # By Syvkal # Version 2.6.1 # 05-09-08 #============================================================================== # # - INTRODUCTION - # # This script can be used to set special use conditions to skills and equipment # There are a number of different ones you can check: # #------------------------------------------------------------------------------ =begin Pour utiliser ce script, choisissez l'arme ou le sort à utiliser sous certaines conditions et rajoutez dans la partie Note: - <skill><skill> s'il s'agit d'un sort; - <equip><equip> s'il s'agit d'un équipement. Entre ces deux balises, vous insèrerez la condition que vous souhaitez. Exemple: Code: <equip>LEVELMORE9<equip>
Le héros devra alors avoir un niveau supérieur à 9 pour pouvoir équiper son arme.
Vous pouvez également mettre plusieurs conditions pour l'arme ou le sort. Exemple: Code: <skill>HPLESS500 HPMORE400<skill>
Le héros devra donc avoir entre 400 et 500 points de vie.
La liste des commandes utilisable pour les sorts est: - STATEx: Le héros doit subir l'état x (ID de l'état) pour lancer le sort; - WEAPONx: L'arme d'ID x doit être équipée; - ARMOURx: L'armure d'ID x doit être équipée (vous pouvez également mettre la condition avec deux armures en mettant ARMOURx,y avec x et y les ID des deux armures nécessaires); - HPLESSx: La vie du héros doit être inférieure à x% de sa vie totale; - HPMOREx: La vie du héros doit être supérieure à x% de sa vie totale; - FREEHANDx: x des deux mains du héros doit être libre; - ITEM: ITEMx: Le héros doit posséder l'objet x (ID de l'objet); ITEMx,y: Le héros doit posséder l'objet x et l'objet y (ID des objets); ITEMx&y,z: Le héros doit posséder y fois l'objet x et doit posséder l'objet z (x et z les ID des objets); - ITEMUSE: ITEMUSEx: Le héros doit posséder l'objet x (ID de l'objet) et le sacrifiera lors de l'utilisation du sort; ITEMUSEx,y: Le héros doit posséder l'objet x et l'objet y (ID des objets) et les sacrifiera lors de l'utilisation du sort; ITEMUSEx&y,z: Le héros doit posséder y fois l'objet x et doit posséder l'objet z (x et z les ID des objets) et les sacrifiera lors de l'utilisation du sort; - GOLDx: Le héros doit posséder au moins x unités de l'argent du jeu pour lancer le sort; - GOLDUSEx: Le héros doit posséder au moins x unités de l'argent du jeu et les sacrifiera pour lancer le sort; - LEVELLESSx: Le niveau du héros doit être inférieur à x (remplacez x par la valeur); - LEVELMOREx: Le niveau du héros doit être supérieur à x (remplacez x par la valeur); - CLASSx: Seuls les héros de classe x (ID de la classe) peuvent utiliser le sort (vous pouvez également mettre la condition avec deux classes en mettant CLASSx,y avec x et y les ID des deux classes possibles); - PARTYNUMBERx: Le nombre de héros dans le groupe doit être supérieur ou égal à x pour lancer le sort; - PARTYMEMBERx: Le héros x (ID du héros) doit être présent dans le groupe pour lancer le sort.
La liste des commandes utilisable pour les équipements est: - LEVELLESSx: Le niveau du héros doit être inférieur à x (remplacez x par la valeur); - LEVELMOREx: Le niveau du héros doit être supérieur à x (remplacez x par la valeur); - WEAPONx: L'arme d'ID x doit être équipée; - ARMOURx: L'armure d'ID x doit être équipée (vous pouvez également mettre la condition avec deux armures en mettant ARMOURx,y avec x et y les ID des deux armures nécessaires); - ATKx: ATK du héros doit être supérieur ou égal à x; - DEFx: DEF du héros doit être supérieur ou égal à x; - SPIx: SPI du héros doit être supérieur ou égal à x; - AGIx: AGI du héros doit être supérieur ou égal à x. =end # # - FEATURES - # # There are a number of different Conditional features that can be used # These include: # # STATE - Whether certain states are inflicted # WEAPON - Whether certain weapons are equipped # ARMOUR - Whether certain armours are equipped # ITEM - Whether certain items are in your inventory (which can be used up) # HP - Whether HP is MORE or LESS than a percent of the MAXHP # GOLD - Whether the party has a certain amount of gold (which can be used up) # LEVEL - Whether the LEVEL is MORE or LESS than a certain point # CLASS - Whether the actor is a certain class # PARTYMEMBER - Whether a certain actor is in your party (and alive) # PARTYNUMBER - Whether a certain amount of actors are in your party (and alive) # FREEHAND - Whether the actor has 1 or 2 free hands # ATK - Whether the actor has a certain amount of ATK # DEF - Whether the actor has a certain amount of DEF # SPI - Whether the actor has a certain amount of SPI # AGI - Whether the actor has a certain amount of AGI # # NOSHOW - Add this to make a skill not appear when it can't be used # # More than one can be used on any skill or equipement # However only some can be used for skills and only some for equipement # #------------------------------------------------------------------------------ # # - USAGE - # # First make a skill/equipment in the Database and in it's note box place this: # # <skill> <equip> # ..... or ..... # <skill> <equip> # # You must place any necessary Coding or tags in there # Anything you place in there must be on a separate line # # Condition tags must be followed by a number, multiple numbers can be entered # these must be separated by a comma ',' # Some conditions can use the '&' feature # # See EXAMPLES if you are unsure # #------------------------------------------------------------------------------ # # - SKILLS - # # The special conditions that can be set to skills are as follows: # # STATE WEAPON ARMOUR HPLESS HPMORE # FREEHAND ITEM ITEMUSE GOLD GOLDUSE # LEVELLESS LEVELMORE CLASS # PARTYNUMBER PARTYMEMBER # #------------------------------------------------------------------------------ # # - EQUIPMENT - # # The special conditions that can be set to equipment are as follows: # # LEVELLESS LEVELMORE WEAPON ARMOUR # ATK DEF SPI AGI # #------------------------------------------------------------------------------ # # - EXAMPLES - # # Here is a list of examples to show you how to use each condition: # # STATE12 - State 12 must be inflicted to use the skill # WEAPON1 - Weapon 1 must be equipped to use the skill # ARMOUR2,9 - Both armours 2 and 9 must be equipped to use the skill # FREEHAND2 - Both of the actors hands must be free to use the skill # HPLESS25 - Health must be below 25% to use the skill # HPMORE50 - Health must be above 50% to use the skill # ITEM1,2 - Must have items 1, 2 and 3 to use the skill # ITEMUSE1,2 - Must have and will use 1 of items 1 and 2 to use the skill # ITEM1&3,2 - Must have 3 of item 1 and 1 of item 2 to use the skill # ITEMUSE1&3 - Must have and will use 3 of item 1 to use the skill # GOLD1000 - Must have 1000 Gold to use the skill # GOLDUSE100 - Must have and will use 100 Gold to use the skill # CLASS1,2 - Must be Class 1 or 2 (RTP : Paladin, Warrior) to use the skill # LEVELLESS5 - Must be under Level 5 to use the skill # LEVELMORE9 - Must be over level 9 to use the skill # PARTYMEMBER4 - Must have Actor 4 (RTP : Ylva) to use the skill # PARTYNUMBER3 - Must have 3 or more actors in the party to use the skill # ATK100 - Must have ATK greater than or equal to 100 # DEF100 - Must have DEF greater than or equal to 100 # SPI100 - Must have SPI greater than or equal to 100 # AGI100 - Must have AGI greater than or equal to 100 # #==============================================================================
#===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# # Remove Equipment when conditions don't apply anymore? REMOVE_EQUIP = true # Show a message saying that the equipment has been removed? SHOW_MESSAGE = true # Speed at which the message will disappear MESSAGE_SPEED = 2 # 1 = Slow 2 = Medium 3+ = Very Fast # Amount of frames the message will stay for MESSAGE_STAY = 20 # 20 is average - You want it lower if the speed is slow # Use an Icon in the message? USE_ICON = true # Message that tells you what has been removed EQUIP_REMOVE = "%s n'est plus equiper !" # Message explain's why EQUIP_MESSAGE = "%s ne peux pas être utiliser maintenant !"
#===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================#
#============================================================================== # ** script Import #------------------------------------------------------------------------------ # Added to make it work with or without Conditional Skills #============================================================================== $imported = {} if $imported == nil $imported["ConditionalSkill"] = true #============================================================================== # ** Game_Battler #------------------------------------------------------------------------------ # Added Checks for Conditional Skills And Equipment #==============================================================================
class Game_Battler #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias skill_use_original skill_can_use? #-------------------------------------------------------------------------- # * Includes The NOTES Module #-------------------------------------------------------------------------- include NOTES #-------------------------------------------------------------------------- # * Determine Usable Skills #-------------------------------------------------------------------------- def skill_can_use?(skill) return false unless skill_condition_can_use?(skill) skill_use_original(skill) end #-------------------------------------------------------------------------- # * Determine Usable Skill Conditions #-------------------------------------------------------------------------- def skill_condition_can_use?(skill) if has_tag?(skill.note, '<skill>') @conditions = get_tag_area(skill.note, '<skill>') if has_tag?(@conditions,'STATE') @tags = get_tag(@conditions,'STATE') for i in 0...@tags.size return false unless state?(@tags[i].to_i) end end if has_tag?(@conditions,'WEAPON') @tags = get_tag(@conditions,'WEAPON') for i in 0...@tags.size return false unless weapons.include?($data_weapons[@tags[i].to_i]) end end if has_tag?(@conditions,'ARMOUR') @tags = get_tag(@conditions,'ARMOUR') for i in 0...@tags.size return false unless armors.include?($data_armors[@tags[i].to_i]) end end if has_tag?(@conditions,'ITEM') @tags = get_multiple_tag(@conditions,'ITEM','USE') for i in 0...@tags.size if @tags[i].is_a?(Array) return false unless $game_party.item_number($data_items[@tags[i][0].to_i]) >= @tags[i][1].to_i else return false unless $game_party.item_number($data_items[@tags[i].to_i]) >= 1 end end end if has_tag?(@conditions,'ITEM','USE') @tags = get_multiple_tag(@conditions,'ITEM','USE') for i in 0...@tags.size if @tags[i].is_a?(Array) return false unless $game_party.item_number($data_items[@tags[i][0].to_i]) >= @tags[i][1].to_i else return false unless $game_party.item_number($data_items[@tags[i].to_i]) >= 1 end end end if has_tag?(@conditions,'HP','LESS') @tags = get_tag(@conditions,'HP','LESS') return false unless hp <= maxhp / (100 / @tags[0].to_i) end if has_tag?(@conditions,'HP','MORE') @tags = get_tag(@conditions,'HP','MORE') return false unless hp >= maxhp / (100 / @tags[0].to_i) end if has_tag?(@conditions,'LEVEL','LESS') @tags = get_tag(@conditions,'LEVEL','LESS') return false unless @level < @tags[0].to_i end if has_tag?(@conditions,'LEVEL','MORE') @tags = get_tag(@conditions,'LEVEL','MORE') return false unless @level > @tags[0].to_i end if has_tag?(@conditions,'CLASS') @tags = get_tag(@conditions,'CLASS') return false unless @class_id == @tags[0].to_i or @tags[1].to_i end if has_tag?(@conditions,'GOLD') @tags = get_multiple_tag(@conditions,'GOLD','USE') return false unless $game_party.gold >= @tags[0].to_i end if has_tag?(@conditions,'GOLD','USE') @tags = get_multiple_tag(@conditions,'GOLD','USE') return false unless $game_party.gold >= @tags[0].to_i end if has_tag?(@conditions,'PARTY','NUMBER') @tags = get_multiple_tag(@conditions,'PARTY','NUMBER') return false unless $game_party.existing_members.size >= @tags[0].to_i end if has_tag?(@conditions,'PARTY','MEMBER') @tags = get_multiple_tag(@conditions,'PARTY','MEMBER') return false unless $game_party.existing_members.include?($game_actors[@tags[0].to_i]) end if has_tag?(@conditions,'FREEHAND') @tags = get_tag(@conditions,'FREEHAND') return false unless free_hands >= @tags[0].to_i end end return true end #-------------------------------------------------------------------------- # * Determine Usable Equipment Conditions #-------------------------------------------------------------------------- def equipment_can_use?(equip) if equip != nil if has_tag?(equip.note, '<equip>') @conditions = get_tag_area(equip.note, '<equip>') if has_tag?(@conditions,'LEVEL','LESS') @tags = get_tag(@conditions,'LEVEL','LESS') return false unless @level < @tags[0].to_i end if has_tag?(@conditions,'LEVEL','MORE') @tags = get_tag(@conditions,'LEVEL','MORE') return false unless @level > @tags[0].to_i end if has_tag?(@conditions,'WEAPON') @tags = get_tag(@conditions,'WEAPON') for i in 0...@tags.size return false unless weapons.include?($data_weapons[@tags[i].to_i]) end end if has_tag?(@conditions,'ARMOUR') @tags = get_tag(@conditions,'ARMOUR') for i in 0...@tags.size return false unless armors.include?($data_armors[@tags[i].to_i]) end end if has_tag?(@conditions,'ATK') @tags = get_tag(@conditions,'ATK') return false unless actor.parameters[2, @level] >= @tags[0].to_i end if has_tag?(@conditions,'DEF') @tags = get_tag(@conditions,'DEF') return false unless actor.parameters[3, @level] >= @tags[0].to_i end if has_tag?(@conditions,'SPI') @tags = get_tag(@conditions,'SPI') return false unless actor.parameters[4, @level] >= @tags[0].to_i end if has_tag?(@conditions,'AGI') @tags = get_tag(@conditions,'AGI') return false unless actor.parameters[5, @level] >= @tags[0].to_i end end end return true end #-------------------------------------------------------------------------- # * Determine Hidden Skills #-------------------------------------------------------------------------- def show_skill?(skill) return true if skill_can_use?(skill) if has_tag?(skill.note,'NOSHOW') return skill_condition_can_use?(skill) end return true end #-------------------------------------------------------------------------- # * Check For Free Hands #-------------------------------------------------------------------------- def free_hands @free_hands = 0 @free_hands += @weapon_id==0 ? 1 : 0 @free_hands += @armor1_id==0 ? 1 : 0 return @free_hands end end
#============================================================================== # ** Scene_Battle #------------------------------------------------------------------------------ # Added removal of necessary skill components #==============================================================================
class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias execute_skill_original execute_action_skill #-------------------------------------------------------------------------- # * Includes The NOTES Module #-------------------------------------------------------------------------- include NOTES #-------------------------------------------------------------------------- # * Execute Battle Action: Skill #-------------------------------------------------------------------------- def execute_action_skill execute_skill_original skill = @active_battler.action.skill if has_tag?(skill.note, '<skill>') @conditions = get_tag_area(skill.note, '<skill>') if has_tag?(@conditions,'ITEM','USE') @tags = get_multiple_tag(@conditions,'ITEM','USE') for i in 0...@tags.size if @tags[i].is_a?(Array) $game_party.lose_item($data_items[@tags[i][0].to_i],@tags[i][1].to_i,true) else $game_party.lose_item($data_items[@tags[i].to_i],1,true) end end end if has_tag?(@conditions,'GOLD','USE') @tags = get_tag(@conditions,'GOLD','USE') $game_party.lose_gold(@tags[0].to_i) end end end end
#============================================================================== # ** Scene_Skill #------------------------------------------------------------------------------ # Added removal of necessary skill components #==============================================================================
class Scene_Skill < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias use_skill_original use_skill_nontarget #-------------------------------------------------------------------------- # * Includes The NOTES Module #-------------------------------------------------------------------------- include NOTES #-------------------------------------------------------------------------- # * Use Skill (apply effects to non-ally targets) #-------------------------------------------------------------------------- def use_skill_nontarget if has_tag?(@skill.note, '<skill>') @conditions = get_tag_area(@skill.note, '<skill>') if has_tag?(@conditions,'ITEM','USE') @tags = get_multiple_tag(@conditions,'ITEM','USE') for i in 0...@tags.size if @tags[i].is_a?(Array) $game_party.lose_item($data_items[@tags[i][0].to_i],@tags[i][1].to_i,true) else $game_party.lose_item($data_items[@tags[i].to_i],1,true) end end end if has_tag?(@conditions,'GOLD','USE') @tags = get_tag(@conditions,'GOLD','USE') $game_party.lose_gold(@tags[0].to_i) end use_skill_original end end end
#============================================================================== # ** Window_EquipItem #------------------------------------------------------------------------------ # Added Check for Conditional Equipment #==============================================================================
class Window_EquipItem < Window_Item #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias enable_original enable? #-------------------------------------------------------------------------- # * Whether to display item in enabled state #-------------------------------------------------------------------------- def enable?(item) return false unless @actor.equipment_can_use?(item) enable_original(item) end end
#============================================================================== # ** Scene_Map #------------------------------------------------------------------------------ # Added removal of Equipment when conditions don't apply anymore #==============================================================================
class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias update_original update alias terminate_original terminate alias start_original start #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start start_original @stay = MESSAGE_STAY end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate terminate_original @notify_window.dispose if @notify_window end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update update_original if @notify_window @notify_window.update @stay -= 1 if @stay <= 0 @notify_window.opacity -= MESSAGE_SPEED @notify_window.contents_opacity -= MESSAGE_SPEED end if @notify_window.opacity == 0 @notify_window.dispose @notify_window = nil end end if REMOVE_EQUIP update_equipment end end #-------------------------------------------------------------------------- # * Update Equipment #-------------------------------------------------------------------------- def update_equipment for actor in $game_party.members for i in 0...actor.equips.size unless actor.equipment_can_use?(actor.equips[i]) if SHOW_MESSAGE unless @notify_window @notify_window = Window_Base.new(0, 0, 320, 80) w = @notify_window.width-32; h = @notify_window.height-32 @notify_window.contents = Bitmap.new(w, h) @notify_window.x = (544 - @notify_window.width) / 2 @notify_window.y = (416 - @notify_window.height) / 2 @notify_window.z = 9998 icon_index = actor.equips[i].icon_index if USE_ICON @notify_window.draw_icon(icon_index, 0, 4,true) end @notify_window.contents.draw_text(USE_ICON ? 24 : 0, 0, w, 24, sprintf(EQUIP_REMOVE, actor.equips[i].name), 0) @notify_window.contents.draw_text(0, 24, w, 24, sprintf(EQUIP_MESSAGE, actor.name), 2) @stay = MESSAGE_STAY actor.change_equip(i, nil) end end end end end end end #============================================================================== # ** Scene_Equip #------------------------------------------------------------------------------ # Edited to add 'equipment_can_use?' function #==============================================================================
class Scene_Equip < Scene_Base #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input::B) Sound.play_cancel @equip_window.active = true @item_window.active = false @item_window.index = -1 elsif Input.trigger?(Input::C) if @actor.equipment_can_use?(@item_window.item) # Added 'equipment_can_use?' Sound.play_equip @actor.change_equip(@equip_window.index, @item_window.item) @equip_window.active = true @item_window.active = false @item_window.index = -1 @equip_window.refresh for item_window in @item_windows item_window.refresh end else Sound.play_buzzer end end end end
#============================================================================== # ** Window_Skill #------------------------------------------------------------------------------ # Edited to hide certain skills #==============================================================================
class Window_Skill < Window_Selectable #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for skill in @actor.skills @data.push(skill) if @actor.show_skill?(skill) # Added 'If' statement if skill.id == @actor.last_skill_id self.index = @data.size - 1 end end @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end end
Auteur : Syvkal Sur ce script il y a bien plus que ce que tu cherches, lis bien les commentaires ^^, si tu comprends pas dit le ^^ |
|