close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

SUN 그룹 경험치

2016.02.16 13:45

게임존 조회 수:176

-눈에 보이는 서버 튕김 현상 수정

-그룹원중 레벨이나 승급차수가 일정수치 이상 차이나면 경험치 패널티가 부여

-패널티 수치 임의 지정

-그룹원 중 도사가 있을경우 약간의 추가 경험치

 

5번째줄의

set @server_exprating, value; 이부분에서 value 값에 자신이 원하는 배율을 입력하시면 됩니다.

고정적인 상수값을 입력하셔도 되고 서버변수를 이용하셔도 상관 없습니다.

 

경험치의 패널티가 너무 커서 경험치 배율이 0 이하가 된다면 최소 배율인 1로 지정됩니다.

 

경험치 분배율, 패널티 수치, 도사 추가 경험치는 자신의 배율에 따라 달리질 수 있으며

명시된 % 비율은 10배를 기준으로 작성한 것입니다.

 

도사 추가 경험치는 약 3~10% 정도로 책정되어 있습니다.

 

 

 

ONKILL
{
    set @sd, mysd();
    set @id, myid();
    set @server_exprating, value;
    
    set_expevent @server_exprating;

    callfunc "Group_Exp_Divide", @sd;
}

FUNC_Group_Exp_Divide
{
    set @sd, getarg(0);
    
    if(group(@sd) != 0)
    {
        set @level, get_level(@sd);
        set @joblevel, get_joblevel(@sd);
    
        setarray @group_member_session[0], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;

        for(set @loop, 0; @loop < partymax(); set @loop, @loop+1)
        {
            set @target_sd, party_member(@sd, @loop);
            if(@target_sd > 0)
            {
                if(get_mapid(@sd) == get_mapid(@target_sd))
                {
                    set @group_member_session[@group_member_count], @target_sd;
                    set @group_member_count, @group_member_count+1;
                    
                    set @group_member_level, get_level(@group_member_session[@group_member_count]);
                    if(@level < @group_member_level)
                    {
                        if(@level < (@group_member_level-20)) { set @penalty, @penalty+3; }
                        else if(@level < (@group_member_level-40)) { set @penalty, @penalty+5; }
                        else if(@level < (@group_member_level-60)) { set @penalty, @penalty+7; }
                        else if(@level < (@group_member_level-80)) { set @penalty, @penalty+10; }
                        else { set @penalty, @penalty+15; }
                    }
                    
                    set @group_member_joblevel, get_joblevel(@group_member_session[@group_member_session]);
                    if(@joblevel < @group_member_joblevel)
                    {
                        if(@joblevel == (@group_member_joblevel-1)) { set @penalty, @penalty-2; }
                        else if(@joblevel == (@group_member_joblevel-2)) { set @penalty, @penalty-4; }
                        else if(@joblevel == (@group_member_joblevel-3)) { set @penalty, @penalty-7; }
                        else { set @penalty, @penalty-10; }
                    }

                    if(get_job(@group_member_session[@group_member_count]) == 4)
                        set @group_bonus, 1;

                    set_userexpevent @target_sd, 0;
                }
            }
        }

        if(@group_member_count > 1)
        {
            if(@group_member_count == 2) { set @apply_exp, 6; }
            else if(@group_member_count == 3) { set @apply_exp, 9; }
            else if(@group_member_count == 4) { set @apply_exp, 10; }
            else if(@group_member_count == 5) { set @apply_exp, 8; }
            else if(@group_member_count == 6) { set @apply_exp, 5; }
            else if(@group_member_count == 7) { set @apply_exp, 4; }
            else if(@group_member_count == 8) { set @apply_exp, 4; }
 
            set @apply_exp, (@apply_exp+@group_bonus)-@penalty;
            if(@apply_exp < 1) { set @apply_exp, 1; }

            for(set @loop, 0; @loop < @group_member_count; set @loop, @loop+1)
            {
                if(@group_member_session[@loop] == 0)
                    break;
                    
                set_userexpevent @group_member_session[@loop], @apply_exp;
            }
        }
    }
    else
    {
        set_userexpevent @sd, 0;
    }
}

