Project1

标题: 自动跳过不在队伍内的队友的对话 [打印本页]

作者: 魔法☆梅莉    时间: 2017-11-2 16:55
标题: 自动跳过不在队伍内的队友的对话
本帖最后由 魔法☆梅莉 于 2017-11-3 12:33 编辑

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








作者: 百里_飞柳    时间: 2017-11-2 17:29
居然不是改成 **** 之类的,而且难道不是作者自己想写出这些敏感词的吗?!
作者: 芯☆淡茹水    时间: 2017-11-2 20:59
感觉略鸡肋。
你可以再弄个设置选项,玩家选择 看不看敏感词 ,不看的话这个就起作用。
作者: 未命名    时间: 2017-11-3 03:34
从STCN看到P社下架国区钢4回来,就看到这个功能脚本。
搞得我心慌慌的,局势这么紧张了吗?


不过用作消除游戏内的剧透“关键词”,在后阶段玩家才能看到,或者语言翻译什么的应该蛮有用的。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1