Registrarse

[Essentials] Funciones para el Pokegear

Alex_Game_Maker

Loriense Honorario
Es mi primer tutorial en este foro ¬¬ lo hago porque pase bastante tiempo buscando y no encontraba, por lo que tuve que aprender casi por mi cuenta...

Les enseñare a añadir funciones al Pokegear, y a tener funciones desbloqueables.


Debido a una alta serie de problemas con el BBCode del foro, la parte de los scripts en el tutorial quedaba mal, por eso lo dejo como un documento .odt en mediafire. Disfrutenlo

http://www.mediafire.com/file/1slpcculej19bab/Funciones+de+Pokegear.odt

Espero que le sirva el tutorial, el siguiente sera de como agregar la funcion de PC sin las opciones de Sacar, Dejar, Mover, etc.

Att. Su amigo loriense, Alex_Game_Maker
 
Última edición:
Hola!, muy buen tutorial algo confuso para mi ya que soy nuevo en esto, emm, cambiando el tema, me sale un error ya te muestro..

???? Pscreen_Pokegear 88 ???? SyntaxError ????, el "88" creo que significa que hay un error en la linea de scrip seccion de Pscreen_Pokegear en esa linea, que es donde esta insertado el primer script que dijistes, ayudame a solucionarlo :(
 

Alex_Game_Maker

Loriense Honorario
Hola!, muy buen tutorial algo confuso para mi ya que soy nuevo en esto, emm, cambiando el tema, me sale un error ya te muestro..

???? Pscreen_Pokegear 88 ???? SyntaxError ????, el "88" creo que significa que hay un error en la linea de scrip seccion de Pscreen_Pokegear en esa linea, que es donde esta insertado el primer script que dijistes, ayudame a solucionarlo :(
Acabo de leer el tutorial y me doy cuenta de que cada vez que escribi CMD o Sprite dejo un espacio luego de eso, quizas sea eso lo que causa el error, ya que no debe de ir ese espacio. Toma como ejemplo la linea superior a esa (la de la Radio)
 
Sigue sin funcionar, ahora es la linea 161 pasame el Script completo y la proxima deberias de descargar un Pokemon Essensials sin nada de modificacion y lo pruebas y despues pasas script y asi te corrijes
 

Alex_Game_Maker

Loriense Honorario
Sigue sin funcionar, pasame el Script completo y la proxima deberias de descargar un Pokemon Essensials sin nada de modificacion y lo pruebas y despues pasas script y asi te corrijes
Yo uso el pokemon essentials normal en español. la version 16.2
Aqui esta como tengo mi script:

class PokegearButton < SpriteWrapper
attr_reader :index
attr_reader :name
attr_accessor :selected

def initialize(x,y,name="",index=0,viewport=nil)
super(viewport)
@index=index
@name=name
@selected=false
fembutton=pbResolveBitmap(sprintf("Graphics/Pictures/pokegearButtonf"))
if $Trainer.isFemale? && fembutton
@button=AnimatedBitmap.new("Graphics/Pictures/pokegearButtonf")
else
@button=AnimatedBitmap.new("Graphics/Pictures/pokegearButton")
end
@contents=BitmapWrapper.new(@button.width,@button.height)
self.bitmap=@contents
self.x=x
self.y=y
refresh
update
end

def dispose
@button.dispose
@contents.dispose
super
end

def refresh
self.bitmap.clear
self.bitmap.blt(0,0,@button.bitmap,Rect.new(0,0,@button.width,@button.height))
pbSetSystemFont(self.bitmap)
textpos=[ # Name is written on both unselected and selected buttons
[@name,self.bitmap.width/2,10,2,Color.new(248,248,248),Color.new(40,40,40)],
[@name,self.bitmap.width/2,62,2,Color.new(248,248,248),Color.new(40,40,40)]
]
pbDrawTextPositions(self.bitmap,textpos)
icon=sprintf("Graphics/Pictures/pokegear"+@name)
imagepos=[ # Icon is put on both unselected and selected buttons
[icon,18,10,0,0,-1,-1],
[icon,18,62,0,0,-1,-1]
]
pbDrawImagePositions(self.bitmap,imagepos)
end

def update
if self.selected
self.src_rect.set(0,self.bitmap.height/2,self.bitmap.width,self.bitmap.height/2)
else
self.src_rect.set(0,0,self.bitmap.width,self.bitmap.height/2)
end
super
end
end



#===============================================================================
# - Scene_Pokegear
#-------------------------------------------------------------------------------
# Modified By Harshboy
# Modified by Peter O.
# Also Modified By OblivionMew
# Overhauled by Maruno
#===============================================================================
class Scene_Pokegear
#-----------------------------------------------------------------------------
# initialize
#-----------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#-----------------------------------------------------------------------------
# main
#-----------------------------------------------------------------------------
def main
commands=[]
# OPTIONS - If you change these, you should also change update_command below.
@CMDMap=-1
@CMDPhone=-1
@CMDJukebox=-1
commands @CMDMap=commands.length]=_INTL("Mapa") if $game_switches[99]
commands @CMDPhone=commands.length]=_INTL("Celular") if $PokemonGlobal.phoneNumbers &&
$PokemonGlobal.phoneNumbers.length>0
commands @CMDJukebox=commands.length]=_INTL("Radio")
commands @CMDPcchecker=commands.length]=_INTL("PC Pokemon")
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@button=AnimatedBitmap.new("Graphics/Pictures/pokegearButton")
@Sprites={}
@Sprites["background"] = IconSprite.new(0,0)
femback=pbResolveBitmap(sprintf("Graphics/Pictures/pokegearbgf"))
if $Trainer.isFemale? && femback
@Sprites["background"].setBitmap("Graphics/Pictures/pokegearbgf")
else
@Sprites["background"].setBitmap("Graphics/Pictures/pokegearbg")
end
@Sprites["command_window"] = Window_CommandPokemon.new(commands,160)
@Sprites["command_window"].visible = false
@Sprites["command_window"].index = @menu_index
for i in 0...commands.length
x=118
y=196 - (commands.length*24) + (i*48)
@Sprites["button#{i}"]=PokegearButton.new(x,y,commands,i,@viewport)
@Sprites["button#{i}"].selected=(i= @Sprites["command_window"].index)
@Sprites["button#{i}"].update
end
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
pbDisposeSpriteHash @Sprites)
end
#-----------------------------------------------------------------------------
# update the scene
#-----------------------------------------------------------------------------
def update
for i in 0.. @Sprites["command_window"].commands.length
sprite @Sprites["button#{i}"]
sprite.selected=(i= @Sprites["command_window"].index) ? true : false
end
pbUpdateSpriteHash @Sprites)
#update command window and the info if it's active
if @Sprites["command_window"].active
update_command
return
end
end
#-----------------------------------------------------------------------------
# update the command window
#-----------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
pbPlayCancelSE()
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if @CMDMap>=0 && @Sprites["command_window"].index= @CMDMap
pbPlayDecisionSE()
pbShowMap(-1,false)
end
if @CMDPhone>=0 && @Sprites["command_window"].index= @CMDPhone
pbPlayDecisionSE()
pbFadeOutIn(99999) {
PokemonPhoneScene.new.start
}
end
if @CMDJukebox>=0 && @Sprites["command_window"].index= @CMDJukebox
pbPlayDecisionSE()
$scene = Scene_Jukebox.new
end
if @CMDPcchecker>=0 && @Sprites["command_window"].index= @CMDPcchecker
pbPlayDecisionSE()
scene=PokemonStorageScene.new
screen=PokemonStorageScreen.new(scene,$PokemonStorage)
screen.pbStartScreen(2)
end
return
end
end
end


