Vai al contenuto


Toggle Chat RM - Chat Apri la Chat in un popup

E' severamente vietato richiedere supporto su RPG Maker in chat!
@  Caba33akaMimik : (25 May 2012 - 09:56 PM) sera a tutti ^^
@  Melosx : (25 May 2012 - 08:30 PM) Buonasera a tutti
@  Hashmin : (25 May 2012 - 02:15 PM) ciao a tt!
@  Pech93 : (24 May 2012 - 01:55 PM) ho aggiunto delle composizioni originali!!! Chi le vuole ascoltare e dare qualche commento costruttivo?
@  MihaChan : (23 May 2012 - 09:19 PM) a parte i denti -che stanno decidendo di darmi noia in questi giorni-, tutto okay~
@  Melosx : (23 May 2012 - 09:18 PM) bene ^.^ ... Tu??
@  MihaChan : (23 May 2012 - 09:17 PM) come va? xD
@  MihaChan : (23 May 2012 - 09:16 PM) okay
@  MihaChan : (23 May 2012 - 09:16 PM) ah
@  Melosx : (23 May 2012 - 09:14 PM) ciao miha... ai dont spic inglisc
@  MihaChan : (23 May 2012 - 09:12 PM) how'sa goin'?
@  MihaChan : (23 May 2012 - 09:12 PM) ciao Mel!
@  Melosx : (23 May 2012 - 09:07 PM) ciao
@  MihaChan : (23 May 2012 - 09:06 PM) salve D:
@  Pech93 : (23 May 2012 - 08:05 PM) MIk?
@  Melosx : (23 May 2012 - 07:51 PM) VIENI SU MSN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@  Melosx : (23 May 2012 - 07:51 PM) MIIIIIIIIIIIIIIIIIIIKKKKKKKKKKKK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@  Melosx : (23 May 2012 - 07:46 PM) *iù
@  Melosx : (23 May 2012 - 07:38 PM) iu spin mi rai rau bebi rai rau laic a record bebi rau rau rau rau
@  Melosx : (23 May 2012 - 07:37 PM) lalalallalallalallallllllllllalalalallaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!

Sistema Quest semplice


  • Per cortesia connettiti per rispondere
2 risposte a questa discussione

#1 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 16 August 2011 - 07:38 PM

Nome Script: Sistema Quest semplice
Versione: 1.0b
Autore/i: Niclas

Informazioni:
Semplice sistema quest da aggiungere al proprio gioco.

Features:
- Plug and play.
- Aggiungi, rimuovi o fai una ricerca completa utilizzando un call script.
- Ogni quest memorizza una variabile se è stata completata o meno.
- Facile da aggiungere al menu in quanto utilizza una scena propria.
- Supporta un'immagine di sfondo personalizzata.
- e molto altro!

Istruzioni:
Inserite lo script sotto material.
Altre istruzioni all'interno dello script.

Script:
#==============================================================================
#   Simple Journal
#   Author: Nicke
#   Created: 08/13/2011
#   Edited: 08/16/2011
#   Version: 1.0b
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
# -----------------------------------------------------------------------------
#
# To open Simple Journal use: $scene = Scene_Simple_Journal.new <- In your menu.
#
# Use the call script function to add, remove or complete a quest.
#   Quick example:
#   add_quest(id,type)
#
#   add_quest(1,:main)
#   add_quest(0,:side)
#   complete_quest(0,:side)
#   fail_quest(1,:main)
#
#   Note:
#   In Main quests you should only add 1 quest each time as it is
#   designed that way. However, to make main quest act like side quest page
#   simply set SCROLL_MAIN_QUESTS to true.
#   Every quest stores a variable if it is being completed or failed which then
#   can be used as you want.
#  
#==============================================================================
($imported ||= {})["NICKE-SIMPLE-JOURNAL"] = true

