• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 바람의나라 강의게시판 CR
    • 바람의나라 강의게시판 CR ()
    • [CR] 마법 중복사용 제한

      • 행복e
      • 2016.07.28 - 17:35 191

    안녕하세요

     

    옛날 바람을 구현하면서 최대한 구현율을 높이고자

     

    기존 CR 에뮬레이터에서 제공하지 않거나

     

    어설프게 제공하는 것들에 대한 해결책을 몇 가지 찾아내었습니다.

     

    혼자만 알고 있기에는 좀 그래서

     

    다른분들이 아실 수 있도록 공유를 하려고 합니다.

     

    CR 에뮬레이터 또한 구현율이 상당하고, 개발이 중단되어 해결할 수 없는 버그가 몇 가지 있지만

     

    주어진 함수들을 조합하고 이용하면 몇 가지 필수 기능들을 구현해 낼 수 있습니다.

     

    CR에도 희망은 있습니다..!

     

     

     

    먼저 첫번째로는 중복 사용되는 마법을 제한하는 방법입니다.

     

    CR 에뮬레이터 전반적으로 소수 단위를 인식하지 못하는 문제가 있습니다.

     

    스크립트의 변수 입력이 대부분 int 형으로 한정되어 발생하는 것으로 추정됩니다.

     

     

    바람 마법 중에는 초당 캐스팅 할 수 있는 횟수가 제한된 것이 있습니다.

     

    주술사의 첨마법, 비영승보, 필살기 등등

     

    CR에서 이것을 구현하려면 다음과 같은 Global Function을 만든 후

     

    마법 함수 스크립트에서 호출해 줍니다.

     

     

    함수 정의:

     

    FUNC HIDDEN_DELAY {
    set @mysd, mysd();
    set @myid, myid();
    set @delay, getarg(0);


    if($hidden_delay_time != gettimetick(1)) {
    set $hidden_delay_time, gettimetick(1);
    set $hidden_delay_value, @delay;
    return;
    }
    if($hidden_delay_value + @delay <= 1000) {
    set $hidden_delay_value, $hidden_delay_value + @delay;
    return;
    }
    }

     

     

     

    호출 예: 1초에 두번까지 사용하게 하는 경우

    callfunc("HIDDEN_DELAY", 500);

     

     

    매커니즘:

    현재 시간(초단위)을 저장할 계정 변수 한개($hidden_delay_time)와

     

    현재 시간의 마법 사용량을 저장할 변수 한개($hidden_delay_value)를 만듭니다.

     

    이후 마법을 캐스팅 할 때의 시간을 gettimetick(1) 함수로 가져와 $hidden_delay_time에 저장합니다.

     

    만약 캐스팅 시간과 $hidden_delay_time 변수의 값이 같은 경우

     

    유저는 현재 시간(초단위)에 이 스킬을 사용한 적이 있는 경우이므로

     

    $hidden_delay_value 를 적당히 증가시킵니다.

     

    이후 $hidden_delay_value 값이 일정량 이상(예에선 1000) 도달한 경우 스킬 사용을 취소합니다.

     

     

     

    알려진 버그:

    gettimetick 함수에 문제점이 한 가지 있습니다.

     

    시스템 부팅 이후의 시간을 초단위로 반환하는 함수인데,

     

    부팅 시간이 약 24.8일을 지나는 순간부터 시간값을 가지고 있는 변수(int로 추정)의 오버플로가 발생됩니다.

     

    이때부터 함수의 작동이 비정상적으로 이루어집니다. 똑같은 값만 출력하게 됩니다.

     

    따라서 몇 가지 해결책이 존재하는데,

     

    첫째. 24일 이내로 시스템을 재부팅 시킨다.

    둘째. gettimetick 함수의 인수를 1대신 0으로 사용한다.

    셋째. 시스템의 uptime을 임의로 조절한다.

     

     

    정도가 있겠습니다.

     

    gettimetick 함수의 인수를 0으로 사용하는 경우는 리턴되는 값은 ms 단위의 초 입니다.

     

    이 값을 1000으로 나누어 사용해도 되겠습니다만,

     

    값 자체가 오버플로우 되어 음수가 나올 수 있으므로 참고하셔야 합니다.

    [출처] 브로드캠프 - http://broadcamp.com/bbs/board.php?bo_table=e5&wr_id=39

    이 게시물을..
    N
    0
    0
    • [CR] [스크립트] '스크립트'의 가장 기초적인 설명3로이로이로이로이
    • 0
      행복e

    행복e 님의 최근 글

    작성 글이 없습니다.

    행복e 님의 최근 댓글

    작성 댓글이 없습니다.
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    • 목록
      view_headline
    × CLOSE
    기본 (92) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    92
    전체 노획 소스.
    프렌치좋아 2024.03.31 - 19:15 24
    91
    링클래식 APM GM 설정 오류 해결법
    마렬 2020.05.14 - 18:53 362
    90
    시간마다 나오는 공지를 수정하려면!
    하늘별풍선 2020.05.07 - 05:08 178
    89
    [CR] Bind Failed 오류 발생 시
    누스 2018.08.28 - 21:55 351
    88
    (초심자 관점) 2. CR 구축 방법
    하얀달 2017.01.15 - 17:06 3786
    87
    (초심자 관점) 1. APMSETUP7 다운 방법
    하얀달 2017.01.15 - 16:30 1659
    86
    [CR] 함수 기능 정리
    마사카 2017.01.07 - 05:18 4124
    85
    CR 운영자 명령어
    웨이1 2017.01.03 - 23:14 2325
    84
    CR 스크립트 if 문
    웨이1 2017.01.03 - 23:12 575
    83
    CR 변수
    웨이1 2017.01.03 - 23:11 392
    82
    스크립트 지식
    웨이1 2017.01.03 - 23:10 695
    81
    아이템 체크 사용자 정의 함수
    웨이1 2017.01.03 - 23:06 388
    80
    npc생성
    웨이1 2017.01.03 - 23:04 598
    79
    cr shop_db 참고
    웨이1 2017.01.03 - 22:46 342
    78
    맵블럭 오류
    웨이1 2017.01.03 - 22:44 465
    77
    CR 아이템 추가
    웨이1 2017.01.03 - 22:41 940
    76
    소지품 확인 사용자 정의 함수
    웨이1 2017.01.03 - 21:29 293
    75
    [CR] 인던 추가방법
    웨이1 2017.01.03 - 21:27 1457
    74
    가독성 높은 스크립트 짜기!
    김돌돌 2016.12.24 - 22:27 654
    73
    서버 느리게하는 요소
    김돌돌 2016.12.24 - 01:30 971
    72
    프바 몹추가 팁
    김돌돌 2016.12.24 - 01:29 1005
    71
    cr 구축법
    김돌돌 2016.12.24 - 01:28 1527
    70
    맵 연결포트 강의입니다.
    김돌돌 2016.12.24 - 00:07 398
    69
    머리 염색 NPC 강의
    옹동봉 2016.12.22 - 20:36 165
    68
    [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin
    우지냥 2016.12.18 - 13:30 350
    67
    [CR] cr에서 숫자값을 저장할 수 있는 함수
    우지냥 2016.12.18 - 13:30 133
    66
    스크립트 팁 - 가독성 좋게해주는 팁
    우지냥 2016.12.09 - 07:21 194
    65
    유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다
    우지냥 2016.12.09 - 07:20 271
    64
    [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점
    우지냥 2016.12.03 - 20:34 798
    63
    [CR] 동화 // 조건의종류
    우지냥 2016.12.03 - 20:33 115
    62
    [CR] 동화 // 조건문의 기초
    우지냥 2016.12.03 - 20:33 113
    61
    CR] 동화 // 변수란 무엇인가?
    우지냥 2016.12.03 - 20:33 134
    60
    [CR] 동화 // 간략하고 짧은 강의
    우지냥 2016.12.03 - 20:32 206
    59
    [CR] 원거리 공격마법 만들기
    우지냥 2016.12.03 - 20:32 351
    58
    [CR] 전설 // 이전 강의에 이은 2번째 강의!
    우지냥 2016.12.03 - 20:31 199
    57
    [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    우지냥 2016.12.03 - 20:31 284
    56
    [CR] 이영아 // callfunc
    우지냥 2016.12.03 - 20:31 177
    55
    [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 123
    54
    [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 247
    53
    [CR] Chapter. 1-2 통합파일의 구조체( 무료 )
    우지냥 2016.12.03 - 20:30 456
    52
    [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 )
    우지냥 2016.12.03 - 20:29 527
    51
    [기타] 레이더즈 // IPv4 Address 구조강좌..
    우지냥 2016.12.03 - 20:29 138
    50
    [CR] 레이더즈 // 상점NPC만들기..
    우지냥 2016.12.03 - 20:29 190
    49
    [CR] 주작 // CALLFUNC "SLOTCHECK"
    우지냥 2016.12.03 - 20:28 96
    48
    [CR] 주작 // CALLFUNC "ITEMCOUNT
    우지냥 2016.12.03 - 20:28 99
    47
    [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    우지냥 2016.12.03 - 20:27 156
    46
    [CR] 주작 // switch문 추가 강의
    우지냥 2016.12.03 - 20:27 97
    45
    [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    행복e 2016.11.30 - 19:28 346
    44
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    로이로이로이로이 2016.10.25 - 16:50 159
    43
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명2
    로이로이로이로이 2016.10.25 - 16:50 167
    • 1 2
    • / 2 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay