개인적으로 토크엔진에서 가장 중요한 문법이라고 생각한다.

제일 많이 쓰니까.




// 클라이언트에서 서버로 메세지를 보낸다
commandToServer(functionName [,arg1,...argn]);

// 서버에서 받을 때는 serverCmd 라는 prefix 와 클라이언트에서 넘긴 functionName 을 연결한 함수를 만들어준다
function serverCmdfunctionName(%client [,arg1,...argn])
{
    //
    // 서버측 코드 수행..
    //
    // 서버에서 클라이언트로 메세지를 보낸다
    commandToClient(%client, functionName [,arg1,...argn]);
}

// 마찬가지로 서버에서 보낸 메세지를 클라이언트가 받을때도 clientCmd라는 prefix와 functionName을 연결한 함수를 만들어준다
function clientCmdfunctionName([,arg1,...argn])
{
    //blah blah..
}



간단하다.

commandToServer 로 클라이언트에서 서버로 메세지를 보내고
서버 측은 serverCmdFuncName 에서 서버 측 코드를 수행한다.
그리고 클라이언트에게 다시 메세지를 보내야 한다면 commandToClient 로 보내면 된다.
클라이언트는 그것을 clientCmdFuncName 에서 받을 수 있다.



요런식으로..

commandToServer('Message');

function serverCmdMessage(%client)
{
    %msg = "Hello :D";
    commandToClient(%client, 'Message', %msg);
}

function clientCmdMessage(%msg)
{
    echo(%msg);
}





이렇게 클라이언트와 서버가 메세지를 주고받는 구조는 매우 간단하면서도 논리적으로도 기브앤테이크(?) 정신을 ..ㅋ

참고로 클라이언트 측 코드는 일반적으로 scriptsAndAssets\client\scripts 에 위치해있고, 서버 측 코드는 scriptsAndAssets\server\scripts 위치 해 있다.

여기서 중요한 것은 commandToServer 나 commandToClient 를 했을 때 스크립트 실행이 같은 스레드에서 일어나지 않는다는 것. 순서적으로 commandToServer를 먼저하고 클라이언트 측 함수를 실행했을 때 서버측의 serverCmdFuncName 콜백함수와 클라이언트 측 함수가 어느것이 먼저 실행될지는 모르므로 주의해서 코딩해야 한다.








2009/05/21 14:09 2009/05/21 14:09
Posted by ddiamo

트랙백 보낼 주소 : http://ddiamo.net/trackback/49

댓글을 달아주세요

  1. 2009/05/23 07:57
    댓글 주소 수정/삭제 댓글
    인턴 때 토크 스크립트 작업하던게 생각나네요 ㅎㅎㅎ
    • OpenID Logoddiamo
      2009/05/24 00:13
      댓글 주소 수정/삭제
      ㅋㅋㅋ 힘들었죠 ㅋㅋ
[로그인][오픈아이디란?]

<< PREV : [1] : ... [56] : [57] : [58] : [59] : [60] : [61] : [62] : [63] : [64] : ... [74] : NEXT >>

카테고리

전체 (74)
일기 (37)
감상 (8)
수영 (9)
여행 (11)
IT (9)

달력

«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Total : 54337
Today : 121 Yesterday : 31