module NICKE
  module JOURNAL_SYSTEM

	# --------------------------------------------------------------------------
	# General settings.
	WIDTH = Graphics.width				# Change the width of the journal window.
	HEIGHT = Graphics.height			  # Change the height of the journal window.
	FONT_TYPE = ["Rockwell", "Arial"]	 # Font type.
	TITLE = "Journal"					 # Journal title text.
	FOOTER = "Use Left/Right to change page." # Footer text.
	NO_ENTRIES = "No entries added..."	# If no quest added show this text.
	COMPLETE_QUEST_VAR = 1				# Variable to store completed quests
	FAILED_QUEST_VAR = 2				  # Variable to store failed quests.
	SCROLL_MAIN_QUESTS = false			# Scroll at Main Quests too?
										  # Note: If true, footer will be hidden.

	BUTTON_LEFT_PAGE = Input::LEFT		# Button to change page to the left.
	BUTTON_RIGHT_PAGE =  Input::RIGHT	 # Button to change page to the right.

	BACKGROUND_IMAGE_ACTIVE = true		# Use a background image?
	BACKGROUND_IMAGE = "journal"		  # Background image file name.
	# --------------------------------------------------------------------------
	# Color, size and shadow.
	T_FONT_SIZE = 26								# Title font size.
	T_FONT_COLOR = Color.new(223,255,80)			# Title font color.
	T_FONT_SHADOW = true							# Title font shadow.

	QUEST_HEADER_SIZE = 20						  # Quest Header font size.
	QUEST_HEADER_COLOR = Color.new(135,206,250)	 # Quest Header font color.
	QUEST_HEADER_SHADOW = true					  # Quest Header font shadow.

	QUEST_DETAILS_SIZE = 16						 # Quest Details font size.
	QUEST_DETAILS_COLOR = Color.new(245,245,245)	# Quest Details font color.
	QUEST_DETAILS_SHADOW = true					 # Quest Details font shadow.

	H_FONT_SIZE = 20								# Header font size.
	H_FONT_COLOR = Color.new(223,255,80)			# Header font color.
	H_FONT_SHADOW = true							# Header font shadow.

	F_FONT_SIZE = 18								# Footer font size.
	F_FONT_COLOR = Color.new(223,255,80)			# Footer font color.
	F_FONT_SHADOW = true							# Footer font shadow.

	NO_E_FONT_SIZE = 18							 # No entries font size.
	NO_E_FONT_COLOR = Color.new(235,235,160)		# No entries font color.
	NO_E_FONT_SHADOW = true						 # No entries font shadow.  
	# --------------------------------------------------------------------------
	# MAIN QUESTS.
	# Main Quest[Index] = [Icon, "Title", "Details"]
	MAIN_Q_HEADER = "Main Quests"		 # Header text for Main quests.
	MAIN_QUESTS = []					  # Don't touch it!
	MAIN_QUESTS[0] = [15, "The Terror in Townsil", "Travel to Townsil and talk to captain awesome."]
	MAIN_QUESTS[1] = [15, "The Terror in Townsil", "Search the town for clues."]
	MAIN_QUESTS[2] = [15, "The Terror in Townsil", "Go back to captain awesome and explain that the situation is crucial."]
	# --------------------------------------------------------------------------
	# SIDE QUESTS.
	# SIDE Quest[Index] = [Icon, "Title", "Details"]
	SIDE_Q_HEADER = "Side Quests"		 # Header text for Side quests.
	SIDE_QUESTS = []					  # Don't touch it!
	SIDE_QUESTS[0] = [12, 'Kill the Orcs.', 'Hunt down ten orcs and kill them.']
	SIDE_QUESTS[1] = [75, 'Aid the doctor.', 'Help the doctor by finding the missing herbs.']
	SIDE_QUESTS[2] = [138, 'Find the forgotten girl.', 'Locate the missing girl in the woods.']
	SIDE_QUESTS[3] = [44, 'Armour Reparing.', 'Talk to the local blacksmith to get the armour fixed.']
	SIDE_QUESTS[4] = [151, 'Special Delivery.', 'Take the box filled with unique materials to the mayor in town.']
	SIDE_QUESTS[5] = [64, 'Brew a potion.', 'Gather the missing ingrediens for the health potion.']
	SIDE_QUESTS[6] = [22, 'Solve the bandit problem.', 'Track down and get rid of the bandits that lurks within the deep forest.']
	# --------------------------------------------------------------------------

  end
end
# *** Don't edit below unless you know what you are doing. ***
class Game_System

  attr_accessor :main_quests
  attr_accessor :side_quests
  attr_accessor :completed_quests
  attr_accessor :failed_quests

  alias nicke_quest_initialize initialize unless $@
  def initialize(*args, &block)
	nicke_quest_initialize(*args, &block)
	@main_quests = []
	@side_quests = []
	@completed_quests = [] # Going to be used later on.
	@failed_quests = [] # Going to be used later on.
  end

