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
Question
xZekro51:.
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 endL'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
Link to comment
Share on other sites
6 answers to this question
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