Pero debe ser lo mismo, despues de cmd debe haber un espacio, es un problema del foro, no del script. Los mismo con la palabra sprite
 

kanda

Creador de Pokémon HighSchool
Qué pasada de tutorial, ¡me ha encantado! ¡¡Y que lo hayas tenido que currártelo tú aprendiendo de cero porque no había!!

Sin duda lo probaré a la tarde cuando me ponga con RPG Maker y ya te diré si va bien o no (dado que ya he visto que Qlous no consigue que funcione) ;D

¡Gracias por el tutorial!
 

argomii

Cronista del sufrimiento
Muchas gracias por hacer este fantástico tutorial^^ te agradezco mucho, me ahorrara horas buscando.
 

kanda

Creador de Pokémon HighSchool
Buenas Alex, yo también uso Pokémon Essentials 16.2 me funciona perfectamente!!

Eso sí, al principio, al igual que Qlous tampoco me funciona en su totalidad.

El primer punto bien, el de la línea 88, me aparece una nueva opción en el PokéGear.

Sin embargo, al clicarlo me saltaba un error. He estado como un loco queriendo solucionarlo y al final, he copiado y pegado el nuevo código que has puesto y me ha funcionado.

No sé qué parte estaba mal al principio, pero ya me funciona, ¡¡gracias!!

Esto es lo que me ha quedado al final hacia la línea 162, por si a alguien que no le funciona el de arriba (pongo en rojo el nombre del comando):
Código:
if  [MENTION=31539]CMD[/MENTION][COLOR="red"]PC[/COLOR]>=0 &&  [MENTION=24071]Sprite[/MENTION]s["command_window"].index=  [MENTION=31539]CMD[/MENTION][COLOR="Red"]PC[/COLOR]
        pbPlayDecisionSE()
        scene = PokemonStorageScene.new
        screen = PokemonStorageScreen.new(scene,$PokemonStorage)
        screen.pbStartScreen(2)
      end

¿Se te ocurre alguna manera de no dejar que pokémon debilitados puedan ser transferidos?
 

Alex_Game_Maker

Loriense Honorario
¿Se te ocurre alguna manera de no dejar que pokémon debilitados puedan ser transferidos?
Si se puede hacer, yo lo tengo asi en mi proyecto (no permite sacar, meter o mover, solo ver los datos y marcarlos), pero para eso hay que editar el script PScreen_Storage, es un procedimiento algo largo que dejare para mi siguiente tutorial, que hare en cuanto solucione los errores de este ¬¬
 

kanda

Creador de Pokémon HighSchool
¡Estaré atento a ese post Alex! :) Gracias por la iniciativa, me ha gustado mucho.

Y sobre el código creo que el error es del foro, ya que al escribir al menos cmd y sprite los reconoce como usuarios aunque los pongas dentro de la etiqueta code, no es cosa tuya. :)
 
Arriba