Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 00:12
Alors en effet mes flèches et bombes sont des items, ont peut en acheté et vendre, ont peut en trouvé sur des ennemies (lorsqu'ils meurent ils laisse tombé un trésor) ,au sol et dans des coffres.
Je voudrais préciser que j'utilise RPG Maker XP XAS (3.82) et le script Xas calcul déjà les soustractions de flèches quand j'en utilise une ou plusieurs mais comme le jeu définit une limite pas défaut de 99, je me retrouve avec 99 flèches, 99 bombes, 99 potions... ce qui est bien en soi mais ce que j'aimerai faire c'est bridé ces 99 unités à 30 pour commencer puis à 50 ainsi de suite. Imaginez les possibilités si je pouvais maîtrisé cela
Invité Invité
Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 15:09
Donc c'est pas en event... Puisque tu utilises un script !
Le problème des scripts c'est qu'ils sont souvent mal commentés, là tu vas devoir trouver la variable qui correspond à la limite par défaut de l'objet [a] (admettons "flèches" ou "bombes") et changer sa valeur pour "30" au lieu de "99".
Je suppose que c'est pour un A-RPG (l'action comme dans un Zelda, quoi ?) ? Très franchement je ne pourrais que trop te conseiller, si tu ne sais pas toi-même déjà un peu coder ou si tu ne t'intéresses pas un minimum à la programmation, d'oublier l'utilisation de Scripts. J'ai plusieurs solutions à te proposer, en attendant que tu nous ai décrit un peu plus en profondeur le gameplay de ton jeu pour qu'on puisse t'aider vraiment:
1) Tu veux faire un jeu dont les mécaniques de Gameplay sont tout bonnement celles d'un Zelda ? - Apprends à utiliser le logiciel zQuest qui est prévu pour, tu trouveras sur e-magination des tutoriels pour débuter, en Français. - Oublie les scripts et tente de coder ce système en Events (ce sera imprécis mais t'arriveras plus vite à quelque chose... De relativement injouable et / ou moche) avec RPG Maker. - Lance toi dans le Ruby / RGSS, comprends les rudiments de la programmation et modifie ton script RPG Maker.
2) Tu veux faire un RPG avec des objets limités utilisables en combat: - Utilises les "MP" en guise d'unité d'objet (1 MP = 1 flèche, 30 MP Max. Niveau 2 60 MP Max...) - Utilises simplement une variable de référence avec une valeur de "30" pour commencer ... Et je me rends compte que ce que je suis en train de t'expliquer là est certainement très chiant à comprendre donc je vais attendre que tu nous ai vraiment décris le gameplay de ton jeu, ce que tu aimerais vraiment, concrètement, qu'il se passe dans ton jeu, pour te répondre... Lol.
Tu peux aussi, par exemple, nous copier coller le script que tu utilises, pour qu'on y voit plus clair et qu'éventuellement, on te le modifie.
Relm ---Fantôme--- Lv 0
Nombre de messages : 40939 Age : 33
Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 16:24
Si on peut acheter des flèches et bombes à l'unité via les magasins de base de RM, je pense que c'est fichu. Bon, presque personne utilise des scripts ici de toute manière car on sait généralement faire sans, donc je crois que la meilleure façon pour toi c'est d'apprendre les scripts si tu veux en utiliser (mais ce serait finalement mieux d'apprendre les events lol).
____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
Invité Invité
Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 16:37
Y a pas besoin d'apprendre la programmation pour créer un système pareil. Avec RPG Maker tu peux clairement faire ça en Event sans trop te prendre la tête donc oui, c'est mieux qu'il apprenne à faker correctement en événements ^^ Mais généralement les gens qui ont goûté à la simplicité d'inclure un script codé par autrui dans leur projet n'ont pas spécialement envie d'apprendre à faker en Event.
Mais bon là c'est clairement juste l'histoire de deux pauvres variables, une qui définit la quantité max d'objets qu'il peut posséder et l'autre qui définit le nombre d'objets justement possédés. Après avec une simple condition "Si objets > nombre_autorisé" on fait revenir le nombre d'objets au strict maximum. Y a clairement pas besoin d'un script pour ça, Rm gère ça très bien dans ses fonctions de base.
Toujours est-il que s'il veut faire un Zelda, on peut l'orienter vers Zquest, n'est-ce pas ?
Relm ---Fantôme--- Lv 0
Nombre de messages : 40939 Age : 33
Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 17:23
Le seul problème avec ça c'est qu'il doit éviter les shops de base de RM où tu peux acheter 99 exemplaires des items d'un coup. (on perdrait de l'argent en faisant ça).
____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
Invité Invité
Sujet: Re: Questions en vrac sur XP Mar 13 Déc 2016, 17:52
En effet, il faudra qu'il customise son propre shop mais c'est pas bien compliqué, là encore ça tient sur quelques bêtes variables, la boite de dialogue et de choix multiples (surtout pour un Shop "Zelda-Like" où généralement on n'a que 3,4 items par spot). =]
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Mer 14 Déc 2016, 00:28
Tout d'abord laissez-moi vous remercier pour l'aide que vous me confierez
Pour ce qui est de changer de logiciel, je ne peut envisager une telle option car voyez-vous j'estime que j'ai consacré pas mal de temps sur ce projet et j'estime aussi que j'ai très bien avancé
Tout ce que je demande c'est ce tout petit détail de rien du tout certes mais qui donnera plus de perspective à mon projet...
Maintenant si cela n'est pas possible tant pis le joueur commencera à collecter des flèches jusqu'à 99 unités. Pour ma part je trouve cela vraiment dommage... néanmoins j'ai trouvé deux scripts d'origine concernant la limite d'objets maximal et pour l'autre script il s'agit je pense de la partie concernant les shops.
Voici le script "Game_Party" ici il est question des limites d'objet et j'aimerais avoir votre avis sur les lignes 176 à 181.
Code:
#============================================================================== # ** Game_Party #------------------------------------------------------------------------------ # This class handles the party. It includes information on amount of gold # and items. Refer to "$game_party" for the instance of this class. #==============================================================================
class Game_Party #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :actors # actors attr_reader :gold # amount of gold attr_reader :steps # number of steps #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Create actor array @actors = [] # Initialize amount of gold and steps @gold = 0 @steps = 0 # Create amount in possession hash for items, weapons, and armor @items = {} @weapons = {} @armors = {} end #-------------------------------------------------------------------------- # * Initial Party Setup #-------------------------------------------------------------------------- def setup_starting_members @actors = [] for i in $data_system.party_members @actors.push($game_actors[i]) end end #-------------------------------------------------------------------------- # * Battle Test Party Setup #-------------------------------------------------------------------------- def setup_battle_test_members @actors = [] for battler in $data_system.test_battlers actor = $game_actors[battler.actor_id] actor.level = battler.level gain_weapon(battler.weapon_id, 1) gain_armor(battler.armor1_id, 1) gain_armor(battler.armor2_id, 1) gain_armor(battler.armor3_id, 1) gain_armor(battler.armor4_id, 1) actor.equip(0, battler.weapon_id) actor.equip(1, battler.armor1_id) actor.equip(2, battler.armor2_id) actor.equip(3, battler.armor3_id) actor.equip(4, battler.armor4_id) actor.recover_all @actors.push(actor) end @items = {} for i in 1...$data_items.size if $data_items[i].name != "" occasion = $data_items[i].occasion if occasion == 0 or occasion == 1 @items[i] = 99 end end end end #-------------------------------------------------------------------------- # * Refresh Party Members #-------------------------------------------------------------------------- def refresh # Actor objects split from $game_actors right after loading game data # Avoid this problem by resetting the actors each time data is loaded. new_actors = [] for i in 0...@actors.size if $data_actors[@actors[i].id] != nil new_actors.push($game_actors[@actors[i].id]) end end @actors = new_actors end #-------------------------------------------------------------------------- # * Getting Maximum Level #-------------------------------------------------------------------------- def max_level # If 0 members are in the party if @actors.size == 0 return 0 end # Initialize local variable: level level = 0 # Get maximum level of party members for actor in @actors if level < actor.level level = actor.level end end return level end #-------------------------------------------------------------------------- # * Add an Actor # actor_id : actor ID #-------------------------------------------------------------------------- def add_actor(actor_id) # Get actor actor = $game_actors[actor_id] # If the party has less than 4 members and this actor is not in the party if @actors.size < 4 and not @actors.include?(actor) # Add actor @actors.push(actor) # Refresh player $game_player.refresh end end #-------------------------------------------------------------------------- # * Remove Actor # actor_id : actor ID #-------------------------------------------------------------------------- def remove_actor(actor_id) # Delete actor @actors.delete($game_actors[actor_id]) # Refresh player $game_player.refresh end #-------------------------------------------------------------------------- # * Gain Gold (or lose) # n : amount of gold #-------------------------------------------------------------------------- def gain_gold(n) @gold = [[@gold + n, 0].max, 9999999].min end #-------------------------------------------------------------------------- # * Lose Gold # n : amount of gold #-------------------------------------------------------------------------- def lose_gold(n) # Reverse the numerical value and call it gain_gold gain_gold(-n) end #-------------------------------------------------------------------------- # * Increase Steps #-------------------------------------------------------------------------- def increase_steps @steps = [@steps + 1, 9999999].min end #-------------------------------------------------------------------------- # * Get Number of Items Possessed # item_id : item ID #-------------------------------------------------------------------------- def item_number(item_id) # If quantity data is in the hash, use it. If not, return 0 return @items.include?(item_id) ? @items[item_id] : 0 end #-------------------------------------------------------------------------- # * Get Number of Weapons Possessed # weapon_id : weapon ID #-------------------------------------------------------------------------- def weapon_number(weapon_id) # If quantity data is in the hash, use it. If not, return 0 return @weapons.include?(weapon_id) ? @weapons[weapon_id] : 0 end #-------------------------------------------------------------------------- # * Get Amount of Armor Possessed # armor_id : armor ID #-------------------------------------------------------------------------- def armor_number(armor_id) # If quantity data is in the hash, use it. If not, return 0 return @armors.include?(armor_id) ? @armors[armor_id] : 0 end #-------------------------------------------------------------------------- # * Gain Items (or lose) # item_id : item ID # n : quantity #-------------------------------------------------------------------------- def gain_item(item_id, n) # Update quantity data in the hash. if item_id > 0 @items[item_id] = [[item_number(item_id) + n, 0].max, 30].min end end #-------------------------------------------------------------------------- # * Gain Weapons (or lose) # weapon_id : weapon ID # n : quantity #-------------------------------------------------------------------------- def gain_weapon(weapon_id, n) # Update quantity data in the hash. if weapon_id > 0 @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # * Gain Armor (or lose) # armor_id : armor ID # n : quantity #-------------------------------------------------------------------------- def gain_armor(armor_id, n) # Update quantity data in the hash. if armor_id > 0 @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # * Lose Items # item_id : item ID # n : quantity #-------------------------------------------------------------------------- def lose_item(item_id, n) # Reverse the numerical value and call it gain_item gain_item(item_id, -n) end #-------------------------------------------------------------------------- # * Lose Weapons # weapon_id : weapon ID # n : quantity #-------------------------------------------------------------------------- def lose_weapon(weapon_id, n) # Reverse the numerical value and call it gain_weapon gain_weapon(weapon_id, -n) end #-------------------------------------------------------------------------- # * Lose Armor # armor_id : armor ID # n : quantity #-------------------------------------------------------------------------- def lose_armor(armor_id, n) # Reverse the numerical value and call it gain_armor gain_armor(armor_id, -n) end #-------------------------------------------------------------------------- # * Determine if Item is Usable # item_id : item ID #-------------------------------------------------------------------------- def item_can_use?(item_id) # If item quantity is 0 if item_number(item_id) == 0 # Unusable return false end # Get usable time occasion = $data_items[item_id].occasion # If in battle if $game_temp.in_battle # If useable time is 0 (normal) or 1 (only battle) it's usable return (occasion == 0 or occasion == 1) end # If useable time is 0 (normal) or 2 (only menu) it's usable return (occasion == 0 or occasion == 2) end #-------------------------------------------------------------------------- # * Clear All Member Actions #-------------------------------------------------------------------------- def clear_actions # Clear All Member Actions for actor in @actors actor.current_action.clear end end #-------------------------------------------------------------------------- # * Determine if Command is Inputable #-------------------------------------------------------------------------- def inputable? # Return true if input is possible for one person as well for actor in @actors if actor.inputable? return true end end return false end #-------------------------------------------------------------------------- # * Determine Everyone is Dead #-------------------------------------------------------------------------- def all_dead? # If number of party members is 0 if $game_party.actors.size == 0 return false end # If an actor is in the party with 0 or more HP for actor in @actors if actor.hp > 0 return false end end # All members dead return true end #-------------------------------------------------------------------------- # * Slip Damage Check (for map) #-------------------------------------------------------------------------- def check_map_slip_damage for actor in @actors if actor.hp > 0 and actor.slip_damage? actor.hp -= [actor.maxhp / 100, 1].max if actor.hp == 0 $game_system.se_play($data_system.actor_collapse_se) end $game_screen.start_flash(Color.new(255,0,0,128), 4) $game_temp.gameover = $game_party.all_dead? end end end #-------------------------------------------------------------------------- # * Random Selection of Target Actor # hp0 : limited to actors with 0 HP #-------------------------------------------------------------------------- def random_target_actor(hp0 = false) # Initialize roulette roulette = [] # Loop for actor in @actors # If it fits the conditions if (not hp0 and actor.exist?) or (hp0 and actor.hp0?) # Get actor class [position] position = $data_classes[actor.class_id].position # Front guard: n = 4; Mid guard: n = 3; Rear guard: n = 2 n = 4 - position # Add actor to roulette n times n.times do roulette.push(actor) end end end # If roulette size is 0 if roulette.size == 0 return nil end # Spin the roulette, choose an actor return roulette[rand(roulette.size)] end #-------------------------------------------------------------------------- # * Random Selection of Target Actor (HP 0) #-------------------------------------------------------------------------- def random_target_actor_hp0 return random_target_actor(true) end #-------------------------------------------------------------------------- # * Smooth Selection of Target Actor # actor_index : actor index #-------------------------------------------------------------------------- def smooth_target_actor(actor_index) # Get an actor actor = @actors[actor_index] # If an actor exists if actor != nil and actor.exist? return actor end # Loop for actor in @actors # If an actor exists if actor.exist? return actor end end end end
Quant à ici "Scene_Shop" pour le problème des shops je n'en suis pas si sûr (ligne 184)
Code:
#============================================================================== # ** Scene_Shop #------------------------------------------------------------------------------ # This class performs shop screen processing. #==============================================================================
class Scene_Shop #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Make help window @help_window = Window_Help.new # Make command window @command_window = Window_ShopCommand.new # Make gold window @gold_window = Window_Gold.new @gold_window.x = 480 @gold_window.y = 64 # Make dummy window @dummy_window = Window_Base.new(0, 128, 640, 352) # Make buy window @buy_window = Window_ShopBuy.new($game_temp.shop_goods) @buy_window.active = false @buy_window.visible = false @buy_window.help_window = @help_window # Make sell window @sell_window = Window_ShopSell.new @sell_window.active = false @sell_window.visible = false @sell_window.help_window = @help_window # Make quantity input window @number_window = Window_ShopNumber.new @number_window.active = false @number_window.visible = false # Make status window @status_window = Window_ShopStatus.new @status_window.visible = false # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @help_window.dispose @command_window.dispose @gold_window.dispose @dummy_window.dispose @buy_window.dispose @sell_window.dispose @number_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @help_window.update @command_window.update @gold_window.update @dummy_window.update @buy_window.update @sell_window.update @number_window.update @status_window.update # If command window is active: call update_command if @command_window.active update_command return end # If buy window is active: call update_buy if @buy_window.active update_buy return end # If sell window is active: call update_sell if @sell_window.active update_sell return end # If quantity input window is active: call update_number if @number_window.active update_number return end end #-------------------------------------------------------------------------- # * Frame Update (when command window is active) #-------------------------------------------------------------------------- def update_command # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to map screen $scene = Scene_Map.new return end # If C button was pressed if Input.trigger?(Input::C) # Branch by command window cursor position case @command_window.index when 0 # buy # Play decision SE $game_system.se_play($data_system.decision_se) # Change windows to buy mode @command_window.active = false @dummy_window.visible = false @buy_window.active = true @buy_window.visible = true @buy_window.refresh @status_window.visible = true when 1 # sell # Play decision SE $game_system.se_play($data_system.decision_se) # Change windows to sell mode @command_window.active = false @dummy_window.visible = false @sell_window.active = true @sell_window.visible = true @sell_window.refresh when 2 # quit # Play decision SE $game_system.se_play($data_system.decision_se) # Switch to map screen $scene = Scene_Map.new end return end end #-------------------------------------------------------------------------- # * Frame Update (when buy window is active) #-------------------------------------------------------------------------- def update_buy # Set status window item @status_window.item = @buy_window.item # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Change windows to initial mode @command_window.active = true @dummy_window.visible = true @buy_window.active = false @buy_window.visible = false @status_window.visible = false @status_window.item = nil # Erase help text @help_window.set_text("") return end # If C button was pressed if Input.trigger?(Input::C) # Get item @item = @buy_window.item # If item is invalid, or price is higher than money possessed if @item == nil or @item.price > $game_party.gold # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Get items in possession count case @item when RPG::Item number = $game_party.item_number(@item.id) when RPG::Weapon number = $game_party.weapon_number(@item.id) when RPG::Armor number = $game_party.armor_number(@item.id) end # If 99 items are already in possession if number == 99 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Calculate maximum amount possible to buy max = @item.price == 0 ? 99 : $game_party.gold / @item.price max = [max, 99 - number].min # Change windows to quantity input mode @buy_window.active = false @buy_window.visible = false @number_window.set(@item, max, @item.price) @number_window.active = true @number_window.visible = true end end #-------------------------------------------------------------------------- # * Frame Update (when sell window is active) #-------------------------------------------------------------------------- def update_sell # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Change windows to initial mode @command_window.active = true @dummy_window.visible = true @sell_window.active = false @sell_window.visible = false @status_window.item = nil # Erase help text @help_window.set_text("") return end # If C button was pressed if Input.trigger?(Input::C) # Get item @item = @sell_window.item # Set status window item @status_window.item = @item # If item is invalid, or item price is 0 (unable to sell) if @item == nil or @item.price == 0 # Play buzzer SE $game_system.se_play($data_system.buzzer_se) return end # Play decision SE $game_system.se_play($data_system.decision_se) # Get items in possession count case @item when RPG::Item number = $game_party.item_number(@item.id) when RPG::Weapon number = $game_party.weapon_number(@item.id) when RPG::Armor number = $game_party.armor_number(@item.id) end # Maximum quanitity to sell = number of items in possession max = number # Change windows to quantity input mode @sell_window.active = false @sell_window.visible = false @number_window.set(@item, max, @item.price / 2) @number_window.active = true @number_window.visible = true @status_window.visible = true end end #-------------------------------------------------------------------------- # * Frame Update (when quantity input window is active) #-------------------------------------------------------------------------- def update_number # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE $game_system.se_play($data_system.cancel_se) # Set quantity input window to inactive / invisible @number_window.active = false @number_window.visible = false # Branch by command window cursor position case @command_window.index when 0 # buy # Change windows to buy mode @buy_window.active = true @buy_window.visible = true when 1 # sell # Change windows to sell mode @sell_window.active = true @sell_window.visible = true @status_window.visible = false end return end # If C button was pressed if Input.trigger?(Input::C) # Play shop SE $game_system.se_play($data_system.shop_se) # Set quantity input window to inactive / invisible @number_window.active = false @number_window.visible = false # Branch by command window cursor position case @command_window.index when 0 # buy # Buy process $game_party.lose_gold(@number_window.number * @item.price) case @item when RPG::Item $game_party.gain_item(@item.id, @number_window.number) when RPG::Weapon $game_party.gain_weapon(@item.id, @number_window.number) when RPG::Armor $game_party.gain_armor(@item.id, @number_window.number) end # Refresh each window @gold_window.refresh @buy_window.refresh @status_window.refresh # Change windows to buy mode @buy_window.active = true @buy_window.visible = true when 1 # sell # Sell process $game_party.gain_gold(@number_window.number * (@item.price / 2)) case @item when RPG::Item $game_party.lose_item(@item.id, @number_window.number) when RPG::Weapon $game_party.lose_weapon(@item.id, @number_window.number) when RPG::Armor $game_party.lose_armor(@item.id, @number_window.number) end # Refresh each window @gold_window.refresh @sell_window.refresh @status_window.refresh # Change windows to sell mode @sell_window.active = true @sell_window.visible = true @status_window.visible = false end return end end end
Mais permettez-moi de vous informez que Xas ne vient en aucun cas interférer sur les scripts d'origine.
Invité Invité
Sujet: Re: Questions en vrac sur XP Mer 14 Déc 2016, 15:51
Je pense que tu n'as pas à toucher au script "Scene_Shop" puisqu'il fait lui-même référence au Game_Party qui définit la limite d'objets qu'on peut posséder:
Code:
@items[i] = 99
Dans le Scene_shop:
Code:
when 0 # buy # Buy process $game_party.lose_gold(@number_window.number * @item.price) case @item when RPG::Item $game_party.gain_item(@item.id, @number_window.number) when RPG::Weapon $game_party.gain_weapon(@item.id, @number_window.number) when RPG::Armor $game_party.gain_armor(@item.id, @number_window.number) end # Refresh each window @gold_window.refresh @buy_window.refresh @status_window.refresh # Change windows to buy mode @buy_window.active = true @buy_window.visible = true
On a juste un appel de "Case @item", on n'a pas de comparaison directe de valeurs. Donc si tu changes le "@item[i] = 99" pour "@item[i] = 30" dans le Game_Party, quand le joueur voudra acheter des flèches en en ayant déjà 30 dans son stock, l'option devrait être grisée.
Si ça fonctionne il restera tout de même un problème à solutionner, tu devras être en mesure de pouvoir redéfinir cette valeur quand le joueur aura une upgrade (et faire passer de 30 à 60, par exemple) et ça, je ne sais pas comment on fait avec RPG Maker, en Event, je n'utilise que trèèèès rarement (pour ne pas dire "jamais") des versions supérieures à 2K3.
Je peux me tromper car j'ai beau connaître le Ruby (grosso merdo, je connais d'autres langages et c'est plus ou moins le même merdier) je n'ai jamais scripté vraiment pour RPG Maker...
Sinon tu peux aussi créer un événement en processus parallèle (un événement commun) qui checkerait continuellement si le nombre d'objets possédés n'excède pas la quantité autorisée et dans le cas contraire, retire "x" objet(s) au stock du joueur. Pour optimiser tu pourras activer ce processus uniquement lors de passages aux shops. Restera deux problèmes à régler, avec cette solution:
1) Les pertes d'argent du joueur (va falloir être créatif). 2) L'esthétique (Le joueur pourra bel et bien dépasser son quota mais une fois hors du shop, il reviendra au maximum autorisé ... Ca fait un peu "sale").
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Jeu 15 Déc 2016, 13:37
Je vois...
Merci pour ton aide en tout cas. Je vais continuer mes recherches en espérant trouver un jour la solution.
Je reste ouvert à toute autre solution... Encore une fois merci beaucoup.
Invité Invité
Sujet: Re: Questions en vrac sur XP Jeu 15 Déc 2016, 15:46
Bin, t'as essayé de changer la valeur de @item[i] au moins ? Et quoi, ça marche pas ?
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Jeu 15 Déc 2016, 17:29
Lorsque je change la valeur "@item[i] = 99" pour "@item[i] = 30" ça fonctionne la dessus c'est nickel. mais le problème est pour le upgrade. Il faudrait juste modifier cette petite portion du script pour expliquer que lorsque l'objet carquois d'argent est possédé, ont augmente "@item[i] = 30" pour "@item[i] = 60". Et ça malheureusement je ne sais pas faire
KoZzY a écrit:
Sinon tu peux aussi créer un événement en processus parallèle (un événement commun) qui checkerait continuellement si le nombre d'objets possédés n'excède pas la quantité autorisée et dans le cas contraire, retire "x" objet(s) au stock du joueur. Pour optimiser tu pourras activer ce processus uniquement lors de passages aux shops. Restera deux problèmes à régler, avec cette solution:
J'oriente justement mes recherches dans cette direction mais le problème est que lorsque j'ajoute ou retire l'objet en question (les flèches) cela le fait en répétition comme c'est en processus parallèle.
Invité Invité
Sujet: Re: Questions en vrac sur XP Dim 18 Déc 2016, 20:43
En événement, dans "Appeler un Script" essaye:
Code:
@item[i] = 60
En cliquant sur cet événement, le joueur changera la valeur de la variable lui-même... Enfin, je l'espère. Si ça marche pas, je réinstallerai Xp et on trouvera bien une solution.
ps: Si ta tentative d'événements communs tourne en boucle et l'affiche (te retire tes flèches non-stop) c'est qu'il manque une condition quelque part dans ton code ou que cette dernière n'est pas correctement paramétrée.
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Mar 20 Déc 2016, 21:54
Alors j'ai essayé d'entrer ce code mais en vain mon ordinateur m'insulte J'ai aussi tenté de modifier quelque portions de code, rien à faire.
Ceci dit si tu compte réinstallerai Xp laisse moi te proposé ce lien Xas v3.82 comme ça tu pourras voir directement se que ça donne, n'est-ce pas ?
https://xasabs.wordpress.com/xp/
Relm ---Fantôme--- Lv 0
Nombre de messages : 40939 Age : 33
Sujet: Re: Questions en vrac sur XP Mar 20 Déc 2016, 22:38
En fait je ne pense pas que tu as répondu à ma question précisement.
Quand tu mets en vente tes flèches ou bombes c'est via un système de boutique de base ? Celui qui est déjà tout fait par RM et accessible via un simple event "appeler boutique" (ou un truc du genre).
____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Mar 20 Déc 2016, 23:01
Pour te répondre précisément, oui en effet j'utilise par défaut la boutique RM XP. Je parle avec un évent puis "ouvrir un magasin".
Mais cela ne me dérange pas de modifier la boutique avec des articles déjà posé sur un comptoir et lorsqu'on presse la touche il faut allé payé l'article à la caisse par exemple...
Relm ---Fantôme--- Lv 0
Nombre de messages : 40939 Age : 33
Sujet: Re: Questions en vrac sur XP Mar 20 Déc 2016, 23:29
Dans ce cas, tu peux facilement t'en sortir avec juste des events. Si tu fais que chaque article est un event. Tu peux mettre une condition qui vérifie le nombre de flèche max dont à le droit le joueur et lui interdire l'achat s'il en a déjà le max.
Tu sais faire ça, sans que je détail plus ?
____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Mar 20 Déc 2016, 23:46
Sir yes sir ! je pense que pour le magasin je serai gérer la crise à ce niveau là. C'est plutôt pour le système de carquois que je galère
Invité Invité
Sujet: Re: Questions en vrac sur XP Mer 21 Déc 2016, 20:17
Je suis navré, je n'ai pas encore installé XP, j'ai tellement une sainte horreur de cette version, du coup je t'ai fait un "tutoriel" vite fait sous Rm2K3, c'est en Events donc c'est du pareil au même. C'est une version "vite fait" du mode Carquois à plusieurs Lvl que tu voudras avoir dans ton jeu, ce n'est ni joli ni fait en un seul objet (c'est tout à fait possible) mais on s'en fout, le but c'est que tu piges la démarche et que tu puisses l'adapter selon tes besoins:
Pour le problème du calcul de l'argent du joueur (forcément s'il peut dépenser plus pour avoir l'illusion d'avoir des flèches supplémentaires il le fera, mais en suite il se retrouvera bloqué par la limite du carquois et aura peut-être acheté 25 flèches en trop, par exemple...) Dans ce cas il faudra procéder plus ou moins de la même manière pour lui faire récupérer l'argent dépensé inutilement, ça demande un peu plus de variables "check" mais c'est faisable.
Seulement voilà, tout ça c'est fort "brouillon", c'est un bon entraînement sur RPG Maker pour apprendre à faker sur les Events mais c'est .. Pas très sérieux. Tu gagnerais à faire toi-même ton "shop" en Events plutôt que d'utiliser celui par défaut, ce serait plus simple, tu éviterais pas mal de "maths" (lol) et ton jeu aura l'air plus "pro"
Relm ---Fantôme--- Lv 0
Nombre de messages : 40939 Age : 33
Sujet: Re: Questions en vrac sur XP Mer 21 Déc 2016, 20:23
redfox59 a écrit:
Sir yes sir ! je pense que pour le magasin je serai gérer la crise à ce niveau là. C'est plutôt pour le système de carquois que je galère
Que veux tu dire par là ?
____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
redfox59 RTP de base Lv 1
Nombre de messages : 16 Age : 30
Sujet: Re: Questions en vrac sur XP Lun 26 Déc 2016, 14:47
Merci à toi pour ce tuto c'est vraiment super Ainsi j'ai un aperçu sur ce que je dois faire.
Relm a écrit:
Que veux tu dire par là ?
Je voulais dire par là que pour le problème du magasin, il me suffit de crée des articles en events et de faire un système d'achat à la Zelda par exemple. Mais en revanche c'est le carquois qui me pose problème mais soit j'y travaille...
En tout cas merci pour votre aide et je vous souhaite de bonnes fêtes de fin d'année