end

class Game_Interpreter

  include NICKE::JOURNAL_SYSTEM

  def add_quest(id, type)
	# Method to add a quest.  
	case type
	when :main # Main quests.
	  unless $game_system.main_quests.include?(MAIN_QUESTS[id])
		$game_system.main_quests.push(MAIN_QUESTS[id])
	  end unless MAIN_QUESTS[id].nil?
	when :side # Side quests.
	  unless $game_system.side_quests.include?(SIDE_QUESTS[id])
		$game_system.side_quests.push(SIDE_QUESTS[id])
	  end unless SIDE_QUESTS[id].nil?
	end
  end

  def complete_quest(id, type)
	# Method to complete a quest.
	case type
	when :main # Main quests.
	  if $game_system.main_quests.include?(MAIN_QUESTS[id])
		$game_system.main_quests.delete(MAIN_QUESTS[id])
		$game_system.completed_quests.push(MAIN_QUESTS[id])	  
		$game_variables[COMPLETE_QUEST_VAR] += 1
	  end
	when :side # Side quests.
	  if $game_system.side_quests.include?(SIDE_QUESTS[id])
		$game_system.side_quests.delete(SIDE_QUESTS[id])
		$game_system.completed_quests.push(SIDE_QUESTS[id])
		$game_variables[COMPLETE_QUEST_VAR] += 1
	  end
	end
  end

  def fail_quest(id, type)
	# Method for quest failed.
	case type
	when :main # Main quests.
	  unless MAIN_QUESTS[id].nil?
		$game_system.main_quests.delete(MAIN_QUESTS[id])
		$game_system.failed_quests.push(MAIN_QUESTS[id])
		$game_variables[FAILED_QUEST_VAR] += 1
	  end
	when :side # Side quests.
	  unless SIDE_QUESTS[id].nil?
		$game_system.side_quests.delete(SIDE_QUESTS[id])
		$game_system.failed_quests.push(SIDE_QUESTS[id])
		$game_variables[FAILED_QUEST_VAR] += 1
	  end
	end
  end

end

class Scene_Simple_Journal < Scene_Base

  include NICKE::JOURNAL_SYSTEM

  def start
	super()
	@journal_window = Window_Simple_Journal.new(true)
	if BACKGROUND_IMAGE_ACTIVE == true
	  create_bg
	  @journal_window.opacity = 0
	end
  end

  def create_bg
	@bg = Sprite.new
	@bg.bitmap = Cache.picture(BACKGROUND_IMAGE)
  end

  def update
	super
	# Method for checking input triggers.
	if Input.trigger?(Input::B)
	  Sound.play_cancel
	  $scene = Scene_Menu.new(0)
	elsif Input.trigger?(BUTTON_LEFT_PAGE) || Input.trigger?(BUTTON_RIGHT_PAGE)
	  Sound.play_decision
	  main = @journal_window.main
	  @journal_window.dispose
	  @journal_window = Window_Simple_Journal.new(!main)
	elsif Input.trigger?(Input::UP)
	  y = @journal_window.oy
	  @journal_window.oy = [y - 52, 0].max
	elsif Input.trigger?(Input::DOWN)
	  return if @journal_window.contents.height < @journal_window.height
	  y = @journal_window.oy
	  @journal_window.oy = [y + 52, @journal_window.height - y + 16].min
	end
	@journal_window.opacity = 0 if BACKGROUND_IMAGE_ACTIVE == true
  end

  def terminate
	super
	@journal_window.dispose
	@bg.dispose
  end

end

