작성자 | myroomun | ||
---|---|---|---|
작성일 | 2015-03-11 23:34:00 KST | 조회 | 7,165 |
제목 |
채팅창 스크롤바 자동 내리기
|
보통 채팅창 직접 만드는 분들을 위한 팁입니다.
DialogControlAddItem(LISTS,PlayerGroupSingle(i),StringExternal("DOCSTR_0011")+t);
DialogControlAddItem(LISTS,PlayerGroupSingle(i),StringExternal("Param/Value/026976BD"));
Wait(0.0002, c_timeReal);
select = DialogControlGetItemCount(LISTS,i);
DialogControlSelectItem(LISTS,PlayerGroupSingle(i),select);
DialogControlRemoveItem(LISTS,PlayerGroupSingle(i),select);
차근차근 설명드릴께요
DialogControlAddItem(LISTS,PlayerGroupSingle(i),StringExternal("DOCSTR_0011")+t);
채팅창은 역시 리스트박스 타입으로 만드셨을테니.. 채팅 메세지를 넣습니다. 저같은경우는 t에 있습니다..
다 똑같죠.
DialogControlAddItem(LISTS,PlayerGroupSingle(i),StringExternal("Param/Value/026976BD"));
그다음 빈 메시지를 하나 넣습니다.
Wait(0.0002, c_timeReal);
빈 메세지가 다 만들어질때까지 기다립시다.
* 대화상자 아이템을 만들때 아이템들은 순차방식으로 만들어지는것이 아닌, 동시에(?) 만들어집니다.
대충 쓰레드가 실행된다고 이해하면 되려나... 즉, 아이템만들기 함수를 실행하고 다음 단계로 넘어가면
만든 아이템을 인식 못하는 문제가 있습니다
select = DialogControlGetItemCount(LISTS,i);
기다려준 이유인데요.. 리스트아이템박스에 있는 리스트 갯수를 구합니다. 만약 0.0002만큼 안쉬어주면
5개의 리스트가 있다고 하면 4개밖에 반환이 안됩니다. (컴퓨터마다 다릅니다. 저같은경우 0.0001초 쉬면 반환 못하네요)
DialogControlSelectItem(LISTS,PlayerGroupSingle(i),select);
반환 갯수를 인덱스로 아이템을 선택해주면, 선택이 되면서 스크롤바가 아래로 내려갑니다.
DialogControlRemoveItem(LISTS,PlayerGroupSingle(i),select);
선택한 아이템을 삭제합니다.(빈 텍스트)
우리가 임의대로 입력한 빈 텍스트는 사라지겠죠.
근데.. 동맹채팅(인원이 적은경우)는 괜찮은데
만약 플레이어 인원이 11~12명 되면
생각보다 0.0002초 딜레이가 쌓이면서 커집니다.
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.