-
Posts
92 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by lupius
-
-
Se capisci l'inglese ti dò un link per uno script che ho scoperto da poco.
http://mrbubblewand.wordpress.com/rgss3/tactics-ogre-psp-crafting-system/
Se invece lo vuoi tradotto dammi un attimo che sto aspettando che l'autore mi dia l'autorizzazione... :)
-
Io non posso aprirlo la mia ragazza mi ha minacciato dimorte se lo faccio D:
Comunque è uno strano modo di insegnare lol
Immagino tu abbia già usato l'arma "Stai solo cercando di fermare la mia fame di sapere", vero? XD
-
Si, l' HUD è in restyling...
Effettivamente faceva parecchio paura.
.___.
Contando la quantità spaventosa di ROSA stile Sorelle Clamp che c'è nelle immagini iniziali dell'hud, direi che state andando bene. Già mi immagino cose figherrime.
quello che mi preoccupa è la parte che riguarda l'uso degli animus al difuori della battaglia è abbastanza simpatico mi ricorda pokemon oro dove portavi con te il pokemon
Confesso che anche a me è venuta quest'idea, con un bel messaggio che dice "Jigglypuff usa LUCE!". Però vedo che si sono messi dietro a cose un po' più interessanti a livello di enigmi (almeno dalle premesse), i puzzle dei pokémon erano davvero base base base... Qui con due animus in contemporanea, anche tre, puoi fare puzzle da lasciarci il cervello...
-
Si, avevo già percorso quella strada, ma dopo una trentina di messaggi l'automatismo cominciava a fallire e facevo dei casini (oltre che trovarmi pagine eventi lunghe il triplo)... ^^ lo scriptino mi piace di più.
-
Finalmente zio Google oggi ha dovuto cedere sotto le mie pressioni e mi ha dato, dopo 3 pagine di niente, il risultato che speravo. Un bello script per inserire face grandi nei messaggi!! Oh yeah...
AUTORE:
Fomar0153
DESCRIZIONE:
Un semplicissimo ma utilissimo script che permette di inserire, al posto delle solite face 96x96, delle face grandi 272x288, misura che potete comunque cambiare a vostro piacemento nello script. Cercate di rispettare la misura esistente (o quella che inserirete voi) altrimenti la vostra immagine sarà fuori posizione.
ISTRUZIONI:
Importate nella cartella Graphics/Faces le immagini che volete utilizzare, rinominandole inserendo all'interno del nome del file il simbolo "!". Se volete cambiare simbolo di riconoscimento, potete farlo alla linea 23 dello script. Le immagini devono essere 272x288 pixel, ma potete cambiare questi valori alle linee 24 e 25 dello script.
Screen:
Script:
=begin Faces to Busts by Fomar0153 Version 1.0 ---------------------- Notes ---------------------- Allows you to use busts in place of faces in the editor. ---------------------- Instructions ---------------------- All busts should be placed in the Faces folder. They should all contain a symbol in the filename by default it is "!" You can change the default values in the Fomar module. ---------------------- Known bugs ---------------------- None =end module Fomar BUST_SYMBOL = "!" BUST_WIDTH = 272 BUST_HEIGHT = 288 end class Window_Message < Window_Base #-------------------------------------------------------------------------- # * Draw Face Graphic # enabled : Enabled flag. When false, draw semi-transparently. #-------------------------------------------------------------------------- def draw_face(face_name, face_index, x, y, enabled = true) if face_name.include?(Fomar::BUST_SYMBOL) if @position == 0 y = (Graphics.height - Fomar::BUST_HEIGHT) else y = [2 * (Graphics.height - height) / 2 - Fomar::BUST_HEIGHT,0].max end screen.pictures[101].show(face_name, 0, 0, y, 100.0, 100.0, 255, 0) else super(face_name, face_index, x, y, enabled) end end #-------------------------------------------------------------------------- # * New Page #-------------------------------------------------------------------------- alias bust_new_page new_page def new_page(text, pos) screen.pictures[101].erase if screen.pictures[101] bust_new_page(text, pos) end #-------------------------------------------------------------------------- # * Close #-------------------------------------------------------------------------- def close screen.pictures[101].erase if screen.pictures[101] super end #-------------------------------------------------------------------------- # * Screen #-------------------------------------------------------------------------- def screen $game_party.in_battle ? $game_troop.screen : $game_map.screen end #-------------------------------------------------------------------------- # * Get New Line Position #-------------------------------------------------------------------------- def new_line_x if $game_message.face_name.empty? or $game_message.face_name.include?(Fomar::BUST_SYMBOL) return 0 else return 112 end end end class Sprite_Picture < Sprite #-------------------------------------------------------------------------- # * Update Transfer Origin Bitmap #-------------------------------------------------------------------------- alias bust_update_bitmap update_bitmap def update_bitmap if !@picture.name.empty? and @picture.name.include?(Fomar::BUST_SYMBOL) self.bitmap = Cache.face(@picture.name) else bust_update_bitmap end end end -
Se vuoi aggiungerlo al topic principale, questo è il link alle immagini per la cartella Weather, da incollare nella cartella Graphic per lo script del meteo.
http://www.mediafire.com/?2q1ix4ublcc6u82
Auguri per il lavorone!
Grazie! Oggi butterò su ancora qualcosa... La menata è che è tutto in portoghese e, soprattutto, che spesso le istruzioni negli script hanno degli errori... uff... Grazie del link, lo implemento al messaggio!!
EDIT:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Script per il Gameplay
1) Moghunter Chain Commands V1.4
Descrizione:
Questo script permette di applicare una combinazione di tasti da immettere, in un lasso limitato di tempo, per raggiungere uno scopo. Possiamo quindi far immettere una combinazione di tasti per aprire un baule, sbloccare una porta o con qualsiasi altra cosa si possa interagire sulla mappa. Nello screen qua sotto, per esempio, bisogna immettere la sequenza per poter aprire la porta
Screen:
Istruzioni:
Per modificare, aggiungere e togliere switch di comandi (ovvero gli "slot" a cui assegnate le combinazioni di comandi) andate alla linea 54
Il resto delle istruzioni le trovate comodamente all'inizio dello script.
Le immagini originali di Moghunter potete trovarle qui: http://www.mediafire.com/download.php?m29ejyo691w6k5l
Script:
#=============================================================================== # +++ MOG - Chain Commands (v1.4) +++ #=============================================================================== # By Moghunter # http://www.atelier-rgss.com #=============================================================================== # Sistema de sequência de botões para ativar switchs. # # Serão necessárias as seguintes imagens. (Graphics/System) # # Chain_Cursor.png # Chain_Command.png # Chain_Layout.png # Chain_Timer_Layout.png # Chain_Timer_Meter.png # #=============================================================================== # # Para ativar o script use o comando abaixo. (*Call Script) # # chain_commands(ID) # # ID - Id da switch. # #=============================================================================== #============================================================================== # ● Histórico (Version History) #============================================================================== # v 1.4 - Correção do crash aleatório. # v 1.3 - Melhoria no sistema de dispose # v 1.2 - Melhoria na codificação e correção de alguns glitches. # v 1.1 - Animação de fade ao sair da cena de chain. # - Opção de definir a prioridade da hud na tela. #============================================================================== module MOG_CHAIN_COMMANDS #============================================================================== # CHAIN_COMMAND = { SWITCH_ID => [COMMAND] } # # SWITCH_ID = ID da switch # COMMANDS = Defina aqui a sequência de botões. # (Para fazer a sequência use os comandos abaixo) # # "Down" ,"Up" ,"Left" ,"Right" ,"Shift" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q" ,"W" # # Exemplo de utilização # # CHAIN_SWITCH_COMMAND = { # 25=>["Down","D","S","Right"], # 59=>["Down","Up","Left","Right","Shift","D","S","A","Z","X","Q","W"], # 80=>["Shift","D"] # } #============================================================================== CHAIN_SWITCH_COMMAND = { 5=>["X","Right","Left","Z","Z"], 6=>["Left","Right","Left","Right","Left","Right","Q","Z","Up","A","S", "Down","D","Z","Right","Up","Up","Z","W","Left","Down","D","A","W"], 8=>["Up","Down","Left","Right","Z"] } #Duração para colocar os comandos. (A duração é multiplicado pela quantidade #de comandos) *60 = 1 sec CHAIN_INPUT_DURATION = 30 #Som ao acertar. CHAIN_RIGHT_SE = "Chime1" #Som ao errar. CHAIN_WRONG_SE = "Buzzer1" #Switch que ativa o modo automático. CHAIN_AUTOMATIC_MODE_SWITCH_ID = 20 #Definição da prioridade da hud na tela CHAIN_HUD_Z = 300 end #=============================================================================== # ■ Chain Commands #=============================================================================== class Chain_Commands include MOG_CHAIN_COMMANDS #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize @action_id = $game_temp.chain_switch_id @chain_command = CHAIN_SWITCH_COMMAND[@action_id] @chain_command = ["?"] if @chain_command == nil duration = [[CHAIN_INPUT_DURATION, 1].max, 9999].min @timer_max = duration * @chain_command.size @timer = @timer_max @slide_time = [[60 / duration, 10].max, 60].min @change_time = 0 if $game_switches[CHAIN_AUTOMATIC_MODE_SWITCH_ID] @auto = true else @auto = false end @com = 0 end #-------------------------------------------------------------------------- # ● Main #-------------------------------------------------------------------------- def main dispose @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.background_bitmap2 create_chain_command create_cusrsor create_layout create_meter create_text create_number Graphics.transition loop do Graphics.update Input.update update break if SceneManager.scene != self end dispose end #-------------------------------------------------------------------------- # ● Create Cursor #-------------------------------------------------------------------------- def create_cusrsor @fy_time = 0 @fy = 0 @com_index = 0 @cursor = Sprite.new @cursor.bitmap = Cache.system("Chain_Cursor") @cursor.z = 4 + CHAIN_HUD_Z @cursor_space = ((@bitmap_cw + 5) * @chain_command.size) / 2 if @chain_command.size <= 20 @cursor.x = (544 / 2) - @cursor_space + @cursor_space * @com_index else @cursor.x = (544 / 2) end @cursor.y = (416 / 2) + 30 end #-------------------------------------------------------------------------- # ● Create Chain Command #-------------------------------------------------------------------------- def create_chain_command @image = Cache.system("Chain_Command") width_max = ((@image.width / 13) + 5) * @chain_command.size @bitmap = Bitmap.new(width_max,@image.height * 2) @bitmap_cw = @image.width / 13 @bitmap_ch = @image.height index = 0 for i in @chain_command command_list_check(i) bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch) if index == 0 @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect) else @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect) end index += 1 end @sprite = Sprite.new @sprite.bitmap = @bitmap if @chain_command.size <= 15 @sprite.x = (544 / 2) - ((@bitmap_cw + 5) * @chain_command.size) / 2 @new_x = 0 else @sprite.x = (544 / 2) @new_x = @sprite.x end @sprite.y = (416 / 2) + 30 - @bitmap_ch - 15 @sprite.z = 3 + CHAIN_HUD_Z @sprite.zoom_x = 1.5 @sprite.zoom_y = 1.5 end #-------------------------------------------------------------------------- # * create_layout #-------------------------------------------------------------------------- def create_layout @back = Plane.new @back.bitmap = Cache.system("Chain_Layout") @back.z = 0 @layout = Sprite.new @layout.bitmap = Cache.system("Chain_Timer_Layout") @layout.z = 1 + CHAIN_HUD_Z @layout.x = 160 @layout.y = 150 end #-------------------------------------------------------------------------- # * create_meter #-------------------------------------------------------------------------- def create_meter @meter_flow = 0 @meter_image = Cache.system("Chain_Timer_Meter") @meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height) @meter_range = @meter_image.width / 3 @meter_width = @meter_range * @timer / @timer_max @meter_height = @meter_image.height @meter_src_rect = Rect.new(@meter_range, 0, @meter_width, @meter_height) @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect) @meter_sprite = Sprite.new @meter_sprite.bitmap = @meter_bitmap @meter_sprite.z = 2 + CHAIN_HUD_Z @meter_sprite.x = 220 @meter_sprite.y = 159 update_flow end #-------------------------------------------------------------------------- # ● Create Text #-------------------------------------------------------------------------- def create_text @text = Sprite.new @text.bitmap = Bitmap.new(200,32) @text.z = 2 + CHAIN_HUD_Z @text.bitmap.font.name = "Georgia" @text.bitmap.font.size = 25 @text.bitmap.font.bold = true @text.bitmap.font.italic = true @text.bitmap.font.color.set(255, 255, 255,220) @text.x = 230 @text.y = 100 end #-------------------------------------------------------------------------- # ● Create Number #-------------------------------------------------------------------------- def create_number @combo = 0 @number = Sprite.new @number.bitmap = Bitmap.new(200,64) @number.z = 2 + CHAIN_HUD_Z @number.bitmap.font.name = "Arial" @number.bitmap.font.size = 24 @number.bitmap.font.bold = true @number.bitmap.font.color.set(0, 255, 255,200) @number.bitmap.draw_text(0, 0, 200, 32, "Ready",1) @number.x = 30 @number.y = 100 end #-------------------------------------------------------------------------- # ● Pre Dispose #-------------------------------------------------------------------------- def exit loop do Graphics.update @sprite.x += 5 @layout.x -= 5 @meter_sprite.x -= 5 @text.x -= 2 @text.opacity -= 5 @sprite.opacity -= 5 @layout.opacity -= 5 @meter_sprite.opacity -= 5 @number.opacity -= 5 @back.opacity -= 5 @cursor.visible = false break if @sprite.opacity == 0 end SceneManager.call(Scene_Map) end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose return if @layout == nil Graphics.freeze @background_sprite.bitmap.dispose @background_sprite.dispose @bitmap.dispose @sprite.bitmap.dispose @sprite.dispose @cursor.bitmap.dispose @cursor.dispose @meter_image.dispose @meter_bitmap.dispose @meter_sprite.bitmap.dispose @meter_sprite.dispose @layout.bitmap.dispose @layout.dispose @layout = nil @back.bitmap.dispose @back.dispose @text.bitmap.dispose @text.dispose @number.bitmap.dispose @number.dispose @image.dispose end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update update_command update_cursor_slide update_flow update_change_time end #-------------------------------------------------------------------------- # ● Change_Time #-------------------------------------------------------------------------- def update_change_time return unless @auto @change_time += 1 check_command(-1) if @change_time >= CHAIN_INPUT_DURATION - 1 end #-------------------------------------------------------------------------- # ● Update Flow #-------------------------------------------------------------------------- def update_flow @timer -= 1 @meter_sprite.bitmap.clear @meter_width = @meter_range * @timer / @timer_max @meter_src_rect = Rect.new(@meter_flow, 0, @meter_width, @meter_height) @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect) @meter_flow += 20 @meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range wrong_command if @timer == 0 and @auto == false end #-------------------------------------------------------------------------- # ● Update Command #-------------------------------------------------------------------------- def update_command return if @auto if Input.trigger?(Input::X) check_command(0) elsif Input.trigger?(Input::Z) check_command(1) elsif Input.trigger?(Input::Y) check_command(2) elsif Input.trigger?(Input::A) check_command(3) elsif Input.trigger?(Input::C) check_command(4) elsif Input.trigger?(Input::B) check_command(5) elsif Input.trigger?(Input::L) check_command(6) elsif Input.trigger?(Input::R) check_command(7) elsif Input.trigger?(Input::RIGHT) check_command(8) elsif Input.trigger?(Input::LEFT) check_command(9) elsif Input.trigger?(Input::DOWN) check_command(10) elsif Input.trigger?(Input::UP) check_command(11) end end #-------------------------------------------------------------------------- # ● command_list_check #-------------------------------------------------------------------------- def command_list_check(command) case command when "A" @com = 0 when "D" @com = 1 when "S" @com = 2 when "Shift" @com = 3 when "Z" @com = 4 when "X" @com = 5 when "Q" @com = 6 when "W" @com = 7 when "Right" @com = 8 when "Left" @com = 9 when "Down" @com = 10 when "Up" @com = 11 else @com = 12 end end #-------------------------------------------------------------------------- # ● check_command #-------------------------------------------------------------------------- def check_command(com) index = 0 if com != -1 right_input = false for i in @chain_command if index == @com_index command_list_check(i) right_input = true if @com == com end index += 1 end else command_list_check(@com_index) @change_time = 0 right_input = true end if right_input refresh_number next_command else wrong_command end end #-------------------------------------------------------------------------- # ● Next Command #-------------------------------------------------------------------------- def next_command @com_index += 1 Audio.se_play("Audio/SE/" + CHAIN_RIGHT_SE, 100, 100) if @com_index == @chain_command.size $game_switches[@action_id] = true exit $game_map.need_refresh = true end refresh_command refresh_text(0) end #-------------------------------------------------------------------------- # ● wrong_command #-------------------------------------------------------------------------- def wrong_command Audio.se_play("Audio/SE/" + CHAIN_WRONG_SE, 100, 100) refresh_text(1) exit $game_player.jump(0,0) end #-------------------------------------------------------------------------- # ● Refresh Command #-------------------------------------------------------------------------- def refresh_command @sprite.bitmap.clear index = 0 for i in @chain_command command_list_check(i) bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch) if @com_index == index @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect) else @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect) end index += 1 end if @chain_command.size > 15 @new_x = (544 / 2) - ((@bitmap_cw + 5) * @com_index) else @cursor.x = (544 / 2) - @cursor_space + ((@bitmap_cw + 5) * @com_index) end end #-------------------------------------------------------------------------- # ● Refresh Text #-------------------------------------------------------------------------- def refresh_text(type) @text.bitmap.clear if type == 0 if @com_index == @chain_command.size @text.bitmap.font.color.set(55, 255, 55,220) @text.bitmap.draw_text(0, 0, 200, 32, "Perfect!",1) else @text.bitmap.font.color.set(55, 155, 255,220) @text.bitmap.draw_text(0, 0, 200, 32, "Success!",1) end else @text.bitmap.font.color.set(255, 155, 55,220) if @timer == 0 @text.bitmap.draw_text(0, 0, 200, 32, "Time Limit!",1) else @text.bitmap.draw_text(0, 0, 200, 32, "Fail!",1) end end @text.x = 230 @text.opacity = 255 end #-------------------------------------------------------------------------- # ● Refresh Number #-------------------------------------------------------------------------- def refresh_number @combo += 1 @number.bitmap.clear @number.bitmap.font.size = 34 @number.bitmap.draw_text(0, 0, 200, 32, @combo.to_s,1) @number.opacity = 255 @number.zoom_x = 2 @number.zoom_y = 2 end #-------------------------------------------------------------------------- # ● Update Cursor Slide #-------------------------------------------------------------------------- def update_cursor_slide @sprite.zoom_x -= 0.1 if @sprite.zoom_x > 1 @sprite.zoom_y -= 0.1 if @sprite.zoom_y > 1 @text.x -= 2 if @text.x > 210 @text.opacity -= 5 if @text.opacity > 0 @sprite.x -= @slide_time if @sprite.x > @new_x and @chain_command.size > 15 if @number.zoom_x > 1 @number.zoom_x -= 0.1 @number.zoom_y -= 0.1 end if @fy_time > 15 @fy += 1 elsif @fy_time > 0 @fy -= 1 else @fy = 0 @fy_time = 30 end @fy_time -= 1 @cursor.oy = @fy end end #============================================================================== # ■ Game Temp #============================================================================== class Game_Temp attr_accessor :chain_switch_id #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_chain_commands_initialize initialize def initialize @chain_switch_id = 0 mog_chain_commands_initialize end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● Chain Commands #-------------------------------------------------------------------------- def chain_commands(switch_id = 0) return if switch_id <= 0 $game_temp.chain_switch_id = switch_id SceneManager.call(Chain_Commands) wait(1) end end #=============================================================================== # ■ SceneManager #=============================================================================== class << SceneManager @background_bitmap2 = nil #-------------------------------------------------------------------------- # ● Snapshot For Background2 #-------------------------------------------------------------------------- def snapshot_for_background2 @background_bitmap2.dispose if @background_bitmap2 @background_bitmap2 = Graphics.snap_to_bitmap end #-------------------------------------------------------------------------- # ● Background Bitmap2 #-------------------------------------------------------------------------- def background_bitmap2 @background_bitmap2 end end #=============================================================================== # ■ Scene Map #=============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- alias mog_chain_commands_terminate terminate def terminate SceneManager.snapshot_for_background2 mog_chain_commands_terminate end end $mog_rgss3_chain_commands = true -
Io la butto li, eh... Ma se invece fosse il contrario? Se lui potesse nascondere i personaggi alla vista esterna (magari per un periodo limitato)? Visto che non rimane molto nel gruppo potreste fare un mini gioco dove delle guardie o dei mostri pattugliano una zona e bisogna oltrepassarla in modo stealth, e quindi poter sfruttare la sua abilità...
-
Mentre aspettiamo di far luce su questo mistero, ho inserito il quarto script, un simpatico manipolatore di chara XD
-
Grassie! Ho aggiunto il tuo suggerimento. Ma sarà strano che succeda a te o che non succeda a me? XD
-
Me, nel momento di leggere la citazione
...me lo merito.... Non leggerò più dal telefono, ok??!
Per quanto riguarda il gioco, invece, mi rifaccio al posto di alegasta:
Tutti e due sono al massimo di una barra (per adesso chiamiamola barra TP). Compare nella lista abilità la mossa Z.
- X e Y si preparano a fare la mossa Z: ( per questo tipo di mossa puoi inserire qualsiasi cosa dal cliccare più velocemente in un tot di tempo a fare una combinazione, dialoghi veloci.).
-X e Y lanciano l'attacco e fanno una danni esagerati.
- Aumenta la variabile di legame di 1.
- quando la variabile arriva ad un tot prefissato aumenta il legame da C a B. Si sblocca l'abilità ZZ più forte di Z e più difficile da fare.
Pensando a questa formula mi è venuta in mente una cosa: sarà che sono un patito, ma a me piacciono le invocazioni o comunque abilità fantamitiche che hanno un motivo di esistere anche a livello di trama. Dotando gli Animus di un piano elementale di appartenenza (ma anche status, negativi o postivi)) sarebbe carino se la barra, una volta riempita, consentisse questa sorta di evocazione. Poi il livello di legame farebbe il resto, ovvero fornire più potenza agli attacchi portati dall'"invocazione". Inoltre, sulla base di questo, pensavo anche ad una sorta di catena di invocazioni, fattibile quando due o più personaggi hanno raggiunto la pienezza della barra. In quel caso gli Animus di questi due o più personaggi possono lanciare le proprie "invocazioni" in serie, magari inserendo, come dice alegasta, una serie di comandi per far riuscire la catena...
-
in poche parole senza la modifica che ho fatto, visualizza anche il nome della mappa come farebbe normalmente.
Che strano, a me questa cosa non succede... Mi potresti dire di preciso che modifica hai fatto così la metto nelle istruzioni? Almeno se capita a qualcun altro sa come risolvere...
-
per il Touhou Map Name ho visto che visualizzava due volte il nome della mappa, quindi ho commentato la linea 143 dello Scene_Map risolvendo il problema e visualizzando solo quello dello script di moghunter.
Non ho capito... Qual era il problema? Io (in effetti ho dimenticato di dirlo) ho riscontrato un problema di ripetizione isterica ma ho risolto mettendo uno switch locale... Tu invece?
-
Aspè.... Ho visto male, vedo tutto piccolissimo perché sono sul telefono!! Ero davvero convinto di averlo letto.... sob... Mi ci ero fatto la bocca. Comunque si che mi interessa, sono stracurioso! Curioseggiuo...
-
Stasera me lo scaricheggio e me lo giuoco... Mi intriga assai... XD
-
Mi correggo, intendevo scrivere sottoclassi al posto dei talismani, così facendo si potrebbero inserire anche piccole variazioni delle classi originali (magari in rune o altro) ma con qualche differenza e con abilità extra, ad esempio:
Classe Originale del pg: Guerriero
Sottoclasse (Talismano) - Guerriero Magico di Fuoco (possibile equipaggiare solo dalla classe Guerriero) - Abilità Extra Attacco Fuoco e\o Magia di Fuoco
In tutta sostanza non cambi nulla della prima classe (il Guerriero), la sottoclasse viene trattata + come una sorta di equip specifico per ogni classe primaria, ma con sostanziali differenze.
Ancora più personalizzazione... bisognerà fare un'equilibrazione delle sottoclassi col goniometro... Bella come cosina...
Dovrò fare un gioco da 120 ore per valorizzare tutto quello che vorrei inserire!!!!! -
Creare la classe come se fosse un oggetto (al posto dei talismani ad esempio), semplificherebbe di molto la cosa, così è possibile aggiungere anche un set di abilità ad ogni classe in questione, equipaggiando ogni determinata classe cambierebbero il tipo di abilità usabili.
Fammi vedere se ho capito...
Tu dici che indossando un talismano cambi la classe, e fin qui ci sono, per conferire magari le autoabilità di classe standard non date dall'arma. Quindi leghi al talismano il cambio classe, di modo che il sistema faccia switchare la classe appena indossa l'oggetto? Non sono sicuro di aver capito...

-
Come detto puoi pure postarli sfusi in più topic cercando prima se sono stati postati già i singoli! ^ ^
Comunque ricorda di descrivere per bene e mettere qualche screen di anteprima ^ ^
Ok, grazie. Devo farci la mano col layout ^^
EDIT: aggiunto gli script per visualizzazione animata del nome della mappa in stile Touhou e per i testi di descrizione in popupXD
-
Già ma adesso mi si pone un altro problema... sono più di 20, viene fuori un messaggio chilometrico!
-
Apro questo topic in cui raccolgo gli script, uno per uno, contenuti nella mega-demo di Moghunter (per la discussione sulla demo andate qui: http://www.rpg2s.net/forum/index.php?showtopic=16291). Per ogni script cercherò di mettere anche le immagini (o alcune, perlomeno) della demo.
Mano a mano aggiornerò questo messaggio coi nuovi script estrapolati, poi magari farò una raccolta in .rar per chi li vuole tutti insieme.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Script Effetti Grafici
1) Weather EX V1.6
Autore: Moghunter
Descrizione:
Permette di creare effetti climatici. Tramite la ripetizione di piccole immagini, e a vari effetti di movimento delle stesse, permette di creare piogge torrenziali o piogge di fuoco, graziose foglie volanti o deboli nevicate romantiche... per non parlare della splendida pioggia lenta di lumini, il sogno degli innamorati XD
Istruzioni:
Per iniziare un effetto climatico richiamare lo script scrivendo
weather(TYPE, POWER, IMAGE_FILE)
dove TYPE va da 0 a 6 e POWER da 1 a 10, mentre IMAGE_FILE è il nome dell'immagine che volete richiamare. Es: weather(1, 5, "Rain_01A"). Le immagini da usare per questo script andranno messe in una sottocartella di Graphics denominata Weather (che dovrete crearvi). Non usate immagini troppo grosse o vi aspetta un lag da panico...
Per istruzioni su ogni comando guardate all'interno dello script (che è in portoghese ma si capisce benissimo).
Ah, si può usare anche nelle battaglie :)
RACCOMANDAZIONE!: ho scoperto un piccolo bug. Se provate a far partire l'effetto in processo parallelo o in automatico impazzisce. Cercate quindi di farlo partire in un altro modo (per esempio posizionandolo sulla posizione di arrivo di un teletrasporto e settandolo su "a contatto con l'eroe")
Screen: una bella pioggia di lumini
Le immagini originali di Moghunter sono piccole e ripetute in sequenza più e più volte dallo script, con un effetto continuato, il che rende un ottimo risultato. Qui trovate tutta la raccolta delle immagini della sua demo
http://www.mediafire...2q1ix4ublcc6u82.
Grazie a Mithos per l'upload.
Script
#============================================================================== # +++ MOG - Weather EX (v1.6) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Sistema de clima com efeitos animados. #============================================================================== # As imagens usadas pelo sistema do clima devem ser gravadas na pasta # # GRAPHICS/WEATHER/ # #============================================================================== # UTILIZAÇÃO # # Use o comando abaixo através da função chamar script.*(Evento) # # weather(TYPE, POWER, IMAGE_FILE) # # TYPE - Tipo de clima. (de 0 a 6) # POWER - Quantidade de partículas na tela. (de 1 a 10) # IMAGE_FILE - Nome da imagem. # # Exemplo (Eg) # # weather(0, 5, "Leaf") # #============================================================================== # Tipos de Clima. # # O sistema vem com 7 climas pré-configurados, que podem ser testados na demo # que vem com esse script. # # 0 - (Rain) # 1 - (Wind) # 2 - (Fog) # 3 - (Light) # 4 - (Snow) # 5 - (Spark) # 6 - (Random) # #============================================================================== # NOTA # # Evite de usar imagens muito pesadas ou de tamanho grande, caso for usar # diminua o poder do clima para evitar lag. # #============================================================================== #============================================================================== # Para parar o clima use o comando abaixo. # # weather_stop # #============================================================================== # Para parar reativar o clima com as caracteríticas préviamente usadas use o # comando abaixo. # # weather_restore #============================================================================== # Se você precisar ativar um novo clima mas deseja gravar as caracteríticas # do clima atual para ser reativado depois use os códigos abaixo. # # weather_store # weather_restore_store # #============================================================================== #============================================================================== # ● Histórico (Version History) #============================================================================== # v 1.6 - Correção na ordem de dispose do Viewport o que causava Crash em # alguns projetos (Problemas de compatibilidade). # v 1.5 - Correção definitiva para erro de Crash randômico. # v 1.4 - Melhoria no sistema de dispose. * (Para quem estiver tendo problema # com crashes randômicos.) # v 1.3 - Adição do comando weather_store e weather_recover_store # v 1.2 - Melhor codificação e compatibilidade. # v 1.1 - Correção do Bug de salvar através do evento. # v 1.0 - Weather EX ativo na batalha. # - Função restore/pause que permite reativar o clima com as # caracteríticas previamente usadas, ou seja, dá uma pausa no clima. # v 0.9 - Melhoria no sistema de dispose. #============================================================================== module MOG_WEATHER_EX #Prioridade do clima na tela. WEATHER_SCREEN_Z = 50 #Definição da eficiência do poder do clima. #NOTA - Um valor muito alto pode causar lag, dependendo do tipo de clima e # imagem usada. WEATHER_POWER_EFIC = 5 #Ativar o clima no sistema de batalha. WEATHER_BATTLE = true end #============================================================================== # ■ Cache #============================================================================== module Cache #-------------------------------------------------------------------------- # ● Weather #-------------------------------------------------------------------------- def self.weather(filename) load_bitmap("Graphics/Weather/", filename) end end #============================================================================== # ■ Game System #============================================================================== class Game_System attr_accessor :weather attr_accessor :weather_restore attr_accessor :weather_record_set attr_accessor :weather_temp #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias weather_ex_initialize initialize def initialize @weather = [-1,0,""] @weather_restore = [-1,0,""] @weather_temp = [-1,0,""] @weather_record_set = [-1,0,""] weather_ex_initialize end end #============================================================================== # ■ Game Temp #============================================================================== class Game_Temp attr_accessor :weather_ex_set attr_accessor :weather_fade #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_weather_ex_temp_initialize initialize def initialize @weather_ex_set = [] @weather_fade = false mog_weather_ex_temp_initialize end end #============================================================================== # ■ Game Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● Weather #-------------------------------------------------------------------------- def weather(type = -1, power = 0, image = "") $game_temp.weather_fade = false $game_system.weather.clear $game_system.weather = [type,power,image] end #-------------------------------------------------------------------------- # ● Weather Stop #-------------------------------------------------------------------------- def weather_stop $game_temp.weather_fade = false $game_system.weather.clear $game_system.weather = [-1,0,""] $game_system.weather_restore = [-1,0,""] $game_system.weather_temp = [-1,0,""] end #-------------------------------------------------------------------------- # ● Weather Restore #-------------------------------------------------------------------------- def weather_restore $game_temp.weather_fade = false if $game_system.weather[0] != -1 w = $game_system.weather $game_system.weather_restore = [w[0],w[1],w[2]] $game_system.weather.clear $game_system.weather = [-1,0,""] return end w = $game_system.weather_restore weather(w[0],w[1],w[2]) end #-------------------------------------------------------------------------- # ● Weather Fade #-------------------------------------------------------------------------- def weather_fade(value) $game_temp.weather_fade = value end #-------------------------------------------------------------------------- # ● Weather Store #-------------------------------------------------------------------------- def weather_store w = $game_system.weather $game_system.weather_record_set = [w[0],w[1],w[2]] end #-------------------------------------------------------------------------- # ● Weather Restore Store #-------------------------------------------------------------------------- def weather_restore_store w = $game_system.weather_record_set weather(w[0],w[1],w[2]) end end #============================================================================== # ■ Weather_EX #============================================================================== class Weather_EX < Sprite #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny) super(viewport) self.bitmap = Cache.weather(image_name.to_s) self.opacity = 0 @cw = self.bitmap.width @ch = self.bitmap.height @angle_speed = 0 @x_speed = 0 @y_speed = 0 @zoom_speed = 0 @opacity_speed = 0 @type = type @index = index @old_nx = nx @old_ny = ny type_setup(nx,ny) end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose dispose_sprite_weather_ex super end #-------------------------------------------------------------------------- # ● Dispose Sprite Weather EX #-------------------------------------------------------------------------- def dispose_sprite_weather_ex return if self.bitmap == nil self.bitmap.dispose self.bitmap = nil end #-------------------------------------------------------------------------- # ● Pre Values #-------------------------------------------------------------------------- def pre_values(index) return if $game_temp.weather_ex_set[index] == nil self.x = $game_temp.weather_ex_set[index][0] self.y = $game_temp.weather_ex_set[index][1] self.opacity = $game_temp.weather_ex_set[index][2] self.angle = $game_temp.weather_ex_set[index][3] self.zoom_x = $game_temp.weather_ex_set[index][4] self.zoom_y = $game_temp.weather_ex_set[index][4] $game_temp.weather_ex_set[index].clear $game_temp.weather_ex_set[index] = nil end #-------------------------------------------------------------------------- # ● Type Setup #-------------------------------------------------------------------------- def type_setup(nx = 0, ny = 0) @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx] @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny] check_weather_type pre_values(@index) @opacity_speed = -1 if $game_temp.weather_fade end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update_weather(nx = 0, ny = 0) self.x += @x_speed self.y += @y_speed self.opacity += @opacity_speed self.angle += @angle_speed self.zoom_x += @zoom_speed self.zoom_y += @zoom_speed check_loop_map(nx,ny) type_setup(nx,ny) if can_reset_setup? end #-------------------------------------------------------------------------- # ● Check Loop Map #-------------------------------------------------------------------------- def check_loop_map(nx,ny) if (@old_nx - nx).abs > 32 @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx] self.x += nx self.x -= @old_nx if nx == 0 end if (@old_ny - ny).abs > 32 @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny] self.y += ny self.y -= @old_ny if ny == 0 end @old_nx = nx @old_ny = ny end #-------------------------------------------------------------------------- # ● Can Reset Setup #-------------------------------------------------------------------------- def can_reset_setup? return true if self.x > @cw2[0] or self.x < @cw2[1] return true if self.y > @ch2[0] or self.y < @ch2[1] return true if self.opacity == 0 return true if self.zoom_x > 2.0 or self.zoom_x < 0.5 return false end #-------------------------------------------------------------------------- # ● Check Weather Type #-------------------------------------------------------------------------- def check_weather_type case @type when 0; rain when 1; wind when 2; fog when 3; light when 4; snow when 5; spark when 6; random end end #-------------------------------------------------------------------------- # ● Snow #-------------------------------------------------------------------------- def snow self.angle = rand(360) self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 50) / 100.0 self.zoom_y = self.zoom_x @y_speed = [[rand(5), 1].max, 5].min @opacity_speed = 5 @angle_speed = rand(3) end #-------------------------------------------------------------------------- # ● Spark #-------------------------------------------------------------------------- def spark self.angle = rand(360) self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 100) / 100.0 self.zoom_y = self.zoom_x self.blend_type = 1 @opacity_speed = 10 @zoom_speed = -0.01 end #-------------------------------------------------------------------------- # ● Rain #-------------------------------------------------------------------------- def rain self.x = rand(@cw2[0]) if @start == nil self.y = rand(@ch2[0]) @start = true else self.y = @ch2[1] end self.opacity = 1 self.zoom_y = (rand(50) + 100) / 100.0 self.zoom_x = (rand(25) + 100) / 100.0 @y_speed = [[rand(10) + 10, 10].max, 20].min @opacity_speed = 10 end #-------------------------------------------------------------------------- # ● Fog #-------------------------------------------------------------------------- def fog rand_angle = rand(2) self.angle = rand_angle == 1 ? 180 : 0 self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 50) / 100.0 self.zoom_y = self.zoom_x @x_speed = [[rand(10), 1].max, 10].min @opacity_speed = 10 end #-------------------------------------------------------------------------- # ● Light #-------------------------------------------------------------------------- def light self.angle = rand(360) self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 50) / 100.0 self.zoom_y = self.zoom_x self.blend_type = 1 @angle_speed = [[rand(3), 1].max, 3].min @y_speed = -[[rand(10), 1].max, 10].min @opacity_speed = 2 end #-------------------------------------------------------------------------- # ● Wind #-------------------------------------------------------------------------- def wind self.angle = rand(360) self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 50) / 100.0 self.zoom_y = self.zoom_x @x_speed = [[rand(10), 1].max, 10].min @y_speed = [[rand(10), 1].max, 10].min @opacity_speed = 10 end #-------------------------------------------------------------------------- # ● Random #-------------------------------------------------------------------------- def random self.angle = rand(360) self.x = rand(@cw2[0]) self.y = rand(@ch2[0]) self.opacity = 1 self.zoom_x = (rand(100) + 50) / 100.0 self.zoom_y = self.zoom_x x_s = [[rand(10), 1].max, 10].min y_s = [[rand(10), 1].max, 10].min rand_x = rand(2) rand_y = rand(2) @x_speed = rand_x == 1 ? x_s : -x_s @y_speed = rand_y == 1 ? y_s : -y_s @opacity_speed = 10 end end #============================================================================== # ■ Module Weather EX #============================================================================== module Module_Weather_EX #-------------------------------------------------------------------------- # ● Create Weather EX #-------------------------------------------------------------------------- def create_weather_ex dispose_weather_ex create_weather_viewport create_weather_sprite end #-------------------------------------------------------------------------- # ● Dispose Wheater EX #-------------------------------------------------------------------------- def dispose_weather_ex dispose_weather_ex_sprite dispose_weather_ex_viewport end #-------------------------------------------------------------------------- # ● Create Weather Viewport #-------------------------------------------------------------------------- def create_weather_viewport dispose_weather_ex_viewport @viewport_weather_ex = Viewport.new(-32, -32, 576, 448) @viewport_weather_ex.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z @viewport_weather_ex.ox = ($game_map.display_x * 32) @viewport_weather_ex.oy = ($game_map.display_y * 32) end #-------------------------------------------------------------------------- # ● Create Weather Sprite #-------------------------------------------------------------------------- def create_weather_sprite dispose_weather_ex_sprite @old_weather = $game_system.weather return if $game_system.weather == [] or $game_system.weather[0] == -1 @weather_ex = [] index = 0 power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC power_efic = 1 if power_efic < 1 power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min for i in 0...power @weather_ex.push(Weather_EX.new(@viewport_weather_ex,$game_system.weather[0],$game_system.weather[2],index, @viewport_weather_ex.ox, @viewport_weather_ex.oy)) index += 1 end end #-------------------------------------------------------------------------- # ● Dispose Weather EX Viewport #-------------------------------------------------------------------------- def dispose_weather_ex_viewport return if @viewport_weather_ex == nil @viewport_weather_ex.dispose end #-------------------------------------------------------------------------- # ● Dispose Weather EX #-------------------------------------------------------------------------- def dispose_weather_ex_sprite return if @weather_ex == nil index = 0 for i in @weather_ex $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x) i.dispose index += 1 end @weather_ex.each {|sprite| sprite.dispose} @weather_ex.clear @weather_ex = nil end #-------------------------------------------------------------------------- # ● Dispose Refresh #-------------------------------------------------------------------------- def dispose_refresh $game_temp.weather_ex_set.clear return if @weather_ex == nil @weather_ex.each {|sprite| sprite.dispose} @weather_ex.clear @weather_ex = nil end #-------------------------------------------------------------------------- # ● Update Weather EX #-------------------------------------------------------------------------- def update_weather_ex refresh_weather_ex update_weather_ex_viewport return if @weather_ex == nil @weather_ex.each {|sprite| sprite.update_weather(@viewport_weather_ex.ox,@viewport_weather_ex.oy)} end #-------------------------------------------------------------------------- # ● Update Weather Ex Viewport #-------------------------------------------------------------------------- def update_weather_ex_viewport return if @viewport_weather_ex == nil @viewport_weather_ex.ox = ($game_map.display_x * 32) @viewport_weather_ex.oy = ($game_map.display_y * 32) end #-------------------------------------------------------------------------- # ● Refresh Weather EX #-------------------------------------------------------------------------- def refresh_weather_ex return if @old_weather == nil return if @old_weather == $game_system.weather dispose_refresh create_weather_sprite end end #============================================================================== # ■ Spriteset Map #============================================================================== class Spriteset_Map include Module_Weather_EX #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_weather_ex_initialize initialize def initialize dispose_weather_ex mog_weather_ex_initialize create_weather_ex end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_weather_ex_dispose dispose def dispose dispose_weather_ex mog_weather_ex_dispose end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_weather_ex_update update def update mog_weather_ex_update update_weather_ex end end if MOG_WEATHER_EX::WEATHER_BATTLE #============================================================================== # ■ Spriteset Battle #============================================================================== class Spriteset_Battle include Module_Weather_EX #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_weather_ex_initialize initialize def initialize dispose_weather_ex mog_weather_ex_initialize create_weather_ex end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_weather_ex_dispose dispose def dispose dispose_weather_ex mog_weather_ex_dispose end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_weather_ex_update update def update mog_weather_ex_update update_weather_ex end end end #============================================================================= # ■ Scene Base #============================================================================= class Scene_Base #-------------------------------------------------------------------------- # ● Weather Recover Data #-------------------------------------------------------------------------- def weather_recover_data if $game_system.weather.empty? or $game_system.weather[0] == -1 if !$game_system.weather_restore.empty? and $game_system.weather_restore[0] != -1 v = $game_system.weather_restore $game_system.weather = [v[0],v[1],v[2]] end end end #-------------------------------------------------------------------------- # ● Weather Restore #-------------------------------------------------------------------------- def weather_recover_scene return if $game_system.weather_temp.empty? return if $game_system.weather_temp[0] == -1 w = $game_system.weather_temp $game_system.weather = [w[0],w[1],w[2]] $game_system.weather_temp.clear $game_system.weather_temp = [-1,0,""] end #-------------------------------------------------------------------------- # ● Main #-------------------------------------------------------------------------- alias mog_weather_ex_main main def main dispose_weather_ex_base weather_recover_scene if can_recover_weather_scene? mog_weather_ex_main end #-------------------------------------------------------------------------- # ● Can Recover Weather Scene #-------------------------------------------------------------------------- def can_recover_weather_scene? return true if SceneManager.scene_is?(Scene_Map) return true if SceneManager.scene_is?(Scene_Battle) return false end #-------------------------------------------------------------------------- # ● terminate #-------------------------------------------------------------------------- alias mog_weather_ex_terminate_base terminate def terminate mog_weather_ex_terminate_base dispose_weather_ex_base end #-------------------------------------------------------------------------- # ● Dispose Weather EX Base #-------------------------------------------------------------------------- def dispose_weather_ex_base return if @spriteset == nil @spriteset.dispose_weather_ex rescue nil end end #============================================================================= # ■ Scene Load #============================================================================= class Scene_Load < Scene_File #-------------------------------------------------------------------------- # ● On Load Success #-------------------------------------------------------------------------- alias mog_weather_ex_on_load_success on_load_success def on_load_success mog_weather_ex_on_load_success weather_recover_data end end #============================================================================= # ■ Scene Manager #============================================================================= class << SceneManager #-------------------------------------------------------------------------- # ● Call #-------------------------------------------------------------------------- alias mog_weather_ex_call call def call(scene_class) weather_dispose mog_weather_ex_call(scene_class) end #-------------------------------------------------------------------------- # ● Weather Restore #-------------------------------------------------------------------------- def weather_dispose return if $game_system.weather.empty? return if $game_system.weather[0] == -1 w = $game_system.weather $game_system.weather_temp = [w[0],w[1],w[2]] $game_system.weather.clear $game_system.weather = [-1,0,""] end end $mog_rgss3_weather_ex = true2) Touhou Map Name V1.3
Descrizione:
Permette di visualizzare il nome della mappa in stile Touhou, con un'animazione.
Istruzioni:
Avviate lanciando lo script con $game_temp.mapname = true. Importate in Graphics/System le immagini che volete utilizzare, chiamandole "Map_Name_Layout" e "Map_Name_Particle". Purtroppo non ho capito come modificare il font... I Particle sono le foglioline in trasparenza che vedete andare dal basso verso l'alto sulla scritta.
TIP 1: Per evitare che l'effetto si ripeta istericamente, piazzate uno switch locale dopo l'evento, poi create una seconda pagina evento con lo switch attivato. Olè!
TIP 2 (suggerito da KenzoMe92): se insieme all'effetto dovesse essere visualizzato normalmente il nome della mappa, andate nello script editor--->Scene_Map (quello di Ace)---> all'inizio della linea 143 aggiungete #.
Screen:
Script:
#============================================================================== # +++ MOG - Touhou Map Name (v1.3) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Sistema animado que apresenta o nome do mapa no estilo Touhou. #============================================================================== # Serão necessários as seguintes imagens na pasta Graphics/System/ # # Map_Name_Particle.png # Map_Name_Layout.png # #============================================================================== # Use o código abaixo para ativar o script. # # $game_temp.mapname = true # #============================================================================== #============================================================================== # ● Histórico (Version History) #============================================================================== # v 1.3 - Melhor velocidade no sistema de animação. # v 1.2 - Melhoria no sistema de dispose de imagens. # v 1.1 - Nome do mapa somente é visível na cena de mapa, para evitar # a imagem da hud sobrepor outras scenes. #============================================================================== module MOG_TOUHOU_MAP_NAME # Posição geral da hud. MAP_NAME_POSITION = [272,192] # Posição das letras. MAP_NAME_WORD_POSITION = [-30,18] # Posição das particulas. MAP_NAME_PARTICLE_POSITION = [-100,-50] # Prioridade da hud. MAP_NAME_Z = 50 # Ativar o nome do mapa automaticamente. MAP_NAME_AUTOMATIC = false end #============================================================================== # ■ Game Temp #============================================================================== class Game_Temp attr_accessor :mapname_conf attr_accessor :mapname_layout_conf attr_accessor :mapname_duration attr_accessor :mapname #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_map_name_initialize initialize def initialize @mapname_conf = [] @mapname_layout_conf = [] @mapname_duration = [false,-1,2] @mapname = false mog_map_name_initialize end end #============================================================================== # ■ Game Player #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ● Perform Transfer #-------------------------------------------------------------------------- alias mog_touhou_map_name_perform_transfer perform_transfer def perform_transfer m_id = $game_map.map_id mog_touhou_map_name_perform_transfer if MOG_TOUHOU_MAP_NAME::MAP_NAME_AUTOMATIC if m_id != $game_map.map_id and $game_map.display_name != "" $game_temp.mapname = true end end end end #============================================================================== # ■ Map Name #============================================================================== class Map_Name < Sprite include MOG_TOUHOU_MAP_NAME attr_reader :letter attr_reader :turn attr_reader :animation_duration attr_reader :text_duration attr_reader :duration #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(letter,x,y, zoom, opac,duration, animation_dutation, text_duration,turn, center_x, viewport = nil) super(viewport) @letter = letter @turn = turn @duration = duration @animation_duration = animation_dutation @animation_duration2 = animation_dutation @text_duration = text_duration self.bitmap = Bitmap.new(32,32) self.bitmap.font.size = 32 self.bitmap.font.bold = true self.bitmap.font.italic = true self.bitmap.draw_text(0,0, 32, 32, @letter.to_s,0) self.z = 999 self.zoom_x = zoom self.zoom_y = zoom self.ox = -100 self.oy = -100 self.x = x self.y = y self.z = MAP_NAME_Z + 2 self.opacity = opac end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose super if self.bitmap != nil self.bitmap.dispose end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super update_animation end #-------------------------------------------------------------------------- # ● Update Animation #-------------------------------------------------------------------------- def update_animation @animation_duration -= 1 if @animation_duration > 0 return if @animation_duration > 0 if self.zoom_x > 1 self.zoom_x -= 0.06 self.x += 5 self.y += 6 self.opacity += 35 self.zoom_y = self.zoom_x if self.zoom_x <= 1 self.zoom_x = 1 self.zoom_y = self.zoom_x self.opacity = 255 @text_duration = @duration - @animation_duration2 end else @text_duration -= 1 end end end #============================================================================== # ■ Particle_Name_Map #============================================================================== class Particle_Name_Map < Sprite include MOG_TOUHOU_MAP_NAME #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport = nil,x,y,ax,ay) super(viewport) self.bitmap = Cache.system("Map_Name_Particle") @pos = [x + self.bitmap.width,y - self.bitmap.height] @area = [ax - (self.bitmap.width * 4),ay - self.bitmap.height] reset_setting end #-------------------------------------------------------------------------- # ● Reset Setting #-------------------------------------------------------------------------- def reset_setting zoom = (50 + rand(100)) / 100.1 self.zoom_x = zoom self.zoom_y = zoom self.x = @pos[0] + rand(@area[0]) self.y = @pos[1] + rand(@area[1]) self.z = MAP_NAME_Z + 1 self.opacity = 0 self.angle = rand(360) self.blend_type = 0 @speed_x = 0 @speed_y = [[rand(4), 4].min, 1].max @speed_a = rand(3) @fade_y = @pos[1] + 32 end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose super self.bitmap.dispose end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super self.y -= @speed_y self.opacity -= self.y > @fade_y ? -8 : 5 reset_setting if self.y < 0 end #-------------------------------------------------------------------------- # ● Update Fade #-------------------------------------------------------------------------- def update_fade self.y -= @speed_y self.opacity -= 5 end end #============================================================================== # ■ Spriteset Map #============================================================================== class Spriteset_Map include MOG_TOUHOU_MAP_NAME #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_mapname_initialize initialize def initialize @vis_time = 0 @vis = map_name_visible? dispose_map_name create_map_name create_map_namelayout create_light mog_mapname_initialize end #-------------------------------------------------------------------------- # ● Create Map Name #-------------------------------------------------------------------------- def create_map_name return if $game_temp.mapname_duration[2] > 0 @map_name.each {|sprite| sprite.dispose} if @map_name != nil @map_name = [] mapname = $game_map.display_name m_name = mapname.to_s.split(//) index = 0 turn = 0 duration = 20 * mapname.size center_x = 10 * mapname.size $game_temp.mapname_duration[1] = (duration) + 64 if $game_temp.mapname_duration[1] <= 0 x2 = (-170 + MAP_NAME_POSITION[0] + MAP_NAME_WORD_POSITION[0]) - center_x y2 = -170 + MAP_NAME_POSITION[1] + MAP_NAME_WORD_POSITION[1] if $game_temp.mapname_conf == [] for i in m_name @map_name.push(Map_Name.new(i[0],(index * 20) + x2,y2,1.8,0,duration, 20 * index,0,turn,center_x)) index += 1 turn = turn == 0 ? 1 : 0 end else c = $game_temp.mapname_conf for i in 0...c.size @map_name.push(Map_Name.new(c[index][0],c[index][1],c[index][2],c[index][3],c[index][4],c[index][5],c[index][6],c[index][7],turn,0)) index += 1 turn = turn == 0 ? 1 : 0 end end end #-------------------------------------------------------------------------- # ● Create Map Name Layout #-------------------------------------------------------------------------- def create_map_namelayout return if $game_temp.mapname_duration[2] > 1 if @map_name_layout != nil @map_name_layout.bitmap.dispose @map_name_layout.dispose @map_name_layout = nil end @map_name_layout = Sprite.new @map_name_layout.bitmap = Cache.system("Map_Name_Layout.png") @map_name_layout.z = MAP_NAME_Z @map_name_org_position = [MAP_NAME_POSITION[0] - (@map_name_layout.bitmap.width / 2),MAP_NAME_POSITION[1] - (@map_name_layout.bitmap.height / 2)] if $game_temp.mapname_layout_conf == [] @map_name_layout.x = @map_name_org_position[0] + 100 @map_name_layout.y = @map_name_org_position[1] @map_name_layout.opacity = 0 else @map_name_layout.x = $game_temp.mapname_layout_conf[0] @map_name_layout.y = $game_temp.mapname_layout_conf[1] @map_name_layout.opacity = $game_temp.mapname_layout_conf[2] end end #-------------------------------------------------------------------------- # ● Create Light #-------------------------------------------------------------------------- def create_light return if $game_temp.mapname_duration[2] > 1 x = MAP_NAME_POSITION[0] + MAP_NAME_PARTICLE_POSITION[0] y = MAP_NAME_POSITION[1] + MAP_NAME_PARTICLE_POSITION[1] @particle_name =[] ax = @map_name_layout.bitmap.width - 32 ay = @map_name_layout.bitmap.height - 32 for i in 0...15 @particle_name.push(Particle_Name_Map.new(nil,x,y,ax,ay)) end end #-------------------------------------------------------------------------- # ● Map Name Clear #-------------------------------------------------------------------------- def map_name_clear @map_name.each {|sprite| sprite.dispose} if @map_name != nil @map_name = nil $game_temp.mapname_duration[0] = false $game_temp.mapname_duration[1] = -1 $game_temp.mapname_conf.clear $game_temp.mapname_layout_conf.clear end #-------------------------------------------------------------------------- # ● Layout Clear #-------------------------------------------------------------------------- def layout_clear return if @map_name_layout == nil @map_name_layout.bitmap.dispose @map_name_layout.dispose @map_name_layout = nil $game_temp.mapname_layout_conf.clear end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_mapname_dispose dispose def dispose mog_mapname_dispose dispose_map_name end #-------------------------------------------------------------------------- # ● Dispose Map Mame #-------------------------------------------------------------------------- def dispose_map_name dispose_map_name_word dispose_map_name_layout dispose_map_name_particle end #-------------------------------------------------------------------------- # ● Dispose Map Mame Layout #-------------------------------------------------------------------------- def dispose_map_name_layout return if @map_name_layout == nil $game_temp.mapname_layout_conf[0] = @map_name_layout.x $game_temp.mapname_layout_conf[1] = @map_name_layout.y $game_temp.mapname_layout_conf[2] = @map_name_layout.opacity @map_name_layout.bitmap.dispose @map_name_layout.dispose end #-------------------------------------------------------------------------- # ● Particle_Name Clear #-------------------------------------------------------------------------- def dispose_map_name_particle return if @particle_name == nil @particle_name.each {|sprite| sprite.dispose} @particle_name = nil end #-------------------------------------------------------------------------- # ● Dispose Map Mame Word #-------------------------------------------------------------------------- def dispose_map_name_word return if @map_name == nil index = 0 for i in @map_name if $game_temp.mapname_conf[index] == nil $game_temp.mapname_conf[index] = ["",0,0,0,0,0,0,0,0] end $game_temp.mapname_conf[index][0] = i.letter $game_temp.mapname_conf[index][1] = i.x $game_temp.mapname_conf[index][2] = i.y $game_temp.mapname_conf[index][3] = i.zoom_x $game_temp.mapname_conf[index][4] = i.opacity $game_temp.mapname_conf[index][5] = i.duration $game_temp.mapname_conf[index][6] = i.animation_duration $game_temp.mapname_conf[index][7] = i.text_duration i.dispose index += 1 end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_mapname_update update def update mog_mapname_update update_map_name end #-------------------------------------------------------------------------- # ● Map Name Visible? #-------------------------------------------------------------------------- def map_name_visible? return false if !SceneManager.scene_is?(Scene_Map) return false if @vis_time > 0 return true end #-------------------------------------------------------------------------- # ● Refresh Map Name #-------------------------------------------------------------------------- def refresh_map_name return unless $game_temp.mapname $game_temp.mapname = false map_name_clear layout_clear dispose_map_name_particle $game_temp.mapname_duration[2] = 0 create_map_name create_map_namelayout create_light end #-------------------------------------------------------------------------- # ● Update Map Name #-------------------------------------------------------------------------- def update_map_name refresh_map_name dispose_map_name_time update_word update_map_name_layout end #-------------------------------------------------------------------------- # ● Update Light #-------------------------------------------------------------------------- def update_light return if @particle_name == nil for sprite in @particle_name sprite.update sprite.visible = @vis end end #-------------------------------------------------------------------------- # ● Update Fade ight #-------------------------------------------------------------------------- def update_fade_light return if @particle_name == nil @particle_name.each {|sprite| sprite.update_fade} end #-------------------------------------------------------------------------- # ● Update Map Name Layout #-------------------------------------------------------------------------- def update_map_name_layout return if @map_name_layout == nil @vis = map_name_visible? if !@vis @vis_time = 1 else @vis_time -= 1 if @vis_time > 0 end @map_name_layout.visible = @vis if @map_name != nil @map_name_layout.opacity += 5 update_light if @map_name_layout.x > @map_name_org_position[0] @map_name_layout.x -= 1 end else @map_name_layout.x -= 2 @map_name_layout.opacity -= 8 update_fade_light if @map_name_layout.opacity <= 0 layout_clear dispose_map_name_particle $game_temp.mapname_duration[2] = 2 end end end #-------------------------------------------------------------------------- # ● Update Word #-------------------------------------------------------------------------- def update_word return if @map_name == nil for map_sprite in @map_name map_sprite.update map_sprite.visible = @vis end end #-------------------------------------------------------------------------- # ● Dispose Map Name Time #-------------------------------------------------------------------------- def dispose_map_name_time if $game_temp.mapname_duration[1] > 0 $game_temp.mapname_duration[1] -= 1 return end return if $game_temp.mapname_duration[1] < 0 map_name_clear $game_temp.mapname_duration[2] = 1 end end $mog_rgss3_touhou_map_name = true3) Event Text Popup V1.0
Descrizione:
Permette di visualizzare un commento in popup sulla mappa, come il nome dell mappa in cui si andrà se si prende una certa direzione o la descrizione di un oggetto sulla mappa.
Istruzioni:
Create un evento e dentro scrivete un commento contenente <Text = X> dove "X" è il testo che volete far comparire. Nelle istruzioni contenute nello script dice di usare il simpbolo " - " per staccare X da Text. Non è vero, bisogna usare "=". Burlone... Le istruzioni per il cambio font e il colore le trovate all'inizio dello script.
Screen: è senza dubbio un cristallo verde
Script:
#============================================================================== # +++ MOG - Event Text Popup (v1.0) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com #============================================================================== # Apresenta o um texto em cima do evento. #============================================================================== # Para ativa basta colocar um comentário com o prefixo: # # <Text - X> # # X - Texto apresentado no evento. # # Exemplo # # <Text - Teleport> # <Text - Save Point> # #============================================================================== module MOG_EVENT_TEXT_POPUP #Definição da fonte. FONT_NAME = "Arial" FONT_SIZE = 16 FONT_BOLD = true FONT_COLOR = Color.new(255,255,255) #Definição da prioridade do Texto SCREEN_Z = 1 end #============================================================================== # ■ Game CharacterBase #============================================================================== class Game_CharacterBase attr_accessor :text attr_accessor :opacity attr_accessor :erased end #============================================================================== # ■ Game Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_event_text_initialize initialize def initialize(map_id, event) mog_event_text_initialize(map_id, event) end #-------------------------------------------------------------------------- # ● Setup Page Setting #-------------------------------------------------------------------------- alias mog_event_text_setup_page_settings setup_page_settings def setup_page_settings mog_event_text_setup_page_settings setup_event_text end #-------------------------------------------------------------------------- # ● Setup Event Text #-------------------------------------------------------------------------- def setup_event_text return if @list == nil for command in @list if command.code == 108 if command.parameters[0] =~ /<Text = ([^>]*)>/ @text = $1 end end end end end #============================================================================== # ■ Sprite Character Text #============================================================================== class Sprite_Character_Text < Sprite_Base include MOG_EVENT_TEXT_POPUP #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport = nil,character,sprite) super(viewport) text_size = character.text.to_s.split(//) w = 32 + (FONT_SIZE / 2) * text_size.size rescue nil w = 32 if w == nil or w < 32 self.bitmap = Bitmap.new(w,32) self.bitmap.font.name = FONT_NAME self.bitmap.font.size = FONT_SIZE self.bitmap.font.bold = FONT_BOLD self.bitmap.font.color = FONT_COLOR self.bitmap.draw_text(0,0,self.width,self.height,character.text.to_s,1) rescue nil update_position(character,sprite) end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose super self.bitmap.dispose end #-------------------------------------------------------------------------- # ● Update Position #-------------------------------------------------------------------------- def update_position(character,sprite) if character.erased self.visible = false return end self.x = character.screen_x - self.width / 2 self.y = character.screen_y - (sprite.height + self.height) self.z = character.screen_z + SCREEN_Z self.visible = character.transparent == true ? false : true self.opacity = character.opacity end end #============================================================================== # ■ Sprite Character #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_event_text_initialize initialize def initialize(viewport, character = nil) mog_event_text_initialize(viewport, character) @character_text = "" create_event_text end #-------------------------------------------------------------------------- # ● Create Event Text #-------------------------------------------------------------------------- def create_event_text return if @character == nil return if @character.text == nil return if @character.text == @character_text dispose_event_text @event_text = Sprite_Character_Text.new(viewport,@character,self) @character_text = @character.text end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_event_text_dispose dispose def dispose mog_event_text_dispose dispose_event_text end #-------------------------------------------------------------------------- # ● Dispose Event Text #-------------------------------------------------------------------------- def dispose_event_text return if @event_text == nil @event_text.dispose @event_text = nil end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_event_text_update update def update mog_event_text_update create_event_text update_event_text end #-------------------------------------------------------------------------- # ● Update Event Text #-------------------------------------------------------------------------- def update_event_text return if @event_text == nil @event_text.update_position(@character,self) end end $mog_rgss3_event_text_popup = true4) CHARACTER EX V1.2
Descrizione:
Script piuttosto divertente, in realtà. Vi permette di poter giocare coi vostri chara, scegliendo di farli camminare basculando, o dargli un effetto tipo fantasma, di farli roteare come se fossero presi da una tromba d'aria o di farli diventare dei nanetti (e tante altre cose XD). Potete inoltre scegliere se far partire queste "trasformazioni" in automatico oppure scatenarle a seguito di un evento o toccando qualcosa. In parole povere, potete fare in modo che Alice mangi un fungo e diventi piccola... o che sia già piccola quando la incontrate! XD
Istruzioni:
Se volete che l'effetto parta in automatico appena entrate nella mappa, create un evento con la grafica del personaggio che desiderate e poi lanciate un commento con su scritto <Effects = EFFECT_TYPE> (dove EFFECT_TYPE è il tipo di effetto voluto).
Se invece volete che l'effetto parta a seguito di un evento o di un'azione da parte dell'eroe, richiamate lo script scrivendo char_effect(EVENT_ID, EFFECT_TYPE) (dove EVENT_ID e l'ID dell'evento che volete modificare, ivi inclusi i vostri eroi).
Tutti i tipi di variazioni disponibili sono all'inizo dello script. Sfogatevi!
Screen: aberrazioni...
Script:
#============================================================================== # +++ MOG - Character EX (v1.2) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Adiciona vários efeitos visuais animados nos characters. #============================================================================== #============================================================================== # ■ AUTO MODE (Animated Effects) #============================================================================== # Os efeitos começam automaticamente, coloque no evento os sequintes # comentários para ativar os efeitos. # # <Effects = EFFECT_TYPE> # # EX # # <Effects = Breath> # <Effects = Ghost> # <Effects = Clear> # # <--- EFFECT_TYPE ---> # # ● Breath # Ativa o efeito de respiração. (LOOP EFFECT) # # ● Big Breath # Ativa o efeito de loop de zoom in e out. (LOOP EFFECT) # # ● Ghost # Ativa o efeito de desaparecer e aparecer. (LOOP EFFECT) # # ● Swing # Ativa o efeito do character balançar para os lados. # # ● Swing Loop # Ativa o efeito do character balançar para os lados. (LOOP EFFECT) # # ● Spin # Faz o character girar em 360 graus # # ● Spin Loop # Faz o character girar em 360 graus. (LOOP EFFECT) # # ● Slime Breath # Ativa o efeito de movimento semelhante ao de um slime. (LOOP EFFECT) # # ● Crazy # # Faz o character virar para esquerda e direita rapidamente. (LOOP EFFECT) # # ● Appear # Ativa o efeito de aparição. # # ● Disappear # Ativa o efeito de desaparecer. # # ● Dwarf # Deixa o character anão. # # ● Giant # Deixa o character gigante. # # ● Normal # Faz o character voltar ao normal de forma gradual. # # ● Clear # Cancela todos os efeitos. # #============================================================================== #============================================================================== # ■ MANUAL MODE (Animated Effects) #============================================================================== # Use o código abaixo através do comando chamar script. # # char_effect(EVENT_ID, EFFECT_TYPE) # # EX - char_effect( 10,"Breath") # char_effect( 0, "Dwarf") # # ● EVENT_ID # - Maior que 0 para definir as IDs dos eventos no mapa. # - Iguál a 0 para ativar os efeitos no personagem principal (Leader). # - Menor que 0 para definir as IDs dos sequidores. # # ● EFFECT_TYPE # - Use os mesmos nomes dos efeitos da ativação automática. # #============================================================================== #============================================================================== # ■ EXTRA EFFECTS (Fix Values) #============================================================================== # # ● <Zoom = X> # # ● <Opacity = X> # # ● <Blend Type = X> # # ● <Mirror = X> # #============================================================================== #============================================================================== # ■ CANCEL EFFECTS (Loop Effects) #============================================================================== # # ● char_effect(EVENT_ID, "Clear") # EX - char_effect(15, "Clear") # # Para cancelar um evento(Personagem) especifico. # # ● clear_all_events_effects # Para cancelar todos os efeitos dos eventos no mapa. # # ● clear_all_party_effects # Para cancelar todos os efeitos do grupo(Personagem). # # ● clear_all_ex_effects # Para cancelar tudo. # #============================================================================== #============================================================================== # ● Histórico (Version History) #============================================================================== # v 1.2 - Adição dos comandos para definir valores fixos nos characters. # v 1.1 - Correção na definição da ID dos personagens aliados. #============================================================================== #============================================================================== # ■ Game_CharacterBase #============================================================================== class Game_CharacterBase attr_accessor :effects attr_accessor :opacity attr_accessor :erased attr_accessor :zoom_x attr_accessor :zoom_y attr_accessor :mirror attr_accessor :angle attr_accessor :blend_type #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- alias mog_character_effects_initialize initialize def initialize @effects = ["",0,false] @zoom_x = 1.00 @zoom_y = 1.00 @mirror = false @angle = 0 mog_character_effects_initialize end #-------------------------------------------------------------------------- # ● Clear Effects #-------------------------------------------------------------------------- def clear_effects @effects = ["",0,false] @zoom_x = 1.00 @zoom_y = 1.00 @mirror = false @angle = 0 @opacity = 255 @blend_type = 0 end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- alias mog_character_ex_effects_update update def update mog_character_ex_effects_update update_character_ex_effects end #-------------------------------------------------------------------------- # ● Update Character EX Effects #-------------------------------------------------------------------------- def update_character_ex_effects return if @erased or @effects[0] == "" check_new_effect if @effects[2] case @effects[0] when "Breath"; update_breath_effect when "Ghost"; update_ghost_effect when "Big Breath"; update_big_breath_effect when "Slime Breath"; update_slime_breath_effect when "Spin Loop"; update_spin_loop_effect when "Swing Loop"; update_swing_loop_effect when "Crazy"; update_crazy_effect when "Appear"; update_appear_effect when "Disappear"; update_disappear_effect when "Swing"; update_swing_effect when "Spin"; update_spin_effect when "Dwarf"; update_dwarf_effect when "Giant"; update_giant_effect when "Normal"; update_normal_effect end end #-------------------------------------------------------------------------- # ● Check New Effect #-------------------------------------------------------------------------- def check_new_effect @effects[2] = false @effects[1] = 0 unless @effects[0] == "Normal" @opacity = 255 @angle = 0 @mirror = false unless (@effects[0] == "Dwarf" or @effects[0] == "Giant") @zoom_x = 1.00 @zoom_y = 1.00 end end case @effects[0] when "Breath" @effects[1] = rand(60) when "Appear" @zoom_x = 0.1 @zoom_y = 3.5 @opacity = 0 when "Ghost" @opacity = rand(255) when "Swing Loop" @angle = 20 @effects[1] = rand(60) when "Spin Loop" @angle = rand(360) when "Slime Breath" @effects[1] = rand(60) when "Big Breath" @effects[1] = rand(60) when "Normal" pre_angle = 360 * (@angle / 360).truncate @angle = @angle - pre_angle @angle = 0 if @angle < 0 end end #-------------------------------------------------------------------------- # ● Check New Effect #-------------------------------------------------------------------------- def update_breath_effect @effects[1] += 1 case @effects[1] when 0..25 @zoom_y += 0.005 if @zoom_y > 1.12 @zoom_y = 1.12 @effects[1] = 26 end when 26..50 @zoom_y -= 0.005 if @zoom_y < 1.0 @zoom_y = 1.0 @effects[1] = 51 end else @zoom_x = 1 @zoom_y = 1 @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Ghost Effect #-------------------------------------------------------------------------- def update_ghost_effect @effects[1] += 1 case @effects[1] when 0..55 @opacity += 5 @effects[1] = 56 if @opacity >= 255 when 56..120 @opacity -= 5 @effects[1] = 121 if @opacity <= 0 else @opacity = 0 @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Swing Loop Effect #-------------------------------------------------------------------------- def update_swing_loop_effect @effects[1] += 1 case @effects[1] when 0..40 @angle -= 1 if @angle < -19 @angle = -19 @effects[1] = 41 end when 41..80 @angle += 1 if @angle > 19 @angle = 19 @effects[1] = 81 end else @angle = 20 @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Swing Effect #-------------------------------------------------------------------------- def update_swing_effect @effects[1] += 1 case @effects[1] when 0..20 @angle -= 1 when 21..60 @angle += 1 when 61..80 @angle -= 1 else clear_effects end end #-------------------------------------------------------------------------- # ● Update Spin Loop Effect #-------------------------------------------------------------------------- def update_spin_loop_effect @angle += 3 end #-------------------------------------------------------------------------- # ● Update Spin Effect #-------------------------------------------------------------------------- def update_spin_effect @angle += 10 clear_effects if @angle >= 360 end #-------------------------------------------------------------------------- # ● Update Slime Breath Effect #-------------------------------------------------------------------------- def update_slime_breath_effect @effects[1] += 1 case @effects[1] when 0..30 @zoom_x += 0.005 @zoom_y -= 0.005 if @zoom_x > 1.145 @zoom_x = 1.145 @zoom_y = 0.855 @effects[1] = 31 end when 31..60 @zoom_x -= 0.005 @zoom_y += 0.005 if @zoom_x < 1.0 @zoom_x = 1.0 @zoom_y = 1.0 @effects[1] = 61 end else @zoom_x = 1 @zoom_y = 1.0 @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Big Breath Effect #-------------------------------------------------------------------------- def update_big_breath_effect @effects[1] += 1 case @effects[1] when 0..30 @zoom_x += 0.02 @zoom_y = @zoom_x if @zoom_x > 1.6 @zoom_x = 1.6 @zoom_y = @zoom_x @effects[1] = 31 end when 31..60 @zoom_x -= 0.02 @zoom_y = @zoom_x if @zoom_x < 1.0 @zoom_x = 1.0 @zoom_y = @zoom_x @effects[1] = 61 end else @zoom_x = 1 @zoom_y = 1 @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Disappear Effect #-------------------------------------------------------------------------- def update_disappear_effect @zoom_x -= 0.01 @zoom_y += 0.05 @opacity -= 3 end #-------------------------------------------------------------------------- # ● Update Appear Effect #-------------------------------------------------------------------------- def update_appear_effect @zoom_x += 0.02 @zoom_x = 1.0 if @zoom_x > 1.0 @zoom_y -= 0.05 @zoom_y = 1.0 if @zoom_y < 1.0 @opacity += 3 clear_effects if @opacity >= 255 end #-------------------------------------------------------------------------- # ● Update Crazy Effect #-------------------------------------------------------------------------- def update_crazy_effect @effects[1] += 1 case @effects[1] when 1..5 @mirror = false when 6..10 @mirror = true else @mirror = false @effects[1] = 0 end end #-------------------------------------------------------------------------- # ● Update Dwarf Effect #-------------------------------------------------------------------------- def update_dwarf_effect if @zoom_x > 0.5 @zoom_x -= 0.01 @zoom_y -= 0.01 end end #-------------------------------------------------------------------------- # ● Update Giant Effect #-------------------------------------------------------------------------- def update_giant_effect if @zoom_x < 1.8 @zoom_x += 0.01 @zoom_y += 0.01 end end #-------------------------------------------------------------------------- # ● Update Normal #-------------------------------------------------------------------------- def update_normal_effect if @zoom_x > 1.0 @zoom_x -= 0.01 @zoom_x = 1.0 if @zoom_x < 1.0 elsif @zoom_x < 1.0 @zoom_x += 0.01 @zoom_x = 1.0 if @zoom_x > 1.0 end if @zoom_y > 1.0 @zoom_y -= 0.01 @zoom_y = 1.0 if @zoom_y < 1.0 elsif @zoom_y < 1.0 @zoom_y += 0.01 @zoom_y = 1.0 if @zoom_y > 1.0 end if @opacity < 255 @opacity += 2 @opacity = 255 if @opacity > 255 end if @angle > 0 @angle -= 5 @angle = 0 if @angle < 0 end if (@zoom_x == 1.0 and @zoom_y == 1.0 and @opacity == 255 and @angle == 0) clear_effects end end end #============================================================================== # ■ Game Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● Setup Page Setting #-------------------------------------------------------------------------- alias mog_character_effects_setup_page_settings setup_page_settings def setup_page_settings mog_character_effects_setup_page_settings setup_character_ex_effects end #-------------------------------------------------------------------------- # ● Setup Character Effects #-------------------------------------------------------------------------- def setup_character_ex_effects return if @list == nil for command in @list if command.code == 108 if command.parameters[0] =~ /<Effects = ([^>]*)>/ @effects = [$1,0,true] end if command.parameters[0] =~ /<Zoom = (\d+)>/i @zoom_x = $1.to_i @zoom_y = @zoom_x end if command.parameters[0] =~ /<Opacity = (\d+)>/i @opacity = $1.to_i end if command.parameters[0] =~ /<Blend Type = (\d+)>/i @blend_type = $1.to_i end if command.parameters[0] =~ /<Mirror = (\w+)>/i @mirror = $1 end end end end end #============================================================================== # ■ Sprite Character #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● Update Other #-------------------------------------------------------------------------- alias mog_character_ex_effects_update_other update_other def update_other mog_character_ex_effects_update_other update_other_ex end #-------------------------------------------------------------------------- # ● Update_other_EX #-------------------------------------------------------------------------- def update_other_ex self.zoom_x = @character.zoom_x self.zoom_y = @character.zoom_y self.mirror = @character.mirror self.angle = @character.angle end end #============================================================================== # ■ CHARCTER EX EFFECTS COMMAND #============================================================================== module CHARACTER_EX_EFFECTS_COMMAND #-------------------------------------------------------------------------- # ● Char Effect #-------------------------------------------------------------------------- def char_effect(event_id = 0, effect_type = "Breath") if event_id < 0 target = $game_player.followers[event_id.abs - 1] rescue nil elsif event_id == 0 target = $game_player rescue nil else target = $game_map.events[event_id] rescue nil end execute_char_effect(target,effect_type) if target != nil end #-------------------------------------------------------------------------- # ● Execute Char Effect #-------------------------------------------------------------------------- def execute_char_effect(target,effect_type) if effect_type == "Clear" target.clear_effects rescue nil return end target.effects[0] = effect_type.to_s rescue nil target.effects[2] = true rescue nil end #-------------------------------------------------------------------------- # ● Clear_All_Events Effects #-------------------------------------------------------------------------- def clear_all_events_effects for event in $game_map.events.values event.clear_effects end end #-------------------------------------------------------------------------- # ● Clear_All_Party Effects #-------------------------------------------------------------------------- def clear_all_party_effects $game_player.clear_effects for folower in $game_player.followers folower.clear_effects end end #-------------------------------------------------------------------------- # ● Clear_All_Char_Effects #-------------------------------------------------------------------------- def clear_all_ex_effects clear_all_events_effects clear_all_party_effects end end #============================================================================== # ■ Game Interpreter #============================================================================== class Game_Interpreter include CHARACTER_EX_EFFECTS_COMMAND end #============================================================================== # ■ Game_CharacterBase #============================================================================== class Game_CharacterBase include CHARACTER_EX_EFFECTS_COMMAND end $mog_rgss3_character_ex = true -
Si, così è comodo e fattibile.
Esempio:
Aym usa le spade.
Imposti sulla spada "Aggiungi Abilità" ---> "Spada Sacra" "Sciabolata" e imposti l'abilità "Spada Sacra" come "Magia" e "Sciabolata" come tecnica.
Quindi, se la classe di Aym gli permette di usare le magie potrà usare spada sacra, mentre se gli permette di usare le tecniche userà Sciabolata.
Mi sembra un buon compromesso...
l'importante è il non dover sprecare due trurni, o nessuno userà mai un cambio classe in battaglia...
Infatti. Dovrò cambiare il numero massimo di tipi di abilità, facendo abilità esclusive per ogni classe così da poter creare abilità singole per ogni classe. Ci piaaaaceeee
-
Ciao dopo aver letto tutte le conversazione sulla trama e gameplay ho notato che nessuno si è offerto come mapper .. quindi se hai bisogno sono disponibile

Ci sentiamo in mp così mi fai vedere un po' di cosine... :smile:
L'unico difetto sarebbe che così in battaglia il cambio classe occupa due turni: Uno per il cambio classe ed uno per il re-equip.
giocando con le variabili si potrebbero creare dei set personalizzati che si auto-equippano al cambio classe...
Macchinoso ma si può fare...
Macchinosetto, effettivamente, però sarebbe la cosa migliore. Forse, però, se il giocatore ha già scelto l'equip per quella classe, dal menù, al cambio classe in battaglia si ha già l'equip precedentemente impostato. Oppure.... oppure... Si può fare anche un'altra cosa: equipaggiamenti unici per il personaggio e non per classi. Per esempio: il protagonista Aym avrà, per l'intero gioco, un set di equip solo suoi che cambiano proprietà a seconda della classe che sceglie. Che dite?
-
L'importante è che la statua in questione abbia un espressione antipatica (è fondamentale). XD
Sarà rivoltante, lo prometto XD
-
Bella amigo. Senti, il granito per farti fare la statua in giardino cosa faccio, lo mando direttamente da te o faccio qui a casa e poi ti porto il pezzo finito?
-
Oh, si, vi prego! Le uniche add che ho trovato per il generator dell'Ace sono pochissima roba... Ho provato a cercare delle bocche per poter fare più espressioni dello stesso personaggio ma non ho avuto molta fortuna...

Semplice Script per il Crafting
in Richieste scripts RGSS3 (VX-Ace)
Posted
La demo non c'è, purtroppo. La traduzione la sto iniziando, ho sentito adesso l'autore che mi ha dato l'ok per farla. Ma non l'ok per per postare qui lo script, quindi dovrai pazientare un attimo perché lui implementi la traduzione nel suo sito. Comunque è molto semplice, anche se offre una bella varietà. Per farlo girare avrai necessariamente bisogno di questo script, però:
https://dl.dropboxusercontent.com/u/89346660/Bubs%20-%20Info%20Pages%20Window.txt