사이트 로그인
2016.08.01 08:17
저처럼 CR에서 DR로 넘어가는 모든 사람들을 위한 강의입니다.
CR과 DR은 함수체계가 같으면서도 다른 점이 몇 가지 있습니다.
그렇기에 스크립트를 복붙한다고 해서 호환은 절대로 되지 않습니다.
그러나 몇 가지 함수들을 주의해주면서 익혀주신다면, 마법 등의 스크립트를 잘 옮길 수 있을겁니다.
이 글은 위에서 밝혔던 몇 가지 함수들을 다루어보도록 하겠습니다.
* 여기서 나오는 것들은 저의 지극히 주관적인 경험입니다. 댓글로 어드바이스 해주시는 것을 언제든지 환영합니다!
1. get_side, set_side → get_dir, set_dir
side는 방향함수입니다. 0은 위, 1은 오른쪽, 2는 아래, 3은 왼쪽이죠. CR에서는 mysd()로 수식해주어야 합니다.
대개는
set @sd, mysd();
set @d, get_side(@sd);
이런식의 스크립트로서 값을 얻어냅니다.
방향을 많이 이용하는 마법이 이 게임 특성상 많은 이상, 이것을 DR화 시키려면,
side를 dir로 바꿔주셔야 합니다. 그것도 myid()로 수식해주어야 합니다.
뭐 정리한다면,
set @id, myid();
set @d, get_dir(@id);
로 하면 수식이 되겠습니다.
그 외에 좌표를 읽는
get_x나 get_y
그리고 get_mapheight 등등 전부 @id로 수식된다는거!
2. get_name
get_name 함수는 이름을 따오는 함수입니다.
CR의 경우는 이를 sd로 수식해주어야 합니다.
set @id, myid();
set @sd, mysd();
[cr]
say @id, 1, ""+get_name(@sd)+": 아아아아아아아";
DR의 경우는 이를 id로 수식해주어야 합니다.
[dr]
say @id, 1, ""+get_name(@id)+": 아아아아아아아";
3. magiccast → magic_cast , magicuncast → magic_uncast
이건 구별하기 어렵지 않겠네요. 그냥 _만 붙여주시면 됩니다.
4. istype
istype 함수는 어떤 오브젝트의 속성이 무엇인지 알려주는 함수입니다.
CR의 경우는 0은 npc, 1은 유저, 2는 몬스터였습니다.
그러나 DR에서는 1:유저, 2:아이템, 4:몬스터, 8:npc, 16:고용상인, 32:환수 까지 범위가 확대됩니다.
특히 몬스터는 아예 데이터가 다르니, 스킬을 옮기실 때 주의하시길 바랍니다.
5. magic_delay
마법의 딜레이 (재사용 대기시간)를 만드는 데 있어서 DR은 거의 완전히 새로워진 체계를 따릅니다.
CR의 경우는
magic_delay라는 함수를 통해 해당 스킬의 딜레이를 간단하게 설정할 수 있었습니다.
그러나 DR에서는
magic_delay 함수가 크게 업그레이드 되었습니다.
BUILDIN_DEF(magic_delay,"iiii"), // 마법 지속시간 증감 ( 옵젝번호, 타입, 마법번호, 딜레이 )
메모장을 살펴보면 저렇게 되어있습니다. 저것은
magic_delay @sd, 120;
이렇게 설정했던 기존 CR의 스크립트와는 달리
magic_delay @id, 1, 280, 120;
요렇게 설정해 주셔야 적용이 됩니다.
저렇게 봐서는 괜시리 복잡해졌다 생각하지만 다음 것을 본다면 절대 그렇지 않을겁니다.
6. magic_aether(ed)
magic_aether는 버프나 지속마법을 걸 때 필요한 CR의 함수입니다.
magic_aether @sd, 280, 60;
라는 함수는 280번의 마법을 @sd에게 60초간 건다는 말입니다. 딱히 어렵지 않죠.
DR에서는 이것마저도 magic_delay로 통합(!!) 시켜버리는 대단한 강수를 두었습니다.
magic_delay의 속성을 0으로 준다면 그것이 가능해지는 것입니다.
그러니 속성이 0이면 재사용대기시간, 1이면 버프가 되겠네요.
magic_delay @id, 1, 280, 60;
위 함수는 그 위의 magic_aether과 동일합니다. (개인적으로는 정말 햇갈렸습니다..)
7. sound
sound 함수는 효과음 함수입니다.
효과음을 넣어주는 뭐 딱히 그냥 기본적인 함수입니다.
CR의 경우는
sound @id, 0, 111;
가운데 0이 들어가있습니다.
DR은
sound @id, 111;
0을 빼주시면 되겠습니다.
----
이상으로 여러 햇갈리는 함수들의 모음을 살펴보았습니다.
물론 이것 말고도 다른 여러 함수들이 머리를 아프게하지만..
이정도만 알아도 여러분은 멋진 개발자가 될 것입니다! 화이팅!
좋은 팁입니다.