## By Ho-oh 112 Version 1.0
## Allows you to choose pokemon, level, form, and tint (shiny, shadow, normal)
## Auto compiles/decompiles into gift.txt and loads gift.txt
## Todo, Make online compatible, add the rest of the pokemon stuff
## (moves, abillities, ect.)
def pbWriteGift
species=pbChooseSpecies(1)
if species!=0
species2 = species
species = species / 2 * 2
if species2 == species
isOdd = 1
else
isOdd = 2
end
species = species2
if isOdd >= 1
species = species + 1
end
if species >= 256 * 2
greater = 2 # when set to 2+ this will divide by 4 instead of 2
species = species / 4
end
if species < 256 * 2
species = species / 2
greater = 1 # when set to 1 AND ONLY 1 this will disable 4/
end
#Set Level
params=ChooseNumberParams.new
params.setRange(1,PBExperience::MAXLEVEL)
params.setInitialValue(5)
params.setCancelValue(0)
level=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's level."),params)
#set form
if level != 0
params=ChooseNumberParams.new
params.setRange(0,20)
params.setInitialValue(0)
params.setCancelValue(0)
form=Kernel.pbMessageChooseNumber(
_INTL("Set the Pokémon's Form."),params)
#set shiny/shadow
params=ChooseNumberParams.new
params.setRange(0,9)
params.setInitialValue(0)
params.setCancelValue(0)
shiny=Kernel.pbMessageChooseNumber(
_INTL("Shiny 1+, normal 0"),params)
params=ChooseNumberParams.new
params.setRange(0,9)
params.setInitialValue(0)
params.setCancelValue(0)
shadow=Kernel.pbMessageChooseNumber(
_INTL("Shadow 1+, normal 0"),params)
#set move 1
params=ChooseNumberParams.new
params.setRange(1,999)
params.setInitialValue(1)
params.setCancelValue(0)
move1=Kernel.pbMessageChooseNumber(
_INTL("Choose move1"),params)
#set move 2
params=ChooseNumberParams.new
params.setRange(1,999)
params.setInitialValue(1)
params.setCancelValue(0)
move2=Kernel.pbMessageChooseNumber(
_INTL("Choose move2"),params)
#set move 3
params=ChooseNumberParams.new
params.setRange(1,999)
params.setInitialValue(1)
params.setCancelValue(0)
move3=Kernel.pbMessageChooseNumber(
_INTL("Choose move3"),params)
#set move 4
params=ChooseNumberParams.new
params.setRange(1,999)
params.setInitialValue(1)
params.setCancelValue(0)
move4=Kernel.pbMessageChooseNumber(
_INTL("Choose move4"),params)
#Compiles
if shiny == 0
shiny = "n"
shiny.unpack("C")
end
if shadow == 0
shadow = "n"
shadow.unpack("C")
end
tint=[shiny, shadow]
moves=[move1, move2, move3, move4]
dat1=[species, level, tint, moves, isOdd, greater]
dat2=dat1.pack("CvM^*077700*^")
filename="Gifts/Gift.MG"
File.open(filename,"wb"){|f|
f.write(dat2)
}
end
end
end
def pbLoadGift
idOdd = 1
data = nil
if $Trainer.party.length == 6
Kernel.pbMessage(_INTL("Your party is full!"))
return
end
File.open("Gifts/Gift.MG","rb"){|f|
data=f.read
}
if data == nil
return false
end
dat=data.unpack("CvM^*077700*^")
species=dat[0]*2
level=dat[1]
tint=dat[2]
moves=dat[3]
isOdd=dat[4]
greater=dat[5]
shiny=tint[0]
shadow=tint[1]
if $PokemonGlobal.LastGift1 == dat
Kernel.pbMessage(_INTL("You've got this gift already."))
return
end
if $PokemonGlobal.LastGift2 == dat
Kernel.pbMessage(_INTL("You've got this gift already."))
return
end
if $PokemonGlobal.LastGift3 == dat
Kernel.pbMessage(_INTL("You've got this gift already."))
return
end
if $PokemonGlobal.LastGift4 == dat
Kernel.pbMessage(_INTL("You've got this gift already."))
return
end
if $PokemonGlobal.LastGift5 == dat
Kernel.pbMessage(_INTL("You've got this gift already."))
return
end
if species == nil
return false
end
if isOdd == nil
return false
end
if greater == nil
return false
end
if level == nil
level=1
end
if greater != 2
else
species = species / 2 * 4
end
if isOdd == 1
species = species - 1
end
if species > 493 || species < 0
return false
end
if level > PBExperience::MAXLEVEL || level < 0
return false
end
p=PokeBattle_Pokemon.new(species,level,$Trainer)
# Makes Shiny/Shadow
if shiny == 49
p.makeShiny
end
if shadow == 49
p.makeShadow
end
pbAddToParty(p)
end