Descrizione Questo script permette di avere uno scrolling della mappa simile a quella che si aveva nei dungeon di The Legend of Zelda per NES. Non è uno script che ho creato per il pubblico, ma lo condivido volentieri se qualcuno vuole darci un occhiata e usarlo/modificarlo/migliorarlo a suo piacimento.
Autore Morshudiego
Allegati Nessuno, ma posso creare una demo su richiesta.
Istruzioni per l'uso Per ottenere gli effetti desiderati, ogni mappa di gioco deve essere un multiplo di 17 in larghezza e un multiplo di 13 in altezza. Una zona 17x13 è considerata una "stanza". Ogni stanza è identificata con delle coordinate X e Y. La stanza iniziale (0,0) è la prima in alto a sinistra.
Nello script sono presenti delle funzioni da usare nel comando script o nel conditional branch.
$room.is?(x,y) Controlla se la stanza corrente ha come coordinate x e y. Ritorna un valore true/false. Da usare nel conditional branch.
$room.istant = true/false Variabile che permette uno scrolling istantaneo. Di default la variabile è su false.
Si possono configurare due variabili per ottenere il valore della X e della Y della stanza attuale.
Script
Spoiler
module MRSH; module S003
#################################################################
# + MAP SCROLLING IN STILE THE LEGEND OF ZELDA (NES) +
# Versione:
# - 1.2.1
# Autore:
# - Morshudiego
# Condizioni d'uso:
# - Crediti non necessari, ma apprezzati.
# - Libertà di utilizzo e modifica a fini NON COMMERCIALI.
#
# Puoi trovare altri script su "http://www.rpg2s.net/"
#################################################################
# + CHANGELOG +
# 1.2.1 (12/10/2014)
# Corretto glitch dell'apertura menu durante scrolling.
# 1.2.0 (12/10/2014)
# Possibilità di assegnare il valore x e y della stanza a due
# variabili.
# 1.1.1 (10/10/2014)
# Correzione bug inquadratura sfasata.
# 1.1.0 (10/10/2014)
# Script completamente automatizzato.
# 1.0.2 (01/10/2014)
# Aliasing completo del modulo DataManager.
# 1.0.1 (20/09/2014)
# Risolti dei lievi bug.
# 1.0.0 (17/09/2014)
# Rilascio
#################################################################
# + DESCRIZIONE +
# Questo script permette di avere lo stesso stile di transizione
# mappa presente in The Legend of Zelda per NES.
#
# Per far funzionare correttamente lo script le mappe devono
# essere tutte suddivise in sezioni 17x13. Quindi la larghezza
# e l'altezza della mappa dovranno essere rispettivamente multipli
# di 17 e di 13.
#
# Lo script riconosce le varie sezioni come "stanze". Ogni stanza
# ha due coordinate: x e y. la stanza (0,0) è la stanza più in
# alto a sinistra. le stanze più a destra avranno una x maggiore,
# mentre le stanze più in basso avranno una y maggiore.
#################################################################
# + CONFIGURAZIONE +
VARIABILE_X = 2
VARIABILE_Y = 3
# Configurare le variabili a cui si vogliono assegnare i valori
# X e Y della stanza. Se settate a 0 la funzione non sarà
# utilizzata.
#################################################################
# + COMANDI +
# Da usare in Condizione SE:
# $room.is?(x, y)
# Questo comando controlla se la stanza attuale ha le
# coordinate richieste. Ritorna un valore true o false.
# ES: $room.is?(3,4) ritornerà true se la stanza ha la x
# uguale a 3 e la y uguale a 4.
# $room.istant = true/false
# Permette di avere una transizione di mappa istantanea.
# true = transizione istantanea.
# false = transizione normale.
#################################################################
end; end
module DataManager
class << self
alias morshu_create_game_objects create_game_objects
alias morshu_make_save_contents make_save_contents
alias morshu_extract_save_contents extract_save_contents
end
def self.create_game_objects
morshu_create_game_objects
$room = Zelda_Scroll.new
end
def self.make_save_contents
contents = morshu_make_save_contents
contents[:room] = $room
contents
end
def self.extract_save_contents(contents)
morshu_extract_save_contents(contents)
$room = contents[:room]
end
end
class Zelda_Scroll
attr_accessor :room
attr_accessor :istant
def initialize
@room = []
@room[0] = 0
@room[1] = 0
@istant = false
end
def room_x
return (17*@room[0])+((17-1)/2)
end
def room_y
return (13*@room[1])+((13-1)/2)
end
def is?(x,y)
return (@room[0] == x && @room[1] == y)
end
def update_var
if MRSH::S003::VARIABILE_X != 0
$game_variables[MRSH::S003::VARIABILE_X] = @room[0]
end
if MRSH::S003::VARIABILE_Y != 0
$game_variables[MRSH::S003::VARIABILE_Y] = @room[1]
end
end
def scroll?
return 2 if ($game_player.y - room_y) > 6
return 4 if ($game_player.x - room_x) < -8
return 6 if ($game_player.x - room_x) > 8
return 8 if ($game_player.y - room_y) < -6
return 0
end
def exec_room_scroll(direction=scroll?, distance=0, speed=6, x=1, y=1)
distance = 13 if (direction == 2 || direction == 8)
distance = 17 if (direction == 4 || direction == 6)
case direction
when 2 #down
@room[1] += y
when 4 #left
@room[0] -= x
when 6 #right
@room[0] += x
when 8 #up
@room[1] -= y
end
$game_map.do_scroll(direction, distance) if @istant
$game_map.start_scroll(direction, distance, speed) if !@istant
update_var
end
def warp
@room[0] = $game_player.x / 17
@room[1] = $game_player.y / 13
$game_map.set_display_pos(17*@room[0], 13*@room[1])
update_var
end
end
class Game_Player < Game_Character
alias morshu_movable? movable?
def movable?
return false if $game_map.scrolling?
morshu_movable?
end
def update_scroll(last_real_x, last_real_y)
if $room.scroll? != 0
$room.exec_room_scroll
end
end
end
class Scene_Map < Scene_Base
alias morshu_perform_transition perform_transition
alias morshu_post_transfer post_transfer
alias morshu_update_call_menu update_call_menu
def perform_transition
$room.warp
morshu_perform_transition
end
def post_transfer
$room.warp
morshu_post_transfer
end
def update_call_menu
return if $game_map.scrolling?
morshu_update_call_menu
end
end
#################################################################
# M M OOO RRRR SSSS H H U U DDDD I EEEEE GGG OOO #
# MM MM O O R R S H H U U D D I E G O O #
# M M M O O RRRR SSS HHHHH U U D D I EEE G GGG O O #
# M M O O R R S H H U U D D I E G G O O #
# M M OOO R R SSSS H H UUU DDDD I EEEEE GGG OOO #
#################################################################
Bugs e Conflitti Noti Lo script non funziona correttamente su mappe con larghezza non multipla di 17 e altezza non multipla di 13.
Altri dettagli N/D
Modificato da Morshudiego, 22 October 2014 - 12:46 PM.
<AGGIORNAMENTI>(Ultima modifica: Oct 30 2014)
Myth of First Star - Facendo il punto della situazione
Project Sudoku - Il multitasking non è il mio forte. XD (Spero comunque di risolvere il bug per rilasciare la 0.3 :P)
Tutorial Menu Eventi - Uscita parte 2 (però è malformattata, non so se riuscirò ad editare tutto in un giorno. Abbiate pasiensa :P)
<PROGETTI> Myth of First Star - Project Sudoku (*trollface*)
🖤 E:3 by Testament (notare dettaglio in basso a destra)! E:3 by Idriu E:3
Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)
Ufficiale "Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"
<- Grazie Testament E:3 Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^ by Flame ^ ^
Grazie Testament XD Fan n°1 ufficiale di PQ! :D
Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)
Rosso Guardiano della
Rpg2s RPG BY FORUM:
Spoiler
Nome: Darth Reveal
PV totali 2 PA totali 16
Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.
Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan
Spada a due mani elsa lunga
Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)
Scrinieri da lanciere (2 PA)
Elmo del Leone (5 PA)
Corazza del Leone in Ferro Corrazzato (7 PA)
ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)
Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca
Semi di Balissa
CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani
<AGGIORNAMENTI>(Ultima modifica: Oct 30 2014)
Myth of First Star - Facendo il punto della situazione
Project Sudoku - Il multitasking non è il mio forte. XD (Spero comunque di risolvere il bug per rilasciare la 0.3 :P)
Tutorial Menu Eventi - Uscita parte 2 (però è malformattata, non so se riuscirò ad editare tutto in un giorno. Abbiate pasiensa :P)
<PROGETTI> Myth of First Star - Project Sudoku (*trollface*)
Sì, il blocco pg dovrebbe essere abbastanza necessario data la libertà di rpgmaker, prova anche un po' tutti gli eventi che ogni tanto con script come questi qualche comando fa casino (muovi mappa per esempio).
🖤 E:3 by Testament (notare dettaglio in basso a destra)! E:3 by Idriu E:3
Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)
Ufficiale "Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"
<- Grazie Testament E:3 Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^ by Flame ^ ^
Grazie Testament XD Fan n°1 ufficiale di PQ! :D
Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)
Rosso Guardiano della
Rpg2s RPG BY FORUM:
Spoiler
Nome: Darth Reveal
PV totali 2 PA totali 16
Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.
Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan
Spada a due mani elsa lunga
Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)
Scrinieri da lanciere (2 PA)
Elmo del Leone (5 PA)
Corazza del Leone in Ferro Corrazzato (7 PA)
ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)
Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca
Semi di Balissa
CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani
<AGGIORNAMENTI>(Ultima modifica: Oct 30 2014)
Myth of First Star - Facendo il punto della situazione
Project Sudoku - Il multitasking non è il mio forte. XD (Spero comunque di risolvere il bug per rilasciare la 0.3 :P)
Tutorial Menu Eventi - Uscita parte 2 (però è malformattata, non so se riuscirò ad editare tutto in un giorno. Abbiate pasiensa :P)
<PROGETTI> Myth of First Star - Project Sudoku (*trollface*)
🖤 E:3 by Testament (notare dettaglio in basso a destra)! E:3 by Idriu E:3
Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)
Ufficiale "Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"
<- Grazie Testament E:3 Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^ by Flame ^ ^
Grazie Testament XD Fan n°1 ufficiale di PQ! :D
Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)
Rosso Guardiano della
Rpg2s RPG BY FORUM:
Spoiler
Nome: Darth Reveal
PV totali 2 PA totali 16
Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.
Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan
Spada a due mani elsa lunga
Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)
Scrinieri da lanciere (2 PA)
Elmo del Leone (5 PA)
Corazza del Leone in Ferro Corrazzato (7 PA)
ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)
Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca
Semi di Balissa
CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani
Accorcio fino ad un certo limite, perché ad accorciare troppo poi non ci capisco più una cipolla. :O (non a caso sono sorti altri BUGZ che ho subito corretto nella 1.1.1)
EDIT: Release 1.2.0 Possibilità di assegnare il valore di X e Y della stanza a due variabili (funzione disattivabile settando come id il valore 0)
Modificato da Morshudiego, 12 October 2014 - 14:19 PM.
<AGGIORNAMENTI>(Ultima modifica: Oct 30 2014)
Myth of First Star - Facendo il punto della situazione
Project Sudoku - Il multitasking non è il mio forte. XD (Spero comunque di risolvere il bug per rilasciare la 0.3 :P)
Tutorial Menu Eventi - Uscita parte 2 (però è malformattata, non so se riuscirò ad editare tutto in un giorno. Abbiate pasiensa :P)
<PROGETTI> Myth of First Star - Project Sudoku (*trollface*)