Teraz następny skrypt, długo go tłumaczyłem ale udało mi się. Na szczęście ktoś mi pomógł.
PS: Dzięki Cyklop!!!!!!!!!!!!!!!!
Dzięki niemu będziemy mogli dawać prezenty innym NPC. Możemy też wymyśleć inne zastosowania. Najlepiej najpierw przetestować działanie tego skryptu.
INSTRUKCJA:
wszystko w skrypcie.
DEMO i SCREENY:
niepotrzebne.
Spoiler:
Kod:
#====================================================
# Tytuł: Okno Prezentów
# Oryginalny tytuł: Evidence Locker
# Wersja: 1.0
# Autor: modern algebra (rmrk.net)
# Data: 2 Sierpień 2008
# Tłumaczenie: Marcin (www.ultimateam.pl)
# Data tłumaczenia: 16 Grudnia 2009r.
#
#
# ~~PODIĘKOWANIA~~
# Chce podziekować Cyklopowi (www.ultimateam.pl) za pomoc w zrozumieniu tego skryptu.
# Wielkie Dzięki!!!!!!!!
#
# PS: Wiem, że podziękowania umieszcza się na końcu, ale wtedy nigdy byście tego nie przeczytali.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# INSTRUKCJA:
# ~~WSTĘP~~
# Autor tego skryptu stworzył go z myślą o śledztwach, "Evidence Locker" oznacza z angielskiego mniej
# więcej "'coś tam' dowody". ja natomiast używam go do dawania prezentów innym NPC podczas gry.
# Jeżeli chcecie mieć więcej takich okienek np: jedno do dawania prezentów, drugie do tworzenia mikstur z
# możliwością eksperymentowania jak w Wiedźminie, to przekopiujcie ten skrypt, wklejcie kopie nad "Main" i
# zamieńcie wszystkie słowa "evidence" na np: Alchemia
#
# ~~NOTE/NOTATKI~~
# By ten skrypt działał trzeba napisać w notatkach (note) danego przedmiotu to:
# \evidence
# Wg autora mamy w notatniku dodatkowo wpisać jedną lub kilka z
# poniższych linijek, ja tego nie robiłem i zawsze uzyskałem ten efekt, który chciałem:
# $game_temp.evidence_w zamiast "w" należy wpisać nazwę przedmiotu.
# $game_temp.evidence_x zamiast x należy wpisać liczbę przedmiotów.
# $game_temp.evidence_type zamiast type wpisujemy numer od 0 do 2 (0 = Item, 1 = Weapon, 2 = Armor)
# $game_temp.evidence_id zamiast "id" wpisujemy id ikonki
#
# ~~ZDARZENIE~~
# By wywołać menu dawania prezentów wywołaj skrypt:
# $scene = Scene_Evidence.new
# Potem wstaw polecenie czekaj/wait 1 frame
# Teraz wpisz polecenie: "conditional branch/ustaw warunek" używając jednego z tych skryptów.
# $game_temp.evidence_name == "nazwa przedmiotu"
# $game_temp.evidence_amount == liczba przedmiotu
# $game_temp.evidence_type == typ od 0 do 2,
# $game_temp.evidence_id == id ikonki
#
# ~~ZAKOŃCZENIE~~
# Jeżeli chcemy ustawić warunek np: musimy podarować komuś "X" przedmiotów o nazwie "Y"
# Wpisujemy w Conditional Branch to:
# $game_temp.evidence_amount == X && $game_temp.evidence_name == "Y"
# Jeżeli bohater nie ma przedmiotu w plecaku, to ten przedmiot nie wyświetli się w Oknie Prezentów.
#
# WIELKOŚĆ LITER MA ZNACZENIE!!!!!!!!!!!!!!!!!
#=========================================================
#=========================================================
# ** RPG::BaseItem
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Summary of Changes:
# new method - evidence?
#=========================================================
class RPG::BaseItem
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Evidence?
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def evidence?
return true if self.note[/\\evidence/i] != nil
return false
end
end
#=========================================================
# ** Game_Temp
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Summary of Changes:
# new public instance variables - evidence_name, evidence_type, evidence_id
#=========================================================
class Game_Temp
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Public Instance Variables
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attr_accessor :evidence_type # 0 => Item, 1 => Weapon, 2 => Armor
attr_accessor :evidence_id # Item ID
attr_accessor :evidence_name # The name of the evidence
attr_accessor :evidence_amount # The amount of that evidence in possession
end
class Window_Item
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Include?
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias modalg_dragon9_request_evince_selct_incl_8b4s include?
def include?(item)
return (item == nil ? false : item.evidence?) if $scene.is_a? (Scene_Evidence)
modalg_dragon9_request_evince_selct_incl_8b4s (item)
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Enable?
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias modalg_drgdd9_req_evidnc_954n enable?
def enable? (item)
return true if $scene.is_a? (Scene_Evidence)
return modalg_drgdd9_req_evidnc_954n (item)
end
end
#=========================================================
# ** Scene_Evidence
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# This class is a subclass of Scene_Item. Instead of using a selected item,
# this script reserves it in a variable to be used in an event.
#=========================================================
class Scene_Evidence < Scene_Item
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Return Scene
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def return_scene
$scene = Scene_Map.new
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Update Item Selection
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def update_item_selection
if Input.trigger?(Input::B)
Sound.play_cancel
# Clear evidence variables
$game_temp.evidence_type = nil
$game_temp.evidence_id = nil
$game_temp.evidence_name = nil
$game_temp.evidence_amount = nil
return_scene
elsif Input.trigger?(Input::C)
@item = @item_window.item
if @item == nil
Sound.play_buzzer
else
# Set evidence variables to the item chosen
$game_temp.evidence_type = @item.is_a? (RPG::Item) ? 0 : @item.is_a? (RPG::Weapon) ? 1 : 2
$game_temp.evidence_id = @item.id
$game_temp.evidence_name = @item.name
$game_temp.evidence_amount = $game_party.item_number (@item)
return_scene
end
end
end
end
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Wto 22 Gru, 2009 01:56
Całkiem przydatny skrypcik, choć wolałabym osobiście użyć go właśnie do celu "Evidence Locker". Wpadłam na pomysł wykorzystania go w swoim projekcie Dobra robota
Ew. można zastosować cos takiego jak hm... lubienie nas przez kluczowe postacie(?).
Nie będę się tu rozpisywał jak to zrobić, bo nie od tego jest ten temat :P
Może powiem, że coś jak Dragon Age :D
mam podobny problem jak CrasheR tyle, że mi to ani itemu nie odejmuje ani nie mam jak wybrać komu chcę ten cholerny prezent dać. niby wywołuję to :
$scene = Scene_Evidence.new
pod przedmiotem też mam komendę
/evidence
ale jak kliknę na przedmiot to pokazuje mi się okno postaci i po kilku klatkach (nie cała sekunda) mi się zamyka a przedmiot jak był tak jest... Czy w przedmoiocie trza dodatkowo coś ustawić ?
________________________ Pomyśl, o czym myślisz i przemyśl czy warto sobie zajmować tym czas
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