Registrarse

Duda sobre Script

Estado
Cerrado para nuevas respuestas.

randaku

Pokémon Cielo Infinito
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.
 

randaku

Pokémon Cielo Infinito
Rafael-animal dijo:
Prueba a cambiar estas líneas:

@point=BitmapWrapper.new(32,10)
@point.fill_rect(0,0,20,20,Color.new(255,0,0))
Por estas:

@point = Sprite.new
@point.bitmap = RPG::Cache.picture("pokemonpos")
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
 

randaku

Pokémon Cielo Infinito
Gracias rafa te pasaste :D
Me funciono bien, solo le arregle el pequeño detalle de la posición
Código:
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
 
Estado
Cerrado para nuevas respuestas.
Arriba