Hola :D
Necesito la ayuda de un scripter, que sepa de Pokémon Essentials (Version Cedexia)
Bueno tengo la pokédex y al consultar el area de ubicación de un Pokémon me muestra un
cuadrado de color rojo, que va cambiando de opacidad, en el area donde se ubica tal Pokémon.
Busque en los script y esto se inicia en PokémonArea:
def pbFindEncounter(encounter,species)
return false if !encounter
for i in 0...encounter.length
next if !encounter
for j in 0...encounter.length
return true if encounter[j][0]==species
end
end
return false
end
class PokemonAreaMapScene
LEFT=0
TOP=0
RIGHT=28
BOTTOM=16
def pbStartScene(species,aseditor=false)
@editor=aseditor
@viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
@viewport.z=99999
@sprites={}
pbRgssOpen("Data/townmap.dat","rb"){|f|
@mapdata=Marshal.load(f)
}
mappos=!$game_map ? nil : pbGetMetadata($game_map.map_id,MetadataMapPosition)
if !mappos
mapindex=0
@map=@mapdata[0]
@mapX=LEFT
@mapY=TOP
else
mapindex=mappos[0]
@map=@mapdata[mappos[0]]
@mapX=mappos[1]
@mapY=mappos[2]
end
if !@map
Kernel.pbMessage(_INTL("The map data cannot be found."))
return false
end
@sprites["map"]=IconSprite.new(0,0,@viewport)
@sprites["map"].setBitmap("Graphics/Pictures/#{@map[1]}")
@point=BitmapWrapper.new(32,10)
@point.fill_rect(0,0,20,20,Color.new(255,0,0))
encdata=load_data("Data/encounters.dat")
points=[]
for enc in encdata.keys
enctypes=encdata[enc][1]
if pbFindEncounter(enctypes,species)
mappos=pbGetMetadata(enc,MetadataMapPosition)
points.push(mappos) if mappos
end
end
i=0
for point in points
s=SpriteWrapper.new(@viewport)
s.x=point[1]*16-3
s.y=point[2]*16-3
s.bitmap=@point
@sprites["point#{i}"]=s
i+=1
end
@numpoints=points.length
@sprites["mapbottom"]=MapBottomSprite.new(@viewport)
@sprites["mapbottom"].mapname=_INTL("Ubicación de {1}",PBSpecies.getName(species))
if points.length==0
@sprites["mapbottom"].maplocation=_INTL("Área desconocida")
else
@sprites["mapbottom"].maplocation=""
end
pbFadeInAndShow(@sprites) { pbUpdate }
return true
end
def pbUpdate
@numpoints.times {|i|
@sprites["point#{i}"].opacity=[80,100,120,140,120,100][(Graphics.frame_count/3)%6]
}
end
def pbEndScene
pbFadeOutAndHide(@sprites) { pbUpdate }
pbDisposeSpriteHash(@sprites)
@point.dispose
@viewport.dispose
end
def pbMapScene(mode=0)
loop do
Graphics.update
Input.update
pbUpdate
if Input.trigger?(Input::B) || Input.trigger?(Input::C)
break
end
end
end
end
class PokemonAreaMap
def initialize(scene)
@scene=scene
end
def pbStartScreen(species)
@scene.pbStartScene(species,$DEBUG)
@scene.pbMapScene
@scene.pbEndScene
end
end
Ese es el script, por lo que entendi en la parte Azul que destaqué se inicia el gráfico( un cuadrado rojo y su tamaño).
Y en la parte Roja que destaqué se inicia la opacidad del grafico.
Lo que quiero es reemplazar la parte Azul, para que me muestre un grafico que NO sea el cuadrado rojo, sino que muestre algun icono u otra imagen que tenga en alguna carpeta, por ejemplo cree un icono, este se llama pokemonpos.png y está en la carpeta Pictures, quiero que me inicie ese grafico pero ya lo he intentado de diferentes formas y no me resulta.
Bueno probé lo que dices, pero me surge el siguiente error
que está en el archivo adjunto.
Ojala puedieras solucionarlo :XD:
De todas fomas gracias por responder
for point in points
s=SpriteWrapper.new(@viewport)
s.x=point[1]*16-3
s.y=point[2]*16-3
s.bitmap=@point
@sprites["point#{i}"]=s
i+=1
end
Y lo cambias por esto:
for point in points
s=SpriteWrapper.new(@viewport)
s.x=point[1]*16-3+136
s.y=point[2]*16-3+64
s.bitmap = RPG::Cache.picture("pokemonpos")
s.z=99999999
@sprites["point#{i}"]=s
i+=1
end
Gracias rafa te pasaste :D
Me funciono bien, solo le arregle el pequeño detalle de la posición
for point in points
s=SpriteWrapper.new(@viewport)
s.x=point[1]*16-3
s.y=point[2]*16-3
s.bitmap = RPG::Cache.picture("pokemonpos")
s.z=99999999
@sprites["point#{i}"]=s
i+=1
end
Lo deje asi y me mostro la posición correcta :XD:
Gracias enserio :D:D:D:D:D:D:D