Script
RPG Maker XP

Biward Buy & Sell Counter

Suivez précisément les achats et ventes du joueur dans vos boutiques !

Version: 1

Ce script écrit par Biward ajoute un compteur d’achats et de ventes pour chaque objet, arme et armure dans RPG Maker XP.
Il permet de savoir combien de fois un élément a été acheté ou vendu dans les boutiques, information qui n’existe pas nativement dans RMXP.

Les compteurs sont :

  • automatiques,
  • persistants (sauvegardés dans les fichiers de sauvegarde),
  • accessibles facilement via des commandes script.

Commandes disponibles (à utiliser dans les événements)

Toutes les commandes suivantes retournent un nombre entier, facilement stockable dans une variable RMXP.

Objets
counterb_item(id)   # nombre d’achats de l’objet ID
counters_item(id)   # nombre de ventes de l’objet ID
Armes
counterb_armo(id)   # nombre d’achats de l’armure ID
counters_armo(id)   # nombre de ventes de l’armure ID
Armures
counterb_weap(id)   # nombre d’achats de l’arme ID
counters_weap(id)   # nombre de ventes de l’arme ID

Exemple d’utilisation

  • Débloquer un objet spécial si un objet a été acheté X fois
  • Adapter les prix selon les habitudes du joueur
  • Déclencher un événement si une arme est souvent vendue
  • Créer des statistiques internes de gameplay
  • Etc.

Script

Bloc de code
TEXTE
#############################################################################################
################################## Buy & Sell Counter ###########################################
#############################################################################################
# Auteur : Biward
# Date : 01/09/32 16h01
#
# Ce script permet d'avoir un compteur d'achat et de vente pour chaque objet
#
# Les commandes sont :
# - counterb_item(id)     connaitre le nombre d'achat de l'objet ID 
# - counters_item(id)     connaitre le nombre de vente de l'objet ID
# - counterb_weap(id)   connaitre le nombre d'achat de l'arme ID
# - counters_weap(id)   connaitre le nombre de vente de l'arme ID 
# - counterb_armo(id)   connaitre le nombre d'achat de l'armure ID
# - counters_armo(id)   connaitre le nombre de vente de l'armure ID
#
# Le tout est donc stockable dans une variable pour vous faciliter la vie !
# 
#############################################################################################
#################################### Début du script ############################################
#############################################################################################
### Scene_Shop ###
class Scene_Shop  
  alias dnibico update_number
  def update_number
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0 # buy
        $game_buycounter[@item] += @number_window.number      
      when 1 # sell
        $game_sellcounter[@item] += @number_window.number
      end
    end
    dnibico
  end
end

### Game_BuySellCounter ###
class Game_BuySellCounter
  def initialize
    @data = Array.new
    3.times { @data << [] }
  end  
  def [](variable_id)
    @data[which_type(variable_id)][variable_id.id] || 0
  end  
  def []=(variable_id, value)
    @data[which_type(variable_id)][variable_id.id] = value
  end  
  def which_type(v)
    w = 0 if v.is_a?(RPG::Item)
    w = 1 if v.is_a?(RPG::Weapon)
    w = 2 if v.is_a?(RPG::Armor)
    w
  end
end

### Scene_Title ###
class Scene_Title  
  alias cgobico2 command_new_game
  def command_new_game
    $game_buycounter = Game_BuySellCounter.new
    $game_sellcounter = Game_BuySellCounter.new
    cgobico2
  end
end

### Scene_File ###
class Scene_Save
  alias wsdbico2 write_save_data  
  def write_save_data(file)
    wsdbico2(file)
    Marshal.dump($game_buycounter,         file)
    Marshal.dump($game_sellcounter,         file)
  end  
end

class Scene_Load
  alias rsdbico2 read_save_data
  def read_save_data(file)
    rsdbico2(file)
    $game_buycounter    = Marshal.load(file)
    $game_sellcounter    = Marshal.load(file)
  end
end

### Game_Interpreter ###
class Interpreter
  def counterb_item(id)
    $game_buycounter[$data_items[id]]
  end  
  def counters_item(id)
    $game_sellcounter[$data_items[id]]
  end
  def counterb_weap(id)
    $game_buycounter[$data_weapons[id]]
  end  
  def counters_weap(id)
    $game_sellcounter[$data_weapons[id]]
  end
  def counterb_armo(id)
    $game_buycounter[$data_armors[id]]
  end  
  def counters_armo(id)
    $game_sellcounter[$data_armors[id]]
  end
end
#############################################################################################
#################################### Fin du Script ###############################################
#############################################################################################

Scripts utiles

Newsletter

Ne ratez rien de la communauté

Nouveautés, jeux inspirants et ressources utiles directement dans votre boîte mail.

Pas de spam · Désinscription en un clic