//서버 경험치 10배 기준, 경험치 배율이 10배가 아니라면 @apply_exp 수치를 변경해 주어야 함
//그룹원 수:    2    3    4    5    6    7    8    |    9    10    11    12
//경험치(%):    80    63    50    36    25    20    14    |    11    10    9    8
//                                            |    9명 부터는 n분의 1 배분
 

 

-게임존-

 

출처(윈바람)

번호 제목 글쓴이 날짜 조회 수
공지 소스자료실 안내입니다. 게임존 2017.06.06 579
61 귀문동 file 타마란 2016.06.29 42
60 폭탄빵! file 타마란 2016.06.29 41
59 구미호 동굴 file 타마란 2016.06.29 16
58 텔레포트 도우미 스크립트 file 타마란 2016.06.29 35
57 성불대결 스크립 file 타마란 2016.06.29 16
56 퀘스트 모음집 file 타마란 2016.06.29 55
55 낚시 시스템 file 타마란 2016.06.29 41
54 대련시스템 file 타마란 2016.06.29 21
53 귀문진독 격(주술사 귀문무기 격 노도효과 사람도포함), 배극서버 주막맵 file 서예지 2016.06.29 40
52 도사버프 경험치 증가 ( 전체 ) 세븐 2016.06.17 160
51 환수펑션 file 이레나 2016.05.20 62
50 장비복원권 스크립트 file 이레나 2016.05.18 34
49 흑광산 스크립트 file 이레나 2016.05.16 35
48 그룹힐 마법 (자체개발) file 이레나 2016.05.16 115
47 예맥성 스크립트 이레나 2016.05.08 130
46 각인시스템 (자체개발) 이레나 2016.05.08 118
45 간단한 데미지 뻥튀기 펑크 file 아리힝 2016.04.15 110
44 거래 기능 펑크. 아리힝 2016.04.15 74
43 섯다 스크립트 [극류강화부적 수정 ] file 아리힝 2016.04.15 65
42 억경 자동먹기 스크립트 [2] file 아리힝 2016.04.15 193
41 환생시스템 + 500환까지 구현되있는 환생펑크 file 아리힝 2016.04.15 120
40 고용상인 [1] file 늘도도 2016.04.13 103
39 경험치저장비령 file 늘도도 2016.04.13 74
38 격전지 file 늘도도 2016.04.13 33
37 각종기원류 file 늘도도 2016.04.13 84
36 각인비서 file 늘도도 2016.04.13 47
35 서버온오프 확인 php입니다 file 없숑 2016.03.29 73
34 접속중인유저수 불러오기 php file 없숑 2016.03.29 74
33 부여성 리뉴얼맵이라네요 [1] file 화이트M 2016.03.19 252
32 낚시스크립트 file 화이트M 2016.03.19 60
31 도약몬스터스크립트 file 스벌 2016.03.14 30
30 눈치게임 스크립트 귀여운진마니 2016.02.29 93
29 바람의나라 랭킹보여주는 PHP 파일 [5] file webpro 2016.02.23 228
28 격전지맵 file webpro 2016.02.23 34
27 신수계맵 file webpro 2016.02.23 40
26 백두봉맵 [1] file webpro 2016.02.23 33
25 백제맵 file webpro 2016.02.23 48
24 한성맵 file webpro 2016.02.23 48
23 결혼(예식장) 게임존 2016.02.16 83
22 마법 배우는 검색기 스크립트 게임존 2016.02.16 491
21 이벤트 관리 스크립트 게임존 2016.02.16 133
20 계정관리기 제작 file 게임존 2016.02.16 174
19 북방 저장 창고(NPC) 스크립트 게임존 2016.02.16 60
18 돈 도박 스크립트 게임존 2016.02.16 102
17 1:1 결투장 스크립트 게임존 2016.02.16 74
16 아이템 이미지(2000~3929) [1] file 게임존 2016.02.16 215
15 물약상점 맵? file 게임존 2016.02.16 38
14 작은집 2 file 게임존 2016.02.16 29
13 작은집 file 게임존 2016.02.16 42
» SUN 그룹 경험치 게임존 2016.02.16 176