Hi !
Do you know how it's possible to have a line of tile made so that, everytime you step on them, some character does the -!- reaction, and comes to you, say something, and then get back to its places ? I was able nor to move the guy, nor to find on I can do the -!- reaction.
Thanks !
if you're talking about a trainer battle, it's explained in the notes.html. if you're talking something like the old man in virdian city who teaches you about catching pokemon, then i believe the best way to be setup events on every one of the tiles in the line.
Yeah I guess I had to put events on every tile of the line. But what do I have to had to make the -!- sign appear ?
Actually, I had a thought and I discovered something a bit easier. You can treat your event as a trainer, but just not include the actual battling part.Yeah I guess I had to put events on every tile of the line. But what do I have to had to make the -!- sign appear ?
Kernel.pbNoticePlayer(get_character(0))
Actually, I had a thought and I discovered something a bit easier. You can treat your event as a trainer, but just not include the actual battling part.
That is, rename your event to "Trainer(3)" (where the 3 can be replaced by its range, presumably the entire width of a path) and use the following script:
This script pops up the "!" bubble and moves the event next to the player. The purpose of the name "Trainer(3)" (without a space) makes the event activate only when the player comes within that range, even if it's not a trainer.Code:Kernel.pbNoticePlayer(get_character(0))
The only downside with this is that, unless you're tricky with other events that can temporarily become blockable, or you always place these events right next to a non-passable object (e.g. house/tree/fence), you can't return the event back to exactly where it started afterwards. But I'm sure you can play around and see what you can come up with.
I was wondering where I would locate the pbHeadbutt script. I am planning on changing it a bit but cannot seem to locate it :S. Any help would be awesome.
pbHeadbutt would be in the PokemonField script on lines 1795, 1815, 1821, 2090, 2091 and 2501. if you press control, shift and F, it'll allow you to search all the scripts for certain snippets and whatnot. it makes finding stuff a flash.
ok, for all those in the essentials community, i have come across a script that would allow more than 999 maps. i believe this would come in handy for those devs who are trying to make all regions plus they're own, or something to that effect. anyways, the problem is, when i tried to insert the script, i came across an error. if this script can be intergrated into essentials, it would help alot of devs, including myself, with large projects that span across alot of maps. well here's the original script:
Spoiler:#==============================================================================
# ** Disc Changer script (Designed for Legend of Harpine)
#------------------------------------------------------------------------------
# Zeriab
# 1.05
# 2008-09-20
#------------------------------------------------------------------------------
# Allows you to change the disc, where each disc can contain 999 maps
#==============================================================================
=begin
INSTRUCTIONS
------------
If you do not have the SDK then you have to change Game_Map
In the Game_Map setup method change the load_data line to this: (Line 50)
# Load map from file and set @map
@map = load_data(sprintf("Data/%sMap%03d.rxdata", $game_system.disc, @map_id))
After you have done this the below will work.
This script enables the change_disc command. Use script calls to change the disc.
For disc 1 create a subfolder in your data folder called 'disc1' and place the
map files for disc 1 in there.
For disc 2 you should create a subfolder called 'disc2' and place the map files
for disc 2 in there. And so on for each of your discs.
The syntax is:
change_disc(number, id = nil, x = nil, y = nil, direction = nil)
The nil numbers mean that those arguments are optional. When you don't use them
then they are set to whatever the current map_id, x, y and direction are at the
moment.
If you want to change to disc 2 then you can put this in a script call:
change_disc(2)
You will then be transfered to disc 2 with the same map id and coordinates as
what the player currently has.
If you want to be more precise and say you want to change to disc 2 on the map
with id 10 and the player must be placed at the tile with x = 6 and y = 13 then
you should put this in a call script:
change_disc(2, 10, 6, 13)
Note that when you start the game the maps directly in the data folder is used.
You can back to them by changing to disc number 0.
Basically, disc number 0 is the maps directly in the data folder and not in any
of the sub folders.
The final argument is the direction. By default the player retains the current
direction. You can put 6 different values as direction:
0, 10 : No change
2 : Turn Down
4 : Turn Left
6 : Turn Right
8 : Turn Up
If you for example want to transfer the player to disc 1, map 43 at x = 30 and
y = 4 with the player looking down you should put this in a call script:
change_disc(1, 43, 30, 4, 2)
*hugs*
- Zeriab
=end
class Game_System
attr_writer :disc
def disc
@disc ||= ''
@disc
end
end
class Game_Temp
attr_accessor :disc_changing
end
class Game_Map
attr_writer :map_id
if Module.constants.include?('SDK')
def setup_load
# Load map from file and set @map
@map = load_data(sprintf("Data/%sMap%03d.rxdata", $game_system.disc, @map_id))
end
end
end
def change_disc(number, id = nil, x = nil, y = nil, direction = nil)
# Change disc
if number.is_a?(Integer)
$game_system.disc = "disc#{number}/"
else
disc = number.to_s
disc += '/' unless disc[-1] == 47
$game_system.disc = disc
end
# Process arguments
map_id = id.is_a?(Integer) ? id : $game_map.map_id
x = $game_player.x unless x.is_a?(Integer)
y = $game_player.y unless y.is_a?(Integer)
direction = $game_player.direction unless direction.is_a?(Integer)
# Set transferring player flag
$game_temp.player_transferring = true
# Set transferring player flag
$game_temp.disc_changing = true
# Set player move destination
$game_temp.player_new_map_id = map_id
$game_temp.player_new_x = x
$game_temp.player_new_y = y
$game_temp.player_new_direction = direction
# Change the current map id in case the new and old are identical.
$game_map.map_id = 0
end
and the error:
Spoiler:Exception: ArgumentError
Message: invalid value for Integer: ""
Game_Map_:33:in `sprintf'
Game_Map_:33:in `setup'
PokemonMap:640:in `setup'
PokemonLoad:376:in `pbStartLoadScreen'
PokemonLoad:349:in `open'
PokemonLoad:349:in `pbStartLoadScreen'
PokemonLoad:293:in `loop'
PokemonLoad:395:in `pbStartLoadScreen'
Scene_Intro:139:in `to_title_update'
Scene_Intro:62:in `main'
Did you do this?
Spoiler:If you do not have the SDK then you have to change Game_Map
In the Game_Map setup method change the load_data line to this: (Line 50)
# Load map from file and set @map
@map = load_data(sprintf("Data/%sMap%03d.rxdata", $game_system.disc, @map_id))
After you have done this the below will work.
In this case, I guess it would be line 33 you have to change instead.
1 - Yes, and it's completely easy. It was also asked in here not that long ago. I'm surprised your searching for answers before asking the questions didn't come up with anything.I have 2 questions and i hope someone can help, because they're sort of essential lol.
1 - Is there any way to edit the max level that a Pokemon can be?
I've seen it somewhere before, but I can't remember where, and it was when I wasn't really developing...
2 - Also how can i make the exp gain animation in battles go the other way up the battle box, from right to left instead of from left to right.
Any help would be appreciated ^_^
Thanks.
expFullBar=PokeBattle_Scene::EXPGAUGESIZE
self.bitmap.fill_rect(@spritebaseX+expGaugeX+expFullBar-self.exp,@spritebaseY+expGaugeY,self.exp,4,PokeBattle_Scene::EXPCOLOR)
I have 2 questions and i hope someone can help, because they're sort of essential lol.
1 - Is there any way to edit the max level that a Pokemon can be?
I've seen it somewhere before, but I can't remember where, and it was when I wasn't really developing...
2 - Also how can i make the exp gain animation in battles go the other way up the battle box, from right to left instead of from left to right.
Any help would be appreciated ^_^
Thanks.
I have a question. How does the Regional Dex numbers thing work? I've tried putting the following line (or similar) into pokemon.txt in a handful of the pokémon sections, but when I go to compile I get the error below.
RegionalNumbers=19,2,0
This particular line is supposed to mean there are three regional Dexes, and the pokémon in question is number 19 in region A, number 2 in region B and is not in region C. The notes don't give much information about how to implement Regional Numbers (it doesn't give an example), but from what I can tell multiple Regional Dexes are allowed.
Sine it's an optional line, I figured it didn't matter that not all of the pokémon had this line in (which would naturally take me a while to insert; I will do eventually, but at the moment I just want to test it).Code:--------------------------- Pokemon Essentials --------------------------- Exception: RuntimeError Message: Regional Pokédex number cannot be 0 (section {2}, PBS/pokemon.txt) Compiler:2330:in `pbCompilePokemonData' Compiler:2293:in `each' Compiler:2293:in `pbCompilePokemonData' Compiler:2291:in `loop' Compiler:2362:in `pbCompilePokemonData' Compiler:2279:in `each' Compiler:2279:in `pbCompilePokemonData' Compiler:2278:in `each' Compiler:2278:in `pbCompilePokemonData' Compiler:2264:in `pbEachFileSection' This exception was logged in errorlog.txt. Press Ctrl+C to copy this message to the clipboard. --------------------------- OK ---------------------------
#Stat Stages
#back
atkstage=attacker.stages[PBStats::ATTACK]+6
spatkstage=attacker.stages[PBStats::SPATK]+6
defstage=opponent.stages[PBStats::DEFENSE]+6
spdefstage=opponent.stages[PBStats::SPDEF]+6
if opponent.damagestate.critical
atkstage=6 if atkstage>6
spatkstage=6 if spatkstage>6
defstage=6 if defstage<6
spdefstage=6 if spdefstage<6
end