연결된 프림 오브젝트간 대화(통신)-llMessageLinked()

Posted by 공부하는호랑이 雨香
2015.08.05 00:11 웹프로그래밍/LSL(세컨드라이프)

연결된 오브젝트끼리의 대화 통신

제가 만들고 있는 “바람칼” 이라는 아이템은 두개의 오브젝트가 연결되어 있습니다.
칼 전체모양의 오브젝트 하나와
칼고리 안의 구슬 오브젝트.



앞으로 스크립트가 계속 추가되면서 복잡해질 것 이기에
“기본적인 스크립트”와 “특수한 스크립트”를 따로 관리하기 위해 오브젝트를 나누어 스크립트와 애니메이션 등을 따로 넣어두고 관리하기 위함 입니다.

처음 “바람칼”을 착용하면 발생되는 기본 서기 애니메이션과 기가 모이는 파티클, 그리고 명령어를 듣고 처리하는 주 스크립트가 칼 오브젝트에 들어있고
명령어를 전달받아 “기술 애니메이션” 등의 처리는 구슬 오브젝트에서 받아서 실행하도록 하고 있습니다.

이때 연결된 오브젝트(프림)간에 대화(통신)의 기능을 사용합니다.

llMessageLinked();     //링크된 오브젝트에 메세지 전달
link_message(){}     //링크된 오브젝트에서 들어온 메세지 처리

이전 포스팅에서 소개한 “llListen()” 으로도 가능하긴 하지만
llListen() 은 통합적인 대화 채널을 사용하고
llMessageLinked() 는 해당 오브젝트 자체적인 통신을 합니다.
(외부의 간섭을 받지않음, 리소스를 적게 사용함…)
필요에 따라 선택하시면 됩니다.



llMessageLinked()

llMessageLinked( integer link, integer num, string str, key id );

 



예제

모(母)오브젝트 에서 모든 자(子)오브젝트로 메세지 전달.

모 오브젝트 스크립트에 추가
llMessageLinked(LINK_ALL_CHILDREN, 0, “하하하”, “”);

자 오브젝트에서 메세지 받아 처리.

자 오브젝트 스크립트에 추가
link_message(integer sender_num, integer num, string msg, key id)
{
    llSay(0, msg); //전달받은 메세지 내용을 일반 대화채널로 말함.
}





신고

이 댓글을 비밀 댓글로