Teyan - Sro 16 Gru, 2009 12:25 Temat postu: Skrypt Dawania prezentówTeraz 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
Ayene - 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 kugron - Czw 10 Cze, 2010 12:55 Przecież to można zrobić jako zdarzenie.CreeperCrisis - Pią 11 Cze, 2010 15:19 Właśnie to sprawdzałem. Wszystko działa lecz nie wiem do czego to użyć?kugron - Sob 12 Cze, 2010 11:18 Można to wykorzystać do robienia misji naprzykład jeżeli damy gostkowi talon na balon on nam powie gdzie jest przedmiot do misji.Ulvran - Wto 06 Lip, 2010 07:26 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
A skrypcik naprawdę fajny... może go wykorzystamAgumon - Sro 07 Lip, 2010 12:26 Ale nie rozumie tego. Czyli tan przedmiot który mamy dać NPC to nam się będzie wyświetlał w eq czy nie??Drawestien - Czw 20 Sty, 2011 17:30 Nawet nawet.
Kiedyś się przyda.CrasheR - Sob 26 Mar, 2011 16:33 Jak to dodać?? Zrobiłem wszystko, ale nie odejmuje mi itemka Theron - Pon 31 Paź, 2011 19:16 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ć ?