PDA

View Full Version : [Essentials script] TM shop with compatible icons


FL
April 7th, 2012, 11:09 AM
#===============================================================================
# * TM shop with compatible icons - by FL (Credits will be apreciated)
#===============================================================================
#
# This script is for Pokémon Essentials. It displays your current party icons
# animated in shop screen and the pokémon that can learn a selected TM will be
# colored and more animated.
#
#===============================================================================
#
# To this script works, put it above main, put a 160x128 background box for
# pokémon icons in TMBOXPATH location and change the following lines in
# PokémonMart Script (use Ctrl+F to find it):
#
# -Change line 'def pbStartBuyOrSellScene(buying,stock,adapter)' to
# 'def pbStartBuyOrSellScene(buying,stock,adapter,tmshop=false)'
# -After line '@sprites["background"].setBitmap("Graphics/Pictures/martscreen")'
# put 'initializeTMSprites(tmshop)'
# -After each line
# '@sprites["icon"].src_rect=@adapter.getItemIconRect(itemwindow.item)' put
# 'checksTMs if @tmshop'
# -Change line 'def pbBuyScreen' to 'def pbBuyScreen(tmshop=false)'
# -Change line '@scene.pbStartBuyScene(@stock,@adapter)' to
# '@scene.pbStartBuyScene(@stock,@adapter,tmshop)'
# -Change line 'def pbPokemonMart(stock,speech=nil,cantsell=false)' to
# 'def pbPokemonMart(stock,speech=nil,cantsell=false, tmshop=false)'
# -Change line 'screen.pbBuyScreen' to 'screen.pbBuyScreen(tmshop)'
#
# To call it, use 'pbPokemonMart([ITEMS],nil,false,true)'
# Ex: A 'pbPokemonMart([PBItems::TM01,PBItems::TM02,PBItems::TM03])' will be
# 'pbPokemonMart([PBItems::TM01,PBItems::TM02,PBItems::TM03],nil,false,true)'
#
#===============================================================================

class PokemonMartScene

TMBOXPATH="Graphics/Pictures/marttmbox" # You can change if you wish

def initializeTMSprites(tmshop)
@tmshop=tmshop
if tmshop
@sprites["tmbox"]=IconSprite.new(0,Graphics.height-224,@viewport)
@sprites["tmbox"].setBitmap(TMBOXPATH)
for i in 0...$Trainer.party.length
next if $Trainer.party[i].egg? # Ignores eggs
@sprites["pokemon#{i}"]=PokemonIconSprite.new($Trainer.party[i],@viewport)
@sprites["pokemon#{i}"].x=48*(i/2)
@sprites["pokemon#{i}"].y=(Graphics.height-228)+56*(i%2)
end
end
end

def checksTMs
for i in 0...$Trainer.party.length
next if $Trainer.party[i].egg?
flag=false
item=@sprites["itemwindow"].item
if $ItemData[item][ITEMPOCKET]==4
machine=$ItemData[item][ITEMMACHINE]
flag=pbSpeciesCompatible?($Trainer.party[i].species,machine)
end
# If you don't wish the selected animation change
# the below line for 'if false'
if @sprites["pokemon#{i}"].selected!=flag
@sprites["pokemon#{i}"].selected=flag
(flag) ? @sprites["pokemon#{i}"].x-=8 : @sprites["pokemon#{i}"].x+=8
end
gray=0
gray=255 if !flag # Comment this line if you didn't want the uncolored sprite
@sprites["pokemon#{i}"].tone=Tone.new(0,0,0,gray)
end
end

def pbStartBuyScene(stock,adapter,tmshop=false) #redefine
pbStartBuyOrSellScene(true,stock,adapter,tmshop)
end

end

overstood
April 7th, 2012, 12:21 PM
nice one. works for me
jkghklöä:bandit:

FL
April 7th, 2012, 01:31 PM
I mistake the TM pocket (put 'if $ItemData[item][ITEMPOCKET]==3' when the right is 'if $ItemData[item][ITEMPOCKET]==4').
I updated the script in topic.

Nickalooose
April 9th, 2012, 01:17 AM
Clever idea! I like it... Um I can't post such a small reply apparently...