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: Nhadala
Pią 14 Wrz, 2012 22:55
Sklepowy Problem
Autor Wiadomość
Allemov 



Dołączył: 07 Lip 2012
Posty: 8
Wysłany: Sro 05 Wrz, 2012 19:37
Sklepowy Problem
Witajcie!
W mojej grze (która się rozwija coraz bardziej) bardzo pożądany były fakt gdyby każdy sprzedawca miał określoną liczbę sztuk danego przedmiotu.
Fakt iż ilość ich jest nieograniczona przy obecnym systemie mocno przeszkadza, ponieważ o ile mamy do czynienia ze sadownikiem sprzedającym jabłka nikogo dziwić nie będzie że ma ich nieskończoną ilość to w przypadku powiedzmy takiego kupca handlującego antykami... no właśnie.
Problem jest tak podstawowy i fundamentalny iż doszedłem do wniosku że dziesiątki osób musiały natknąć się na niego więc aż dziwne było by gdyby nie istniał na to skrypt czy rozwiązanie.
Jedyne co mi się w tym momencie nasuwa to usunięcie z gry sklepów i wprowadzenie kupowania w formie rozmowy ale nie muszę chyba mówić że to nie dość że pracochłonne to jeszcze nieciekawy efekt daje.
Liczę na was!

Pozdrawiam!
Ryszard 'Allemov'
 
 
makerowiec64 




Preferowany:
RPG Maker 95

Pomógł: 2 razy
Dołączył: 02 Wrz 2012
Posty: 181
Skąd: się tu wziąłem?
Wysłany: Sob 08 Wrz, 2012 11:18
Cytat:
o ile mamy do czynienia ze sadownikiem sprzedającym jabłka nikogo dziwić nie będzie że ma ich nieskończoną ilość to w przypadku powiedzmy takiego kupca handlującego antykami... no właśnie.

Zgadzam się.Też mnie irytuje coś takiego,że w mieszkańcy mówią:
"To jest legendarne,jedyne",a potem jak się idzie do tego sklepu,
i ma się furę kasy,to ten "jeden" przedmiot staje się taki,że można go 99 razy
kupić...
Może istnieje jakiś skrypt faktycznie na ten błąd,ale ja jestem
"zielony" w skryptach...sorry...
________________________
99 % świrów czyta mój podpis z ręką na myszce.
Nie odchylaj ręki - jest już za późno :haha:

Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
 
 
 
Feniks 




Preferowany:
RPG Maker XP

Ranga RM:
2 gry

Pomógł: 62 razy
Dołączył: 04 Wrz 2010
Posty: 511
Wysłany: Sob 08 Wrz, 2012 12:05
Cytat:
"To jest legendarne,jedyne",a potem jak się idzie do tego sklepu

Skoro jedyne to wystarczy zrobić na dialogu :)

Zrozumiały jest wasz problem, ponieważ ja sam go również posiadam od moich początków w rmie. Jest na ten problem nieco sposobów:
0. Edytować podstawowy skrypt sklepu tak, aby wprowadził taką opcje.
1. Zrobić rzadsze przedmioty na bardzo kuszącym dialogu.
2. Poszukać skryptu ,,advanced shop", ,,zaawansowany sklep" i go ogarnąć.
3. Poszukać skryptu ,,limit przedmiotów" i ustawić antyki na 1.
4. Rzadkie przedmioty zrobić w formie ukrytych przedmiotów po świecie.
Pewnie jest więcej, ale nie chcę mi się teraz myśleć :3
________________________

 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 13 Wrz, 2012 10:05
Można spróbować z tym skryptem:
Spoiler:

Kod:
#===================================================================
# Maksymalna liczba przedmiotów do kupnienia [VX]
# by Ayene
# 13.09.2012
# www.ultimateam.pl
#===================================================================
# Opis:
# Skrypt umożliwia ustawienie maksymalnej liczby przedmiotów do
# kupienia w sklepie.
#
# Instrukcja:
# By skorzystać ze skryptu w oknie 'Note' przy danym przedmiocie / broni /
# pancerzu w Bazie Danych umieść tekst <max_buy LICZBA>.
#
# Przykładowo:
# Jeśli chcesz, by drużyna mogła kupić Potion maksymalnie 5 razy,
# to w oknie 'Note' tego przedmiotu należy wpisać:
# <max_buy 5>
#===================================================================
module AYE
  module Custom_Shop
    BUY = /<(?:MAX_BUY|max_buy)\s*(\d+)>/i   
    MAX_BUY = 99 # domyślna maksymalna liczba przedmiotów
  end
end

#===================================================================
# RPG::BaseItem
#===================================================================
class RPG::BaseItem
  attr_accessor :max_buy 
  def item_maxbuy_ini
    @max_buy = AYE::Custom_Shop::MAX_BUY
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when AYE::Custom_Shop::BUY
        @max_buy = $1.to_i
      end
    }
  end
end

class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    number = $game_party.item_number(item)
    enabled = (item.price <= $game_party.gold and number < item.max_buy)
    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

#===================================================================
# Scene_Title
#===================================================================
class Scene_Title < Scene_Base
  alias aye_custshop_loaddata load_database
  def load_database
    aye_custshop_loaddata
    for group in [$data_items, $data_weapons, $data_armors]
      for obj in group
        next if obj.nil?
        obj.item_maxbuy_ini
      end
    end
  end
end

#===================================================================
# Scene_Equip
#===================================================================
class Scene_Shop < Scene_Base
  #--------------------------------------------------------------------------
  # * Update Buy Item Selection
  #--------------------------------------------------------------------------
  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 or @item.price > $game_party.gold or number == @item.max_buy
        Sound.play_buzzer
      else       
        Sound.play_decision
        max = @item.price == 0 ? @item.max_buy : $game_party.gold / @item.price
        max = [max, @item.max_buy - 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


Konfiguracja w skrypcie.
________________________


 
 
 
makerowiec64 




Preferowany:
RPG Maker 95

Pomógł: 2 razy
Dołączył: 02 Wrz 2012
Posty: 181
Skąd: się tu wziąłem?
Wysłany: Pią 14 Wrz, 2012 20:14
Faktycznie fajny skrypt,mi się nie przyda bo nie robię
takiej gry,ale i tak dobry.
Allemov,pamiętaj o podziękowaniach do Ayene,jeżeli
pomogła.
________________________
99 % świrów czyta mój podpis z ręką na myszce.
Nie odchylaj ręki - jest już za późno :haha:

Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
 
 
 
Allemov 



Dołączył: 07 Lip 2012
Posty: 8
Wysłany: Pią 14 Wrz, 2012 21:25
Cóż.
Na początku ucieszyłem się że ktoś zdecydował się napisać skrypt by mi pomóc.
Potem czytając go zawiodłem się że trochę nie o taki limit mi chodziło.
Jednakże po przyzwoitych testach stwierdzam że to jest jeszcze lepsze niż to o co mi wstępnie chodziło. Dzięki temu skryptowi jestem w stanie np. zabronić graczowi bezsensownego zakupu kilku takich samych broni - strasznie mi się to podoba i sprawdza się idealnie praktycznie we wszystkich sytuacjach. :)

Tak więc - wielkie podziękowania w stronę Anyee.
Udało Ci się rozwiązać ostatni z problemów uniemożliwiających stworzenie gry w takiej formie o jaką mi chodziło na mojej liście! (i mam nadzieję że nie będą się już pojawiały kolejne)

Poza tym proponuję dodać ów skrypt do spisu skryptów żeby pytania się nie powtarzały!

Pozdrawiam!
Ryszard 'Allemov'
 
 
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