팁과 노하우 게시판

전체보기

모바일 상단 메뉴

본문 페이지

라그나로크에 있는 흔한 버그 -몬스터 정보 스킬-

아이콘 Everyharu
댓글: 12 개
조회: 5506
추천: 3
2015-06-06 15:54:20

속성에 관한 이야기 입니다.
이 전사자 수라의 경우 수속성 몹입니다만..
수치상으론 206이라고 나와서 혼돈을 주져.
풍속에 200퍼의 데미지가 들어가는건 당연한데 왜 수속성몹이 수속성공격에 206퍼의 뎀지를??
이라고 이상한김에 체르미나랑 얘기하다보니 2의보수표기로 인한 에러라더군여.

그냥 코딩상 버그란얘깁니다...

고칠생각은 없는거같으니 간단하게 계산을 해보도록 하죠.
속성에 대한 값 자체는 2byte로 이루어져있을겁니다. 왜 그랬는지는 몰라도 아마도 표기할때는.. unsigned char 1byte..음..
아무튼 200이란 값을 2진수로 표기해보도록 하죠.
200 => 1100 1000
문제는 여기서 발생합니다. 1byte의 경우 8자리의 2진수이므로 총 0~255의 숫자 표현이 가능합니다만..
음수를 포함하게 되면 -128~127 까지의 표현까지밖에 안됩니다.
근데 그걸 한바이트에서 해결하려 했으니 당연히 206이라는 표기오류!

206 => 1100 1110
(singd char) -50 =>
    50 => 0011 0010
  (보수화 뒤집기!) => 1100 1101
  (+1bit) => 1100 1110 => 206 이 되버리는 마술!

분명 값은 제대로 들어가있을겁니다만 2byte signed char 형으로 처리해야할 문자를 1byte unsigned char 형으로 처리하면서 일어난 문제겠네요... 아 페라랑 얘기할때 일단 숫자가 넘어간거니까 오버플로 연산에 대한 버그일거다라고 했는데...엄밀히 말하면 오버플로라고 보긴 그렇네여 막상 써놓고 보니..체르미나 미안..~_~

한마디로 구라비티는 코드몇줄 수정하면 될 버그를 여태 고치지 않는다는거네요!!

ps) 추가적으로 언젠가부터 -50 과 같은 수치의 의미(맞았는데 오히려 피가차는..)가 사라졌다네여.. 옛날에 데들리입고 밴시를 몰다보면 밴시가 피를 채워주던 그시절은 ㅃ2 네요.. -수치에 관한것들. 즉 몬정에서는 수치가 좀 이상하게 보이는것들은 그냥 뎀지가 0이 들어가겠구나~라고 보시면될듯 합니다.)

Lv67 Everyharu

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

AD