레벨포인트 소스중 일부인데..해석해주실분 인나요 ? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

레벨포인트 소스중 일부인데..해석해주실분 인나요 ? 정보

레벨포인트 소스중 일부인데..해석해주실분 인나요 ?

본문

function get_member_level($mb_point) {
    global $g4;
    $s = "";
    $point = $mb_point;
    if ($point < 1000) $point = 2000;                       
    $level = (int)($point / 2000);
    if ($level > 75) $level = 75;
    $no = sprintf("%03d", $level);
    return "<img src='$g4[path]/img/l/{$no}.gif' align=absmiddle hspace=1 title='레벨 {$level} / ".number_format($mb_point)."점'>";
}
?>
 
 뭔뜻인지 ㅠ_ㅠ 초보라 알수가 없네요...
포인트가 몇이면 1업을 하고...업하기 위해선 몇포인트가 부족한지 ㅠ_ㅠ;;
레벨은 75까지 인네요...
소스 설명 좀 해주세요
  • 복사

댓글 전체

아하~ 그대와 나는 소설속의 연인이 아니오~오

현실의 연인이요.
...


소설속에 나오는
연인들~처~~럼

쬐끔만 지달려 보세요^^;


> 포인트가 몇이면 1업을 하고...업하기 위해선 몇포인트가 부족한지 ㅠ_ㅠ;;

라이브러리를 전체적으로 설명할 재량이 없으므로 패스하려다,
http://sir.co.kr/bbs/board.php?bo_table=g4_skin_basic&wr_id=142
최하단의 질문내용 중에서...
========================================
if ($point < 20000) $point = 20000;
    $level = (int)($point / 20000);
    if ($level > 75) $level = 75;  이게 뭔 원리에용 ?
========================================
-. 흐름
조건 > 정의 > 수행 > 내부조건 ~~~

-. 간략설명
$point ; (포인트를 받기 위한)변수
$level ; 회원레벨인 mb_level이 아닌 자체적인 계급
int ; (int)와 같은 형태로 사용하며,
      이것은 숫자 데이터의 정수형을 지칭.
    (정수형이란 ..., -3, -2, -1, 0, 1, 2, 3, ...)
    이 외에 숫자형 데이터의 형식과 크기에 대한 내용을 찾는 것은 사용자의 몫
    (g4질답에도 게재되어 있습니다.)

-. 풀어쓰기(전체적인 흐름)
만약 포인트가 20000점 미만(적다면)이라면,

포인트값은 20000점으로 초기화(기본설정의 개념, initialize)시킨다.

계급(레벨)은 다음을 기준으로 산정하는데 그 실제적인 값은,

(회원이 갖고 있는)포인트 값을 20000점으로 나눈 정수값이다.

(만약 나눈 값이 2.4556라고 한다면 $level에는 2라는 값이 대입된다.)

또한 $level(회원의 계급)이 75를 초과(크다면)한다면,

$level(회원의 계급)은 75로 고정시킨다.



모르는 것은 죄가 아닐 수 있(겠)지만,
알려하지 않는 것은 죄가 됩니다.
우선 회원 포인트 값이 1000점 미만이면 무조건 2000점으로 셋팅해주고
레벨은 2000점당 1레벨씩 올라가게 했네요.
포인트값이 레벨 75이상을 넘어가면 레벨 75로 제한했구요.
리턴값은 레벨에 맞는 1 부터 75까지 있는 gif 화일값과 레벨값 포인트값을 반환하는 함수입니다.

$level = (int)($point / 2000); 이 단락의 2000을 조절하시면 레벨간 포인트값이 변경됩니다.
function get_member_level($mb_point) { // $mb_point가 2500일때 가정하면...
    global $g4;
    $s = "";
    $point = $mb_point; // $point = 2500
    if ($point < 1000) $point = 2000; // $point 가 2500 이상이므로 건너뛰고
    $level = (int)($point / 2000); // 2500/2000=1.25이므로 정수형변환 1이므로 그냥 넘어가네요...
    if ($level > 75) $level = 75;
    $no = sprintf("%03d", $level);
    return "<img src='$g4[path]/img/l/{$no}.gif' align=absmiddle hspace=1 title='레벨 {$level} / ".number_format($mb_point)."점'>";
}
?>

$point가 1000이하이면 무조건 2000으로 지정되니 레벨1
$point가 4000이하(3999)이면 3999/2000으로 int(1.9999)형으로 둘러싸니 그냥 1이므로 레벨1
$point가 4000이상이면 4000/2000으로 레벨2
$point가 6000이상이면 6000/3000으로 레벨3

마무리하자면 4000이하까지는 레벨 1이구, 4000이상부터는 2000포인트 올라갈때 업되는것 같네요...
© SIRSOFT
현재 페이지 제일 처음으로