티스토리 뷰
보통 게임서버는 값을 편리하게 저장하기위해 바이너리값들을 쓰는 경향이 있다.
그런데 웹에서는 바이너리값은 궂이 처리 하지 않는 편인데
지금까지는 핸들링하지 않다가, 누군가의 요구로 인해 바이너리값을 씹고 뜯고 맛보고 즐기게 되었다.
가져오는 쿼리는 아래와 같다.
DECLARE @stat nvarchar(max);
DECLARE @legend int;
SELECT @stat = CONVERT(nvarchar(max), stat_data_list, 2), @legend = legend_opt_cid
FROM *
WHERE db_id =:dbid;
SELECT stat = @stat, legend = @legend;
이렇게 가져온건 nvarchar가 된다.
$binary = base_convert( $this->getLittleEndian( substr( $sub[0]['stat'], $i*8, 8) ), 16, 10 );
public function getLittleEndian($str){
debug("GETLITTLEENDIAN");
debug($str);
$result = "";
$result .= substr($str, 6, 2);
$result .= substr($str, 4, 2);
$result .= substr($str, 2, 2);
$result .= substr($str, 0, 2);
debug($result);
debug("GETLITTLEENDIAN");
return $result;
}
그러하다.
반대로 바이너리 값을 만들어야 하는 순간도 있었다.
아이템을 생성하는데 Stat을 직접 입력해야 하는 것. 그래서 이런걸 만들었다.
for($i=0;$i<9;$i++){
if($type[$i]!=-1){
$bstring .= $this->getLittleEndian(sprintf("%08X", $type[$i]));
$bstring .= $this->getLittleEndian(sprintf("%08X", $val[$i]));
}
}
맨첨에는 걍 숫자로 입력을 받아서 이걸 8글자 16진수로 바꿔주고 그걸 LittleENdian으로 바꿔준다.
DECLARE @stat varbinary(128) = CONVERT(varbinary(128), :stat_data_list, 1) ;
DECLARE @custom varbinary(128) = CONVERT(varbinary(128), :customizing_data_list, 1) ;
DECLARE @trade varbinary(128) = CONVERT(varbinary(128), :trading_able_player_list, 1) ;
EXEC ***********
***********
** @custom,*
**********
**************
@stat,**********
******
그걸 요래요래 SP에다 넣어주면 된다
SP명은 가린다.
여튼 요래요래 아이템을 직접 Binary값을 넣어서 만들 수 있다.
'IT > WebB' 카테고리의 다른 글
MSSQL SP내용 쿼리로 보기 (0) | 2015.12.16 |
---|---|
JS Object / Array add Item (0) | 2015.12.10 |
RequireJS (0) | 2015.12.08 |
JQuery Plugin - Context Div (0) | 2014.05.29 |
Closure가 무엇인가 (0) | 2014.05.29 |
- Total
- Today
- Yesterday
- 존슨황
- swift
- 이창동
- 송강호
- 취업
- 하포원
- 오블완
- cfstring
- 칠레와인
- Java Developer Day
- 개발자
- 컴퓨터공학과
- JS
- 컴공
- Octane S2
- 언프리티 랩스타
- 취준생
- 연구개발직
- happo-one
- 박찬욱
- 일리네어
- 깝스 1회
- 존슨 황
- 하 준 숴이
- 나가노 스키여행
- 개발자취업
- 감정수업
- nsstring
- 티스토리챌린지
- 0x0422
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |