게임강의
어둠의전설 분류

변수의 장 -1

컨텐츠 정보

  • 103 조회
  • 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$ 이런 식으로 복합 변수에 대해 설명하겠습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 658 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 147,509
2 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 91,378
3 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 64,195
4 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 59,621
5 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 57,281
6 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 54,964
7 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 52,661
8 no_profile Gatchaman쪽지보내기 자기소개 아이디로 검색 전체게시물 45,503
9 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 35,020
10 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 29,199
알림 0