{"name":"🎨자동 에셋 생성기🎨","description":"시뮬봇에서 NPC 별 에셋 출력을 도와줍니다.","id":"060d8d54-5e9f-480d-80bb-d392a46dc449","hideIcon":false,"trigger":[{"comment":"","type":"start","conditions":[],"effect":[{"type":"triggerlua","code":"-- 에셋 태그를 기준으로 문자열을 배열하는 함수 정의\nfunction processChat(data, characterNames)\n  local function htmlSplit(str)\n      local paragraphs = {}\n      table.insert(paragraphs, str:match(\"([^<]+)\")) -- 주의: 상태창 등에 에셋을 사용하면 오류가 발생할 수 있음, 이 경우 \"\\n\\n\"를 \" \"로 수정\n      for paragraph in str:gmatch(\"(<[^<]+)\") do\n          table.insert(paragraphs, paragraph)\n      end\n      return paragraphs\n  end\n\n  -- 각 문단에서 가장 먼저 나타나는 캐릭터 이름을 찾는 함수 정의\n  local function findEarliestCharacterName(str, characterNames)\n      local minIndex = #str + 1  -- 문자열 길이보다 큰 값으로 초기화\n      local earliestName = nil\n      \n      for _, name in ipairs(characterNames) do\n          local startIndex = str:find(name)\n          if startIndex and startIndex < minIndex then\n              minIndex = startIndex\n              earliestName = name\n          end\n      end\n      \n      return earliestName\n  end\n\n  -- 에셋에 NPC 이름 삽입 함수 정의\n  local function insertCharacterName(paragraphs, characterNames)\n      for i, paragraph in ipairs(paragraphs) do\n          local characterName = findEarliestCharacterName(paragraph, characterNames)\n          if characterName and paragraph:sub(1, 1) == '<' then\n              paragraphs[i] = paragraph:sub(1, 6) .. characterName .. '_' .. paragraph:sub(7)\n          end\n      end\n  end\n\n  local paragraphs = htmlSplit(data) -- 채팅을 에셋 태그를 기준으로 슬라이스\n  insertCharacterName(paragraphs, characterNames) -- NPC 이름을 에셋 태그에 삽입\n  return table.concat(paragraphs, \"\\n\\n\") -- 에셋이 이상하게 나오면 \"\\n\\n\"를 \" \"로 수정\nend\n -- ↓↓↓↓↓↓에셋에 적힌 NPC의 이름들로 넣기↓↓↓↓↓↓\ncharacterNames = {\"가영\", \"철수\", \"영희\"}\n -- ↑↑↑↑↑↑에셋에 적힌 NPC의 이름들로 넣기↑↑↑↑↑↑\nlistenEdit(\"editDisplay\", function(triggerId, data)\n  return processChat(data, characterNames)\nend)"}],"lowLevelAccess":true}],"lowLevelAccess":true,"type":"risuModule","creator_notes":"시뮬봇에서 NPC 별 에셋 출력을 도와줍니다.","tags":[],"license":"","rtype":"module"}