设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 58|回复: 0

[制作教程] Talk to Followers

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4552

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    23111
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28557

    灌水之王

    发表于 3 天前 | 显示全部楼层 |阅读模式
    Do your characters feel lonely even if they are accompanied? Are you lost, with no hints of what to do? With the Talk To Follower system, no more! Unless your follower is also lost, but at least you are not alone.

    Warning: This system mostly requires a "Turn Around" system. You can use sirbilly's or Black Morning Base Script, which features a turn-in-place by maintaining one key pressed.
    You would still be able to use this system even if you don't have any Turn Around system, but without it this system is pretty much pointless.
    I also used a follower control script (Tsukihime Followers Move Routes) to make the follower look at the leader, but that is not required.


    This tutorial is to make your party leader able to interact to their followers like they are events. With that, you can do talk systems and more!
    Currently, I only designed it with one follower in party, or simple only being able to talk to the first follower. I'm not sure if I will try test with more followers and with other scripts that affect movement, though.
    Since it's very long, I'm providing a demo at the end of this topic.

    Let's get started!
    Average things used: 4 switches, 8 variables

    1. Getting the coordinates of the follower

    First, we will get the coordinates of our follower. This is mostly done because of the "looking at the follower" function, so if you are not using that, this step may not be necessary. It depends on how you will build your "Follower Interact" event.
    Anyway, to do so, we will use 4 variables to get the X and Y of both leader and follower.
    Create a Common Event in Parallel Process. For that, we will then set a switch that will make it always active, so it's constantly checking our player's position.
    Don't forget to add a Wait command at the end of the whole process, otherwise your game will freeze.

    Spoiler





    You can also set it to 10 frames. It depends on how many lag it can make in your game




    Getting the X/Y of the leader is easy: in the Control Variable command, we will click at Game Data in the Operand and choose Character > Player's > Map X/Y

    Spoiler










    And thus, we have the player coordinates ready to be checked.
    However, the default commands do not provide a way of getting the followers X/Y.
    Fortunately, we can do it using a script call: $game_player.followers[follower_ID].(coordinate)
    Spoiler


    Set [follower_ID] to the ID of the follower you wish to interact to (see below), and (coordinate) to either X or Y.




    Notice how you need to specify a value next to followers? This is the follower index. It means that it will retrieve the data from the follower of ID 0. And since follower index starts by 0, we are talking about the first follower.
    So, if you set that value to 7, it will check the 7th follower in the line, 9th actor in the team.

    2. Compare the coordinates of the follower and leader

    Now what we will do is to compare the coordinates of the follower and the leader so we can check in what side is the follower.
    If you wish to, you can set a Condition before all of that to check if the party has only one character. If you specifically check the followers ID, this is not needed, I suppose.

    Spoiler


    No ghost talking!




    Before comparing our coordinates, we will check if the player is pressing the interact button. We need to do so to guarantee that the directions are being checked properly. Leave an blank Else (Set handling when conditions do no apply) to prevent any bugs.

    Spoiler


    If you wish to specify the follower's ID, this is where you do it:



    Remember that, when dealing with followers, the index will start at zero. But when dealing directly with actors, the index starts at 1 and includes our leader. So we will check our second actor, follower of index 0.




    Now, finally, we will compare the coordinates we picked, alongside checking for the player directions.
    That's a very simple formula that goes like this: $game_variables[Follower_X/Y] == $game_variables[Leader_X/Y] [Operation]=1
    We are not checking any diagonals, so we won't need 2 conditions attached together. Simple check the four sides of your actor. It looks like this:

    Spoiler


    And then, it will look like this:





    REMINDER: Put a 10 frames delay right below the Button Check, so when you finish your conversation it will not toggle it again when you're just pressing the button to close the window.







    3. Turning follower and identifying actor

    What we will do know is setting the common event according to the actor we're interacting with. Remember the "Follower 1 ID" variable? That's where we will check it.
    To make it simpler, I'm going to do 3 things now.

    1 - I'm setting a label to whatever comes next, so we don't need to copy and paste all of the actions in the other direction/XY checks. I will name it "Check[ACTOR_ID]", and will use the Jump to Label command to call it anywhere in the event!
    2 - Before identifying whichever actor we're interacting to, we will make them act. That's where the Follower Control script enters. Since I'm using Tsukihime's, it will look like this (open spoiler below)
    3 - And finally, I will identify the follower ID. Depending on who is it, I will activate a switch. That will be explained in short.

    Spoiler


    (I forgot the 10 frames delay, but don't forget it
    <)







    4. Making the "talk"

    Here's up to you, really. In my case, I'm making a very simple conversation. The demo has a more complex one that involves switches, more labels, and choices that affect the gameplay.
    I'm creating a new common event, set with Parallel Process that is activated by the "Actor [ID] Interaction" switches I previously activated. In reality, you could event set just one and check in that common event the "Follower ID" variable, but since you may add up a higher quantity of commands over time, it's good to separate between actors. In fact, sometimes it can get so big, it's good even to separate one actor conversations in another common events.
    Remember to always set a switch to the common event and activate it to call the conversation. Do NOT call the common event, as some commands may loop.

    Spoiler


    Reminder: I made a mistake and placed the Follower Direction Variable in the wrong place. If you place it in the character Common Event, they will be already turned so the check will be useless. Place it HERE:







    Don't forget the delay or it will freeze!
    "Wait, what is that first variable and that "Turn Back" common event? Weren't common event callings prohibited?"
    We'll check that below! ↓




    5. Exiting processing and making the characters turn back

    Finally, we're in the last step of our tutorial! So, let me explain the purpose of this unknown commands:
    In the "Follower 1 Direction", we'll simply store what direction the follower was facing before our leader came to bother them.
    You can store the Leader direction in the Game Data section of variables, but no the follower.
    So we will use the script call: $game_player.followers[FOLLOWER_ID].direction

    Remember that the values returned will be the same as those of the computer keypad:
    2  ↓ Down
    4 ← Left
    6 → Right
    8  ↑  Up

    And that another code...
    $game_player.turn_away_from_character($game_player.followers[FOLLOWER_ID]
    ...is to simply make our actor turn away from the follower within the specified ID.
    As mentioned before, if you're not turning the followers (and that needs the help of a script), ignore the turning commands and only deactivate the switches.
    Yep, deactivate them. Otherwise, your conversation common event will keep looping. Forever. Ever.
    SO REMEMBER TO DEACTIVATE THEM!!!

    Spoiler



    Notice that not only I deactivated ALL the interactions switches, since this same common event will serve to exit any of them; I also deactivated them by batch. If they are all lined up, you can simple do that this way:









    And of course, you can't be too careful.







    Finally, this will be our ending result:

    Spoiler: Gif

    I'm not an expert with events, so please if you have any bugs, report them to me and maybe I can try solving them!
    It's preferable to download the demo and copypaste the example Common Events, since the event can be really complicated to build.

    >Download Link<


    本贴来自国际rpgmaker官方论坛作者:Ebanyle处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/talk-to-followers.108308/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-15 19:08 , Processed in 0.143657 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表