• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

TM shop with compatible icons

FL

Pokémon Island Creator
2,444
Posts
13
Years
  • Seen Apr 22, 2024
Code:
#===============================================================================
# * 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"][email protected](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].isEgg? # 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].isEgg?
    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
 

Attachments

  • tmshopscreen.png
    tmshopscreen.png
    6.4 KB · Views: 250
  • marttmbox.png
    marttmbox.png
    1.4 KB · Views: 117
Last edited:

FL

Pokémon Island Creator
2,444
Posts
13
Years
  • Seen Apr 22, 2024
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

--------------------
1,309
Posts
16
Years
  • Seen Dec 28, 2023
Clever idea! I like it... Um I can't post such a small reply apparently...
 
Back
Top