Jump to content
Rpg²S Forum

xZekro51:.

Utenti
  • Posts

    60
  • Joined

  • Last visited

Posts posted by xZekro51:.

  1. Teoricamente la scelta in prima persona dovrebbe essere una delle cose principali del game, altrimenti sarebbe molto più "come tutti gli altri giochi". Inoltre non è possibile farlo ad eventi con le pictures, perchè ci va di mezzo anche il pbMouseOver?, che è un metodo che implica che se il mouse è su una certa immagine fa tot azione (nel mio caso fa vedere un indice che fa su e giù.

  2. Salve a tutti, come da titolo volevo sottoporvi un problema che sto riscontrando con la scelta dello starter in Pokémon essentials v12.

    Il problema non è la scelta dello starter in sè, lì va tutto come voglio io, il problema lo trovo con la pbEndScene.

    Di seguito lo script:

     

     

    class ScenaPkmnInizialiScene
    
      def update
            pbUpdateSpriteHash(@sprites)
      end
    
      def pbStartScene
            @sprites={}
            @viewport=Viewport.new(0, 0, Graphics.width, Graphics.height)
            @viewport.z=99999
            #                                      Here all Images
            if $Trainer && $game_switches[78]==true
            @sprites["BG"]=Sprite.new(@viewport)
            @sprites["BG"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/BG")
            @sprites["BG"].x=0
            @sprites["BG"].y=0
            @sprites["Tavolo"]=Sprite.new(@viewport)
            @sprites["Tavolo"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/Tavolo")
            @sprites["Tavolo"].x=10*2
            @sprites["Tavolo"].y=160*2
            @sprites["Tavolo"].zoom_x=2
            @sprites["Tavolo"].zoom_y=2
            @sprites["Erba"]=Sprite.new(@viewport)
            @sprites["Erba"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/PokeErba")
            @sprites["Erba"].x=49*2
            @sprites["Erba"].y=146*2
            @sprites["Fuoco"]=Sprite.new(@viewport)
            @sprites["Fuoco"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/PokeFuoco")
            @sprites["Fuoco"].x=142*2
            @sprites["Fuoco"].y=151*2
            @sprites["Acqua"]=Sprite.new(@viewport)
            @sprites["Acqua"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/PokeAcqua")
            @sprites["Acqua"].x=235*2
            @sprites["Acqua"].y=144*2
            @sprites["Indice"]=Sprite.new(@viewport)
            @sprites["Indice"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/IndiceIndicatore")
            @sprites["Indice"].y=120*2
            @sprites["Indice"].zoom_x=2
            @sprites["Indice"].zoom_y=2
            @sprites["Indice"].opacity=0
            @sprites["Drakass"]=Sprite.new(@viewport)
            @sprites["Drakass"].bitmap=BitmapCache.load_bitmap("Graphics/Battlers/650")
            @sprites["Drakass"].x=57*2
            @sprites["Drakass"].y=100*2
            @sprites["Drakass"].opacity=0
            @sprites["Termace"]=Sprite.new(@viewport)
            @sprites["Termace"].bitmap=BitmapCache.load_bitmap("Graphics/Battlers/653")
            @sprites["Termace"].x=147*2
            @sprites["Termace"].y=103*2
            @sprites["Termace"].opacity=0
            @sprites["Overub"]=Sprite.new(@viewport)
            @sprites["Overub"].bitmap=BitmapCache.load_bitmap("Graphics/Battlers/656")
            @sprites["Overub"].x=234*2
            @sprites["Overub"].y=107*2
            @sprites["Overub"].opacity=0
            @sprites["si"]=Sprite.new(@viewport)
            @sprites["si"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/Si")
            @sprites["si"].x=32*2
            @sprites["si"].y=354*2
            @sprites["si"].visible=false
            @sprites["no"]=Sprite.new(@viewport)
            @sprites["no"].bitmap=BitmapCache.load_bitmap("Graphics/Scelta/No")
            @sprites["no"].x=232*2
            @sprites["no"].y=354*2
            @sprites["no"].opacity=0
            @sprites["msgwindow"]=Kernel.pbCreateMessageWindow
            @sprites["msgwindow"].visible=true
            @sprites["msgwindow"].viewport=@viewport
            #@sprites["msgwindow"].text=""
            #@sprites["msgwindow"].text="In ognuna di queste tre PokéBall è contenuto un Pokémon."
            @sprites["msgwindow"].text="Quale tra queste tre Pokéball scegli?"
            @sprites["msgwindow"].x=0
            @sprites["msgwindow"].y=274*2
            @sprites["msgwindow"].width=Graphics.width
            @sprites["msgwindow"].height=96
            #Kernel.pbMessageDisplay(msgwindow,_INTL("Quale Pokémon scegli?"),letterbyletter=true,commandProc=nil)
            $game_system.message_position=3
            pbFadeInAndShow(@sprites) { update }
            end
      end
    
      def pbEndScene
            $mouse.update
            Input.update
            pbFadeOutAndHide(@sprites) { update }
            pbDisposeSpriteHash(@sprites)
            @viewport.dispose
            $game_system.message_position=2
      end 
          
      def pbSelezionePkmn
            loop do
              Graphics.update
              Input.update
              $mouse.visible
              $mouse.update
              self.update
              #                              Here all commands
              if Input.trigger?(Input::RIGHT)
              @sprites["Indice"].x=56*2            
            end
              if pbMouseOver?(@sprites["Erba"])
                  @sprites["Indice"].opacity=255
                  @sprites["Indice"].x=55*2
                  Graphics.update
                  $mouse.update
                  update
              end
              if pbMouseOver?(@sprites["Fuoco"])
                  @sprites["Indice"].x=149*2
                  @sprites["Indice"].y=124*2
                  @sprites["Indice"].opacity=255
                  Graphics.update
                  $mouse.update
                  update
                else
                  @sprites["Indice"].y=120*2
              end
              if pbMouseOver?(@sprites["Acqua"])
                  @sprites["Indice"].x=242*2
                  @sprites["Indice"].opacity=255
                  Graphics.update
                  $mouse.update
                  update
              end
              if @sprites["Indice"].y=120*2
                 for i in 1..6
                  @sprites["Indice"].y+=3
                  Graphics.update
                  $mouse.update
                  update
                end
              end
              if @sprites["Indice"].y=132*2
                 for i in 1..6
                  @sprites["Indice"].y-=3
                  Graphics.update
                  $mouse.update
                  update
                end
              end         
              if pbMouseLeftClick?(@sprites["Erba"])
                @sprites["msgwindow"].visible=false
                ret=false
               #for i in 1..5
              if Kernel.pbConfirmMessage(_INTL("Vuoi il pokémon di tipo Erba Drakass?"))
               if pbErba#pbMouseLeftClick?(@sprites["si"])#32*2,354*2,76*2,76*2)#74*2,76*2)#LeftClickRel?(@sprites["si"],0)
                 ret=true
               else
                 ret=false
                 return pbSelezionePkmn
               end
              end
            end
                if Input.trigger?(Input::B)
                  break
                end
                end
              end
            end
                    
          def pbErba
            pbAddPokemon(PBSpecies::DRAKASS,5)
            $game_system.message_position=2
            pbFadeOutAndHide(@sprites) { update }
            pbDisposeSpriteHash(@sprites)
            @viewport.dispose
            $game_switches[90]=true
            pbEndScene
          end
            
              break if Input.trigger?(Input::B) # se premi B (cioè X) uscirai dalla scena
    #      end  
    
    #==============================================================================
    # * classe per eseguire tutta la scena
    # usa pbCallSelezionePkmn per richiamare la scena tramite evento
    #==============================================================================
    class ScenaPkmnIniziali
      def initialize(scene)
                    @scene=scene
      end
      def pbStartScreen
                    @scene.pbStartScene
                    @scene.pbSelezionePkmn
                    @scene.pbEndScene
      end
    end
    
    def pbCallSelezionePkmn
      scene=ScenaPkmnInizialiScene.new
      screen=ScenaPkmnIniziali.new(scene)
      screen.pbStartScreen
    end
    

     

     

     

    L'errore che esce è questo

     

    Message: Script error within event 2, map 33 (Red 1° Piano):
    Exception: NoMethodError
    Message: Section154:2:in `pbMouseOver?'undefined method `x' for nil:NilClass
    ***Full script:
    pbCallSelezionePkmn

    Interpreter:243:in `pbExecuteScript'
    Scelta Pokémon:150:in `pbSelezionePkmn'
    Scelta Pokémon:103:in `loop'
    Scelta Pokémon:224:in `pbSelezionePkmn'
    Scelta Pokémon:260:in `pbStartScreen'
    Scelta Pokémon:268:in `pbCallSelezionePkmn'
    (eval):1:in `pbExecuteScript'
    Interpreter:1600:in `eval'
    Interpreter:243:in `pbExecuteScript'
    Interpreter:1600:in `command_355'

    Interpreter:276:in `pbExecuteScript'
    Interpreter:1600:in `command_355'
    Interpreter:494:in `execute_command'
    Interpreter:193:in `update'
    Interpreter:106:in `loop'
    Interpreter:198:in `update'
    Scene_Map:104:in `update'
    Scene_Map:102:in `loop'
    Scene_Map:115:in `update'
    Opal Menu:37:in `main'
    Exception: RuntimeError
    Message: Script error within event 2, map 33 (Red 1° Piano):
    Exception: NoMethodError
    Message: Section154:2:in `pbMouseOver?'undefined method `x' for nil:NilClass
    ***Full script:
    pbCallSelezionePkmn

    Interpreter:243:in `pbExecuteScript'
    Scelta Pokémon:102:in `pbSelezionePkmn'
    Scelta Pokémon:92:in `loop'
    Scelta Pokémon:158:in `pbSelezionePkmn'
    Scelta Pokémon:185:in `pbStartScreen'
    Scelta Pokémon:193:in `pbCallSelezionePkmn'
    (eval):1:in `pbExecuteScript'
    Interpreter:1600:in `eval'
    Interpreter:243:in `pbExecuteScript'
    Interpreter:1600:in `command_355'

    Interpreter:276:in `pbExecuteScript'
    Interpreter:1600:in `command_355'
    Interpreter:494:in `execute_command'
    Interpreter:193:in `update'
    Interpreter:106:in `loop'
    Interpreter:198:in `update'
    Scene_Map:104:in `update'
    Scene_Map:102:in `loop'
    Scene_Map:115:in `update'
    Opal Menu:37:in `main'

     

     

    Da quello che ho capito l'errore lo trova nel pbMouseOver?, che però funziona correttamente. qualcuno è in grado di aiutarmi? x.x

     

  3. Pokemon Essentials (ho inserito uno screen molto vecchio per rendere tutto più chiaro) :

    http://fc09.deviantart.net/fs70/f/2012/292/1/7/calm_wind____by_xzekro51-d5i9v8i.png



    Winged Angel (è solo uno screen di prova =-=) :

    Vedete la scritta leggermente sfocata perchè ho fatto lo screen con un po' troppa precedenza xDhttp://i57.tinypic.com/f3ylv6.png

     

     

    Nel primo screen si vede la textbox che in realtà è un'immagine. Nel secondo screen ho provato ad aggiustare la textbox da me, però ci sono alcune cose che ancora non funzionano D: inoltre vorrei non utilizzare la windowskin standard ma un'immagine sopra ala quale apparirà poi il testo, come nel primo screen.

     

    @Guardian of Irael: Sono interessato solo ai testi che vedi tramite evento sulla mappa :D

  4. Dopo essere tornato nel mondo del making, ho iniziato un nuovo progetto: Winged Angel. Il problema che ho attualmente e che considero più urgente è la windowskin. Se avete presente quella di Pokemon Essentials, è un immagine, e non una windowskin come quella standard di RMXP. Ora ciò che vorrei riuscire a fare è utilizzare proprio un immagine come windowskin. Grazie in anticipo :D

     

  5. Eh, allora non piangere sul codice versato e postamelo XD

    Ricorda comunque che in teoria le conoscenze che posso avere sono fondamentalmente empiriche; non ho studiato la materia, ma posso comunque provare a orientarmici ; )

    #Test per creare un HUD di Base
    
    class HUD
    def initialize
    @hud = Sprite.new
    @hud.bitmap = RPG::Cache.picture("nHP")
    @hud.x = 275
    @hud.y = 232
    @hud.z = 2
    @face = Sprite.new
    @face.bitmap = RPG::Cache.picture("Sora_face")
    @n = 0
    @hp = 0
    @hp_percentuale = 0
    update
    end
    
    def update
    @hudm = Sprite.new  
    @hudm.bitmap = RPG::Cache.picture("Max_HP1quart"+$game_party.actors[0].hp.to_s) #se Sora è il primo personaggio del gruppo
    @hudm.x = 275
    @hudm.y = 232
    @hudm.z = 3
    
    if @hp != $game_party.actors[0].hp
    if @hp > $game_party.actors[0].hp
    @face.bitmap = RPG::Cache.picture("HPDown")
    else
    @face.bitmap = RPG::Cache.picture("Sora_face")
    end
    @hp = $game_party.actors[0].hp
    else
    @face.bitmap = RPG::Cache.picture("Sora_face")
    end
    @hp_percentuale = $game_party.actors[0].hp
    @hp_percentuale *= 100
    @hp_percentuale /= $game_party.actors[0].maxhp
    if @hp_percentuale = 15
    @face.bitmap = RPG::Cache.picture("HPCrisis")
    end
    end
    end
×
×
  • Create New...