Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Sob 26 Lut, 2011 20:14
Skrypt na limit przedmiotów
Autor Wiadomość
Greed 




Preferowany:
RPG Maker VX

Dołączył: 26 Wrz 2009
Posty: 42
Skąd: Tokio
Wysłany: Czw 24 Lut, 2011 13:03
Skrypt na limit przedmiotów
Witam wszystkich. Poszukuję skryptu na limit danego przedmiotu. Tzn chciałbym móc ustawić by np można było posiadać 99 "mikstur leczniczych" ale tylko maksymalnie 20 "elixirów".
Z góry dziękuję za pomoc.
________________________
"Darker than Black"
Może taki jestem.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 24 Lut, 2011 17:46
Sprawdź to... nie wiem, czy nie trzeba by było jeszcze kilku rzeczy wrzucić, więc dobrze przetestuj ;-)

Spoiler:

Kod:
module Ayene   
  # Maksymalna ilość każdego  z przedmiotów
  ITEM_MAX_AMOUNT = 99
 
  # By ustawić maksymalną ilość wybranego przedmiotu w jego oknie notatek
  # w bazie danych wpisz np. <MAX_ITEM 23> lub <maxitem 45>
end

class RPG::BaseItem
  def max_amount
    @amount = Ayene::ITEM_MAX_AMOUNT
    @note.split(/[\r\n]+/).each { |line|
      case line
      when /^<(?:MAX_ITEM|maxitem)[ ]*(\d+)>/i
        @amount = $1.to_i
      end
    }
    return @amount
  end
end

class Game_Party < Game_Unit 
  def gain_item(item, n, include_equip = false)
    number = item_number(item)
    case item
    when RPG::Item
      @items[item.id] = [[number + n, 0].max, item.max_amount].min
    when RPG::Weapon
      @weapons[item.id] = [[number + n, 0].max, item.max_amount].min
    when RPG::Armor
      @armors[item.id] = [[number + n, 0].max, item.max_amount].min
    end
    n += number
    if include_equip and n < 0
      for actor in members
        while n < 0 and actor.equips.include?(item)
          actor.discard_equip(item)
          n += 1
        end
      end
    end
  end
end

________________________


 
 
 
Greed 




Preferowany:
RPG Maker VX

Dołączył: 26 Wrz 2009
Posty: 42
Skąd: Tokio
Wysłany: Pią 25 Lut, 2011 19:01
Wielkie dzięki Ayene. Jak zawsze niezastąpiona ^ ^
Póki co wszystko działa jak należy, gdyby było coś nie tak dam znać na forum. ;-)

Skrypt ma jedną wadę: mianowicie osiągnę już maksymalną liczbę eliksirów jednak w sklepie nadal pokazuje że mogę je kupić i gracz nie wiedzący o tym straci dużo kasy na darmo :D Fajnie by było gdyby w sklepie po osiągnięciu maksymalnej liczby danego przedmiotu nie mozna było już go kupić. Chociaż ja nawet bez tego zrobię ze skryptu pożytek :3
________________________
"Darker than Black"
Może taki jestem.
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pią 25 Lut, 2011 21:02
Spróbuj tego: :->
Spoiler:

Kod:
module Ayene   
  # Maksymalna ilość każdego  z przedmiotów
  ITEM_MAX_AMOUNT = 99
 
  # By ustawić maksymalną ilość wybranego przedmiotu w jego oknie notatek
  # w bazie danych wpisz np. <MAX_ITEM 23> lub <maxitem 45>
end

class RPG::BaseItem
  def max_amount
    @amount = Ayene::ITEM_MAX_AMOUNT
    @note.split(/[\r\n]+/).each { |line|
      case line
      when /^<(?:MAX_ITEM|maxitem)[ ]*(\d+)>/i
        @amount = $1.to_i
      end
    }
    return @amount
  end
end

class Game_Party < Game_Unit 
  def gain_item(item, n, include_equip = false)
    number = item_number(item)
    case item
    when RPG::Item
      @items[item.id] = [[number + n, 0].max, item.max_amount].min
    when RPG::Weapon
      @weapons[item.id] = [[number + n, 0].max, item.max_amount].min
    when RPG::Armor
      @armors[item.id] = [[number + n, 0].max, item.max_amount].min
    end
    n += number
    if include_equip and n < 0
      for actor in members
        while n < 0 and actor.equips.include?(item)
          actor.discard_equip(item)
          n += 1
        end
      end
    end
  end
end

class Window_ShopBuy < Window_Selectable 
  def draw_item(index)
    item = @data[index]
    number = $game_party.item_number(item)
    enabled = (item.price <= $game_party.gold and number < item.max_amount)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(item, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, item.price, 2)
  end 
end

class Scene_Shop < Scene_Base 
  def update_buy_selection
    @status_window.item = @buy_window.item
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @command_window.active = true
      @dummy_window.visible = true
      @buy_window.active = false
      @buy_window.visible = false
      @status_window.visible = false
      @status_window.item = nil
      @help_window.set_text("")
      return
    end
    if Input.trigger?(Input::C)
      @item = @buy_window.item
      number = $game_party.item_number(@item)
      if @item == nil || @item.price > $game_party.gold or
        number == @item.max_amount
        Sound.play_buzzer
      else
        Sound.play_decision
        max = (@item.price == 0 ? @item.max_amount : $game_party.gold / @item.price)
        max = [max, @item.max_amount - number].min
        @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
  end
end

________________________


 
 
 
Greed 




Preferowany:
RPG Maker VX

Dołączył: 26 Wrz 2009
Posty: 42
Skąd: Tokio
Wysłany: Sob 26 Lut, 2011 20:09
Ayene, dziękuję ci :3 Na prawdę mi pomogłaś, wszystko działa jak należy :D
Uszanowanie, jesteś wielka ^ ^
________________________
"Darker than Black"
Może taki jestem.
 
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene