Forum traitant du logiciel RPG Maker tout en français ! Entraide, tutos, scripts, ressources, hébergement de vos projets RPG Maker 2000, 2003, XP et VX. Venez les présenter !
 
AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Partagez | 
 

 [RMXP]Script TVA dans les magasins

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Douad
Petit membre
Petit membre
avatar

Masculin Nombre de messages : 44
Age : 24
Localisation : Osef :noel:
Date d'inscription : 17/02/2010

MessageSujet: [RMXP]Script TVA dans les magasins   Dim 28 Fév - 18:12

Voici un script qui va vous permettre de mette une TVA sur vos objets x)
Créez un nouveau script au dessus de main, et nommez le " tax_script1 "
Code:
#============================================================================
# Tax Script 1.1
# Requested by Mega Flare
#----------------------------------------------------------------------------
# By The_Darklord
# Thanks to SephirothSpawn for help
#----------------------------------------------------------------------------
# The following methods are rewritten:
# Window_ShopBuy(draw_iten(index), Scene_Shop(update_buy, update_number)
# Window_ShopStatus(refresh)
#============================================================================

class Game_System
attr_accessor :tax
  alias declaration initialize
  def initialize
  declaration
  @tax = 0
  end
end

class Window_ShopBuy < Window_Selectable
  alias make_item draw_item
  #--------------------------------------------------------------------------
  # * Draw Item
  #    index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    #--------------------------------------------------------------------------
    # * Reputation Tax Calculator
    #--------------------------------------------------------------------------
    if $game_variables[1] < 1000
      $game_variables[2] = 10
    elsif $game_variables[1] < 5000
      $game_variables[2] = 8
    elsif $game_variables[1] < 10000
      $game_variables[2] = 5
    elsif $game_variables[1] < 25000
      $game_variables[2] = 1
    elsif $game_variables[1] < 50000
      $game_variables[2] = -4
    elsif $game_variables[1] < 100000
      $game_variables[2] = -7
    else
      $game_variables[2] = -10
    end
    item = @data[index]
    a = item.price
    item.price = Integer(a * ( (100 + $game_variables[2]) / 100.0))
    make_item(index)
    item.price = a
  end
end

#------------------------------------------------------------------------------

class Scene_Shop
  #--------------------------------------------------------------------------
  # * 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
      a = @item.price
      @item.price = Integer(a * ( (100 + $game_variables[2]) / 100.0))
      # 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
      @item.price = a
    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
        a = @item.price
        @item.price = Integer(a * ( (100 + $game_system.tax) / 100.0))
        $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
        @item.price = a
        # 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

#------------------------------------------------------------------------------

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @item == nil
      return
    end
    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
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 200, 32, "Objets en Possesion")
    self.contents.font.color = normal_color
    self.contents.draw_text(204, 0, 32, 32, number.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 200, 86, "Taxe Valeur Ajoutée")
    self.contents.font.color = normal_color
    self.contents.draw_text(172, 0, 64, 86, $game_variables[2].to_s + "%", 2)
    if @item.is_a?(RPG::Item)
      return
    end
    # Equipment adding information
    for i in 0...$game_party.actors.size
      # Get actor
      actor = $game_party.actors[i]
      # If equippable, then set to normal text color. If not, set to
      # invalid text color.
      if actor.equippable?(@item)
        self.contents.font.color = normal_color
      else
        self.contents.font.color = disabled_color
      end
      # Draw actor's name
      self.contents.draw_text(4, 64 + 64 * i, 120, 32, actor.name)
      # Get current equipment
      if @item.is_a?(RPG::Weapon)
        item1 = $data_weapons[actor.weapon_id]
      elsif @item.kind == 0
        item1 = $data_armors[actor.armor1_id]
      elsif @item.kind == 1
        item1 = $data_armors[actor.armor2_id]
      elsif @item.kind == 2
        item1 = $data_armors[actor.armor3_id]
      else
        item1 = $data_armors[actor.armor4_id]
      end
      # If equippable
      if actor.equippable?(@item)
        # If weapon
        if @item.is_a?(RPG::Weapon)
          atk1 = item1 != nil ? item1.atk : 0
          atk2 = @item != nil ? @item.atk : 0
          change = atk2 - atk1
        end
        # If armor
        if @item.is_a?(RPG::Armor)
          pdef1 = item1 != nil ? item1.pdef : 0
          mdef1 = item1 != nil ? item1.mdef : 0
          pdef2 = @item != nil ? @item.pdef : 0
          mdef2 = @item != nil ? @item.mdef : 0
          change = pdef2 - pdef1 + mdef2 - mdef1
        end
        # Draw parameter change values
        self.contents.draw_text(124, 64 + 64 * i, 112, 32,
          sprintf("%+d", change), 2)
      end
      # Draw item
      if item1 != nil
        x = 4
        y = 64 + 64 * i + 32
        bitmap = RPG::Cache.icon(item1.icon_name)
        opacity = self.contents.font.color == normal_color ? 255 : 128
        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
        self.contents.draw_text(x + 28, y, 212, 32, item1.name)
      end
    end
  end
end
Démo : http://www.megaupload.com/?d=ZX8RGBUH
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Dmon
Bon membre
Bon membre
avatar

Masculin Nombre de messages : 135
Age : 21
Localisation : dans le neant
Date d'inscription : 17/02/2010

MessageSujet: Re: [RMXP]Script TVA dans les magasins   Dim 28 Fév - 19:17

Pas mal...
ça devrait en interresser quelque-uns...
Est-ce toi l'auteur de ce script?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Douad
Petit membre
Petit membre
avatar

Masculin Nombre de messages : 44
Age : 24
Localisation : Osef :noel:
Date d'inscription : 17/02/2010

MessageSujet: Re: [RMXP]Script TVA dans les magasins   Dim 28 Fév - 19:45

Nope, je ne suis pas scripteur :noel:
Le nom de l'auteur est au début du code :noel:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Dmon
Bon membre
Bon membre
avatar

Masculin Nombre de messages : 135
Age : 21
Localisation : dans le neant
Date d'inscription : 17/02/2010

MessageSujet: Re: [RMXP]Script TVA dans les magasins   Dim 28 Fév - 22:43

desoler j'avais pas vu^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [RMXP]Script TVA dans les magasins   

Revenir en haut Aller en bas
 
[RMXP]Script TVA dans les magasins
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Lego] Besoin d'aide pour se situer dans les nouveautés
» [Sets] Lego 2010 dans les magasins
» Nouvelle affiche du club à mettre en magasin
» Recevoir les objets distribués dans les magasins Best buy aux USA
» [Ebay] Boîte de protection plastique comme dans les magasins

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
New RPG Maker :: Making :: Ressources :: Grand livre des ressources :: Partage de scripts :: Systèmes-
Sauter vers: