Raxas_Alice Posted July 25, 2011 Share Posted July 25, 2011 (edited) Lockpicking MinigameDescrizioneHo trovato questo script girovagando per internet alla ricerca di un minigame e ho pensato di postarlo qui, dato che mi pare unico nel suo genere e anche ben fatto!Purtroppo non funziona senza SDK, se qualche bravo scripter riuscisse a renderlo per così dire normale, farebbe un favore alla comunità xD AutoreEilei AllegatiScreenMiniera d'oro stasera! Ho recuperato anche la demo! :DDemo Lockpicking! Istruzioni per l'usoNon è difficile modificarlo: caricare una pic di sfondo e cambiare lo script dove serve, giocando coi colori dei cilindri e con i colori della "serratura". Ecco cosa dice l'autore: 1. Change the main background by swapping out Graphics/Pictures/lockpick_background.png for whatever you want. 2. Change the audio file at Audio/BGM/lockpick_music.mp3 3. Change the color of the tumblers by messing with Graphics/Pictures/lockpick_pins.png, but I don't recommend changing the sizes of the pins. 4. Finally, change the minigame lock background colors by editing both Graphics/Pictures/lockpick_cylinder.png and Graphics/Pictures/lockpick_pin_background.png 5. This script isn't otherwise very customizeable at the moment. Feel free to tinker with the number of tumblers per difficulty and such. #============================================================================== # ** Lockpick Minigame #------------------------------------------------------------------------------ # Your Name : Eilei # Version : 1.0.0 # Date : September 9, 2007 # SDK Version : Version 2.3, Part I #============================================================================== =begin Installation Instructions 0.) Get SDK if you don't have it; Part I is required for this script. 1.) Copy this script and paste it into your script list, just above Main. Editing Instructions 1.) Change the main background by swapping out Graphics/Pictures/lockpick_background.png for whatever you want. Change the audio file at Audio/BGM/lockpick_music.mp3 Change the color of the tumblers by messing with Graphics/Pictures/lockpick_pins.png, but I don't recommend changing the sizes of the pins. Finally, change the minigame lock background colors by editing both Graphics/Pictures/lockpick_cylinder.png and Graphics/Pictures/lockpick_pin_background.png 2.) This script isn't otherwise very customizeable at the moment. Feel free to tinker with the number of tumblers per difficulty and such. Usage 1.) See the two chests for the two ways to use this script; one method puts the lockpicking result in a specified event's self switches, the other puts it in a specified global switch. Legal Notices This script is Copyright © 2007 C. Schrupp. This script is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GNU General Public License is in gpl.txt in the main directory. If not, see <http://www.gnu.org/licenses/>. =end #-------------------------------------------------------------------------- # * Begin SDK Log #-------------------------------------------------------------------------- SDK.log( 'Lockpicking Minigame', 'Eilei', '1.0', '2007-09-08') #-------------------------------------------------------------------------- # * Begin Requirements Check #-------------------------------------------------------------------------- SDK.check_requirements( 2.3, [1] ) #-------------------------------------------------------------------------- # * Begin SDK Enable Test #-------------------------------------------------------------------------- if SDK.enabled?( 'Lockpicking Minigame' ) #---------------------------------------------------------------------------- # Begin Game_Temp Edit #---------------------------------------------------------------------------- class Game_Temp attr_accessor :lock_difficulty # difficulty for the next lock to be picked end #---------------------------------------------------------------------------- # End Game_Temp Edit #---------------------------------------------------------------------------- #============================================================================== # ** Scene_LockpickMinigame #------------------------------------------------------------------------------ # Scene_LockpickMinigame is the scene to call when you want to run the # lockpicking minigame # # NOTE: Scene_LockpickMinigame.set_result MUST be called before $scene is # set, or the minigame will not work. #============================================================================== class Scene_LockpickMinigame < SDK::Scene_Base #---------------------------------------------------------------------------+ # Scene Constants | #---------------------------------------------------------------------------+ LOCK_VERY_EASY = 0 LOCK_EASY = 1 LOCK_AVERAGE = 2 LOCK_DIFFICULT = 3 LOCK_INSANE = 4 # The number of tumblers for each difficulty should be prime to maximize the # probability that the puzzle will be solveable. LOCK_TUMBLERS = { LOCK_VERY_EASY => 2, LOCK_EASY => 3, LOCK_AVERAGE => 5, LOCK_DIFFICULT => 7, LOCK_INSANE => 11 } LOCK_AUDIO_UNLOCK = RPG::AudioFile.new( 'lock_open' ) # Internal constants CYLINDER_WIDTH = 288 #-------------------------------------------------------------------------- # * Main Processing : Variable Initialization #-------------------------------------------------------------------------- def main_variable # Check that the default value is ok if not LOCK_TUMBLERS.keys.include?( $game_temp.lock_difficulty ) $game_temp.lock_difficulty = LOCK_VERY_EASY end # Initialize the tumbler pins @pins = Array.new( LOCK_TUMBLERS[ $game_temp.lock_difficulty ] ) # Initialize the current lock modifier # (guarantees @lock_number will be prime) n = rand( 40 ) + 1 @lock_number = n**2 + n + 41 end #-------------------------------------------------------------------------- # * Main Processing : Sprite Initialization #-------------------------------------------------------------------------- def main_sprite # Initialize viewports @viewport_background = Viewport.new( 0, 0, 640, 480) @viewport_background.z = -500 @viewport_lock = Viewport.new( ( 640 - CYLINDER_WIDTH ) / 2, 90, CYLINDER_WIDTH, 300 ) @viewport_lock.z = -200 # display background image @background_sprite = Sprite.new( @viewport_background ) @background_sprite.bitmap = RPG::Cache.picture( 'lockpick_background' ) # display lock cylinder @cylinder_sprite = Sprite.new( @viewport_lock ) @cylinder_sprite.bitmap = RPG::Cache.picture( 'lockpick_cylinder' ) # display tumbler springs and pins for i in 0...@pins.size @pins[ i ] = Tumbler.new( @viewport_lock ) @pins[ i ].x = CYLINDER_WIDTH * ( i + 1 ) / ( @pins.size + 1 ) @pins[ i ].y = 0 end # display lockpick @lockpick_sprite = Lockpick.new @lockpick_sprite.tumblers = @pins.size end #-------------------------------------------------------------------------- # * Main Processing : Window Initialization #-------------------------------------------------------------------------- def main_window @help_window = Window_Help.new @help_window.set_text( 'Line up the tumbler pins with the cylinder to pick the lock.' ) @help_window.back_opacity = 160 end #-------------------------------------------------------------------------- # * Main Processing : Audio Initialization #-------------------------------------------------------------------------- def main_audio $game_system.bgm_play( RPG::AudioFile.new( 'lockpick_music', 80 )) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # game cancelled if Input.trigger?( Input::B ) $scene = Scene_Map.new end # Don't allow other input if animating if @lockpick_sprite.move? return end for i in 0...@pins.size if @pins[ i ].move? return end end # move the lockpick left or right if Input.trigger?( Input::RIGHT ) @lockpick_sprite.move_right if not @lockpick_sprite.move? $game_system.se_play( $data_system.buzzer_se ) end end if Input.trigger?( Input::LEFT ) @lockpick_sprite.move_left if not @lockpick_sprite.move? $game_system.se_play( $data_system.buzzer_se ) end end # knock a tumbler up - cascades if Input.trigger?( Input::UP ) @pins[ @lockpick_sprite.position ].raise if @pins[ @lockpick_sprite.position ].move? $game_system.se_play( Tumbler::TUMBLER_AUDIO_UP ) @lockpick_sprite.tap_up if @lockpick_sprite.position > 0 # first pin guaranteed no cascades @pins[ ( @lock_number * @lockpick_sprite.position ) % @pins.size ].raise end if $game_temp.lock_difficulty == LOCK_INSANE @pins[ ( @lock_number + @lockpick_sprite.position ) % @pins.size ].lower end else $game_system.se_play($data_system.buzzer_se) end end # knock a tumbler down - cascades if Input.trigger?( Input::DOWN ) @pins[ @lockpick_sprite.position ].lower if @pins[ @lockpick_sprite.position ].move? $game_system.se_play( Tumbler::TUMBLER_AUDIO_DOWN ) @lockpick_sprite.tap_down if @lockpick_sprite.position > 0 # first pin guaranteed no cascades @pins[ ( @lock_number * @lockpick_sprite.position ) % @pins.size ].lower end if $game_temp.lock_difficulty == LOCK_INSANE @pins[ ( @lock_number + @lockpick_sprite.position ) % @pins.size ].raise end else $game_system.se_play( $data_system.buzzer_se ) end end # game finished, maybe if Input.trigger?( Input::C ) unlockable = true for i in 0...@pins.size if not @pins[ i ].open? unlockable = false break end end if unlockable $game_system.se_play( LOCK_AUDIO_UNLOCK ) $scene = Scene_Map.new # change the specified result switch if @result_switch == 'X' # not a self-switch $game_switches[ @result_id ] = true else $game_self_switches[ [ $game_map.map_id, @result_id, @result_switch ] ] = true end $game_map.need_refresh = true else $game_system.se_play( $data_system.buzzer_se ) end end end #-------------------------------------------------------------------------- # * Main Processing : Ending #-------------------------------------------------------------------------- def main_end Audio.bgm_fade( 2000 ) end #-------------------------------------------------------------------------- # * set_result specifies which game switch is to be changed to true on a # successful lockpick. # id = event id for a self-switch, or switch id for a global switch # self_switch = 'A', etc. for a self-switch. # LEAVE self_switch BLANK TO SPECIFY A GLOBAL SWITCH #-------------------------------------------------------------------------- def set_result( id, self_switch = 'X' ) @result_id = id @result_switch = self_switch end end # class Scene_LockpickMinigame #============================================================================== # ** Tumbler #------------------------------------------------------------------------------ # Tumbler represents one of the lock's tumblers #============================================================================== class Tumbler < Sprite #---------------------------------------------------------------------------+ # Tumbler Constants | #---------------------------------------------------------------------------+ # Maximum vertical size (in potential openings) of a tumbler TUMBLER_POSITIONS = 6 # Bitmap sources for the pictures TUMBLER_PIN_BITMAP = RPG::Cache.picture( 'lockpick_pins' ) TUMBLER_SPRING_BITMAP = [ RPG::Cache.picture( 'lockpick_spring1' ), RPG::Cache.picture( 'lockpick_spring2' ), RPG::Cache.picture( 'lockpick_spring3' ), RPG::Cache.picture( 'lockpick_spring4' ), RPG::Cache.picture( 'lockpick_spring5' ), RPG::Cache.picture( 'lockpick_spring6' ) ] TUMBLER_BACKGROUND_BITMAP = RPG::Cache.picture( 'lockpick_pin_background' ) # Source rectangles inside the tumbler pin bitmap TUMBLER_DRIVER_TOP = Rect.new( 0, 0, 20, 2 ) TUMBLER_DRIVER_MIDDLE = Rect.new( 0, 2, 20, 27 ) TUMBLER_DRIVER_BOTTOM = Rect.new( 0, 29, 20, 3 ) TUMBLER_KEY_TOP = Rect.new( 20, 0, 20, 3 ) TUMBLER_KEY_MIDDLE = Rect.new( 20, 3, 20, 17 ) TUMBLER_KEY_BOTTOM = Rect.new( 20, 20, 20, 12 ) # Audio for ratcheting TUMBLER_AUDIO_UP = RPG::AudioFile.new( 'tumbler', 100, 105 ) TUMBLER_AUDIO_DOWN = RPG::AudioFile.new( 'tumbler', 100, 95 ) # Rate at which the tumbler pins move up and down TUMBLER_MOVE_SPEED = 2 # this should be a factor of 20 (ie, 1, 2, 4, 5 ) #---------------------------------------------------------------------------+ # Tumbler Methods | #---------------------------------------------------------------------------+ def initialize( *arg ) super *arg @opening = rand( TUMBLER_POSITIONS ) while @level.nil? or @level + @opening == TUMBLER_POSITIONS - 1 @level = rand( TUMBLER_POSITIONS ) end self.bitmap = Bitmap.new( 22, 262 ) self.bitmap.blt( 0, 0, TUMBLER_BACKGROUND_BITMAP, TUMBLER_BACKGROUND_BITMAP.rect ) @current = ( @level + 1 ) * 20 - TUMBLER_MOVE_SPEED end #-------------------------------------------------------------------------- # * raise moves the tumbler up a number of clicks # distance = maximum distance raised #-------------------------------------------------------------------------- def raise( distance = 1 ) @level -= distance if @level >= TUMBLER_POSITIONS @level = TUMBLER_POSITIONS - 1 elsif @level < 0 @level = 0 end end #-------------------------------------------------------------------------- # * lower moves the tumbler down a number of clicks # distance = maximum distance lowered #-------------------------------------------------------------------------- def lower( distance = 1 ) @level += distance if @level >= TUMBLER_POSITIONS @level = TUMBLER_POSITIONS - 1 elsif @level < 0 @level = 0 end end #-------------------------------------------------------------------------- # * open? determines if the current level is the same as the opening # between the driver and key pins #-------------------------------------------------------------------------- def open? return @level + @opening == TUMBLER_POSITIONS - 1 end #-------------------------------------------------------------------------- # * move? determines if the pin is currently moving #-------------------------------------------------------------------------- def move? return @current != ( @level + 1 ) * 20 end #-------------------------------------------------------------------------- # * update updates the current display of the tumbler, ratcheting it up # or down depending on its current position vs. desired #-------------------------------------------------------------------------- def update super # See if we need to update position if not move? return elsif @current - ( @level + 1 ) * 20 > 0 @current -= TUMBLER_MOVE_SPEED # move up else @current += TUMBLER_MOVE_SPEED # move down end # Fill in the background self.bitmap.fill_rect( Rect.new( 1, 1, 20, 260 ), Color.new( 255, 255, 255 ) ) # Draw the spring spring_level = ( ( @current + 10 ) / 20 ) - 1 self.bitmap.stretch_blt( Rect.new( 1, 1, 20, @current + 1 ), TUMBLER_SPRING_BITMAP[ spring_level ], TUMBLER_SPRING_BITMAP[ spring_level ].rect ) # Draw the driver pin self.bitmap.blt( 1, @current + 1, TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_TOP ) self.bitmap.stretch_blt( Rect.new( 1, @current + 3, 20, ( @opening + 1 ) * 20 - 5 ), TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_MIDDLE ) self.bitmap.blt( 1, ( @opening + 1 ) * 20 + @current - 2, TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_BOTTOM ) # Draw the key pin self.bitmap.blt( 1, ( @opening + 1 ) * 20 + @current + 1, TUMBLER_PIN_BITMAP, TUMBLER_KEY_TOP ) self.bitmap.stretch_blt( Rect.new( 1, ( @opening + 1 ) * 20 + @current + 4, 20, ( TUMBLER_POSITIONS - @opening ) * 20 - 15 ), TUMBLER_PIN_BITMAP, TUMBLER_KEY_MIDDLE ) self.bitmap.blt( 1, ( TUMBLER_POSITIONS + 1 ) * 20 + @current - 11, TUMBLER_PIN_BITMAP, TUMBLER_KEY_BOTTOM ) end def set_result_switch( event_id, switch_id ) end end # class Tumbler #============================================================================== # ** Lockpick #------------------------------------------------------------------------------ # Lockpick represents the game's lockpick #============================================================================== class Lockpick < Sprite attr_accessor :tumblers attr_accessor :position #---------------------------------------------------------------------------+ # Lockpick Constants | #---------------------------------------------------------------------------+ LOCKPICK_X_OFFSET = ( 640 - Scene_LockpickMinigame::CYLINDER_WIDTH ) / 2 - 482 LOCKPICK_MOVEMENT_SPEED = 8 # This can be any integer; higher is faster #-------------------------------------------------------------------------- # * initialize sets the starting lockpick x coordinate #-------------------------------------------------------------------------- def initialize( *arg ) super *arg self.bitmap = RPG::Cache.picture( 'lockpick_lockpick' ) self.x = LOCKPICK_X_OFFSET self.y = 355 @position = 0 @current = 0 @tumblers = 1 @tap_count = 0 end #-------------------------------------------------------------------------- # * move_right moves the lockpick right one tumbler #-------------------------------------------------------------------------- def move_right if @tap_count != 0 return end if @position >= @tumblers - 1 @position = @tumblers - 1 else @position += 1 end end #-------------------------------------------------------------------------- # * move_left moves the lockpick left one tumbler #-------------------------------------------------------------------------- def move_left if @tap_count != 0 return end if @position <= 0 @position = 0 else @position -= 1 end end #-------------------------------------------------------------------------- # * tap_up moves the lockpick in an upwards tapping motion #-------------------------------------------------------------------------- def tap_up @tap_count = 8 end #-------------------------------------------------------------------------- # * tap_down moves the lockpick in a downwards tapping motion #-------------------------------------------------------------------------- def tap_down @tap_count = -6 end #-------------------------------------------------------------------------- # * move? determines if the lockpick needs to move #-------------------------------------------------------------------------- def move? current_x = Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) return ( @current != current_x or @tap_count != 0 ) end #-------------------------------------------------------------------------- # * initialize sets the starting lockpick x coordinate #-------------------------------------------------------------------------- def update super # See if we're animated up or down if @tap_count != 0 # down if @tap_count < 0 self.x = @current + LOCKPICK_X_OFFSET self.y = 354 - @tap_count @tap_count += 1 else # up self.x = @current + LOCKPICK_X_OFFSET - @tap_count self.y = 356 - @tap_count @tap_count -= 1 end return end # See if we need to update position if not move? return elsif Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) > @current @current += LOCKPICK_MOVEMENT_SPEED else @current -= LOCKPICK_MOVEMENT_SPEED end # if we're close, just set it to the right value if ( @current - Scene_LockpickMinigame::CYLINDER_WIDTH * ( position + 1 ) / ( @tumblers + 1 ) ).abs <= LOCKPICK_MOVEMENT_SPEED / 2 @current = Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) end self.x = @current + LOCKPICK_X_OFFSET self.y = 355 end end # class Lockpick end # if SDK.enabled? Bugs e Conflitti NotiNon funziona senza SDK 2.3 EDIT -I tuoi piedini pelosi sono salvi coniglietto xD Edited July 25, 2011 by Raxas_Alice http://fc01.deviantart.net/fs71/f/2014/092/2/f/shtbanner_by_flaminiakennedy-d7cq8qm.png http://www.freankexpo.net/signature/697.png Miglior Esplicazione del Progetto nel Cover Contest http://www.rpg2s.net/cover_contest/icons/cc_special.png Secondo posto allo Screen Contest #58 http://rpg2s.net/gif/SCContest2Oct.gif Secondo posto allo Screen Contest #59 http://rpg2s.net/gif/SCContest2Oct.gif Terzo posto allo Screen Contest #68 http://rpg2s.net/gif/SCContest3Oct.gif Link to comment Share on other sites More sharing options...
Guardian of Irael Posted July 25, 2011 Share Posted July 25, 2011 Ah quello che usi nel progetto :DBuono script per minigiochi di serrature! ^ ^Quando posti il codice usa il tag con la parola ruby, così viene lo script tutto colorato arcobalenosamente ° ° XD Editato!^ ^ EDIT: argh grosso problema D: D:, insieme allo script ha copiato pure i numeri delle righe quindi bisognerebbe cancellare tutti i numeri da uno a 582 ;______ ; EDIT2: numeri tolti copia-incollando lo script di nuovo, ma... non capisco perchè lo dà tutto blu senza colorarlo... (\_/)(^ ^) <----coniglietto rosso, me! (> <) Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^ http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^ http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^ REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^ 🖤http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gifhttp://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3http://i.imgur.com/MpaUphY.jpg by Idriu E:3Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44) http://i.imgur.com/PgUqHPm.pngUfficiale"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.pngGrazie Testament XD Fan n°1 ufficiale di PQ! :DVivail Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che nonavevo programmi di grafica per fare un banner su questo pc XD (ora ho dinuovo il mio PC veramente :D) Rosso Guardiano dellahttp://i.imgur.com/Os5rvhx.pngRpg2s RPG BY FORUM:Nome: Darth Reveal PV totali 2PA totali 16Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.Bozze vesti non definitive qui.Equipaggiamento:Indossa:60$ e 59$ divisi in due tasche interneLevaitanSpada a due mani elsa lungaGuanti del Defender (2PA)Anello del linguaggio animale (diventato del Richiamo)Scrinieri da lanciere (2 PA)Elmo del Leone (5 PA)Corazza del Leone in Ferro Corrazzato (7 PA) ZAINO (20) contenente:Portamonete in pelle di cinghiale contenente: 100$Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)CordaBottiglia di idromeleForma di formaggioTorcia (serve ad illuminare, dura tre settori)Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)Ampolla BiancaSemi di Balissa CAVALLO NORMALE + SELLA (30 +2 armi) contentente:66$Benda di pronto soccorso x3Spada a due maniFagotto per Adara (fazzoletto ricamato) Link to comment Share on other sites More sharing options...
Raxas_Alice Posted July 25, 2011 Author Share Posted July 25, 2011 No, non lo sto usando io, volevo ma servirebbe l'sdk e non voglio implementarlo perchè ho sentito che da un sacco di problemi, almeno credo.Allora a tempo perso mi sa che li cancellerò io Poi mi suiciderò xD http://fc01.deviantart.net/fs71/f/2014/092/2/f/shtbanner_by_flaminiakennedy-d7cq8qm.png http://www.freankexpo.net/signature/697.png Miglior Esplicazione del Progetto nel Cover Contest http://www.rpg2s.net/cover_contest/icons/cc_special.png Secondo posto allo Screen Contest #58 http://rpg2s.net/gif/SCContest2Oct.gif Secondo posto allo Screen Contest #59 http://rpg2s.net/gif/SCContest2Oct.gif Terzo posto allo Screen Contest #68 http://rpg2s.net/gif/SCContest3Oct.gif Link to comment Share on other sites More sharing options...
Guardian of Irael Posted July 25, 2011 Share Posted July 25, 2011 Poi mi suiciderò xDAh aspetta non editare (e scendi da quel grattacielo... dalla via delle scale! XDXD)! XD Ho fatto io copia-incollando di nuovo lo script da altre fonti! XD Rimane un problema (il tutto blu ° °)... ho chiesto a chi se ne intende.^ ^ (\_/)(^ ^) <----coniglietto rosso, me! (> <) Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^ http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^ http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^ REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^ 🖤http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gifhttp://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3http://i.imgur.com/MpaUphY.jpg by Idriu E:3Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44) http://i.imgur.com/PgUqHPm.pngUfficiale"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.pngGrazie Testament XD Fan n°1 ufficiale di PQ! :DVivail Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che nonavevo programmi di grafica per fare un banner su questo pc XD (ora ho dinuovo il mio PC veramente :D) Rosso Guardiano dellahttp://i.imgur.com/Os5rvhx.pngRpg2s RPG BY FORUM:Nome: Darth Reveal PV totali 2PA totali 16Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.Bozze vesti non definitive qui.Equipaggiamento:Indossa:60$ e 59$ divisi in due tasche interneLevaitanSpada a due mani elsa lungaGuanti del Defender (2PA)Anello del linguaggio animale (diventato del Richiamo)Scrinieri da lanciere (2 PA)Elmo del Leone (5 PA)Corazza del Leone in Ferro Corrazzato (7 PA) ZAINO (20) contenente:Portamonete in pelle di cinghiale contenente: 100$Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)CordaBottiglia di idromeleForma di formaggioTorcia (serve ad illuminare, dura tre settori)Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)Ampolla BiancaSemi di Balissa CAVALLO NORMALE + SELLA (30 +2 armi) contentente:66$Benda di pronto soccorso x3Spada a due maniFagotto per Adara (fazzoletto ricamato) Link to comment Share on other sites More sharing options...
Raxas_Alice Posted July 25, 2011 Author Share Posted July 25, 2011 Se riuscirai a far sistemare quello script al diavolo l'SDK, lo userò assolutamente e ti bacerò quei batuffolosi piedini da coniglietto finchè non ti si consumeranno! XD http://fc01.deviantart.net/fs71/f/2014/092/2/f/shtbanner_by_flaminiakennedy-d7cq8qm.png http://www.freankexpo.net/signature/697.png Miglior Esplicazione del Progetto nel Cover Contest http://www.rpg2s.net/cover_contest/icons/cc_special.png Secondo posto allo Screen Contest #58 http://rpg2s.net/gif/SCContest2Oct.gif Secondo posto allo Screen Contest #59 http://rpg2s.net/gif/SCContest2Oct.gif Terzo posto allo Screen Contest #68 http://rpg2s.net/gif/SCContest3Oct.gif Link to comment Share on other sites More sharing options...
giver Posted July 25, 2011 Share Posted July 25, 2011 (edited) Ho letto in un forum che serve solo Scene_Base dell'SDK, quindi ho estratto quella parte ed "eliminato" il codice per la verifica della presenza dell'SDK . . .Non ho la più pallida idea se funzioni o meno, comunque . . . module SDK class Scene_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize @previous_scene = $scene.class end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main main_variable # Main Variable Initialization main_spriteset # Main Spriteset Initialization main_sprite # Main Sprite Initialization main_window # Main Window Initialization main_audio # Main Audio Initialization main_transition # Main Transition Initialization loop do # Scene Loop main_loop # Main Loop break if main_break? # Break If Breakloop Test end # End Scene Loop Graphics.freeze # Prepare for transition main_dispose # Main Dispose main_end # Main End end #-------------------------------------------------------------------------- # * Main Processing : Variable Initialization #-------------------------------------------------------------------------- def main_variable ; end #-------------------------------------------------------------------------- # * Main Processing : Spriteset Initialization #-------------------------------------------------------------------------- def main_spriteset; end #-------------------------------------------------------------------------- # * Main Processing : Sprite Initialization #-------------------------------------------------------------------------- def main_sprite; end #-------------------------------------------------------------------------- # * Main Processing : Window Initialization #-------------------------------------------------------------------------- def main_window; end #-------------------------------------------------------------------------- # * Main Processing : Audio Initialization #-------------------------------------------------------------------------- def main_audio ; end #-------------------------------------------------------------------------- # * Main Processing : Transition #-------------------------------------------------------------------------- def main_transition Graphics.transition end #-------------------------------------------------------------------------- # * Main Processing : Loop #-------------------------------------------------------------------------- def main_loop Graphics.update # Update game screen Input.update # Update input information main_update # Update scene objects update # Update Processing end #-------------------------------------------------------------------------- # * Main Processing : Break Loop Test #-------------------------------------------------------------------------- def main_break? return $scene != self # Abort loop if sceen is changed end #-------------------------------------------------------------------------- # * Main Processing : Disposal #-------------------------------------------------------------------------- def main_dispose # Passes Through All Instance Variables self.instance_variables.each do |object_name| # Evaluates Object object = eval object_name # Pass Object To Auto Dispose auto_dispose(object) end end #-------------------------------------------------------------------------- # * Main Processing : Ending #-------------------------------------------------------------------------- def main_end ; end #-------------------------------------------------------------------------- # * Main Processing : Update #-------------------------------------------------------------------------- def main_update # Passes Through All Instance Variables self.instance_variables.each do |object_name| # Evaluates Object object = eval object_name # Pass Object To Auto Update auto_update(object) end end #-------------------------------------------------------------------------- # * Main Processing : Auto Update #-------------------------------------------------------------------------- def auto_update(object) # Return If Object isn't a Hash, Array or Respond to Update return unless object.is_a?(Hash) || object.is_a?(Array) || object.respond_to?(:update) # If Hash Object if object.is_a?(Hash) object.each do |key, value| # Pass Key & Value to Auto Update auto_update(key); auto_update(value) end return end # If Array Object if object.is_a?(Array) # Pass All Object to Auto Update object.each {|obj| auto_update(obj)} return end # If Responds to Dispose if object.respond_to?(:dispose) # If Responds to Disposed? && is Disposed or Responds to Disable # Dispose and dispose is disabled if (object.respond_to?(:disposed?) && object.disposed?) || (object.respond_to?(:disable_dispose?) && object.disable_dispose?) # Return return end end # If Responds to Update if object.respond_to?(:update) # If Responds to Disable Update & Update Disabled if object.respond_to?(:disable_update?) && object.disable_update? # Return return end # Update Object object.update end end #-------------------------------------------------------------------------- # * Main Processing : Auto Dispose #-------------------------------------------------------------------------- def auto_dispose(object) # Return If Object isn't a Hash, Array or Respond to Dispose return unless object.is_a?(Hash) || object.is_a?(Array) || object.respond_to?(:dispose) # If Hash Object if object.is_a?(Hash) object.each do |key, value| # Pass Key & Value to Auto Dispose auto_dispose(key); auto_dispose(value) end return end # If Array Object if object.is_a?(Array) # Pass All Object to Auto Dispose object.each {|obj| auto_dispose(obj)} return end # If Responds to Dispose if object.respond_to?(:dispose) # If Responds to Disposed? && is Disposed or Responds to Disable # Dispose and dispose is disabled if (object.respond_to?(:disposed?) && object.disposed?) || (object.respond_to?(:disable_dispose?) && object.disable_dispose?) # Return return end # Dispose Object object.dispose end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update ; end end end #============================================================================== # ** Lockpick Minigame #------------------------------------------------------------------------------ # Your Name : Eilei # Version : 1.0.0 # Date : September 9, 2007 # SDK Version : Version 2.3, Part I #============================================================================== =begin Installation Instructions 0.) Get SDK if you don't have it; Part I is required for this script. 1.) Copy this script and paste it into your script list, just above Main. Editing Instructions 1.) Change the main background by swapping out Graphics/Pictures/lockpick_background.png for whatever you want. Change the audio file at Audio/BGM/lockpick_music.mp3 Change the color of the tumblers by messing with Graphics/Pictures/lockpick_pins.png, but I don't recommend changing the sizes of the pins. Finally, change the minigame lock background colors by editing both Graphics/Pictures/lockpick_cylinder.png and Graphics/Pictures/lockpick_pin_background.png 2.) This script isn't otherwise very customizeable at the moment. Feel free to tinker with the number of tumblers per difficulty and such. Usage 1.) See the two chests for the two ways to use this script; one method puts the lockpicking result in a specified event's self switches, the other puts it in a specified global switch. Legal Notices This script is Copyright © 2007 C. Schrupp. This script is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GNU General Public License is in gpl.txt in the main directory. If not, see <http://www.gnu.org/licenses/>. =end #-------------------------------------------------------------------------- # * Begin SDK Log #-------------------------------------------------------------------------- # SDK.log( 'Lockpicking Minigame', 'Eilei', '1.0', '2007-09-08') #-------------------------------------------------------------------------- # * Begin Requirements Check #-------------------------------------------------------------------------- # SDK.check_requirements( 2.3, [1] ) #-------------------------------------------------------------------------- # * Begin SDK Enable Test #-------------------------------------------------------------------------- # if SDK.enabled?( 'Lockpicking Minigame' ) #---------------------------------------------------------------------------- # Begin Game_Temp Edit #---------------------------------------------------------------------------- class Game_Temp attr_accessor :lock_difficulty # difficulty for the next lock to be picked end #---------------------------------------------------------------------------- # End Game_Temp Edit #---------------------------------------------------------------------------- #============================================================================== # ** Scene_LockpickMinigame #------------------------------------------------------------------------------ # Scene_LockpickMinigame is the scene to call when you want to run the # lockpicking minigame # # NOTE: Scene_LockpickMinigame.set_result MUST be called before $scene is # set, or the minigame will not work. #============================================================================== class Scene_LockpickMinigame < SDK::Scene_Base #---------------------------------------------------------------------------+ # Scene Constants | #---------------------------------------------------------------------------+ LOCK_VERY_EASY = 0 LOCK_EASY = 1 LOCK_AVERAGE = 2 LOCK_DIFFICULT = 3 LOCK_INSANE = 4 # The number of tumblers for each difficulty should be prime to maximize the # probability that the puzzle will be solveable. LOCK_TUMBLERS = { LOCK_VERY_EASY => 2, LOCK_EASY => 3, LOCK_AVERAGE => 5, LOCK_DIFFICULT => 7, LOCK_INSANE => 11 } LOCK_AUDIO_UNLOCK = RPG::AudioFile.new( 'lock_open' ) # Internal constants CYLINDER_WIDTH = 288 #-------------------------------------------------------------------------- # * Main Processing : Variable Initialization #-------------------------------------------------------------------------- def main_variable # Check that the default value is ok if not LOCK_TUMBLERS.keys.include?( $game_temp.lock_difficulty ) $game_temp.lock_difficulty = LOCK_VERY_EASY end # Initialize the tumbler pins @pins = Array.new( LOCK_TUMBLERS[ $game_temp.lock_difficulty ] ) # Initialize the current lock modifier # (guarantees @lock_number will be prime) n = rand( 40 ) + 1 @lock_number = n**2 + n + 41 end #-------------------------------------------------------------------------- # * Main Processing : Sprite Initialization #-------------------------------------------------------------------------- def main_sprite # Initialize viewports @viewport_background = Viewport.new( 0, 0, 640, 480) @viewport_background.z = -500 @viewport_lock = Viewport.new( ( 640 - CYLINDER_WIDTH ) / 2, 90, CYLINDER_WIDTH, 300 ) @viewport_lock.z = -200 # display background image @background_sprite = Sprite.new( @viewport_background ) @background_sprite.bitmap = RPG::Cache.picture( 'lockpick_background' ) # display lock cylinder @cylinder_sprite = Sprite.new( @viewport_lock ) @cylinder_sprite.bitmap = RPG::Cache.picture( 'lockpick_cylinder' ) # display tumbler springs and pins for i in 0...@pins.size @pins[ i ] = Tumbler.new( @viewport_lock ) @pins[ i ].x = CYLINDER_WIDTH * ( i + 1 ) / ( @pins.size + 1 ) @pins[ i ].y = 0 end # display lockpick @lockpick_sprite = Lockpick.new @lockpick_sprite.tumblers = @pins.size end #-------------------------------------------------------------------------- # * Main Processing : Window Initialization #-------------------------------------------------------------------------- def main_window @help_window = Window_Help.new @help_window.set_text( 'Line up the tumbler pins with the cylinder to pick the lock.' ) @help_window.back_opacity = 160 end #-------------------------------------------------------------------------- # * Main Processing : Audio Initialization #-------------------------------------------------------------------------- def main_audio $game_system.bgm_play( RPG::AudioFile.new( 'lockpick_music', 80 )) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # game cancelled if Input.trigger?( Input::B ) $scene = Scene_Map.new end # Don't allow other input if animating if @lockpick_sprite.move? return end for i in 0...@pins.size if @pins[ i ].move? return end end # move the lockpick left or right if Input.trigger?( Input::RIGHT ) @lockpick_sprite.move_right if not @lockpick_sprite.move? $game_system.se_play( $data_system.buzzer_se ) end end if Input.trigger?( Input::LEFT ) @lockpick_sprite.move_left if not @lockpick_sprite.move? $game_system.se_play( $data_system.buzzer_se ) end end # knock a tumbler up - cascades if Input.trigger?( Input::UP ) @pins[ @lockpick_sprite.position ].raise if @pins[ @lockpick_sprite.position ].move? $game_system.se_play( Tumbler::TUMBLER_AUDIO_UP ) @lockpick_sprite.tap_up if @lockpick_sprite.position > 0 # first pin guaranteed no cascades @pins[ ( @lock_number * @lockpick_sprite.position ) % @pins.size ].raise end if $game_temp.lock_difficulty == LOCK_INSANE @pins[ ( @lock_number + @lockpick_sprite.position ) % @pins.size ].lower end else $game_system.se_play($data_system.buzzer_se) end end # knock a tumbler down - cascades if Input.trigger?( Input::DOWN ) @pins[ @lockpick_sprite.position ].lower if @pins[ @lockpick_sprite.position ].move? $game_system.se_play( Tumbler::TUMBLER_AUDIO_DOWN ) @lockpick_sprite.tap_down if @lockpick_sprite.position > 0 # first pin guaranteed no cascades @pins[ ( @lock_number * @lockpick_sprite.position ) % @pins.size ].lower end if $game_temp.lock_difficulty == LOCK_INSANE @pins[ ( @lock_number + @lockpick_sprite.position ) % @pins.size ].raise end else $game_system.se_play( $data_system.buzzer_se ) end end # game finished, maybe if Input.trigger?( Input::C ) unlockable = true for i in 0...@pins.size if not @pins[ i ].open? unlockable = false break end end if unlockable $game_system.se_play( LOCK_AUDIO_UNLOCK ) $scene = Scene_Map.new # change the specified result switch if @result_switch == 'X' # not a self-switch $game_switches[ @result_id ] = true else $game_self_switches[ [ $game_map.map_id, @result_id, @result_switch ] ] = true end $game_map.need_refresh = true else $game_system.se_play( $data_system.buzzer_se ) end end end #-------------------------------------------------------------------------- # * Main Processing : Ending #-------------------------------------------------------------------------- def main_end Audio.bgm_fade( 2000 ) end #-------------------------------------------------------------------------- # * set_result specifies which game switch is to be changed to true on a # successful lockpick. # id = event id for a self-switch, or switch id for a global switch # self_switch = 'A', etc. for a self-switch. # LEAVE self_switch BLANK TO SPECIFY A GLOBAL SWITCH #-------------------------------------------------------------------------- def set_result( id, self_switch = 'X' ) @result_id = id @result_switch = self_switch end end # class Scene_LockpickMinigame #============================================================================== # ** Tumbler #------------------------------------------------------------------------------ # Tumbler represents one of the lock's tumblers #============================================================================== class Tumbler < Sprite #---------------------------------------------------------------------------+ # Tumbler Constants | #---------------------------------------------------------------------------+ # Maximum vertical size (in potential openings) of a tumbler TUMBLER_POSITIONS = 6 # Bitmap sources for the pictures TUMBLER_PIN_BITMAP = RPG::Cache.picture( 'lockpick_pins' ) TUMBLER_SPRING_BITMAP = [ RPG::Cache.picture( 'lockpick_spring1' ), RPG::Cache.picture( 'lockpick_spring2' ), RPG::Cache.picture( 'lockpick_spring3' ), RPG::Cache.picture( 'lockpick_spring4' ), RPG::Cache.picture( 'lockpick_spring5' ), RPG::Cache.picture( 'lockpick_spring6' ) ] TUMBLER_BACKGROUND_BITMAP = RPG::Cache.picture( 'lockpick_pin_background' ) # Source rectangles inside the tumbler pin bitmap TUMBLER_DRIVER_TOP = Rect.new( 0, 0, 20, 2 ) TUMBLER_DRIVER_MIDDLE = Rect.new( 0, 2, 20, 27 ) TUMBLER_DRIVER_BOTTOM = Rect.new( 0, 29, 20, 3 ) TUMBLER_KEY_TOP = Rect.new( 20, 0, 20, 3 ) TUMBLER_KEY_MIDDLE = Rect.new( 20, 3, 20, 17 ) TUMBLER_KEY_BOTTOM = Rect.new( 20, 20, 20, 12 ) # Audio for ratcheting TUMBLER_AUDIO_UP = RPG::AudioFile.new( 'tumbler', 100, 105 ) TUMBLER_AUDIO_DOWN = RPG::AudioFile.new( 'tumbler', 100, 95 ) # Rate at which the tumbler pins move up and down TUMBLER_MOVE_SPEED = 2 # this should be a factor of 20 (ie, 1, 2, 4, 5 ) #---------------------------------------------------------------------------+ # Tumbler Methods | #---------------------------------------------------------------------------+ def initialize( *arg ) super *arg @opening = rand( TUMBLER_POSITIONS ) while @level.nil? or @level + @opening == TUMBLER_POSITIONS - 1 @level = rand( TUMBLER_POSITIONS ) end self.bitmap = Bitmap.new( 22, 262 ) self.bitmap.blt( 0, 0, TUMBLER_BACKGROUND_BITMAP, TUMBLER_BACKGROUND_BITMAP.rect ) @current = ( @level + 1 ) * 20 - TUMBLER_MOVE_SPEED end #-------------------------------------------------------------------------- # * raise moves the tumbler up a number of clicks # distance = maximum distance raised #-------------------------------------------------------------------------- def raise( distance = 1 ) @level -= distance if @level >= TUMBLER_POSITIONS @level = TUMBLER_POSITIONS - 1 elsif @level < 0 @level = 0 end end #-------------------------------------------------------------------------- # * lower moves the tumbler down a number of clicks # distance = maximum distance lowered #-------------------------------------------------------------------------- def lower( distance = 1 ) @level += distance if @level >= TUMBLER_POSITIONS @level = TUMBLER_POSITIONS - 1 elsif @level < 0 @level = 0 end end #-------------------------------------------------------------------------- # * open? determines if the current level is the same as the opening # between the driver and key pins #-------------------------------------------------------------------------- def open? return @level + @opening == TUMBLER_POSITIONS - 1 end #-------------------------------------------------------------------------- # * move? determines if the pin is currently moving #-------------------------------------------------------------------------- def move? return @current != ( @level + 1 ) * 20 end #-------------------------------------------------------------------------- # * update updates the current display of the tumbler, ratcheting it up # or down depending on its current position vs. desired #-------------------------------------------------------------------------- def update super # See if we need to update position if not move? return elsif @current - ( @level + 1 ) * 20 > 0 @current -= TUMBLER_MOVE_SPEED # move up else @current += TUMBLER_MOVE_SPEED # move down end # Fill in the background self.bitmap.fill_rect( Rect.new( 1, 1, 20, 260 ), Color.new( 255, 255, 255 ) ) # Draw the spring spring_level = ( ( @current + 10 ) / 20 ) - 1 self.bitmap.stretch_blt( Rect.new( 1, 1, 20, @current + 1 ), TUMBLER_SPRING_BITMAP[ spring_level ], TUMBLER_SPRING_BITMAP[ spring_level ].rect ) # Draw the driver pin self.bitmap.blt( 1, @current + 1, TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_TOP ) self.bitmap.stretch_blt( Rect.new( 1, @current + 3, 20, ( @opening + 1 ) * 20 - 5 ), TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_MIDDLE ) self.bitmap.blt( 1, ( @opening + 1 ) * 20 + @current - 2, TUMBLER_PIN_BITMAP, TUMBLER_DRIVER_BOTTOM ) # Draw the key pin self.bitmap.blt( 1, ( @opening + 1 ) * 20 + @current + 1, TUMBLER_PIN_BITMAP, TUMBLER_KEY_TOP ) self.bitmap.stretch_blt( Rect.new( 1, ( @opening + 1 ) * 20 + @current + 4, 20, ( TUMBLER_POSITIONS - @opening ) * 20 - 15 ), TUMBLER_PIN_BITMAP, TUMBLER_KEY_MIDDLE ) self.bitmap.blt( 1, ( TUMBLER_POSITIONS + 1 ) * 20 + @current - 11, TUMBLER_PIN_BITMAP, TUMBLER_KEY_BOTTOM ) end def set_result_switch( event_id, switch_id ) end end # class Tumbler #============================================================================== # ** Lockpick #------------------------------------------------------------------------------ # Lockpick represents the game's lockpick #============================================================================== class Lockpick < Sprite attr_accessor :tumblers attr_accessor :position #---------------------------------------------------------------------------+ # Lockpick Constants | #---------------------------------------------------------------------------+ LOCKPICK_X_OFFSET = ( 640 - Scene_LockpickMinigame::CYLINDER_WIDTH ) / 2 - 482 LOCKPICK_MOVEMENT_SPEED = 8 # This can be any integer; higher is faster #-------------------------------------------------------------------------- # * initialize sets the starting lockpick x coordinate #-------------------------------------------------------------------------- def initialize( *arg ) super *arg self.bitmap = RPG::Cache.picture( 'lockpick_lockpick' ) self.x = LOCKPICK_X_OFFSET self.y = 355 @position = 0 @current = 0 @tumblers = 1 @tap_count = 0 end #-------------------------------------------------------------------------- # * move_right moves the lockpick right one tumbler #-------------------------------------------------------------------------- def move_right if @tap_count != 0 return end if @position >= @tumblers - 1 @position = @tumblers - 1 else @position += 1 end end #-------------------------------------------------------------------------- # * move_left moves the lockpick left one tumbler #-------------------------------------------------------------------------- def move_left if @tap_count != 0 return end if @position <= 0 @position = 0 else @position -= 1 end end #-------------------------------------------------------------------------- # * tap_up moves the lockpick in an upwards tapping motion #-------------------------------------------------------------------------- def tap_up @tap_count = 8 end #-------------------------------------------------------------------------- # * tap_down moves the lockpick in a downwards tapping motion #-------------------------------------------------------------------------- def tap_down @tap_count = -6 end #-------------------------------------------------------------------------- # * move? determines if the lockpick needs to move #-------------------------------------------------------------------------- def move? current_x = Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) return ( @current != current_x or @tap_count != 0 ) end #-------------------------------------------------------------------------- # * initialize sets the starting lockpick x coordinate #-------------------------------------------------------------------------- def update super # See if we're animated up or down if @tap_count != 0 # down if @tap_count < 0 self.x = @current + LOCKPICK_X_OFFSET self.y = 354 - @tap_count @tap_count += 1 else # up self.x = @current + LOCKPICK_X_OFFSET - @tap_count self.y = 356 - @tap_count @tap_count -= 1 end return end # See if we need to update position if not move? return elsif Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) > @current @current += LOCKPICK_MOVEMENT_SPEED else @current -= LOCKPICK_MOVEMENT_SPEED end # if we're close, just set it to the right value if ( @current - Scene_LockpickMinigame::CYLINDER_WIDTH * ( position + 1 ) / ( @tumblers + 1 ) ).abs <= LOCKPICK_MOVEMENT_SPEED / 2 @current = Scene_LockpickMinigame::CYLINDER_WIDTH * ( @position + 1 ) / ( @tumblers + 1 ) end self.x = @current + LOCKPICK_X_OFFSET self.y = 355 end end # class Lockpick # end # if SDK.enabled? Edited July 25, 2011 by giver SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]http://www.rpg2s.net/forum/index.php/topic/21892-vintagevisualsrewrite-enhanced-revised-victory-screen-v-35-da-autori-vari-a-giver/ http://www.rpg2s.net/forum/index.php/topic/21868-eventing-utility-simple-last-battle-events-fix-v-30-by-giver/ http://www.rpg2s.net/forum/index.php/topic/21853-vintagerewrite-constance-menu-per-4-personaggi-da-team-constance-a-giver/ http://www.rpg2s.net/forum/index.php/topic/22126-vintagedoveroso-necroedit-dummy-title-22u-update-per-crearlo-ad-eventi-su-mappa-by-giver/ http://www.rpg2s.net/forum/index.php/topic/22127-vintagevisuals-tale-chapters-save-system-20-by-giver/ Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !! http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gifNon riesco a smettere di essere affascinato da immagini come questa . . .http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpgAlcuni wallpapers che faccio ruotare sul mio vecchio PC . . .http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpghttp://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpghttp://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpghttp://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . . BBCode TestingTypeface & Size Link to comment Share on other sites More sharing options...
Guardian of Irael Posted July 26, 2011 Share Posted July 26, 2011 Se riuscirai a far sistemare quello script al diavolo l'SDK, lo userò assolutamente e ti bacerò quei batuffolosi piedini da coniglietto finchè non ti si consumeranno! XDOra mi si vede bene non più blu, funziona... XDPer il fatto delle SDK ci penserà il buon giver (ai miei piedini ci tengo! XDXD), dagli magari conferma degli edit che lui non possiede rpgmaker! ^ ^ (\_/)(^ ^) <----coniglietto rosso, me! (> <) Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^ http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^ http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^ REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^ 🖤http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gifhttp://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3http://i.imgur.com/MpaUphY.jpg by Idriu E:3Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44) http://i.imgur.com/PgUqHPm.pngUfficiale"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.pngGrazie Testament XD Fan n°1 ufficiale di PQ! :DVivail Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che nonavevo programmi di grafica per fare un banner su questo pc XD (ora ho dinuovo il mio PC veramente :D) Rosso Guardiano dellahttp://i.imgur.com/Os5rvhx.pngRpg2s RPG BY FORUM:Nome: Darth Reveal PV totali 2PA totali 16Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.Bozze vesti non definitive qui.Equipaggiamento:Indossa:60$ e 59$ divisi in due tasche interneLevaitanSpada a due mani elsa lungaGuanti del Defender (2PA)Anello del linguaggio animale (diventato del Richiamo)Scrinieri da lanciere (2 PA)Elmo del Leone (5 PA)Corazza del Leone in Ferro Corrazzato (7 PA) ZAINO (20) contenente:Portamonete in pelle di cinghiale contenente: 100$Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)CordaBottiglia di idromeleForma di formaggioTorcia (serve ad illuminare, dura tre settori)Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)Ampolla BiancaSemi di Balissa CAVALLO NORMALE + SELLA (30 +2 armi) contentente:66$Benda di pronto soccorso x3Spada a due maniFagotto per Adara (fazzoletto ricamato) Link to comment Share on other sites More sharing options...
André LaCroix Posted July 26, 2011 Share Posted July 26, 2011 Un sistema di lockpicking come quello di Oblivion? Figata :DCerto, la grafica fa abbastanza cagare, ma è sempre possibile sostituirla con le immagini originali del gioco.Se mi gira vedo di farne una versione ad eventi. (Sì, sono l'AnteroLehtinen che bazzica in chat. E... sì, una volta insegnavo storyboarding.)http://img26.imageshack.us/img26/7048/firmadn.png Link to comment Share on other sites More sharing options...
the legend Posted July 26, 2011 Share Posted July 26, 2011 Sembrerebbe interessante.... peccato che serve l'SDK.Comunque, non è lo stesso utilizzato da Theoras in Raldon? Nooooooooooooooooooooooooooooooooooooooooooo!Il mio meraviglioso progetto con Rpg Maker 2009 Ultimate, "A Frog's Story", è morto per sempre cancellato dal PC insieme a metà della mia chiave USB... Ci avevo lavorato dei mesi... Ma la vita va avanti XD Io non dico che sei scemo, ma se qualcuno lo dicesse, credo che approverei volentieri! Epic Quote! Link to comment Share on other sites More sharing options...
Aliuzz96 Posted July 26, 2011 Share Posted July 26, 2011 Uh, ci mancava questo script, che dire, molto interessante, da un tocco in più di originalità al gioco.^^Sembrerebbe interessante.... peccato che serve l'SDK.Comunque, non è lo stesso utilizzato da Theoras in Raldon?Mi pare di si, molte persone lo cercavano in passato. PROGETTI IN CORSO: http://img88.imageshack.us/img88/8484/bannerfirmabetatester.jpg ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------In chat il mio nickname sarà Aleks o Al, mi pento ancora di essermi messo il nick tamarro di Aliuzz.ç_ç http://img571.imageshack.us/img571/6659/alicei.pngmembro ufficiale fondatore n4 di mrfruffolobatuffolohttp://img717.imageshack.us/img717/4789/mrfruffolobanner.jpg Rudo:Ti ringrazio. Ci misi tutto me stesso diversi anni fa per realizzare CrystalQuest. Sebbene la mia visione sia cambiata con il passare del tempo, ci sono molti aspetti che manterrei se dovessi (per assurdo) realizzare una nuova avventura oggi. Questo non accade tutti i giorni,sono commosso.ç_ç Orgoglioso membro del trio *o* Link to comment Share on other sites More sharing options...
tidus26 Posted July 26, 2011 Share Posted July 26, 2011 ma farlo ad eventi no eh? XD, è semplice. http://i47.tinypic.com/245zg48.jpgEpic win:A nessuno è mai successo di fare sogni lucidi?Ne faccio solo opachi... =(Progetto in corso: Lands SiegeLands Siege, il destino è nelle tue mani. Se volete vedere un gioco degno del suo nome cliccate sul banner. Il gioco è ancora in via di sviluppo. Collaborazione speciale al progetto Lands Siege:Valentino Avon (Scripter)http://i33.tinypic.com/112fq1l.jpg Storia l l l l l l l l l lGrafica l l l l l l l l l lSonoro l l l l l l l l l lEventi l l l l l l l l l lScript l l l l l l l l l l Completamento gioco l l l l l l l l l l Contesthttp://i52.tinypic.com/2lazfpg.jpg Link to comment Share on other sites More sharing options...
Aliuzz96 Posted July 26, 2011 Share Posted July 26, 2011 ma farlo ad eventi no eh? XD, è semplice.si va bè che è "semplice" si lo è se ci si lavora ma anche un menu come la maggior parte del forum o molti altri script, tipo quello del salto e della corsa, ecc...sono semplici, si può fare quasi tutto quello che c'è tra gli script della community, ma più che altro qualcuno preferisce far da solo e altri preferiscono la pappa pronta per mancanza di tempo o perchè è quello che intendevano fare ed è lo script giusto che serve a quella persona, o anche i niubbi che si sono avvicinati al mondo del making da poco e guardano gli script per capirne di più in modo da vedere come si fa una determinata cosa, creditando gli autori, infondo gli script postati sevono a questo, no?xD PROGETTI IN CORSO: http://img88.imageshack.us/img88/8484/bannerfirmabetatester.jpg ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------In chat il mio nickname sarà Aleks o Al, mi pento ancora di essermi messo il nick tamarro di Aliuzz.ç_ç http://img571.imageshack.us/img571/6659/alicei.pngmembro ufficiale fondatore n4 di mrfruffolobatuffolohttp://img717.imageshack.us/img717/4789/mrfruffolobanner.jpg Rudo:Ti ringrazio. Ci misi tutto me stesso diversi anni fa per realizzare CrystalQuest. Sebbene la mia visione sia cambiata con il passare del tempo, ci sono molti aspetti che manterrei se dovessi (per assurdo) realizzare una nuova avventura oggi. Questo non accade tutti i giorni,sono commosso.ç_ç Orgoglioso membro del trio *o* Link to comment Share on other sites More sharing options...
André LaCroix Posted July 26, 2011 Share Posted July 26, 2011 Alt, alt.Non sembra poi così semplice, soprattutto per la parte della gestione dei movimenti delle pics. (Sì, sono l'AnteroLehtinen che bazzica in chat. E... sì, una volta insegnavo storyboarding.)http://img26.imageshack.us/img26/7048/firmadn.png Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now