단서
5억 > 1,783,793
1억 > 14,100,654
5천만 > 7,050,327
여기서 1억과 5천만이 배수로 뛴다는걸 알수있다.
그럼 최저치의 오버플로우를 계산해보면 나오는 오버플로우 값은 최대 42,949,673가 나온다.
근데 1억에서 정확히 배수로 뛰잖아?? 그럼 오버플로우 값은 42,949,673 말곤 나올수가 없다.
여기서 5억이 오버플로우 값과 맞지 않는다.
보이는가? 다른 예시들과 달리 이새낀 총 번들이 1,000개다
그럼 5억에 10배수를 곱해서 50억을 오버플로우 값과 대조해보자
5000000000 mod 42,949,673
정확히17,837,932이 나온다. 어디서 본 숫자이지 않는가? 위에 사진인 1,783,793이란 숫자가 나온다.
그렇다 오버플로우 값에서 곱했던 10이 다시 나눠졌다.
이 새끼들은 코딩을 대체 어떻게 한걸까?
수학잘하네 이새끼 존나 재수없어
고생추
그럼이제 버그 조건을 정리해볼수있음?
상점 구매액 합산 42,949,673이 넘으면 오버플로우가 터진다
보상은 뭘로줄까? 무제한 통행증 1개?
10억숲요
아니 이런애가 마비를 한다고?
42,949,673이라는 숫자가 32비트의 최대숫자인 4294967296에서 10의 자리 올림하고 100으로 나누면 나오는 숫자긴한데... 이걸 왜 이렇게 쓰는거임..?
메모리 절약을 오지게 하고싶었나보지
애초에 저런다고 절약이 안되니까 의문인거지 어차피 선언할때 4바이트 할당할거 아녀...
내가보기엔 과거 특정 이유로 최대치를 설정한 상태에서 최대 묶음이란 시스템을 넣을때 해당 정보를 물려받지않은 민경훈의 실수라고 봄
근데 진짜 만약에 저게 메모리 절약이 진짜 된다면 이해가 안되는건 아니긴 함 이 게임 몇년전까지만해도 32비트 환경이라 메모리 사용량 4기가 넘어가면 팅기는 개병신사양이었으니까
소수점 2자리까지 사용하는 무언가의 형식을 만들어놨는데, 그 형식을 NPC 상점 거래에 썻다가 ㅈ됬다 말고는 납득 가능한 설명이 안떠오름. 42억을 100으로 나눌 타당한 이유가 그거 밖에 안떠오름, 골드에 이게 맞다면 그 형식을 쓴게 병신 같은거지만.
이런 고지능자가 마비노기를 한다고..?
엔진 바꾸는건 진짜 생명 연장이 이유였구나..
일단 골드에 소수점이 있어서 10곱해야됐던건 맞음 미끼통보면 1개 1골인데 300개는 450골이거든
오...
그럼 소숫점을 들어낸다음 다시 주저앉히는 과정에서 벌어진 사건이었다는거네
아니그냥 미끼통은 한개 1.5골이겠지뭐 나머지는 모르겠음
2천5백만 -> 3,525,164.5 그럼 최저치의 오버플로우를 계산해보면 나오는 오버플로우 값은 최대 21,474,835.5가 나온다. 50억 Mod 21,474,835,5 = 17,838,164 위에 사진인 1,783,793이란 숫자가 나온다. 병신새끼... 오버플로우가 아니라 걍 역산한걸 오버플로우라 하노
3,525,164.5 는 어디서 나온 숫자고 누가 병신새낀지...
3가지 품목으로만 가지고 찾을 수가 없다는거야 친구야
근데 그러기엔 정확히 일치하지않음?? 다른 비교군이 없는게 좀 아쉽지만 맞아떨어지잖음
뭐 얘 말은 총합 2500만짜리가 352만이 됐다는거아님? 그게아니라면 걍 첨부터개소리한거고
아니 시팔 그니까 지금 리스트형태Ui에서 어떤 품목들이 해당 버그가 생기는지 전체를 다 파악할 수가 없는데 오버플로우를 어떻게 찾냐는거임 2500만원짜리가 352만에 팔리는데 스샷을 못 찍었을 수도 있고 1250만원짜리가 176만원에 팔리는데 스샷을 못찍었을 수 도 있고 그러면 니가 쳐 말하는 오버플로우는 4294만 어쩌고가 아니라 2천만 천만 오백만 오십만 한도끝도없이 작아지는겨
4294만이 괜히나온숫자는 아님 부호없는 32비트 오버플로 최대값이 4,294,967,295라서 그런거임
그렇게 따지면 내 2147만도 괜히 나온 숫자가 아닌데? 부호 있는 32비트 정수의 최대값은 2,147,483,647이니까
ㅇㅇ 뭔말인진 이해했는데 그럼 경우의수가 꼴랑 두개잖아 씨발련아 기껏 계산했는데 말 좆같이하네. 1500만 이상은 안뜨는거 쳐 확인했으니 21,474,836.5일수도 있다 경우의수는 두개다 하면 될걸 인성 좆박은련이 병신새끼부터 박네
천만 오백만은 나올수가없지 구매가 1400만 이상템이있는데 ㅇㅇ 걍 저거아니면 2100만이겟거니 하면되는데 뭐가문제임
아니 32비트 오버플로우는 그럴수 있다 쳐 근데 뭔 10곱한걸 mod 했더니 나온 값이 10으로 나뉘어 떨어지니까 "그렇다 오버플로우 값에서 곱했던 10이 다시 나눠졌다." 이지랄 하니까 병신같잖아
번들이 10배 뛰었으니까 그렇게 접근한거지 씨발련아 처음엔 다들 저 값이 어케 나오징..어리듕절.. 하니까 나도 이거 저거 다 해본거아냐 씨방새야 실수를 지적하면 그만인걸 대뜸 욕부터 쳐박으니까 곱게 들림 그게?
걍 니가 관심받는개 ㅈㄴ부럽고 배알꼴리는거임
똑똑한척은 병신 ㅋㅋ 오버플로우 맞단다 어디가서 멍청한거 티내지좀마
그래서 어쩌란거야 핵심 내용이 뭔데
이거아까누가 정리해서올려주던데
생각해보니까 c++ 기준으로 int최대값의 /100 이 맞을거임 예전에 노기노기 있을 시절에도 자연 내구도 소모(지금은 그런 현상 없음) 값을 보면 예를 들어 내구 25짜리옷이 2499/2500 이런식으로 줄었음 위 글 내용까지 봤을때 말그대로 int 최대값을 넘어버리니 이딴 거지같은 오버플로우가 발생 왜 long을 안썻을까........ㅋㅋㅋㅋ
visual studio는 int long 전부다 4바이트아님? __int64 를 써야하는게 맞을듯
ㄴ vs6.0시절에나 쓰던걸 다시 보네
VisualStudio랑 int long 4바이트랑 대체 무슨 상관이야 비스는 IDE인데 ..
너 왜 마갤함...?
마비노기할 능지가 아닌데
나 민경훈인데 이거보고 고치는중이다
이런거 찾아내는 애들이 신기해…개발자이신가
자네 마비노기를 위해 일하지 않겠는가?
진짜 개씨발병신게임 진작에 접은게 답이었지 ㅇㅇ개좆같은새끼들 유저 개좆으로 보는 개좆병신게임
게이는 그 고지능으로 왜 마비하노…
왜10배인진모르겠지만 어쨋든 10배란건가 ㅋㅋ
윗댓에서 얘기한거처럼 100번들템은 정수로 처리하고 1000번들템에만 소수점 들어내기 작업이 포함된거라하면 그럴듯한거같음
오우...
캬 맞췄누 ㅋㅋ
개추
성지순례 왔다갑니다.
성지순례 왔습니다.
https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170 unsigned int