• 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.

Exclamation mark without being a trainer

MarvinLock

Starting with Pkmn Essentials!
50
Posts
10
Years
  • Is it possible to make someone use an exclamation mark over his head and get near the player when he passes in front of him, without him being a trainer?

    Thanks!
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    Specifically, use this code in an event command:

    Code:
    Kernel.pbNoticePlayer(get_character(0))
     

    MarvinLock

    Starting with Pkmn Essentials!
    50
    Posts
    10
    Years
  • Sorry to disturb you again but I don't know what I'm doing wrong. I think it worked the first time I tried it but it doesn't now. I only get noticed when I pass in front of the event. Here is the event:

    Exclamation mark without being a trainer


    The second event page is just a "Show Text" command in case "Self Switch A" is activated.
     
    Last edited:

    ShadowFiendZX

    Gym Leader
    59
    Posts
    11
    Years
  • the trainer(3) and event touch only works when you pass in front 3 tiles or less, and did you use extendtext to paste the code? because it looks like it goes onto a different line, which is bad.
     

    MarvinLock

    Starting with Pkmn Essentials!
    50
    Posts
    10
    Years
  • the trainer(3) and event touch only works when you pass in front 3 tiles or less, and did you use extendtext to paste the code? because it looks like it goes onto a different line, which is bad.

    I fixed the code you are talking about. Thanks! But the problem is that the player should be noticed when he passes in front 3 tiles or less but he doesn't. He only gets noticed when he passes right in front of the event (1 tile). That's the matter.
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    How code appears in script event commands is important. Different lines are treated as completely separate and unrelated lines unless they're made to run on via certain situations.

    What the game thinks you currently have is a line which says:

    Code:
    Kernel.pbNoticePlayer(get_character
    And a separate line which says:

    Code:
    (0))
    Both lines are incomplete - the first has one fewer ) than (, and the second is the other way around. The game is too stupid to wonder if they're both supposed to be part of the same line, so it deals with each separately, and both end up being errors due to the brackets.

    You can make the game see that one line should run into the next line, though, and that's when the first line ends with something that clearly expects something else. Like ( or && or || - these imply there's more to come, so it looks to the next line for more to bolt onto the end of it.

    Alternatively, use ExtendText. That's the easiest option.



    As for the range of an event, Trainer(1) will look only at the tile directly in front of the event, Trainer(2) will look at that tile plus the one immediately beyond it, and so forth. An event having the name Trainer(3) (or some other number) plus a trigger of Event Touch is the only thing that causes the event to activate at a distance. The pbNoticePlayer just produces the exclamation mark and moves the event towards the player, and is unrelated to the distant triggering (although trainer NPCs typically use both, of course).
     

    MarvinLock

    Starting with Pkmn Essentials!
    50
    Posts
    10
    Years
  • How code appears in script event commands is important. Different lines are treated as completely separate and unrelated lines unless they're made to run on via certain situations.

    What the game thinks you currently have is a line which says:

    Code:
    Kernel.pbNoticePlayer(get_character
    And a separate line which says:

    Code:
    (0))
    Both lines are incomplete - the first has one fewer ) than (, and the second is the other way around. The game is too stupid to wonder if they're both supposed to be part of the same line, so it deals with each separately, and both end up being errors due to the brackets.

    You can make the game see that one line should run into the next line, though, and that's when the first line ends with something that clearly expects something else. Like ( or && or || - these imply there's more to come, so it looks to the next line for more to bolt onto the end of it.

    Alternatively, use ExtendText. That's the easiest option.



    As for the range of an event, Trainer(1) will look only at the tile directly in front of the event, Trainer(2) will look at that tile plus the one immediately beyond it, and so forth. An event having the name Trainer(3) (or some other number) plus a trigger of Event Touch is the only thing that causes the event to activate at a distance. The pbNoticePlayer just produces the exclamation mark and moves the event towards the player, and is unrelated to the distant triggering (although trainer NPCs typically use both, of course).

    Wow... So many things I need to know... :P Thanks Maruno!
    I would like to ask something else as well. How can I change the default image with the exclamation mark? I mean the one that is located in Graphics/Animations (029-Emotion01.png). I searched in the game's scripts using CTRL+Shift+F but couldn't find it. Thanks!
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    The exclamation animation is in the Database tab of the Database. In RMXP, press F9. The script define animation number 3 as the exclamation animation.
     

    MarvinLock

    Starting with Pkmn Essentials!
    50
    Posts
    10
    Years
  • The exclamation animation is in the Database tab of the Database. In RMXP, press F9. The script define animation number 3 as the exclamation animation.

    Thanks again! You always answer to my questions.
     

    MarvinLock

    Starting with Pkmn Essentials!
    50
    Posts
    10
    Years
  • Oh! There's also something else I would like to know! How do I use extendtext? I opened the textbox with the script and ran extendtext.exe but nothing happened.
     

    FL

    Pokémon Island Creator
    2,454
    Posts
    13
    Years
    • Seen yesterday
    Oh! There's also something else I would like to know! How do I use extendtext? I opened the textbox with the script and ran extendtext.exe but nothing happened.
    Run the extendtext.exe before editing "Show Text" and "Script" event commands.
     

    Wootius

    Glah
    300
    Posts
    11
    Years
    • Seen May 31, 2022
    I take it that this doesn't work if the triggering event is diagonal to the event you want to move? It only works for straight movements while I've been playing with it.
     

    Nickalooose

    --------------------
    1,309
    Posts
    16
    Years
    • Seen Dec 28, 2023
    Run extendtext.exe as administrator.

    @Lauerolus, what do you mean? If you want an event to have an exclamation mark, you could always just show the animation on that event.
     

    tImE

    It's still me, 44tim44 ;)
    673
    Posts
    17
    Years
  • Personally, I use "Counter(X)" as the name of the event and make it Event Touch.
    The event commands follows as such:
    Code:
    Show Animation: Exclamation Mark
    Wait: 8 frame(s)
    Set Move Route [Ignore if can't move]:
    -Move Toward Player (as many times as X in the name)
     

    Wootius

    Glah
    300
    Posts
    11
    Years
    • Seen May 31, 2022
    Exclamation mark without being a trainer

    Red is the triggering event.
    Blue is the moving event.
    Black is how it should move.

    Black never moves if Red is diagonal as shown. It just turns the player and shows the "!" animation.

    @Time
    That works perfectly, but I still have to set the number of tiles to move.
     

    Maruno

    Lead Dev of Pokémon Essentials
    5,286
    Posts
    16
    Years
    • Seen May 3, 2024
    It's not meant to move events in any way other than in a straight line - Essentials doesn't have path-finding in it. You'll find it much easier to just make a move route for the blue event. Kernel.pbExclaim(get_character(42)) will only show the exclamation bubble, and will show it above event number 42 - change this number accordingly. Then wait for a few frames, then move the blue event accordingly (left 4, up 1).
     

    tImE

    It's still me, 44tim44 ;)
    673
    Posts
    17
    Years
  • @Time
    That works perfectly, but I still have to set the number of tiles to move.

    That is why I use "Ignore if can't move".
    Simply add way too many move commands and the event will move until it can't go any further.

    But judging from your screenshot, why do you simply not make it a regular "Player Touch"-Event with a Set-Move-Route for the old man?
     

    Wootius

    Glah
    300
    Posts
    11
    Years
    • Seen May 31, 2022
    @Maruno: Thank you for the answer. I just thought it weird that the movement command "Move toward player" handled the moving fine.

    @tImE: In the case of a three wide path, instead of having to manually set up three move routes I was hoping that I could just plop in a pbNoticePlayer() instead. So, laziness.
     
    Back
    Top