Jump to content
Rpg²S Forum

Large choice


Kenshin
 Share

Recommended Posts

Large choice



Descrizione


Permette di mettere più di 4 scelte in un evento a scelta.



Autore


Tsukihime



Istruzioni per l'uso


Incollare lo script sotto materials e prima del main.


Per farlo funzionare basta mettere più eventi scelta nell'evento per formare una finestra di scelta con più di 4 opzioni.



Script



=begin

#==============================================================================

** Large Choices

Author: Tsukihime

Date: Apr 10, 2013

------------------------------------------------------------------------------

** Change log

Apr 10, 2013

- added option to disable automatic show combining

Mar 26, 2013

- fixed bug where cancel choice was not properly updated

Jan 12, 2013

- fixed bug where the first set of nested options were numbered incorrectly

Dec 7, 2012

- implemented proper branch canceling

Dec 6, 2012

- Initial release

------------------------------------------------------------------------------

** Terms of Use

* Free to use in non-commercial projects

* Contact me for commercial use

* No real support. The script is provided as-is

* Will do bug fixes, but no compatibility patches

* Features may be requested but no guarantees, especially if it is non-trivial

* Preserve this header

------------------------------------------------------------------------------

** Description


This script combines groups of "show choice" options together as one large

command. This allows you to create more than 4 choices by simply creating

several "show choice" commands.

------------------------------------------------------------------------------

** Installation


Place this script below Materials and above Main


------------------------------------------------------------------------------

** Usage


Add a show choice command.

If you want more choices, add another one, and fill it out as usual.


Note that you should only specify one cancel choice (if you specify more than

one, then the last one is taken).


For "branch" canceling, note that *all* cancel branches are executed.

You should only have a cancel branch on the last set of choices


You can disable automatic choice combining by enabling the "Manual Combine"

option, which will require you to make this script call before the first

show choice command


combine_choices


In order to combine choices together

#==============================================================================

=end

$imported = {} if $imported.nil?

$imported["TH_LargeChoices"] = true

#==============================================================================

# ** Configuration

#==============================================================================

module TH

module Large_Choices


# Turning this option on will require you to manually specify that

# a sequence of Show Choice options should be combined

Manual_Combine = false


#==============================================================================

# ** Rest of the script

#==============================================================================

Code_Filter = [402, 403, 404]

Regex = /<large choices>/i

end

end


class Game_Temp


# temp solution to get this working

attr_accessor :branch_choice


def branch_choice

@branch_choice || 5

end

end


class Game_Interpreter


#-----------------------------------------------------------------------------

# Clean up

#-----------------------------------------------------------------------------

alias :th_large_choices_clear :clear

def clear

th_large_choices_clear

@first_choice_cmd = nil

@choice_search = 0

@combine_choices = false

end


#-----------------------------------------------------------------------------

# Prepare for more choices

#-----------------------------------------------------------------------------

alias :th_large_choices_setup_choices :setup_choices

def setup_choices(params)

# start with our original choices

th_large_choices_setup_choices(params)


return if TH::Large_Choices::Manual_Combine && !@combine_choices


# store our "first" choice in the sequence

@first_choice_cmd = @list[@index]


# reset branch choice

$game_temp.branch_choice = @first_choice_cmd.parameters[1]


# Start searching for more choices

@num_choices = $game_message.choices.size

@choice_search = @index + 1

search_more_choices

end


def combine_choices

@combine_choices = true

end


#-----------------------------------------------------------------------------

# New. Check whether the next command (after all branches) is another choice

# command. If so, merge it with the first choice command.

#-----------------------------------------------------------------------------

def search_more_choices

skip_choice_branches

next_cmd = @list[@choice_search]


# Next command isn't a "show choice" so we're done

return if next_cmd.code != 102


@choice_search += 1

# Otherwise, push the choices into the first choice command to merge

# the commands.

@first_choice_cmd.parameters[0].concat(next_cmd.parameters[0])


# Update all cases to reflect merged choices

update_show_choices(next_cmd.parameters)

update_cancel_choice(next_cmd.parameters)

update_choice_numbers


# delete the command to effectively merge the branches

@list.delete(next_cmd)


# Now search for more

search_more_choices

end


#-----------------------------------------------------------------------------

# New. Update the options for the first "show choice" command

#-----------------------------------------------------------------------------

def update_show_choices(params)

params[0].each {|s| $game_message.choices.push(s) }

end


#-----------------------------------------------------------------------------

# New. If cancel specified, update it to reflect merged choice numbers

# The last one is taken if multiple cancel choices are specified

#-----------------------------------------------------------------------------

def update_cancel_choice(params)


# disallow, just ignore

return if params[1] == 0


# branch on cancel

return update_branch_choice if params[1] == 5


# num_choices is not one-based

cancel_choice = params[1] + (@num_choices)

# update cancel choice, as well as the first choice command

$game_message.choice_cancel_type = cancel_choice

@first_choice_cmd.parameters[1] = cancel_choice

end


#-----------------------------------------------------------------------------

# New. Set the initial choice command to "branch cancel"

#-----------------------------------------------------------------------------

def update_branch_choice

branch_choice = $game_message.choices.size + 1

$game_message.choice_cancel_type = branch_choice

$game_temp.branch_choice = branch_choice

@first_choice_cmd.parameters[1] = branch_choice

end


def command_403

command_skip if @branch[@indent] != $game_temp.branch_choice - 1

end


#-----------------------------------------------------------------------------

# New. For each branch, update it to reflect the merged choice numbers.

#-----------------------------------------------------------------------------

def update_choice_numbers


# Begin searching immediately after cmd 102 (show choice)

i = @choice_search


# Rough search for "When" commands. The search must skip nested commands

while TH::Large_Choices::Code_Filter.include?(@list.code) || @list.indent != @indent

if @list.code == 402 && @list.indent == @indent

@list.parameters[0] = @num_choices

@num_choices += 1

end

i += 1

end

end


#-----------------------------------------------------------------------------

# New. Returns the next command after our choice branches

#-----------------------------------------------------------------------------

def skip_choice_branches

# start search at the next command

# skip all choice branch-related commands and any branches

while TH::Large_Choices::Code_Filter.include?(@list[@choice_search].code) || @list[@choice_search].indent != @indent

@choice_search += 1

end

return @choice_search

end

end



Bugs e Conflitti Noti


N/A




Questo script mi serviva, e dato che su questo forum non lo avevo trovato, oltre che prendermelo e basta ho pensato di girarvelo ^^



"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

Ottimo, c'è stata forte richiesta per numerose scelte o features simili nei messaggi ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
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"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
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
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

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

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

Posso testimoniare che funziona, ho creato una scelta con 10 opzioni ^^

"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...