Informacje:
* Zegarek oraz kalendarzyk wyświetlają obecny dzień oraz godzinę
* Co godzinę odgrywany jest "DaySE"
* Co dzień odgrywany jest "DaySE"
* Kalendarzyk oraz okienko można włączać/wyłączać wybranym klawiszem
* Pozycję zegarka oraz kalendarzyka można zmienić według własnych potrzeb
* Podczas włączenia/wyłączenia odgrywany jest wybrany przez nas dźwięk
* Wszystkie ustawienia znajdują się na początku skryptu oraz w Common Eventach
Screen:
Instalacja:
1. Kopiujemy kod i wklejamy w nowej klasie nad Main.
2. Wklejamy dźwięki "DaySE" i "HourSE" do folderu "Audio/SE".
3. Kopiujemy 4 Common Eventy z demka i wklejamy w swoim projekcie.
4. Na starcie gry manewrujemy ustawieniami (przełącznikami i zmiennymi).
Skrypt:
Kod:
#==============================================================================
# *** Day&Night System
#------------------------------------------------------------------------------
# * By Dan (01.10.2008r.)
#==============================================================================
# * Ustawienia
#==============================================================================
# Nazwa czcionki wyświetlanej na zegarku.
FONT_NAME = "Times New Roman"
# Rozmiar czcionki wyświetlanej na zegarku.
FONT_SIZE = 19
# Przezroczystość okienka z którego zrobione jest okienko.
WINDOW_BACK_OPACITY = 160
# Nazwa Windowskina z którego zrobione jest okienko.
WINDOW_NAME = "001-Blue01"
# Czy ma być wyświetlany kalendarz? True na tak, false na nie.
CLOCK_SWITCH = 2
# Numer zmiennej minut
MIN_VARIABLE = 1
# Numer zmiennej godzin
HOUR_VARIABLE = 2
# Numer zmiennej dni
DAY_VARIABLE = 3
# Dźwięk odegrany po dojściu do pełnej godziny
HOUR_SE = "HourSE"
# Dźwięk odegrany po dojściu do godziny 24:00.
DAY_SE = "DaySE"
# Dźwięk odegrany po włączeniu zegarka.
CLOCK_SE = "ClockSE"
# Klawisz odpowiadający za włączenie/wyłączenie zegarka.
TIME_KEY = Input::A
# Pozycja X zegarka
CLOCK_X_PSTN = 540
# Pozycja Y zegarka
CLOCK_Y_PSTN = 0
# Pozycja X kalendarza
CALENDAR_X_PSTN = 463
# Pozycja Y kalendarza
CALENDAR_Y_PSTN = 0
#==============================================================================
# ** Window_Clock
#------------------------------------------------------------------------------
# This window displays time in the game.
#==============================================================================
#==============================================================================
# ** Window_Calendar
#------------------------------------------------------------------------------
# This window displays day in the game.
#==============================================================================
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs map screen processing.
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make sprite set
@spriteset = Spriteset_Map.new
# Make clock window
@clock_window = Window_Clock.new
# Make calendar window
@calendar_window = Window_Calendar.new
# Make message window
@message_window = Window_Message.new
# Transition run
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of sprite set
@spriteset.dispose
# Dispose of clock window
@clock_window.dispose
# Dispose of calendar window
@calendar_window.dispose
# Dispose of message window
@message_window.dispose
# If switching to title screen
if $scene.is_a?(Scene_Title)
# Fade out screen
Graphics.transition
Graphics.freeze
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Loop
loop do
# Update map, interpreter, and player order
# (this update order is important for when conditions are fulfilled
# to run any event, and the player isn't provided the opportunity to
# move in an instant)
$game_map.update
$game_system.map_interpreter.update
$game_player.update
# Update system (timer), screen
$game_system.update
$game_screen.update
# Abort loop if player isn't place moving
unless $game_temp.player_transferring
break
end
# Run place move
transfer_player
# Abort loop if transition processing
if $game_temp.transition_processing
break
end
end
# Update sprite set
@spriteset.update
# Update clock window
@clock_window.refresh
# Update calendar window
@calendar_window.refresh
# Update message window
@message_window.update
# If game over
if $game_temp.gameover
# Switch to game over screen
$scene = Scene_Gameover.new
return
end
# If returning to title screen
if $game_temp.to_title
# Change to title screen
$scene = Scene_Title.new
return
end
# If transition processing
if $game_temp.transition_processing
# Clear transition processing flag
$game_temp.transition_processing = false
# Execute transition
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# If showing message window
if $game_temp.message_window_showing
return
end
# If encounter list isn't empty, and encounter count is 0
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
# If event is running or encounter is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
# Confirm troop
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
# If troop is valid
if $data_troops[troop_id] != nil
# Set battle calling flag
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
# If B button was pressed
if Input.trigger?(Input::B)
# If event is running, or menu is not forbidden
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# Set menu calling flag or beep flag
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
# If debug mode is ON and F9 key was pressed
if $DEBUG and Input.press?(Input::F9)
# Set debug calling flag
$game_temp.debug_calling = true
end
# If player is not moving
unless $game_player.moving?
# Run calling of each screen
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
end
end
end
end
Autor:Dan
Demko:Klik!
Dokładniej taki problem, zrobiłem wszystko jak jest napisane, nawet skopiowałem od niego przełączniki itp, ale i tak dalej czasu mi nie liczy.. Mam wszystko pokazane, dzień, zegar itp, lecz czasu mi nie liczy -.- Jeśli komuś będzie potrzebny mogę wysłać grę i niech to zrobi, ale wyślę tylko zaufanym osobom...
PS w demo wszystko działa...
___ !
I drugi problem, ale to jest do gry niespodzianka, więc jednej osobie która dooobrze zna się na skryptach i na przełącznikach, bohaterach itp i by się nie wygadała podałbym gre i na pw o co kaman;] Chodzi o coś z bohaterami ;p
_____!
I trzeci problem, wsadziłem skrytp Quest Log, i ten drugi co jest do niego potrzebny, i nie wiem jak się nim obsługiwać -.- Ciągle wywalają mi jakieś błędy jak dodaje te questy i potem chce sprawdzić je... Posiadam ten skrypt -
Pozaznaczałem trzy pierwsze rzeczy - False, False, True
Spoiler:
Kod:
#===============================================================================
# Thieffer's QuestLog
# version 1.0
# by Thieffer 09.05.2009
#===============================================================================
#===============================================================================
# INSTRUKCJE
#===============================================================================
# Aby włączyć dziennik zadań należy wywołać skrypt:
# $scene = Scene_QuestLog.new
# Zadania powinny być wcześniej zdefiniowane wg wzoru:
# $quest= ["nazwa", poziom, "grafika", "treść"]
# gdzie zamiast:
# $quest --> możesz wpisać co zechcesz (nie będzie wyświetlane)
# "nazwa" --> nazwa zadania (będzie wyświetlana)
# poziom --> liczba od 1 do 5 (poziom trudności)
# "grafika" --> nazwa pliku zawierającego obrazek o wymiarach 400px na 100px (obrazek przedstawiający scenkę z zadania)
# "treść" --> treść zadania
# Konfiguracja:
# $PICTURE_DIFFICULTY = true/false
# (jeśli true, to poziom trudności będzie przedstawiony
# za pomocą obrazków; jeśli false - za pomocą tekstu)
# Obrazki muszą mieć nazwę: quest_difficulty1, quest_difficulty2 itd. (max 5) oraz rozmiary 125px na 48px.
# Tekst możesz edytować w zmiennych $QD1, $QD2 itd.
# $PICTURE_DESCRIPTION = true/false
# (jeśli true, to w opisie zadania, pojawi się obrazek o wymiarach 400px na 100px;
# jeśli false - brak obrazka)
# $MAP_AS_BACKGROUND = true/false
# (jeśli true, to w tle okienek widać mapę, na której jest bohater oraz podczas
# wciśnięcia ESC pojawia nam się mapa; jeśli false - czarne tło oraz podczas
# wciśnięcia ESC pojawia nam się Menu (opcjonalnie Scene_Menu.new))
# Obsługa:
# Dodawanie zadania:
# $game_party.add_quest($quest)
# $quest --> to nazwa "robocza" zadania (ta, która nie jest wyświetlana)
# Ukończenie zadania:
# $game_party.complete_quest($quest)
# Usunięcie zadania:
# $game_party.remove_quest($quest)
# Warunek - czy zadanie jest wykonane?
# $game_party.is_quest_completed?($quest)
#===============================================================================
# U W A G A ---> skrypt wymaga ATP(Advanced Text Paragrapher) V1.0 by Samo, The thief
#===============================================================================
#===============================================================================
# Game_Party
#===============================================================================
class Game_Party
alias :old_initialize :initialize
def initialize
old_initialize
@quests = []
@completed_quests = []
end
#-----------------------------------------------------------------------
# Dodawanie zadania.
#-----------------------------------------------------------------------
def add_quest(quest)
@quests.push(quest) if not @quests.include?(quest)
end
#-----------------------------------------------------------------------
# Ukończenie zadania.
#-----------------------------------------------------------------------
def complete_quest(quest)
if @quests.include?(quest) and not @completed_quests.include?(quest)
@completed_quests.push(quest)
@quests.delete(quest)
end
end
#-----------------------------------------------------------------------
# Usuwanie zadania.
#-----------------------------------------------------------------------
def remove_quest(quest)
@quests.delete(quest) if @quests.include?(quest)
end
#-----------------------------------------------------------------------
# Warunek - czy zadanie jest ukończone?
#-----------------------------------------------------------------------
def is_quest_completed?(quest)
if @completed_quests.include?(quest)
return true
end
return false
end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę zadania.
#-----------------------------------------------------------------------
def quest_name(quest)
return quest[0]
end
#-----------------------------------------------------------------------
# Metoda zwraca poziom trudności zadania.
#-----------------------------------------------------------------------
def quest_difficulty(quest)
case quest[1]
when 1
$QD1
when 2
$QD2
when 3
$QD3
when 4
$QD4
when 5
$QD5
end
end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę pliku z obrazkiem poziomu trudności zadania (125px na 48px).
#-----------------------------------------------------------------------
def quest_picture_difficulty(quest)
case quest[1]
when 1
"quest_difficulty1"
when 2
"quest_difficulty2"
when 3
"quest_difficulty3"
when 4
"quest_difficulty4"
when 5
"quest_difficulty5"
end
end
#-----------------------------------------------------------------------
# Metoda zwraca nazwę pliku z obrazkiem zadania (400px na 100px).
#-----------------------------------------------------------------------
def quest_picture(quest)
return quest[2]
end
#-----------------------------------------------------------------------
# Metoda zwraca treść zadania.
#-----------------------------------------------------------------------
def quest_description(quest)
return quest[3]
end
#-----------------------------------------------------------------------
# Metoda zwraca zadania do wykonania.
#-----------------------------------------------------------------------
def quests
return @quests
end
#-----------------------------------------------------------------------
# Metoda zwraca zadania ukończone.
#-----------------------------------------------------------------------
def completed_quests
return @completed_quests
end
#-----------------------------------------------------------------------
end
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 17 Sty, 2010 12:17
1. Jesteś pewien, że skopiowałeś oba zdarzenia z mapy zmieszczonej w demie? (i że są one ustawione na parallel process - równoległe zdarzenie). Czy jesteś również pewien, że skopiowałeś wszystkie Common Events / Typowe Zdarzenia? Jest ich pięć, a cztery pierwsze z nich również są równoległe (czyli aktywują się na określony przełącznik).
2. Na drugie nie mam jak odpowiedzieć.
3. Na tej stronie znajdziesz Demo http://thieffer.cba.pl/weblog/?p=13
Skopiuj wszystkie materiały z folderu Pictures i podejrzyj, jak zdefiniowane są questy w demie.
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