CR 왕퀘스트 소스
Script 투명강제해제 {
set @mysd, mysd();
set @myid, myid();
image 492, 492, 7;
if(pc_amountitem(@mysd, name2itemid("수상한물건")) >= 1) {
set @pos, list2(@list50,1,0, "무례하게 폐하께 직접!\n폐하께 전할 말씀은 나를\n통해서 하시오!", "염라대왕님의 부탁을 전해드리러 왔습니다.");
if(@pos == 0) end;
if(@list50 == 1) {
set @pos, list2(@list51,1,0, "그게 무슨 개소린가?\n썩 꺼지지 못할까?", "사실입니다. 이 물건이라도 전해 주십시오..");
if(@pos == 0) end;
if(@list51 == 1) {
set @pos, list2(@list52,1,0, "흠.. 그렇게 말하니 할 수 없군..\n잠깐 기다려보게", "네, 알겠습니다.");
if(@pos == 0) end;
if(@list52 == 1) {
set @pos, list2(@list53,1,0, "..", "..");
if(@pos == 0) end;
if(@list53 == 1) {
set @pos, list2(@list54,1,0, "....", "...");
if(@pos == 0) end;
if(@list54 == 1) {
set @pos, list2(@list55,1,0, "폐하께 이 물건을 전해주었네..\n그랬더니 자네에게 이것을 주라고 하더군..\n어쨌든 볼일은 끝났으니 이제 가보게..\n오해해서 미안했네", "..네");
if(@pos == 0) end;
if(@list55 == 1) {
delitem @mysd, name2itemid("수상한물건"), 99;
additem @mysd, name2itemid("부여왕의서신"), 1;
end;
}
}
}
}
}
}
}
if(get_level(@mysd) < 56) { dialog 0,0,0, "감히 여기가 어디라고!"; end;}
if($king_quest_agree != 1)
{
if(get_level(@mysd) >= 56)
{
COS00001:
set @pos, dialog(0,0,1, "무례하게 폐하께 직접!\n폐하께 전할 말씀은 나를\n통해서 하시오!");
if(@pos != 1) end;
COS00002:
set @pos, dialog(0,1,1, "폐하게 임무를 받으려고\n하시는 겁니까? 임무를\n완수하면 많은 경험치를\n받으시겠지만, 하지 못하면\n형벌을 받게 된다오!");
if(@pos == -1) goto COS00001;
if(@pos == 0) end;
set @list, list1("그래도 임무를 받으시려오?", "네, 받겠습니다.", "무서워서 안되겠어요.");
if(@list==1)
{
if(get_level(@mysd) >= 56 && get_level(@mysd) < 65)
{
set @rand_quest, rand(0,3); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $monster_name$, "자호"; set $plus_exp, 250000; }
else if(@rand_quest == 1) { set $monster_name$, "친자호"; set $plus_exp, 350000; }
else if(@rand_quest == 2) { set $monster_name$, "가재"; set $plus_exp, 550000; }
else if(@rand_quest == 3) { set $monster_name$, "전갈"; set $plus_exp, 850000; }
}
else if(get_level(@mysd) >= 65 && get_level(@mysd) < 80)
{
set @rand_quest, rand(0,2); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $monster_name$, "유령"; set $plus_exp, 1300000; }
else if(@rand_quest == 1) { set $monster_name$, "초급유령"; set $plus_exp, 1380000; }
else if(@rand_quest == 2) { set $monster_name$, "중급유령"; set $plus_exp, 1300000; }
}
else if(get_level(@mysd) >= 80 && get_level(@mysd) < 90)
{
set @rand_quest, rand(0,2); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $monster_name$, "유령"; set $plus_exp, 1300000; }
else if(@rand_quest == 1) { set $monster_name$, "초급유령"; set $plus_exp, 1380000; }
else if(@rand_quest == 2) { set $monster_name$, "중급유령"; set $plus_exp, 1300000; }
}
else if(get_level(@mysd) >= 90)
{
set @rand_quest, rand(0,1); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $monster_name$, "노"; set $plus_exp, 2460000; }
else if(@rand_quest == 1) { set $monster_name$, "비"; set $plus_exp, 2460000; }
}
set $king_quest_agree, 1; set $king_quest_count, 0;
//legend_add @mysd,100,7,1, "부여왕에게 " + $monster_name$ + "을 잡는 임무를 받음";
dialog 0,0,0, "어명이오! "+ $monster_name$ +"을 잡으라는\n폐하의 말씀이 있으셨소!\n임무를 수행한 후에는 시간을\n지체하지 말고 바로 황궁으로\n돌아오시오!";
end;
}
else { end; }
}
}
else if ($king_quest_agree == 1)
{
set @my_exp, get_exp(@mysd);
if($king_quest_count == 0)
{
set @pos, dialog(0,0,1, "감히 폐하의 임무를\n취소해달라고? 이놈에게\n형벌을 가하라!\n");
if(@pos == 0) end;
//legend_del @mysd, 100;
set $king_quest_agree, 0;
set $king_quest_count, 0;
set $monster_name$, "";
set $plus_exp, 0;
//if(get_ac(@mysd) > 30){ dialog 0,0,0, "불쌍하게 생겨서 저주는 걸지 않겠다.";}
//if(get_ac(@mysd) < 30){ magiccast @mysd, 3008; }
set @pos, dialog(0,0,1, "이 형벌로 너의 임무가\n지워졌으니, 다시 임무를\n받을 수 있을 것이다.");
if(@pos == -1) end;
}
else
{
set @cal_exp, @my_exp + $plus_exp*5;
if(@my_exp < -2147483648 && @my_exp <= -1)
{
if(@cal_exp > -1)
{
dialog 0,0,0, "경험치를 팔고 오게"; end;
}
}
set @pos, dialog(0,0,1, "어명을 받든 공을 높이 사신\n폐하께서 그대에게 경험치\n"+($plus_exp*10)+" 을 하사하십니다.");
if(@pos == -1) end;
//legend_del @mysd, 100;
set $king_quest_agree, 0;
set $king_quest_count, 0;
//set_exp @mysd, get_exp(@mysd)+(($plus_exp*10)*get_exprate(@mysd));
if(get_level(@mysd) < 99){giveexp @mysd, $plus_exp*2;} else{ giveexp @mysd, $plus_exp; }
}
}
}
Script 경험치저장비령해제 {
set @mysd, mysd();
image 492, 492, 7;
//dialog 0,0,0, "엔프님이 재정비중이십니다 건들지마세요."; end;
if(get_level(@mysd) < 99) { dialog 0,0,0, "감히 여기가 어디라고!"; end;}
//if(get_level(@mysd) == 99) { dialog 0,0,0, "아직도 전하께 볼 일이 남았는가? 이제 좀 더 넓은 세상으로 나가거라!(렙99는 불가)"; end; }
if($wnd_king_quest_agree == 0)
{
if(get_level(@mysd) >= 99)
{
COS00001:
set @pos, dialog(0,0,1, "무례하게 폐하께 직접!\n폐하께 전할 말씀은 나를\n통해서 하시오!");
if(@pos != 1) end;
COS00002:
set @pos, dialog(0,1,1, "폐하게 임무를 받으려고\n하시는 겁니까? 임무를\n완수하면 많은 경험치를\n받으시겠지만, 하지 못하면\n형벌을 받게 된다오!");
if(@pos == -1) goto COS00001;
if(@pos == 0) end;
set @list, list1("그래도 임무를 받으시려오?", "네, 받겠습니다.", "무서워서 안되겠어요.");
if(@list==1)
{
if(get_joblevel(@mysd) >= 3)
{
set @rand_quest, rand(0,3); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $wnd_king_quest_agree, 1; set $monster_name$, "선비평민"; set $plus_exp, 2000000; }
else if(@rand_quest == 1) { set $wnd_king_quest_agree, 2; set $monster_name$, "선비검객"; set $plus_exp, 2500000; }
else if(@rand_quest == 2) { set $wnd_king_quest_agree, 3; set $monster_name$, "흉노평민"; set $plus_exp, 9000000; }
else if(@rand_quest == 3) { set $wnd_king_quest_agree, 4; set $monster_name$, "흉노전사"; set $plus_exp, 10000000; }
}
if(get_level(@mysd) == 99 && get_joblevel(@mysd) < 3)
{
set @rand_quest, rand(0,1); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $wnd_king_quest_agree, 1; set $monster_name$, "선비평민"; set $plus_exp, 2000000; }
else if(@rand_quest == 1) { set $wnd_king_quest_agree, 2; set $monster_name$, "선비검객"; set $plus_exp, 2500000; }
}
else if(get_level(@mysd) >= 65 && get_level(@mysd) < 80)
{
set @rand_quest, rand(0,2); if(@rand_quest<0) { set @rand_quest, @rand_quest*-1; }
if(@rand_quest == 0) { set $monster_name$, "유령"; set $plus_exp, 1300000; }
else if(@rand_quest == 1) { set $monster_name$, "초급유령"; set $plus_exp, 1380000; }
else if(@rand_quest == 2) { set $monster_name$, "중급유령"; set $plus_exp, 1300000; }
}
set $wnd_king_quest_count, 0;
addlegend @mysd,10,7,16, "중국왕에게 " + $monster_name$ + "을 잡는 임무를 받음";
dialog 0,0,0, "어명이오! "+ $monster_name$ +"을 잡으라는\n폐하의 말씀이 있으셨소!\n임무를 수행한 후에는 시간을\n지체하지 말고 바로 황궁으로\n돌아오시오!";
end;
}
else { end; }
}
}
if ($wnd_king_quest_agree == 1)
{
set @my_exp, get_exp(@mysd);
if($wnd_king_quest_count != 1)
{
set @pos, dialog(0,0,1, "감히 폐하의 임무를\n취소해달라고? 이놈에게\n형벌을 가하라!\n");
if(@pos == 0) end;
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
set $monster_name$, "";
set $plus_exp, 0;
addlegend @mysd,10,7,16, " ";
//if(get_ac(@mysd) > 30){ dialog 0,0,0, "불쌍하게 생겨서 저주는 걸지 않겠다.";}
//if(get_ac(@mysd) < 30){ magiccast @mysd, 3008; }
set @pos, dialog(0,0,1, "이 형벌로 너의 임무가\n지워졌으니, 다시 임무를\n받을 수 있을 것이다.");
if(@pos == -1) end;
}
else
{
set @cal_exp, @my_exp + $plus_exp*5;
if(@my_exp < -2147483648 && @my_exp <= -1)
{
if(@cal_exp > -1)
{
dialog 0,0,0, "경험치를 팔고 오게"; end;
}
}
set @pos, dialog(0,0,1, "어명을 받든 공을 높이 사신\n폐하께서 그대에게 경험치\n"+ ($plus_exp*5) +" 을 하사하십니다.");
if(@pos == -1) end;
set @wkddks, name2itemid("장안성비서");
if(pc_checkitem(@mysd,@wkddks) == -1){ additem @mysd, @wkddks, 1; dialog 0,0,0, "황제께서 장안성비서를 하사하십니다.";}
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
addlegend @mysd,10,7,16, " ";
//set_exp @mysd, get_exp(@mysd)+(($plus_exp*10)*get_exprate(@mysd));
if(get_joblevel(@mysd) == 1) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 2) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 3) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 4) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 5) { giveexp @mysd, $plus_exp*2; end; }
else { giveexp @mysd, $plus_exp*1; end; }
}
}
if ($wnd_king_quest_agree == 2)
{
set @my_exp, get_exp(@mysd);
if($wnd_king_quest_count != 2)
{
set @pos, dialog(0,0,1, "감히 폐하의 임무를\n취소해달라고? 이놈에게\n형벌을 가하라!\n");
if(@pos == 0) end;
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
set $monster_name$, "";
set $plus_exp, 0;
addlegend @mysd,10,7,16, " ";
//if(get_ac(@mysd) > 30){ dialog 0,0,0, "불쌍하게 생겨서 저주는 걸지 않겠다.";}
//if(get_ac(@mysd) < 30){ magiccast @mysd, 3008; }
set @pos, dialog(0,0,1, "이 형벌로 너의 임무가\n지워졌으니, 다시 임무를\n받을 수 있을 것이다.");
if(@pos == -1) end;
}
else
{
set @cal_exp, @my_exp + $plus_exp*5;
if(@my_exp < -2147483648 && @my_exp <= -1)
{
if(@cal_exp > -1)
{
dialog 0,0,0, "경험치를 팔고 오게"; end;
}
}
set @pos, dialog(0,0,1, "어명을 받든 공을 높이 사신\n폐하께서 그대에게 경험치\n"+ ($plus_exp*5) +" 을 하사하십니다.");
if(@pos == -1) end;
set @wkddks, name2itemid("장안성비서");
if(pc_checkitem(@mysd,@wkddks) == -1){ additem @mysd, @wkddks, 1; dialog 0,0,0, "황제께서 장안성비서를 하사하십니다.";}
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
addlegend @mysd,10,7,16, " ";
//set_exp @mysd, get_exp(@mysd)+(($plus_exp*10)*get_exprate(@mysd));
if(get_joblevel(@mysd) == 1) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 2) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 3) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 4) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 5) { giveexp @mysd, $plus_exp*2; end; }
else { giveexp @mysd, $plus_exp*1; end; }
}
}
if ($wnd_king_quest_agree == 3)
{
set @my_exp, get_exp(@mysd);
if($wnd_king_quest_count != 3)
{
set @pos, dialog(0,0,1, "감히 폐하의 임무를\n취소해달라고? 이놈에게\n형벌을 가하라!\n");
if(@pos == 0) end;
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
set $monster_name$, "";
set $plus_exp, 0;
addlegend @mysd,10,7,16, " ";
//if(get_ac(@mysd) > 30){ dialog 0,0,0, "불쌍하게 생겨서 저주는 걸지 않겠다.";}
//if(get_ac(@mysd) < 30){ magiccast @mysd, 3008; }
set @pos, dialog(0,0,1, "이 형벌로 너의 임무가\n지워졌으니, 다시 임무를\n받을 수 있을 것이다.");
if(@pos == -1) end;
}
else
{
set @cal_exp, @my_exp + $plus_exp*5;
if(@my_exp < -2147483648 && @my_exp <= -1)
{
if(@cal_exp > -1)
{
dialog 0,0,0, "경험치를 팔고 오게"; end;
}
}
set @pos, dialog(0,0,1, "어명을 받든 공을 높이 사신\n폐하께서 그대에게 경험치\n"+ ($plus_exp*5) +" 을 하사하십니다.");
if(@pos == -1) end;
set @wkddks, name2itemid("장안성비서");
if(pc_checkitem(@mysd,@wkddks) == -1){ additem @mysd, @wkddks, 1; dialog 0,0,0, "황제께서 장안성비서를 하사하십니다.";}
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
addlegend @mysd,10,7,16, " ";
//set_exp @mysd, get_exp(@mysd)+(($plus_exp*10)*get_exprate(@mysd));
if(get_joblevel(@mysd) == 1) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 2) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 3) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 4) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 5) { giveexp @mysd, $plus_exp*2; end; }
else { giveexp @mysd, $plus_exp*1; end; }
}
}
if ($wnd_king_quest_agree == 4)
{
set @my_exp, get_exp(@mysd);
if($wnd_king_quest_count != 4)
{
set @pos, dialog(0,0,1, "감히 폐하의 임무를\n취소해달라고? 이놈에게\n형벌을 가하라!\n");
if(@pos == 0) end;
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
set $monster_name$, "";
set $plus_exp, 0;
addlegend @mysd,10,7,16, " ";
//if(get_ac(@mysd) > 30){ dialog 0,0,0, "불쌍하게 생겨서 저주는 걸지 않겠다.";}
//if(get_ac(@mysd) < 30){ magiccast @mysd, 3008; }
set @pos, dialog(0,0,1, "이 형벌로 너의 임무가\n지워졌으니, 다시 임무를\n받을 수 있을 것이다.");
if(@pos == -1) end;
}
else
{
set @cal_exp, @my_exp + $plus_exp*5;
if(@my_exp < -2147483648 && @my_exp <= -1)
{
if(@cal_exp > -1)
{
dialog 0,0,0, "경험치를 팔고 오게"; end;
}
}
set @pos, dialog(0,0,1, "어명을 받든 공을 높이 사신\n폐하께서 그대에게 경험치\n"+ ($plus_exp*5) +" 을 하사하십니다.");
if(@pos == -1) end;
set @wkddks, name2itemid("장안성비서");
if(pc_checkitem(@mysd,@wkddks) == -1){ additem @mysd, @wkddks, 1; dialog 0,0,0, "황제께서 장안성비서를 하사하십니다.";}
set $wnd_king_quest_agree, 0;
set $wnd_king_quest_count, 0;
addlegend @mysd,10,7,16, " ";
//set_exp @mysd, get_exp(@mysd)+(($plus_exp*10)*get_exprate(@mysd));
if(get_joblevel(@mysd) == 1) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 2) { giveexp @mysd, $plus_exp*5; end; }
if(get_joblevel(@mysd) == 3) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 4) { giveexp @mysd, $plus_exp*3; end; }
if(get_joblevel(@mysd) == 5) { giveexp @mysd, $plus_exp*2; end; }
else { giveexp @mysd, $plus_exp*1; end; }
}
}
}

