해당 분류 : 자바에 대한 이야기    아이템 사용 캐스팅바는 어떻게 화면에 표시되는거야?    글을 기록한 날 : 2011/05/11 23:07

SM_ITEM_USAGE_ANIMATION
이 클래스의 뜻은
SM(Server Message) = 서버 메세지
ITEM = 아이템, USAGE = 사용, ANIMATION = 움직임 입니다.

이와같이 자바뿐만 아니라 대부분의 프로그래밍 언어에서는
다른 팀 또는 프로그래머들과의 소스에 대한 이해를 높이기 위해서
가장 기본적으로는 변수나 상수명부터 메소드나 클래스, 패키지까지
영어를 해석하면 이것이 어떤 역할을 하는지 쉽게 알 수 있도록 지정합니다.

만약 혼자서 개발을 시작해서 끝까지 마무리 할 수 있다면
굳이 쉽게 이해하게 할 필요가 없다고 생각하시는분이 있다면
둘중에 하나이겠죠. 머리가 아주 좋은 천재이거나 소스가 10줄 미만이거나..

자 그럼 위의 클래스는 무슨 역할을 하는 클래스일까요?
간단하게 설명하자면 서버에서 클라이언트로 아이템사용에 대한 캐스팅바에 대한
패킷을 보내기 위한 클래스입니다.

그럼 나머지는 기존에 해왔던데로 소스에 대한 주석으로 마무리 하겠습니다.

public class SM_ITEM_USAGE_ANIMATION extends AionServerPacket {
    private int playerObjId;
    private int itemObjId;
    private int itemId;
    private int time;
    private int end;
    private int unk;

    public SM_ITEM_USAGE_ANIMATION(int playerObjId, int itemObjId, int itemId) {
      //time, end, unk 지정 없이 플레이어번호와 아이템객체번호, 아이템번호만으로 메제시를 보냅니다.
      //이렇게 보내게 되면 해당 플레이어가 지정된 아이템의 사용을 끝마쳤다는고 클라이언트로 알려주게 됩니다.
        this.playerObjId = playerObjId;
        this.itemObjId = itemObjId;
        this.itemId = itemId;
        this.time = 0;
        this.end = 1;
        this.unk = 1;
    }

    public SM_ITEM_USAGE_ANIMATION(int playerObjId, int itemObjId, int itemId, int time, int end, int unk) {
      //이 클래스에 대한 전체구조를 명확하게 지정합니다.
      //아래 있는 unk는 unknown의 약자로 아직 정확한 역할이 밝혀지지 않았고, 사용 또한 하지 않고 있지만
      //패킷구조상 0이 기록되는것이 필요하기 때문에 지정하는 것입니다.
        this.playerObjId = playerObjId;
        this.itemObjId = itemObjId;
        this.itemId = itemId;
        this.time = time;
        this.end = end;
        this.unk = unk;
    }

    public SM_ITEM_USAGE_ANIMATION(int playerObjId, int itemObjId, int itemId, int time, int end) {
      //일반적으로 가장 많이 쓰는 객체 생성자입니다.
        this.playerObjId = playerObjId; //플레이어 고유번호
        this.itemObjId = itemObjId; //아이템 고유번호
        this.itemId = itemId; //아이템번호
        this.time = time; //시간(단위 ms : 1초 = 1,000ms)
        this.end = end; //0 : 시작, 1 : 정상종료, 2 : 취소
    }

    @Override
    protected void writeImpl(AionConnection con, ByteBuffer buf) {
        writeD(buf, playerObjId); // player obj id
        writeD(buf, playerObjId); // player obj id 2x - other player? maybe item can be used on other player.

        writeD(buf, itemObjId); // itemObjId
        writeD(buf, itemId); // item id

        writeD(buf, time); // time
        writeC(buf, end); // end
        writeC(buf, 1); // unk
        writeC(buf, 0);
        writeD(buf, unk);
    }
}
Creative Commons License
Creative Commons License

트랙백 주소 : http://www.barahime.org/trackback/12

Notice

Blogroll

Counter

· Total
: 274246
· Today
: 20
· Yesterday
: 36