어둠의전설 [어둠의전설]변수의 장 -1
컨텐츠 정보
- 23 조회
- 0 추천
- 0 비추천
- 목록
본문
작성자: 작성자 없음
안녕하세요.
어둠 도우미입니다.
이렇게 글을 올리는 이유는 저가 올려드린 팩에 변수들이 많습니다.
적용 못 하시는 분들도 간간이 있으셔서 설명해 드릴 겸
스크립트 만드시는데 도움 주고 싶어이렇게 올립니다.
--------------------------------------------------------------------
1 . 변수의 종류
변수의 종류는 총 3가지가 있습니다.
@ : 임시 변수 [ 구동기를 끄면 사라지는 변수 입니다. ]
# : 계정 변수 [ 구동기를 끄셔도 계정에 남는 변수 입니다. ] *save/user/아이디/variable.txt 에 남습니다
$ : 서버 변수 [ 구동기를 끄셔도 서버에 남는 변수 입니다. ] *save/map_reg.txt 에 남습니다.
2. 변수들의 사용방법
모든 변수들은 앞에 set을 붙혀주셔야 합니다.
ex) set @test , set #test, set $test
set @test, 1; 임시 변수 @test를 1로 지정한다
set #test, 1; 계정 변수 #test를 1로 저장한다.
set $test, 1; 서버 변수 $test를 1로 저장한다.
set @test, @test + 1; 임시 변수 @test에 지장된 값에 + 1를 해준다.
set #test, #test + 1; 계정 변수 #test에 저장된 값에 +1를 더해 저장한다.
set $test, $test + 1; 서버 변수 $test에 저장된 값에 +1를 더해 저장한다.
@ 임시 변수--------------------------------------------------
장점은 여러 가지를 써도 구동기를 끌 때 알아서 없어진다는 점이 좋습니다.
하지만 스크립트에서 사용하고 구동기를 안 끌 경우는 임시 변수들이 사라지지 않고 쌓이겠죠? 그걸 방지하기 위해
del @test; 이런 식으로 @test라는 임시 변수를 삭제시켜준다.라는 함수를 넣어주셔야 합니다.
그렇게 하면 스크립트를 쓰고도 @test라는 변수가 삭제되어 쌓이는 걸 방지해줍니다
ex)
0 SKILL_레스큐 {
set@myid,get_myid(); ---------- @myid이라는 변수를 get_myid()[자신을 불러오는 함수]로 임시 지정한다.
set@target,skill_target(); ---------- @target이라는 변수를 skill_target()[스킬 대상을 불러오는 함수]로 임시 지정한다.
set@damage,1; ---------- @damage이라는 변수를 1로 임시 지정한다.
skill_delay 6; --------- 스킬딜레이
if(!@target){message 3,"대상이 없습니다";end;} ------ skill_target()의 대상이 없을경우 메세지 출력
game_sound 1,100; ------- 게임 사운드
effect@target,0,27,100; ----------- 이펙트를 skill_target()을 기준으로 삼는다.
damaged@target,@damage; -------------- 데미지를 skill_target에게 @damage 만큼 준다.
motion 1,20; --------- 모션
del @myid; ----- 임시변수 @myid 삭제
del @taget; ----- 임시변수 @target 삭제
del @damage; ------ 임시변수 @damage 삭제
}
# 계정 변수---------------------------------------------------
계정 변수는 퀘스트를 만드실 때 유용합니다. 구동기를 끄더라도 유지가 되기 때문에 아주 좋습니다.
단점은 버그가 생긴 계정 변수를 삭제하고 싶을 경우는 save 파일 user에 들어가서 일일이 삭제해줘야 합니다.
or set #test, #test - 1;를 하셔도 됩니다.
ex)
if(get_mapname(@myid)=="밀레스식당"){ --- 내가 현제 있는맵이 밀레스식당 일 경우
if(@say$=="완전방어"&&get_class(@myid)==1&&#EestQuest007==0){ ------- "완전방어"라고 말하였고 나의 직업이 전사이며 #EestQuest007 이라는 변수가 0일시.
npc_look @myid, 0, 21; --- npc모습을 get_myid()[자신을 불러오는함수] 에게 21번 모습으로 보여준다.
mes 3,"한때 난 잘나가는 기사였지...."; ----NPC메세지
mes 3,"왕을모시고 전장을 누비는 영웅이었지...";----NPC메세지
mes 3,"이야기를 하려니 목이마르군.";----NPC메세지
mes 3,"나는 포도주를 좋아하지.";----NPC메세지
mes 3,"요즘은 좋은 포도주를 구하기 힘들다더군.";----NPC메세지
mes 3,"내가 듣기로는 포도주는 물이 많은 어느 마을에서 구할수 있다더군.";----NPC메세지
mes 3,"어딘가 예전의 기법으로 포도주를 만들어주는 여자가 있다고 하던데";----NPC메세지
set #EestQuest007, 1; ------- #EestQuest007이라는 계정변수를 1로 지정한다. 그러면 다시는 이 문을 안볼수있다.
mes 2,"포도주를 구하면 나에게 주게나. 수고하게나."; --- NPC메세지
}
}
$ 서버 변수---------------------------------------------------
이 변수는 쪼금 쓰기 까다로운 변수입니다. 변수 중에서 오류를 가장 많이 발생하며.
신중하게 쓰셔야 합니다.
서버 그 자체에 저장되기 때문에.
계정 변수처럼 개개인에 적용되는 게아니라. 서버 자체에 적용됩니다.
계정 변수와 마찬가지로 모든 스크립트에 연결할 수 있습니다.
서버 이벤트 퀘스트 하실 때 유용합니다.
ex)
0 __MOB_KILL__ {
set@myid, get_myid(); --- @myid이라는 변수를 get_myid()[자신을 불러오는 함수]로 임시 지정한다
set@name$, last_object(@myid); ---- 이건 다음 강의에 배우실껍니다. @name$이라는 임시서버변수에 last_obejct(@myid)[마지막으로 잡은 오브젝트]를 임시 지정합니다.
set $Totalkill, $Totalkill + 1; ------ 서버변수 $Totalkill에 지정된 값에 +1를 해줍니다. [ 몬스터가 죽으면 $Totalkill의 수는 점점 올라갑니다 ]
.
.
.
}
--------------1장을 마무리 하며-----------
오늘의 1장 강의는 여기까지입니다.
다음 2장 강의는
@test$ 이런 식으로 복합 변수에 대해 설명하겠습니다.
유용하게 쓰셨으면 좋겠습니다 ^-^
*자유게시판에 작성하엿던 글을 강좌로 옮겼습니다.
-
등록일 00:20
-
등록일 08.20
-
등록일 08.10VMware 네트워크 IP 설정댓글 3
-
등록일 08.08