솔직이 님의 최근 댓글
공개하신 팩 덕분에 공부 많이하고있어요. 2023 02.17 ㄳ 2023 02.15 우리들이 엔피씨 스크립트를 만들때, 가장 기본적으로 사용하는 함수는 두개가 있습니다. list - 메뉴창 함수 dialog - 대화창 함수 그리고 함수를 이용할때 사용하는 임시변수( @ )가 있습니다. 가장 중요한것은, 함수가 어떤 용도로 사용되며, 함수 기능을 사용할시 어떤 조건이 생성이 되는지, 알야아 합니다. 우선 예를든 스크립트를 만들어보도록 하겠습니다. set @menu, list1("어떤 버튼을 누르실껀가요?","버튼1","버튼2"); if(@menu == 1) { 이벤트 영역 1 } else if(@menu == 2) { 이벤트 영역 2 } 우리는 우선, 임시저장소를 '선언'또는 만들었습니다. 어떤 임시저장소를 만들었냐구요? 바로 ' m '이라는 임시 저장소를 만들었습니다. 우리가 list1("어떤 버튼을 누르실껀가요?","버튼1","버튼2"); 에서 버튼 1을 누르면, @m 이라는 임시변수/저장소는 1의 숫자를 갖게 됩니다. 그러므로 우리가 버튼1을 누르면 if(@menu == 1) { 이벤트 영역 1 } 이 이벤트 영역 1을 사용할 수 있는것입니다. 버튼 2를 누르면 else if(@menu == 2) { 이벤트 영역 2 } 이벤트 영역 2를 사용할 수 있게되는거죠, 그냥 간단하고 쉽게 이해하세요. set @menu, list1("어떤 버튼을 누르실껀가요?","버튼1","버튼2"); < < 버튼 1을 누른것은 set @menu, 1; < < 1과 같다. set @menu, list1("어떤 버튼을 누르실껀가요?","버튼1","버튼2"); < < 버튼 2를 누른것은 set @menu, 2; < < 2와 같다. list1은 '작은 기본 메뉴창'을 불러오는 함수이며, 게임에서는 엔피씨를 눌럿을때 볼 수 있는 메뉴창을 말합니다. 그냥 메뉴창에서 버튼을 누르면, 간단하게 선언한 변수에 버튼의 누름에 따라 선언되어있는 변수에 숫자가 들어간다, 안들어간다 라고 생각할 수 있습니다. 가장 간단하게 이해를 하는 방법중에 하나는, 위에서 언급한것이고 두번째로는 금전에 빗대어 이해를할 수 있습니다. set @money, 10000; if(@money < 10000) { 이벤트 영역 1 } else if(@money > 10000) { 이벤트 영역 2 } else { 이벤트 영역 3 } 위에서는 아주 간단한 if 문이 설정 되어있습니다. 맨위에는 set @money, 10000; 이라는 임시변수 선언문이 나와있습니다. 인즉 @money 라는곳에, 10000이라는 조건이 들어가 있는것입니다. 그럼 이것을 실제로 스크립트에 적용시켜서, 우리가 엔피씨를 눌럿을때 어떤 영역을 우리가 사용가능할까요? set @money, 10000; if(@money < 10000) { 이벤트 영역 1 } else if(@money > 10000) { 이벤트 영역 2 } else { 이벤트 영역 3 } 정답은 이벤트 영역 3입니다. 첫번째 if문에서는, @money 라는 임시변수가 10000보다 적을때를 나타내고 있으며, 두번째 else if 문에서는, @money 라는 임시변수가 10000보다 높을때를 나타내고 있습니다. 그러니 아무런곳에도 포함되지않기때문에, 이벤트 영역3 에 들어갈 수 있는것입니다. 어렵지 않아요. 천천히 이해를 해보도록 하세요. 2022 08.11 고맙읍니다 2022 08.10 선생님께서 올려주신 통파일덕분에 공부 많이하고 있습니다 고마움을 어떻게 표현해야할지 모르겠습니다. 2022 07.03