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!
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
Wiem,to mogłem zrobić w większym rozmiarze.Przypatrz się bardziej!
"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
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
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!
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