class Window_Simple_Journal < Window_Base

  include NICKE::JOURNAL_SYSTEM

  attr_reader :main

  def initialize(main = true)
	super(0,0,WIDTH, HEIGHT)
	@main = main
	# This will allow scrolling if there are too many quests.
	if !@main
		self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.side_quests.size - 1) * WLH)
	else
		self.contents = Bitmap.new(self.width - 32, HEIGHT - 56 + ($game_system.main_quests.size - 1) * WLH) unless SCROLL_MAIN_QUESTS != true
	end
	refresh
  end

  def refresh
	self.contents.clear
	# Add Graphics.
	addGraphics
	# Add Quests.
	addQuests
  end

  def self_rect
	# Return the value of contents rect.
	return self.contents.rect
  end

  def draw_text(x, y, text, align)
	# Method for drawing the text.
	title = self_rect
	title.x = x
	title.y = y
	title.height = 28
	self.contents.draw_text(title,text,align)
  end

  def draw_line(x, y)
	# Create two lines actually, one is acting like the shadow.
	line = self_rect
	line.height = 1
	line.width -= 10
	line.x = x
	line.y = y
	self.contents.fill_rect(line,normal_color)
	line.y += 1
	color = Color.new(0,0,0,200)
	self.contents.fill_rect(line,color)
  end

  def addQuests
	if @main
	  # Fill it with the current main quest data.
	  quests = $game_system.main_quests
	else
	  # Fill it with the current side quest data.
	  quests = $game_system.side_quests
	end
	# If no main quests have been added.
	if quests.empty?
	  contents.font.name = FONT_TYPE
	  contents.font.size = NO_E_FONT_SIZE
	  contents.font.color = NO_E_FONT_COLOR
	  contents.font.shadow = NO_E_FONT_SHADOW
	  draw_text(0, 160, NO_ENTRIES, 1)
	  return  
	end
	yoff = WLH * 2
	quests.each_with_index { |q, i|
	  draw_icon( q[0], 0, i * yoff + 84);
	  # Font, size, color & shadow.
	  contents.font.name = FONT_TYPE
	  contents.font.size = QUEST_HEADER_SIZE
	  contents.font.color = QUEST_HEADER_COLOR
	  contents.font.shadow = QUEST_HEADER_SHADOW
	  self.contents.draw_text(10, 68 + i * yoff, self.contents.width - 16, WLH, q[1], 1)
	  contents.font.name = FONT_TYPE
	  contents.font.size = QUEST_DETAILS_SIZE
	  contents.font.color = QUEST_DETAILS_COLOR
	  contents.font.shadow = QUEST_DETAILS_SHADOW
	  self.contents.draw_text(27, 60 + (i * yoff)+WLH, self.contents.width - 16, WLH, q[2])
	}
  end

  def addGraphics
	  # Method for drawing the graphics and some headers.
	  self.contents.font.name = FONT_TYPE
	  self.contents.font.size = T_FONT_SIZE
	  self.contents.font.color = T_FONT_COLOR
	  self.contents.font.shadow = T_FONT_SHADOW
	  draw_text(0, 0, TITLE, 1) if BACKGROUND_IMAGE_ACTIVE != true
	  self.contents.font.name = FONT_TYPE
	  self.contents.font.size = H_FONT_SIZE
	  self.contents.font.color = H_FONT_COLOR
	  self.contents.font.shadow = H_FONT_SHADOW
	  if @main
		draw_text(0, 42, MAIN_Q_HEADER, 1)
		self.contents.font.name = FONT_TYPE
		self.contents.font.size = F_FONT_SIZE
		self.contents.font.color = F_FONT_COLOR
		self.contents.font.shadow = F_FONT_SHADOW
		draw_text(0,360, FOOTER, 1) unless SCROLL_MAIN_QUESTS == true
		draw_line(5,356)			unless SCROLL_MAIN_QUESTS == true
	  else
		draw_text(0, 42, SIDE_Q_HEADER, 1)
	  end
	  draw_line(5,36) if BACKGROUND_IMAGE_ACTIVE != true
  end

end # END OF FILE

#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#

Immagine inserita
Spoiler

#2 OFFLINE   Edenspring

Edenspring

    RM Avanzato

  • Utenti RM
  • StellettaStellettaStelletta
  • 35 Messaggi:
  • Progetto VX:
    CountdownToCasualty

Inviato 21 February 2012 - 12:29 AM

Ciao!
Per caso qualcuno riesce a crearmi una patch o comunque a modificare questo script in modo da poterlo utilizzare nel KGC_CustomMenuCommand?
Ho davvero bisogno di un menù per le quest, e la semplicità grafica di questo lo rende perfetto per il mio progetto..

#3 OFFLINE   Ally

Ally

    Fondatori

  • Amministratori
  • 5558 Messaggi:
  • Localitàrpgmkr
  • Ruolo:
    Scripter
  • Progetto VX:
    Essence
  • Tool:
    RM2k/2k3

Inviato 28 March 2012 - 02:57 AM

Puoi rammentarmi il funzionamento del KGC_CustomMenuCommand?
Immagine inserita
Spoiler




1 utente(i) stanno leggendo questa discussione

0 utenti, 1 ospiti, 0 utenti anonimi