查看: 98|回复: 0

[转载发布] 自动跳过不在队伍内的队友的对话

[复制链接]
  • TA的每日心情
    开心
    昨天 10:15
  • 签到天数: 73 天

    连续签到: 1 天

    [LV.6]常住居民II

    2044

    主题

    86

    回帖

    8602

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    -2
    卡币
    6460
    OK点
    16
    积分
    8602
    发表于 2024-4-12 16:05:59 | 显示全部楼层 |阅读模式
    RUBY 代码
    1. #功能:判定某人是否在队内,如果不在队内则不显示他的对话。
    2. #默认格式:【角色名】
    3. #例如:【娜塔丽】今天天气真好!
    4. #若娜塔丽在队伍中则显示这句话,否则不显示。
    5. #不仅限于角色名,可以自由添加其他敏感词。填写在shield_words_list = []数组内即可。
    6. #如果在对话中发现敏感词,则不显示这句对话。
    7. #默认1号开关开启本功能,如果想使用别的开关把JUDGE=1改成其他值即可。关闭1号开关则关闭该功能。
    8. #开关的设定放在事件页的第一条才能起效果,原理不明。放在中间的话对后续的文字可能是不起效果的。
    9. #为了改善使用体验,请将开关设定放在事件页第一条来书写事件。
    10. #作者:梅林
    11. #允许随意使用和修改,可以不标注作者。需要修改本脚本的有关功能可以联系我。
    12. class Window_Message < Window_Base
    13.   JUDGE = 1
    14.   #1号开关用于决定是否打开本效果。注意,只有放在事件最前面才有效。
    15.   def add_shield_words(shield_words_list)
    16.     #shield_words_list = []
    17.     i = 1
    18.     #把不在队的角色名添加进敏感词列表
    19.     loopdo
    20.       if$game_party.battle_members.include?($game_actors[i])
    21.         else
    22.         shield_words_list.push('【'+$game_actors[i].name+'】')
    23.       end
    24.       i += 1
    25.       breakunless$game_actors[i]
    26.     end
    27.   end
    28.   #显示文字的煮鲜橙
    29.   alias merlin20171102_fiber_main fiber_main
    30.   def fiber_main
    31.     if$game_switches[JUDGE]
    32.       merlin_judge_fiber_main
    33.      else
    34.       merlin20171102_fiber_main
    35.     end
    36.   end
    37.   def merlin_judge_fiber_main
    38.     $game_message.visible = true
    39.     shield_words_list = []
    40.     update_background
    41.     update_placement
    42.     add_shield_words(shield_words_list)
    43.     loopdo
    44.       text = convert_escape_characters($game_message.all_text)
    45.       if$game_message.has_text?
    46.         if judge_text(text, shield_words_list) == 1
    47.            $game_message.clear
    48.         else
    49.           process_all_text
    50.           process_input
    51.         end
    52.       end
    53.       $game_message.clear
    54.       @gold_window.close
    55.       Fiber.yield
    56.       breakunless text_continue?
    57.     end
    58.     close_and_wait
    59.     $game_message.visible = false
    60.     @fiber = nil
    61.   end
    62.   #判定是否含有敏感词
    63.   #alias merlin20171102_judge_text judge_text
    64.   def judge_text(text, shield_words_list)
    65.     i = 0
    66.     flag = 0
    67.     loopdo
    68.       if shield_words_list[i] == nil
    69.         break
    70.       else
    71.         if text.include?(shield_words_list[i])
    72.          flag = 1
    73.          break
    74.         end
    75.       end
    76.       i += 1
    77.     end
    78.     return flag
    79.   end
    80. end
    复制代码








                 本帖来自P1论坛作者魔法☆梅莉,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=403715  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-9-21 16:41 , Processed in 0.049137 second(s), 39 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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