어둠의전설 어둠의 전설 아벨던젼 추가 (1)
컨텐츠 정보
- 22 조회
- 0 추천
- 0 비추천
- 목록
본문
작성자: 작성자 없음
^^;; 영자님 3만 포인트만 주세요 감사합니다 넙죽 넙죽(사실 포인트는 별 필요 는 없지만;;)
어둠님이 올려 주신 세오 서버 소스 잠깐 들여다 보긴 했는데
그동안 일이 바뻐서 이제 열어 보내요...
최적화가 필요해 보이는 스크립트가 보이네요... 고치려면 시간이 좀 필요할듯^^;;
보니깐 피에트에서 1~41까지 사냥한 후 마땅한 사냥터가 없네요..
3써클 사냥터 아벨던젼이 없습니다..
생각 처럼 간단 하진 않네요 그럼 아벨던젼 추가 시작 하겠습니다...
먼저
db\mob에 mob_db.txt에
mob:db/mob/아벨던젼/아벨던젼_Monster.txt
spawn:db/mob/아벨던젼/아벨던젼_Spawn.txt
추가해 주세요.
세오서버\db\mob\아벨던젼(아벨던젼 폴더를 만드세요)
아벨던젼_Monster.txt
아벨던젼_Spawn.txt
파일을 만듭니다. 텍스트 파일을 만드셔서(마우스 오른쪽 ->새로 만들기-> 텍스트 문서)
이름을 저렇게 바꿔주세요
그럼 아벨던젼_Monster.txt 파일 부터 보겠습니다.
먼저 아벨던젼 1-1존을(본썹) 가보면 리치,퐁퐁이,슬러그 이 3종류의 몬스터가 있습니다.
경험치는 똑같고 같은 종류의 몬스터라도 체력이 약간 다르지만 저렇게 통일 하겠습니다.
본썹의 몹에다 센스몬스터 해서 경험치와 체력을 그대로 가져 왔습니다..
그런데 있다가 보니 슬러그가 베노미를 가하네요.. 리치는 렌토를 가합니다...
먼저 아벨던젼_Monster.txt 파일에 아래의 스크립트를 넣어 주세요..
아래의 아벨던젼_Monster.txt 파일의 소스 설명은 생략 하도록 하겠습니다.
// 아벨던젼 1-1 시작 슬러그:베노미 리치:렌토
{
이름 리치
타입 2
속도 1000
이미지 85
체력 13219
최소공격력 500
최대공격력 520
방어력 -10
경험치 15040
젠타임 60
드롭아이템1 2 엑스쿠라눔
}
{
이름 퐁퐁이
타입 1
속도 1000
이미지 54
체력 16485
최소공격력 500
최대공격력 520
방어력 -10
경험치 20200
스킬 Monster_렌토 3
젠타임 60
드롭아이템1 2 엑스쿠라눔
}
{
이름 슬러그
타입 2
속도 1000
이미지 86
체력 19199
최소공격력 500
최대공격력 520
방어력 -10
경험치 25950
젠타임 60
스킬 Monster_베노미 10
드롭아이템1 2 엑스쿠라눔
}
// 아벨던젼 1-1 끝
그냥 눈으로 보시면 다 이해가 갑니다.
그런데 퐁퐁이를 보시면 스킬 Monster_렌토 3이 있죠?
db\script\디스펠에 가시면 스킬몬스터.txt 파일이 있습니다.
거기에 렌토를 추가해 줍시다..
0,0,0,0,0,0,0 Monster_렌토 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(char_curse(@myid, "렌토", 120, 20, 5)){end;}
message 3, object_name() + "가(이) 렌토를 가합니다.";
effect @myid, 259,0,140;
game_sound 8,0;
}
이것도 보면 그냥 머 이해가 가시겠지만 그래도 쉽게 설명을 드리자면..
1번째줄 @myid 쓰실려면 선언해 주어야 함
2번째줄 매프상태일 때 렌토가 가해지지 않음
3번째줄 저주나 독상태 이모탈 상태 이런 상태가 화면 오른쪽 위에 세로로 죽 표시되는 자리에 렌토이미지가 생긴다고 보시면 되겠습니다.
어둠은 다들 하시니까 아시죠?
이펙트는 렌토시 생기는 파란 구름이 뜹니다.. 어둠은 아신다는 걸로 알고 생략;;
이제 제가 만든 베노미 스크립트 입니다 잘 따라 오셔야 합니다.
db\script\디스펠에 가시면 스킬몬스터.txt 파일이 있습니다.
거기에 아래 스크립트를 추가해 줍시다..
0,0,0,0,0,0,0 Monster_베노미 {
set @myid, get_myid();
set #poisondamage, get_vita;
set #benomitime, time();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(char_curse(@myid, "베노미", 120, 65, 35))
message 3, object_name() + "가(이) 베노미를 가합니다.";
BenomiStartcheck:
set@type,istype(@target);
if(@type==3){
message 3, "스펠을 외워 중독이 해제 되었습니다...";
if(!char_curse_end(@myid, "베노미"))
del@myid;
del@target;
del@type;
end;}
if(get_body(@myid) == 48){
message 3, "귀신이 되어 중독이 해제 되었습니다...";
end;}
if(time() - #benomitime < 120){goto BenomiStart; end;}
message 3, "중독 시간이 지나 끝 났습니다..";
del@myid;
del@target;
del@type;
end;
BenomiStart:
if(@type==3){
goto BenomiStartcheck;
}
game_sound 0,0;
if(get_body(@myid)!=48){
del@hill;//델힐이 위로
char_damaged4@myid,#poisondamge*1/100,#poisondamge*1/100;
effect @myid, 247, 0, 75;
message 3, "독기가 온몸을 침투합니다.";
Sleep(1000);
goto BenomiStartcheck;}
}
베노미 스크립트를 간단하게 주석으로 설명 하겠습니다.. 의문가는 점 댓글로 질문받음
숙제로 추가 할 점은 체력이 베노미데미지보다 적을 때 이펙트만 뜨고 노데미지로 가게 해야 하고
렌토걸리면 베노미 이미지가 상태화면에 뜨지 않는데 그 것도 고쳐야 해요 T.T 급한 건 일 단 해결 해놨으니
나중에 저런 오류도 고쳐야죠 여러분들에겐 숙제로 남겨 드립니다~~
0,0,0,0,0,0,0 Monster_베노미 {
set @myid, get_myid();
set #poisondamage, get_vita;
//독데미지 변수선언 #poisondamage get_vita(현제 체력값이 들어갑니다 이렇게 해 주는 이유는
//베노미는 자신의 현제 체력에 1%깍이는 스펠입니다.
//set_vital get_vita(@myid)-get_basevita(@myid)/100*1; 데미지를 이런 식으로 처리를 할 수 도 있지만
//이미 구양신공과 같은 팟 에서 같은 방법을 사용 하기 때문에 팅깁니다.. 그래서 이렇게 변수를 주었습니다...
set #benomitime, time();
//타임 스크립트 입니다... 어떻게 동작하는지 보세요
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(char_curse(@myid, "베노미", 120, 65, 35))
//마법이 가해질 때 표시되는 오른쪽 상단 이미지를 띄웁니다...
message 3, object_name() + "가(이) 베노미를 가합니다.";
BenomiStartcheck:
set@type,istype(@target);
if(@type==3){
//리베라토나 디베노모가 가 해 질때 중독이 해제 되게 하려면 @type==3으로 조건을 잡으시면 됩니다..
message 3, "스펠을 외워 중독이 해제 되었습니다...";
if(!char_curse_end(@myid, "베노미"))
//위줄에 if(char_curse(@myid, "베노미", 120, 65, 35))과 다르죠 !표가 붙었고 curse뒤에 _end가 붙었습니다.
//이렇게 써주시면 오른쪽 상단 베노미 이미지가 해제 됩니다.
del@myid;
del@target;
del@type;
end;}
if(get_body(@myid) == 48){
//메세지를 보신 바와 같이 get_body 48은 귀신 상태를 말 합니다.
message 3, "귀신이 되어 중독이 해제 되었습니다...";
end;}
if(time() - #benomitime < 120){goto BenomiStart; end;}
message 3, "중독 시간이 지나 끝 났습니다..";
//여기서 120이 베노미(중독)시간 입니다.. 중독 시간이 끝나면
베노미 이미지는 자동으로 지워지기 때문에 따로 멀 적진 않았습니다...
del@myid;
del@target;
del@type;
end;
BenomiStart:
if(@type==3){
//앞서 리베라토나 디베노모가 가 해 질때 중독이 해제 되게 하려면 이렇게 조건을 써 주어라고
//말을 했죠? 이번에는 타이밍이 안맞았을 때를 방지하기 위해 한번 더 써준 줄입니다.
//이 if문 구간을 삭제하면 리베나 디베노모를 쓰실때 종종 안풀립니다..
//Goto 문이 몇개 보이죠..
//BenomiStartcheck;
//goto BenomiStartcheck;이렇게 해주시고 benomiStartcheck: 이렇게 해주신다면
//goto BenomiStartcheck;이 구문이 실행 될때 benomiStartcheck: 구문으로 건너갑니다.. 워프랑 비슷하다고 생각 하시면 되겠습니다.
}
game_sound 0,0;
if(get_body(@myid)!=48){
del@hill;
char_damaged4@myid,#poisondamge*1/100,#poisondamge*1/100;
//체력을 1%깍이게 합니다...
effect @myid, 247, 0, 75;
message 3, "독기가 온몸을 침투합니다.";
Sleep(1000);
//1초 쉬어줍니다.. 그럼 당연히 1초단위로 데미지가 들어가겠죠? ^^
goto BenomiStartcheck;} // 위에 benomistartchek:이렇게 써준곳으로 워프함 ^^
}
머 이 스크립트가 쉬워보여도... 많은 분들이 이거 만드시다가 포기하신 걸로 알고 있습니다.
예전에 노바님 섭할 때 저도 했었는데 노바님이 팟쓰면 팅긴다고 베노미를 빼버렷죠;;
머 그땐 노바님이 바쁘셨겟죠..
이제
db\script\[Skill,Spell] 폴더로 가보겠습니다.
성직자기술.txt에 리베라토와 디베노모가 있습니다.
스크립트 적당한 자리에
if(!char_curse_end(@myid, "베노미")) 이 구문을 추가 하시면
리베와 디베노모를 가해 질때 독 상태에서 해제 됩니다.
여기서 @myid를 타겟으로 바꿔 주셔야 해요 ^^ 왜 그런지는 소스를 보시면 충분히 알 수 있을 겁니다..
if(!char_curse_end(@target,"베노미")) 이렇게 구문을 추가 해 주세요
그럼 다시 여기로 오셔서
db\mob\아벨던젼
아벨던젼_Monster.txt를 열어 아래의 스크립트를 추가 해 봅시다.
위에선 1-1존을 추가했죠? 이제는 2-2존 입니다.
// 아벨던젼 2-1 시작 슬러그:마레누스 리치:중독 퐁퐁이:바르도
{
이름 리치
타입 2
속도 1000
이미지 85
체력 17214
최소공격력 500
최대공격력 520
방어력 -10
경험치 18500
젠타임 60
스킬 Monster_베노미 10
드롭아이템1 2 엑스쿠라눔
}
{
이름 퐁퐁이
타입 1
속도 1000
이미지 54
체력 15026
최소공격력 500
최대공격력 520
방어력 -10
경험치 23900
스킬 Monster_바르도 10
젠타임 60
드롭아이템1 2 엑스쿠라눔
}
{
이름 슬러그
타입 2
속도 1000
이미지 86
체력 19199
최소공격력 500
최대공격력 520
방어력 -10
경험치 30540
젠타임 60
스킬 Monster_마레누스 10
드롭아이템1 2 엑스쿠라눔
}
// 아벨 2-1의 끝
이제 설명 할게 없으니 설명은 끝내겠습니다.
계속 하던 작업의 반복임
3-1존도 추가 해 줍시다
// 아벨 3-1 슬러그:중독,나르 애스코모이드:아듀로스 퐁퐁이:바르도
{
이름 퐁퐁이
타입 1
속도 1000
이미지 54
체력 19609
최소공격력 500
최대공격력 520
방어력 -10
경험치 21000
스킬 Monster_바르도 10
젠타임 60
드롭아이템1 2 엑스쿠라눔
}
{
이름 슬러그
타입 2
속도 1000
이미지 86
체력 18045
최소공격력 500
최대공격력 520
방어력 -10
경험치 27900
젠타임 60
스킬 Monster_베노미 10
스킬 Monster_나르콜리 10
드롭아이템1 2 엑스쿠라눔
}
{
이름 애스코모이드
타입 2
속도 1000
이미지 86
체력 17736
최소공격력 200
최대공격력 800
방어력 -10
경험치 35490
젠타임 60
스킬 Monster_아듀로스 10
드롭아이템1 1 엑스쿠라눔
}
// 아벨던젼 3-1 끝
이제 몹스폰으로 가보겠습니다.
db\mob\아벨던젼
아벨던젼_Spawn을 열어 보세요
아벨던젼 1-1,리치,11
아벨던젼 1-1,퐁퐁이,7
아벨던젼 1-1,슬러그,3
아벨던젼 2-1,리치,11
아벨던젼 2-1,퐁퐁이,7
아벨던젼 2-1,슬러그,3
아벨던젼 3-1,애스코모이드,2
아벨던젼 3-1,퐁퐁이,15
아벨던젼 3-1,슬러그,6
이렇게 추가 해 줍시다.. 실제 본섭하고 비슷할 겁니다 제가 몇 바퀴 돌면서 세어본거라서 대중 맞음 몹의 체마와 경치는 본섭몹을 센몬하여 가져옴
2존 3존을 몹들을 보니까 마레누스 바르도 나르콜리 아듀로스 이런 마법들을 가하네요
db\script\디스펠
몬스터기술.txt에 아래의 마법이 없다면 추가 해 주세요
0,0,0,0,0,0,0 Monster_렌토 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(char_curse(@myid, "렌토", 120, 20, 5)){end;}
message 3, object_name() + "가(이) 렌토를 가합니다.";
effect @myid, 259,0,140;
game_sound 8,0;
}
0,0,0,0,0,0,0 Monster_바르도 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(char_curse(@myid, "바르도", 120, 35, 82)){end;}
message 3, object_name() + "가(이) 바르도를 가합니다.";
effect @myid, 258,0,140;
game_sound 8,0;
}
0,0,0,0,0,0,0 Monster_마레누스 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
message 3, object_name() + "가(이) 마레노를 가합니다.";
char_damaged4 @myid, 300,600;
effect @myid, 234, 0, 100;
game_sound 72,0;
}
0,0,0,0,0,0,0 Monster_나르콜리 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
if(get_wearitem_weapon(@myid) != 0){
if(get_wearitem_weapon(@myid) == "뮤레칸의스냅+5" || get_wearitem_weapon(@myid) == "뮤레칸의디그+5" || get_wearitem_weapon(@myid) == "뮤레칸의글러브+5" || get_wearitem_weapon(@myid) == "뮤레칸의마법가지+5" || get_wearitem_weapon(@myid) == "뮤레칸의스태프+5"){
if(rand2(1,100) > 70){message 3, "뮤레칸의 기운이 부정한마법을 막어냅니다."; end;}
}
}
game_sound 8,0;
message 3, object_name() + "가(이) 나르콜리를 가합니다.";
mobnar_delay @myid, 8;
}
0,0,0,0,0,0,0 Monster_아듀로스 {
set @myid, get_myid();
if(magic_protection(@myid)){effect @myid, 33, 0, 130; end;}
effect @myid, 23, 0, 75;
game_sound 8,0;
message 3, object_name() + "가(이) 아듀로를 가합니다.";
char_damaged4 @myid, 300,600;
}
추가 다 하셧죠?
그리고
db\script
script.txt에 보면
리베라토 있는데를
reberato @myid;
reberato2 @myid;
if(!char_curse_end(@myid, "베노미")) <-- 추가한 줄
이런곳 3군대를 고쳐 주시면 되겠습니다...
^^ 이상으로 강의를 마치구요..
저 지존 도적이 있는데 3층 까지 하다가 체/마가 적어서 힘드네요
경치 5억만 하면은 여러곳을 다니면서 추가 해 볼 수도 있을 것 같습니다.
그땐 어둠의 전설 아벨던젼 추가 (2) 게시글을 보실 수 있을 것 입니다.
쩔 해주실분? ㅠ,ㅠ
그런데 세오서버는 스크립트 수정이 시급해 보이네요 걸을 때 막 렉걸림 ㅎㄷㄷ
-
등록일 00:20
-
등록일 08.20
-
등록일 08.10VMware 네트워크 IP 설정댓글 2
-
등록일 08.08