https://kibkibe.github.io/roll20/

Roll20 API Scripts by YANGSALTRoll20에서 사용가능한 여러 API 스크립트를 손쉽게 통합하고 편집하여 사용할 수 있도록 지원합니다. by 양천일염kibkibe.github.io


여기 거 약간 수정한 코드


기존 as_selector.js는 플레이어가 조종권을 가진 캐릭터는 명령어로 선택할 수 없어서


시트를 플레이어들에게 공개한 NPC를 RP하는 데 애로사항이 있었다


정확하게 그 부분만 조금 손봤음


되게 편한 API라고 생각하는데 나처럼 시트 공개한 NPC 때문에 골머리 앓던 사람 있을까봐 올려봄


배포 관련해서 문제 생기면 이 게시글 지움


==


on("chat:message", function(msg){

    if (msg.type == "api"){

        // on.chat:message:api

        if (msg.content.startsWith('!!')) {

            const player = getObj('player', msg.playerid);

            const keyword = msg.content.replace('!!', '');

            let cha = filterObjs(function(obj){

                return (obj.get('type') == 'character' &&

                        obj.get('name').includes(keyword) &&

                        (playerIsGM(msg.playerid) || obj.get('controlledby') == 'all'));

                        // 수정한 부분: 플레이어에게 조종권이 있는 캐릭터도 선택할 수 있도록 수정

            });

            if (cha.length > 0) {

                let nearestIndex = 9999;

                let lastCheckedIdx = 0;

                for (let i = 0; i < cha.length; i++) {

                    const idx = cha[i].get('name').indexOf(keyword);

                    if (idx < nearestIndex) {

                        nearestIndex = idx;

                        lastCheckedIdx = i;

                    }

                }

                player.set('speakingas', 'character|' + cha[lastCheckedIdx].get('_id'));

            }

        }

        // /on.chat:message:api

    }

});


==