Advertisement
Guest User

balog.s

a guest
Feb 16th, 2012
2,690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 82.36 KB | None | 0 0
  1. module "standard.s";
  2.  
  3. ///////////////////////////////////////////////////////////////
  4. ////                                            ////
  5. ////                발록 원정대 스크립트               ////
  6. ////                                            ////
  7. ///////////////////////////////////////////////////////////////
  8.  
  9. // 필드셋 종료후 NPC 변수 초기화
  10. function balog_clearReg {
  11.     field = Field( 105100100 );
  12.     quest = FieldSet( "BalogEnter" );
  13.     quest.setVar( "enter", "" );
  14.     quest.setVar( "dName", "" );
  15.     npc = 1061014;
  16.  
  17.     master = field.getNpcStrVar( npc, "master" );
  18.     field.setNpcVar( npc, "lastmaster", master );
  19.    
  20.     // 원정대원 리스트 초기화
  21.     for ( i = 0..13 ) {
  22.         var = "in" + string( i );
  23.         if ( i < 10 ) var = "in0" + string( i );
  24.  
  25.         field.setNpcVar( npc, var, "" );
  26.     }
  27.     field.setNpcVar( npc, "master", "" );
  28.     field.setNpcVar( npc, "list", "00000000000000" );
  29.  
  30.     // 블랙 리스트 초기화
  31.     for ( j = 0..9 ) {
  32.         var2 = "noin" + string( j );
  33.         if ( j < 10 ) var = "noin0" + string( j );
  34.  
  35.         field.setNpcVar( npc, var2, "" );
  36.     }
  37.     field.setNpcVar( npc, "nolist", "0000000000" );
  38. }
  39. //easy 모드용
  40. function easy_balog_clearReg {
  41.     field = Field( 105100100 );
  42.     quest = FieldSet( "BalogEnter" );
  43.     quest.setVar( "Eenter", "" );
  44.     quest.setVar( "EdName", "" );
  45.     npc = 1061014;
  46.  
  47.     master = field.getNpcStrVar( npc, "Emaster" );
  48.     field.setNpcVar( npc, "Elastmaster", master );
  49.    
  50.     // 원정대원 리스트 초기화
  51.     for ( i = 0..4 ) {
  52.         var = "Ein0" + string( i );
  53.         field.setNpcVar( npc, var, "" );
  54.     }
  55.     field.setNpcVar( npc, "Emaster", "" );
  56.     field.setNpcVar( npc, "Elist", "00000000000000" );
  57.  
  58.     // 블랙 리스트 초기화
  59.     for ( j = 0..2 ) {
  60.         var2 = "Enoin0" + string( j );
  61.         field.setNpcVar( npc, var2, "" );
  62.     }
  63.     field.setNpcVar( npc, "Enolist", "0000000000" );
  64. }
  65.  
  66.  
  67. // 마스터 체크
  68. function balog_master {
  69.     name = target.sCharacterName;
  70.     if ( self.getStrReg( "master" ) == name ) {
  71.         return;
  72.     } else {
  73.         self.say( "이미 원정대장의 권한을 상실했습니다." );
  74.         end;
  75.     }
  76.     return;
  77. }
  78. //easy 모드용
  79. function easy_balog_master {
  80.     name = target.sCharacterName;
  81.     if ( self.getStrReg( "Emaster" ) == name ) {
  82.         return;
  83.     } else {
  84.         self.say( "이미 원정대장의 권한을 상실했습니다." );
  85.         end;
  86.     }
  87.     return;
  88. }
  89. // 원정대 참가 가능 체크
  90. function balog_entercheck2 {
  91.     quest = FieldSet( "BalogEnter" );
  92.  
  93.     if ( quest.getVar( "enter" ) == "1" ) {
  94.         self.say( "이미 입장이 결정되었습니다." );
  95.         end;
  96.     }  
  97.     return;
  98. }
  99. //easy 모드용
  100. function easy_balog_entercheck2 {
  101.     quest = FieldSet( "BalogEnter" );
  102.  
  103.     if ( quest.getVar( "Eenter" ) == "1" ) {
  104.         self.say( "이미 입장이 결정되었습니다." );
  105.         end;
  106.     }  
  107.     return;
  108. }
  109.  
  110. // 필드셋 리셋
  111. function balog_reset {
  112.     quest = FieldSet( "BalogEnter" );
  113.     eTime = quest.getQuestTime;
  114. //  target.message( string( eTime ));
  115.  
  116.     if ( eTime > 302 ) {
  117.         if ( quest.getVar( "reset" ) != "1" ) {
  118.             balog_clearReg;
  119.             quest.setVar( "reset", "1" );
  120.         }
  121.     }  
  122.     return;
  123. }
  124. // 이지모드 용
  125. function easy_balog_reset {
  126.     quest = FieldSet( "BalogEnter" );
  127.     eTime = quest.getQuestTime;
  128. //  target.message( string( eTime ));
  129.  
  130.     if ( eTime > 302 ) {
  131.         if ( quest.getVar( "Ereset" ) != "1" ) {
  132.             easy_balog_clearReg;
  133.             quest.setVar( "Ereset", "1" );
  134.         }
  135.     }  
  136.     return;
  137. }
  138.  
  139.  
  140. //이미 신청했는지 체크
  141. function( integer ) balog_check( string cName ) {
  142.     for ( i = 0..13 ) {
  143.         reg = "in" + string( i );
  144.         if ( i < 10 ) reg = "in0" + string( i );
  145.  
  146.         if ( self.getStrReg( reg ) == cName ) {
  147.             return 1;
  148.             end;
  149.         }
  150.     }
  151.  
  152.     return 0;
  153. }
  154. //easy 모드용
  155. function( integer ) easy_balog_check( string cName ) {
  156.     for ( i = 0..4 ) {
  157.         reg = "Ein0" + string( i );
  158.         if ( self.getStrReg( reg ) == cName ) {
  159.             return 1;
  160.             end;
  161.         }
  162.     }
  163.  
  164.     return 0;
  165. }
  166.  
  167.  
  168. //밴 리스트 체크
  169. function( integer ) balog_bancheck( string cName ) {
  170.     for ( i = 0..9 ) {
  171.         reg = "noin" + string( i );
  172.         if ( i < 10 ) reg = "noin0" + string( i );
  173.  
  174.         if ( self.getStrReg( reg ) == cName ) {
  175.             return 1;
  176.             end;
  177.         }
  178.     }
  179.  
  180.     return 0;
  181. }
  182. //easy 모드용
  183. function( integer ) easy_balog_bancheck( string cName ) {
  184.     for ( i = 0..2 ) {
  185.         reg = "Enoin0" + string( i );
  186.         if ( self.getStrReg( reg ) == cName ) {
  187.             return 1;
  188.             end;
  189.         }
  190.     }
  191.  
  192.     return 0;
  193. }
  194.  
  195.  
  196. // 이름 가져오기
  197. function balog_getname {
  198.     cList = "";
  199.     rNum = 0;
  200.     master = self.getStrReg( "master" );
  201.     num = self.getStrReg( "list" );
  202.     for ( i = 0..13 ) {
  203.         if ( substring( num, i, 1 ) == "1" ) rNum++;
  204.     }
  205.  
  206.     cList = "1번 : #b" + master + "#k (원정대장)" + "\r\n2번 : " + self.getStrReg( "in00" ) + "\r\n3번 : " + self.getStrReg( "in01" ) + "\r\n4번 : " + self.getStrReg( "in02" ) + "\r\n5번 : " + self.getStrReg( "in03" ) + "\r\n6번 : " + self.getStrReg( "in04" ) + "\r\n7번 : " + self.getStrReg( "in05" ) + "\r\n8번 : " + self.getStrReg( "in06" ) + "\r\n9번 : " + self.getStrReg( "in07" ) + "\r\n10번 : " + self.getStrReg( "in08" ) + "\r\n11번 : " + self.getStrReg( "in09" ) + "\r\n12번 : " + self.getStrReg( "in10" ) + "\r\n13번 : " + self.getStrReg( "in11" ) + "\r\n14번 : " + self.getStrReg( "in12" ) + "\r\n15번 : " + self.getStrReg( "in13" );
  207.  
  208.     self.say( "총 신청자 수는 #b" + ( rNum + 1 ) + "명#k 이며, 신청자 리스트는 다음과 같습니다.\r\n" + cList );
  209. }
  210. //easy 모드용
  211. function easy_balog_getname {
  212.     cList = "";
  213.     rNum = 0;
  214.     master = self.getStrReg( "Emaster" );
  215.     num = self.getStrReg( "Elist" );
  216.     for ( i = 0..4 ) {
  217.         if ( substring( num, i, 1 ) == "1" ) rNum++;
  218.     }
  219.  
  220.     cList = "1번 : #b" + master + "#k (원정대장)" + "\r\n2번 : " + self.getStrReg( "Ein00" ) + "\r\n3번 : " + self.getStrReg( "Ein01" ) + "\r\n4번 : " + self.getStrReg( "Ein02" ) + "\r\n5번 : " + self.getStrReg( "Ein03" ) + "\r\n6번 : " + self.getStrReg( "Ein04" );
  221.  
  222.     self.say( "총 신청자 수는 #b" + ( rNum + 1 ) + "명#k 이며, 신청자 리스트는 다음과 같습니다.\r\n" + cList );
  223. }
  224.  
  225.  
  226. //입장 신청
  227. function balog_in( string cName ) {
  228.     cList = self.getStrReg( "list" );
  229.     num = 0;
  230.     empty = 0;
  231.  
  232.     for ( j = 0 .. 13 ) {
  233.         if ( substring( cList, j, 1 ) == "0" ) empty++;
  234.     }
  235.  
  236.     if ( empty == 0 ) {
  237.         self.say( "이미 신청 가능한 인원이 초과되어 더 이상 신청할 수 없습니다." );
  238.         end;
  239.     }
  240.  
  241.     for ( i = 0 .. 13 ) {
  242.         if ( substring( cList, i, 1 ) == "0" ) {
  243.             num = i;
  244.             break;
  245.         }
  246.     }
  247.    
  248.     if ( num == 0 ) {
  249.         self.setStrReg( "in00", cName );
  250.         self.setStrReg( "list", "1" + substring( cList, 1, 13 ) );
  251.     } else if ( num == 13 ) {
  252.         self.setStrReg( "in13", cName );
  253.         self.setStrReg( "list", substring( cList, 0, 13 ) +  "1" );
  254.     } else {
  255.         var = "in" + string( num );
  256.         if ( num < 10 ) var = "in0" + string( num );
  257.  
  258.         self.setStrReg( var, cName );
  259.         self.setStrReg( "list", substring( cList, 0, num ) + "1" + substring( cList, (num+1), (13-num) ));
  260.     }
  261.    
  262.     master = self.getStrReg( "master" );
  263.     say = cName + "님이 원정대에 참가하였습니다." ;
  264.     self.sendMessage( master, say );
  265.     self.say( "발록 원정대에 등록되었습니다." );
  266.     return;
  267. }
  268. //easy 모드용
  269. function easy_balog_in( string cName ) {
  270.     cList = self.getStrReg( "Elist" );
  271.     num = 0;
  272.     empty = 0;
  273.    
  274.     if ( target.nLevel > 70 or target.nLevel < 50 ) {
  275.         self.say("레벨조건이 맞지 않아 원정대에 등록할 수 없습니다. 이지모드 발록 원정대는 레벨 50에 70사이 캐릭터만 참여할 수 있습니다.");
  276.         end;
  277.     }
  278.  
  279.     for ( j = 0 .. 4 ) {
  280.         if ( substring( cList, j, 1 ) == "0" ) empty++;
  281.     }
  282.  
  283.     if ( empty == 0 ) {
  284.         self.say( "이미 신청 가능한 인원이 초과되어 더 이상 신청할 수 없습니다." );
  285.         end;
  286.     }
  287.  
  288.     for ( i = 0 .. 4 ) {
  289.         if ( substring( cList, i, 1 ) == "0" ) {
  290.             num = i;
  291.             break;
  292.         }
  293.     }
  294.    
  295.     if ( num == 0 ) {
  296.         self.setStrReg( "Ein00", cName );
  297.         self.setStrReg( "Elist", "1" + substring( cList, 1, 4 ) );
  298.     } else if ( num == 4 ) {
  299.         self.setStrReg( "Ein04", cName );
  300.         self.setStrReg( "list", substring( cList, 0, 4 ) +  "1" );
  301.     } else {
  302.         var = "Ein0" + string( num );
  303.  
  304.         self.setStrReg( var, cName );
  305.         self.setStrReg( "Elist", substring( cList, 0, num ) + "1" + substring( cList, (num+1), (4-num) ));
  306.     }
  307.    
  308.     master = self.getStrReg( "Emaster" );
  309.     say = cName + "님이 원정대에 참가하였습니다." ;
  310.     self.sendMessage( master, say );
  311.     self.say( "발록 원정대에 등록되었습니다." );
  312.     return;
  313. }
  314.  
  315.  
  316. //본인이 취소
  317. function balog_out( string cName ) {
  318.     cList = self.getStrReg( "list" );
  319.  
  320.     for ( i = 0..13 ) {
  321.         var = "in" + string( i );
  322.         if ( i < 10 ) var = "in0" + string( i );
  323.  
  324.         if ( self.getStrReg( var ) == cName ) {
  325.             if ( i == 0 ) {
  326.                 self.setStrReg( var, "" );
  327.                 self.setStrReg( "list", "0" + substring( cList, 1, 13 ) );
  328.             }
  329.             else if ( i == 13 ) {
  330.                 self.setStrReg( var, "" );
  331.                 self.setStrReg( "list", substring( cList, 0, 13 ) +  "0" );
  332.             }
  333.             else {
  334.                 self.setStrReg( var, "" );
  335.                 self.setStrReg( "list", substring( cList, 0, i ) +  "0" + substring( cList, (i+1), (13-i) ) );
  336.             }
  337.             break;
  338.         }
  339.     }
  340.  
  341.     master = self.getStrReg( "master" );
  342.     say = cName + "님이 원정대에서 탈퇴하였습니다.";
  343.     self.sendMessage( master, say );
  344.     self.say( "원정대에서 탈퇴하였습니다." );
  345.  
  346.     return;
  347. }
  348. //easy 모드용
  349. function easy_balog_out( string cName ) {
  350.     cList = self.getStrReg( "Elist" );
  351.  
  352.     for ( i = 0..4 ) {
  353.         var = "Ein0" + string( i );
  354.  
  355.         if ( self.getStrReg( var ) == cName ) {
  356.             if ( i == 0 ) {
  357.                 self.setStrReg( var, "" );
  358.                 self.setStrReg( "Elist", "0" + substring( cList, 1, 4 ) );
  359.             }
  360.             else if ( i == 4 ) {
  361.                 self.setStrReg( var, "" );
  362.                 self.setStrReg( "Elist", substring( cList, 0, 4 ) +  "0" );
  363.             }
  364.             else {
  365.                 self.setStrReg( var, "" );
  366.                 self.setStrReg( "Elist", substring( cList, 0, i ) +  "0" + substring( cList, (i+1), (4-i) ) );
  367.             }
  368.             break;
  369.         }
  370.     }
  371.  
  372.     master = self.getStrReg( "Emaster" );
  373.     say = cName + "님이 원정대에서 탈퇴하였습니다.";
  374.     self.sendMessage( master, say );
  375.     self.say( "원정대에서 탈퇴하였습니다." );
  376.  
  377.     return;
  378. }
  379. //벤시킬때 리스트 관리
  380. function balog_ban2( string name ) {
  381.     if ( self.getStrReg( "nolist" ) == "1111111111" ) {
  382.         self.say( "제재 대상은 최대 10명까지 지정할 수 있습니다." );
  383.         end;
  384.     }
  385.  
  386.     quest = FieldSet( "BalogEnter" );
  387.     quest.setVar( "dName", name );
  388.  
  389.     v1 = self.askYesNo( "#b" + name + "#k님을 제재 대상에 등록하시겠어요? 제재 대상이 된 캐릭터는 원정대장의 허가가 있기 전에는 다시 신청할 수 없습니다." );
  390.     balog_reset;
  391.     balog_master;
  392.     if ( v1 == 0 ) {
  393.         return;
  394.     } else {
  395.         cList2 = self.getStrReg( "nolist" );
  396.  
  397.         if ( substring( cList2, 0, 1 ) == "0" ) {
  398.             self.setStrReg( "noin00", name );          
  399.             self.setStrReg( "nolist", "1" + substring( cList2, 1, 9 ) );
  400.         } else if ( substring( cList2, 1, 1 ) == "0" ) {
  401.             self.setStrReg( "noin01", name );
  402.             self.setStrReg( "nolist", substring( cList2, 0, 1 ) + "1" + substring( cList2, 2, 8 ) );
  403.         } else if ( substring( cList2, 2, 1 ) == "0" ) {
  404.             self.setStrReg( "noin02", name );
  405.             self.setStrReg( "nolist", substring( cList2, 0, 2 ) + "1" + substring( cList2, 3, 7 ) );
  406.         } else if ( substring( cList2, 3, 1 ) == "0" ) {
  407.             self.setStrReg( "noin03", name );
  408.             self.setStrReg( "nolist", substring( cList2, 0, 3 ) + "1" + substring( cList2, 4, 6 ) );
  409.         } else if ( substring( cList2, 4, 1 ) == "0" ) {
  410.             self.setStrReg( "noin04", name );
  411.             self.setStrReg( "nolist", substring( cList2, 0, 4 ) + "1" + substring( cList2, 5, 5 ) );
  412.         } else if ( substring( cList2, 5, 1 ) == "0" ) {
  413.             self.setStrReg( "noin05", name );
  414.             self.setStrReg( "nolist", substring( cList2, 0, 5 ) +  "1" + substring( cList2, 6, 4 ) );
  415.         } else if (  substring( cList2, 6, 1 ) == "0" ) {
  416.             self.setStrReg( "noin06", name );
  417.             self.setStrReg( "nolist", substring( cList2, 0, 6 ) +  "1" + substring( cList2, 7, 3 ) );
  418.         } else if (  substring( cList2, 7, 1 ) == "0" ) {
  419.             self.setStrReg( "noin07", name );
  420.             self.setStrReg( "nolist", substring( cList2, 0, 7 ) +  "1" + substring( cList2, 8, 2 ) );
  421.         } else if (  substring( cList2, 8, 1 ) == "0" ) {
  422.             self.setStrReg( "noin08", name );
  423.             self.setStrReg( "nolist", substring( cList2, 0, 8 ) +  "1" + substring( cList2, 9, 1 ) );
  424.         } else if (  substring( cList2, 9, 1 ) == "0" ) {
  425.             self.setStrReg( "noin09", name );
  426.             self.setStrReg( "nolist", substring( cList2, 0, 9 ) +  "1"  );
  427.         }
  428.         say = "원정대장이 귀하를 원정대 제재 대상에 등록하였습니다.";
  429.         self.sendMessage( name, say );
  430.     }
  431.     quest.setVar( "dName", "" );
  432.     return;
  433. }
  434. //easy 모드용
  435. function easy_balog_ban2( string name ) {
  436.     if ( self.getStrReg( "Enolist" ) == "111" ) {
  437.         self.say( "제재 대상은 최대 3명까지 지정할 수 있습니다." );
  438.         end;
  439.     }
  440.  
  441.     quest = FieldSet( "BalogEnter" );
  442.     quest.setVar( "EdName", name );
  443.  
  444.     v1 = self.askYesNo( "#b" + name + "#k님을 제재 대상에 등록하시겠어요? 제재 대상이 된 캐릭터는 원정대장의 허가가 있기 전에는 다시 신청할 수 없습니다." );
  445.     easy_balog_reset;
  446.     easy_balog_master;
  447.     if ( v1 == 0 ) {
  448.         return;
  449.     } else {
  450.         cList2 = self.getStrReg( "Enolist" );
  451.  
  452.         if ( substring( cList2, 0, 1 ) == "0" ) {
  453.             self.setStrReg( "Enoin00", name );         
  454.             self.setStrReg( "Enolist", "1" + substring( cList2, 1, 2 ) );
  455.         } else if ( substring( cList2, 1, 1 ) == "0" ) {
  456.             self.setStrReg( "Enoin01", name );
  457.             self.setStrReg( "Enolist", substring( cList2, 0, 1 ) + "1" + substring( cList2, 2, 1 ) );
  458.         } else if ( substring( cList2, 2, 1 ) == "0" ) {
  459.             self.setStrReg( "Enoin02", name );
  460.             self.setStrReg( "Enolist", substring( cList2, 0, 2 ) +  "1"  );
  461.         }
  462.         say = "원정대장이 귀하를 원정대 제재 대상에 등록하였습니다.";
  463.         self.sendMessage( name, say );
  464.     }
  465.     quest.setVar( "EdName", "" );
  466.     return;
  467. }
  468.  
  469. //대장이 밴시키기
  470. function balog_ban {
  471.     val = self.getStrReg( "list" );
  472.  
  473.     name00 = self.getStrReg( "in00" );
  474.     name01 = self.getStrReg( "in01" );
  475.     name02 = self.getStrReg( "in02" );
  476.     name03 = self.getStrReg( "in03" );
  477.     name04 = self.getStrReg( "in04" );
  478.     name05 = self.getStrReg( "in05" );
  479.     name06 = self.getStrReg( "in06" );
  480.     name07 = self.getStrReg( "in07" );
  481.     name08 = self.getStrReg( "in08" );
  482.     name09 = self.getStrReg( "in09" );
  483.     name10 = self.getStrReg( "in10" );
  484.     name11 = self.getStrReg( "in11" );
  485.     name12 = self.getStrReg( "in12" );
  486.     name13 = self.getStrReg( "in13" );
  487.  
  488.     master = self.getStrReg( "master" );
  489.  
  490.     cList = "";
  491.  
  492.     if ( name00 != "" ) cList = cList + "\r\n#L0#2번 : " + name00 + "#l";
  493.     if ( name01 != "" ) cList = cList + "\r\n#L1#3번 : " + name01 + "#l";
  494.     if ( name02 != "" ) cList = cList + "\r\n#L2#4번 : " + name02 + "#l";
  495.     if ( name03 != "" ) cList = cList + "\r\n#L3#5번 : " + name03 + "#l";
  496.     if ( name04 != "" ) cList = cList + "\r\n#L4#6번 : " + name04 + "#l";
  497.     if ( name05 != "" ) cList = cList + "\r\n#L5#7번 : " + name05 + "#l";
  498.     if ( name06 != "" ) cList = cList + "\r\n#L6#8번 : " + name06 + "#l";
  499.     if ( name07 != "" ) cList = cList + "\r\n#L7#9번 : " + name07 + "#l";
  500.     if ( name08 != "" ) cList = cList + "\r\n#L8#10번 : " + name08 + "#l";
  501.     if ( name09 != "" ) cList = cList + "\r\n#L9#11번 : " + name09 + "#l";
  502.     if ( name10 != "" ) cList = cList + "\r\n#L10#12번 : " + name10 + "#l";
  503.     if ( name11 != "" ) cList = cList + "\r\n#L11#13번 : " + name11 + "#l";
  504.     if ( name12 != "" ) cList = cList + "\r\n#L12#14번 : " + name12 + "#l";
  505.     if ( name13 != "" ) cList = cList + "\r\n#L13#15번 : " + name13 + "#l";
  506.  
  507.     if ( self.getStrReg( "list" ) != "00000000000000" ) {
  508.         v0 = self.askMenu( "원정대원 중 누구를 탈퇴시키겠어요?\r\n" + cList );
  509.         balog_reset;
  510.         balog_master;
  511.     } else {
  512.         self.say( "신청한 대원이 없습니다." );
  513.         end;
  514.     }
  515.     cList2 = self.getStrReg( "list" );
  516.  
  517.     if ( v0 == 0 ) {
  518.         name50 = self.getStrReg( "in00" );
  519.         if ( name50 != name00 ) {
  520.             self.say( name00 + "님은 이미 탈퇴한 유저입니다." );
  521.             end;
  522.         } else {
  523.             //칸에서 삭제
  524.             self.setStrReg( "list", "0" + substring( cList2, 1, 13 ) );
  525.             //이름삭제
  526.             self.setStrReg( "in00", "" );
  527.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  528.             self.sendMessage( name00, say );
  529.             //밴리스트 등록
  530.             balog_ban2( name00 );
  531.         }
  532.     } else if ( v0 == 1 ) {
  533.         name51 = self.getStrReg( "in01" );
  534.         if ( name51 != name01 ) {
  535.             self.say( name01 + "님은 이미 탈퇴한 유저입니다." );
  536.             end;
  537.         } else {
  538.             self.setStrReg( "list" , substring( cList2, 0, 1 ) + "0" + substring( cList2, 2, 12 ) );
  539.             self.setStrReg( "in01", "" );
  540.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  541.             self.sendMessage( name01, say );
  542.             balog_ban2( name01 );
  543.         }
  544.     } else if ( v0 == 2 ) {
  545.         name52 = self.getStrReg( "in02" );
  546.         if ( name52 != name02 ) {
  547.             self.say( name02 + "님은 이미 탈퇴한 유저입니다." );
  548.             end;
  549.         } else {
  550.             self.setStrReg( "list", substring( cList2, 0, 2 ) + "0" + substring( cList2, 3, 11 ));
  551.             self.setStrReg( "in02", "" );
  552.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  553.             self.sendMessage( name02, say );
  554.             balog_ban2( name02 );
  555.         }
  556.     } else if ( v0 == 3 ) {
  557.         name53 = self.getStrReg( "in03" );
  558.         if ( name53 != name03 ) {
  559.             self.say( name03 + "님은 이미 탈퇴한 유저입니다." );
  560.             end;
  561.         } else {
  562.             self.setStrReg( "list", substring( cList2, 0, 3 ) + "0" + substring( cList2, 4, 10 ) );
  563.             self.setStrReg( "in03", "" );
  564.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  565.             self.sendMessage( name03, say );
  566.             balog_ban2( name03 );
  567.         }
  568.     } else if ( v0 == 4 ) {
  569.         name54 = self.getStrReg( "in04" );
  570.         if ( name54 != name04 ) {
  571.             self.say( name04 + "님은 이미 탈퇴한 유저입니다." );
  572.             end;
  573.         } else {
  574.             self.setStrReg( "list", substring( cList2, 0, 4 ) + "0" + substring( cList2, 5, 9 ) );
  575.             self.setStrReg( "in04", "" );
  576.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  577.             self.sendMessage( name04, say );
  578.             balog_ban2( name04 );
  579.         }
  580.     } else if ( v0 == 5 ) {
  581.         name55 = self.getStrReg( "in05" );
  582.         if ( name55 != name05 ) {
  583.             self.say( name05 + "님은 이미 탈퇴한 유저입니다." );
  584.             end;
  585.         } else {
  586.             self.setStrReg( "list", substring( cList2, 0, 5 ) + "0" + substring( cList2, 6, 8 ) );
  587.             self.setStrReg( "in05", "" );
  588.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  589.             self.sendMessage( name05, say );
  590.             balog_ban2( name05 );
  591.         }
  592.     } else if ( v0 == 6 ) {
  593.         name56 = self.getStrReg( "in06" );
  594.         if ( name56 != name06 ) {
  595.             self.say( name06 + "님은 이미 탈퇴한 유저입니다." );
  596.             end;
  597.         } else {
  598.             self.setStrReg( "list", substring( cList2, 0, 6 ) + "0" + substring( cList2, 7, 7 ) );
  599.             self.setStrReg( "in06", "" );
  600.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  601.             self.sendMessage( name06, say );
  602.             balog_ban2( name06 );
  603.         }
  604.     } else if ( v0 == 7 ) {
  605.         name57 = self.getStrReg( "in07" );
  606.         if ( name57 != name07 ) {
  607.             self.say( name07 + "님은 이미 탈퇴한 유저입니다." );
  608.             end;
  609.         } else {
  610.             self.setStrReg( "list", substring( cList2, 0, 7 ) + "0" + substring( cList2, 8, 6 ) );
  611.             self.setStrReg( "in07", "" );
  612.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  613.             self.sendMessage( name07, say );
  614.             balog_ban2( name07 );
  615.         }
  616.     } else if ( v0 == 8 ) {
  617.         name58 = self.getStrReg( "in08" );
  618.         if ( name58 != name08 ) {
  619.             self.say( name08 + "님은 이미 탈퇴한 유저입니다." );
  620.             end;
  621.         } else {
  622.             self.setStrReg( "list", substring( cList2, 0, 8 ) + "0" + substring( cList2, 9, 5 ) );
  623.             self.setStrReg( "in08", "" );
  624.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  625.             self.sendMessage( name08, say );
  626.             balog_ban2( name08 );
  627.         }
  628.     } else if ( v0 == 9 ) {
  629.         name59 = self.getStrReg( "in09" );
  630.         if ( name59 != name09 ) {
  631.             self.say( name09 + "님은 이미 탈퇴한 유저입니다." );
  632.             end;
  633.         } else {
  634.             self.setStrReg( "list", substring( cList2, 0, 9 ) + "0" + substring( cList2, 10, 4 ) );
  635.             self.setStrReg( "in09", "" );
  636.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  637.             self.sendMessage( name09, say );
  638.             balog_ban2( name09 );
  639.         }
  640.     } else if ( v0 == 10 ) {
  641.         name60 = self.getStrReg( "in10" );
  642.         if ( name60 != name10 ) {
  643.             self.say( name10 + "님은 이미 탈퇴한 유저입니다." );
  644.             end;
  645.         } else {
  646.             self.setStrReg( "list", substring( cList2, 0, 10 ) + "0" + substring( cList2, 11, 3 ) );
  647.             self.setStrReg( "in10", "" );
  648.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  649.             self.sendMessage( name10, say );
  650.             balog_ban2( name10 );
  651.         }
  652.     } else if ( v0 == 11 ) {
  653.         name61 = self.getStrReg( "in11" );
  654.         if ( name61 != name11 ) {
  655.             self.say( name11 + "님은 이미 탈퇴한 유저입니다." );
  656.             end;
  657.         } else {
  658.             self.setStrReg( "list", substring( cList2, 0, 11 ) + "0" + substring( cList2, 12, 2 ) );
  659.             self.setStrReg( "in11", "" );
  660.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  661.             self.sendMessage( name11, say );
  662.             balog_ban2( name11 );
  663.         }
  664.     } else if ( v0 == 12 ) {
  665.         name62 = self.getStrReg( "in12" );
  666.         if ( name62 != name12 ) {
  667.             self.say( name11 + "님은 이미 탈퇴한 유저입니다." );
  668.             end;
  669.         } else {
  670.             self.setStrReg( "list", substring( cList2, 0, 12 ) + "0" + substring( cList2, 13, 1 ) );
  671.             self.setStrReg( "in12", "" );
  672.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  673.             self.sendMessage( name12, say );
  674.             balog_ban2( name12 );
  675.         }
  676.     } else if ( v0 == 13 ) {
  677.         name63 = self.getStrReg( "in13" );
  678.         if ( name63 != name13 ) {
  679.             self.say( name13 + "님은 이미 탈퇴한 유저입니다." );
  680.             end;
  681.         } else {
  682.             self.setStrReg( "list", substring( cList2, 0, 13 ) + "0" );
  683.             self.setStrReg( "in13", "" );
  684.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  685.             self.sendMessage( name13, say );
  686.             balog_ban2( name13 );
  687.         }
  688.     }
  689.  
  690.     return;
  691. }
  692. //easy 모드용
  693. function easy_balog_ban {
  694.     val = self.getStrReg( "Elist" );
  695.  
  696.     name00 = self.getStrReg( "Ein00" );
  697.     name01 = self.getStrReg( "Ein01" );
  698.     name02 = self.getStrReg( "Ein02" );
  699.     name03 = self.getStrReg( "Ein03" );
  700.     name04 = self.getStrReg( "Ein04" );
  701.  
  702.     master = self.getStrReg( "Emaster" );
  703.  
  704.     cList = "";
  705.  
  706.     if ( name00 != "" ) cList = cList + "\r\n#L0#2번 : " + name00 + "#l";
  707.     if ( name01 != "" ) cList = cList + "\r\n#L1#3번 : " + name01 + "#l";
  708.     if ( name02 != "" ) cList = cList + "\r\n#L2#4번 : " + name02 + "#l";
  709.     if ( name03 != "" ) cList = cList + "\r\n#L3#5번 : " + name03 + "#l";
  710.     if ( name04 != "" ) cList = cList + "\r\n#L4#6번 : " + name04 + "#l";
  711.  
  712.     if ( self.getStrReg( "Elist" ) != "00000000000000" ) {
  713.         v0 = self.askMenu( "원정대원 중 누구를 탈퇴시키겠어요?\r\n" + cList );
  714.         easy_balog_reset;
  715.         easy_balog_master;
  716.     } else {
  717.         self.say( "신청한 대원이 없습니다." );
  718.         end;
  719.     }
  720.     cList2 = self.getStrReg( "Elist" );
  721.  
  722.     if ( v0 == 0 ) {
  723.         name50 = self.getStrReg( "Ein00" );
  724.         if ( name50 != name00 ) {
  725.             self.say( name00 + "님은 이미 탈퇴한 유저입니다." );
  726.             end;
  727.         } else {
  728.             //칸에서 삭제
  729.             self.setStrReg( "Elist", "0" + substring( cList2, 1, 4 ) );
  730.             //이름삭제
  731.             self.setStrReg( "Ein00", "" );
  732.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  733.             self.sendMessage( name00, say );
  734.             //밴리스트 등록
  735.             easy_balog_ban2( name00 );
  736.         }
  737.     } else if ( v0 == 1 ) {
  738.         name51 = self.getStrReg( "Ein01" );
  739.         if ( name51 != name01 ) {
  740.             self.say( name01 + "님은 이미 탈퇴한 유저입니다." );
  741.             end;
  742.         } else {
  743.             self.setStrReg( "Elist" , substring( cList2, 0, 1 ) + "0" + substring( cList2, 2, 3 ) );
  744.             self.setStrReg( "Ein01", "" );
  745.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  746.             self.sendMessage( name01, say );
  747.             easy_balog_ban2( name01 );
  748.         }
  749.     } else if ( v0 == 2 ) {
  750.         name52 = self.getStrReg( "Ein02" );
  751.         if ( name52 != name02 ) {
  752.             self.say( name02 + "님은 이미 탈퇴한 유저입니다." );
  753.             end;
  754.         } else {
  755.             self.setStrReg( "Elist", substring( cList2, 0, 2 ) + "0" + substring( cList2, 3, 2 ));
  756.             self.setStrReg( "Ein02", "" );
  757.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  758.             self.sendMessage( name02, say );
  759.             easy_balog_ban2( name02 );
  760.         }
  761.     } else if ( v0 == 3 ) {
  762.         name53 = self.getStrReg( "Ein03" );
  763.         if ( name53 != name03 ) {
  764.             self.say( name03 + "님은 이미 탈퇴한 유저입니다." );
  765.             end;
  766.         } else {
  767.             self.setStrReg( "Elist", substring( cList2, 0, 3 ) + "0" + substring( cList2, 4, 10 ) );
  768.             self.setStrReg( "Ein03", "" );
  769.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  770.             self.sendMessage( name03, say );
  771.             easy_balog_ban2( name03 );
  772.         }
  773.     } else if ( v0 == 4 ) {
  774.         name54 = self.getStrReg( "Ein04" );
  775.         if ( name54 != name04 ) {
  776.             self.say( name04 + "님은 이미 탈퇴한 유저입니다." );
  777.             end;
  778.         } else {
  779.             self.setStrReg( "Elist", substring( cList2, 0, 4 ) + "0" );
  780.             self.setStrReg( "Ein04", "" );
  781.             say = "원정대장이 귀하를 원정대에서 추방하였습니다,";
  782.             self.sendMessage( name04, say );
  783.             easy_balog_ban2( name04 );
  784.         }
  785.     }
  786.  
  787.     return;
  788. }
  789.  
  790. function balog_banned( string cName ) {
  791.     if ( self.getStrReg( "noin00" ) == cName or self.getStrReg( "noin01" ) == cName or self.getStrReg( "noin02" ) == cName or self.getStrReg( "noin03" ) == cName or self.getStrReg( "noin04" ) == cName or self.getStrReg( "noin05" ) == cName or self.getStrReg( "noin06" ) == cName or self.getStrReg( "noin07" ) == cName or self.getStrReg( "noin08" ) == cName or self.getStrReg( "noin09" ) == cName ) {
  792.         self.say( cName + "님은 원정대장의 제재 대상이므로 참여하실 수 없습니다." );
  793.         end;
  794.     }
  795.     return;
  796. }
  797. //easy 모드용
  798. function easy_balog_banned( string cName ) {
  799.     if ( self.getStrReg( "Enoin00" ) == cName or self.getStrReg( "Enoin01" ) == cName or self.getStrReg( "Enoin02" ) == cName) {
  800.         self.say( cName + "님은 원정대장의 제재 대상이므로 참여하실 수 없습니다." );
  801.         end;
  802.     }
  803.     return;
  804. }
  805.  
  806. function balog_noban {
  807.     cList = "";
  808.  
  809.     name00 = self.getStrReg( "noin00" );
  810.     if ( name00 != "" ) {
  811.         cList = cList + "\r\n#b#L0#" + name00 + "#l#k";
  812.     }
  813.     name01 = self.getStrReg( "noin01" );
  814.     if ( name01 != "" ) {
  815.         cList = cList + "\r\n#b#L1#" + name01 + "#l#k";
  816.     }
  817.     name02 = self.getStrReg( "noin02" );
  818.     if ( name02 != "" ) {
  819.         cList = cList + "\r\n#b#L2#" + name02 + "#l#k";
  820.     }
  821.     name03 = self.getStrReg( "noin03" );
  822.     if ( name03 != "" ) {
  823.         cList = cList + "\r\n#b#L3#" + name03 + "#l#k";
  824.     }
  825.     name04 = self.getStrReg( "noin04" );
  826.     if ( name04 != "" ) {
  827.         cList = cList + "\r\n#b#L4#" + name04 + "#l#k";
  828.     }
  829.     name05 = self.getStrReg( "noin05" );
  830.     if ( name05 != "" ) {
  831.         cList = cList + "\r\n#b#L5#" + name05 + "#l#k";
  832.     }
  833.     name06 = self.getStrReg( "noin06" );
  834.     if ( name06 != "" ) {
  835.         cList = cList + "\r\n#b#L6#" + name06 + "#l#k";
  836.     }
  837.     name07 = self.getStrReg( "noin07" );
  838.     if ( name07 != "" ) {
  839.         cList = cList + "\r\n#b#L7#" + name07 + "#l#k";
  840.     }
  841.     name08 = self.getStrReg( "noin08" );
  842.     if ( name08 != "" ) {
  843.         cList = cList + "\r\n#b#L8#" + name08 + "#l#k";
  844.     }
  845.     name09 = self.getStrReg( "noin09" );
  846.     if ( name09 != "" ) {
  847.         cList = cList + "\r\n#b#L9#" + name09 + "#l#k";
  848.     }
  849.  
  850.  
  851. //  cList = "#L0#1번 : #b\r\n" + self.getStrReg( "noin00" ) + "#l\r\n#L1#2번 : " + self.getStrReg( "noin01" ) + "#l\r\n#L2#3번 : " + self.getStrReg( "noin02" ) + "#l\r\n#L3#" + self.getStrReg( "noin03" ) + "#l\r\n#L4#" + self.getStrReg( "noin04" ) + "#l\r\n#L5#" + self.getStrReg( "noin05" ) + "#l\r\n#L6#" + self.getStrReg( "noin06" ) + "#l\r\n#L7#" + self.getStrReg( "noin07" ) + "#l\r\n#L8#" + self.getStrReg( "noin08" ) + "#l\r\n#L9#" + self.getStrReg( "noin09" ) + "#k#l";
  852.     if ( self.getStrReg( "nolist" ) != "0000000000" ) {
  853.         v0 = self.askMenu( "누구를 신청 허가해 주시겠어요?." + cList );
  854.         balog_reset;
  855.         balog_master;
  856.     } else {
  857.         self.say( "제재 대상인 유저가 없습니다." );
  858.         end;
  859.     }
  860.  
  861.     cList2 = self.getStrReg( "nolist" );
  862.  
  863.     if ( v0 == 0 ) {
  864.         self.setStrReg( "nolist", "0" + substring( cList2, 1, 9 ) );
  865.         self.sendMessage( name00, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  866.         self.setStrReg( "noin00", "" );
  867.     } else if ( v0 == 1 ) {
  868.         self.setStrReg( "nolist" , substring( cList2, 0, 1 ) + "0" + substring( cList2, 2, 8 ) );
  869.         self.sendMessage( name01, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  870.         self.setStrReg( "noin01", "" );
  871.     } else if ( v0 == 2 ) {
  872.         self.setStrReg( "nolist", substring( cList2, 0, 2 ) + "0" + substring( cList2, 3, 7 ));
  873.         self.sendMessage( name02, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  874.         self.setStrReg( "noin02", "" );
  875.     } else if ( v0 == 3 ) {
  876.         self.setStrReg( "nolist", substring( cList2, 0, 3 ) + "0" + substring( cList2, 4, 6 ) );
  877.         self.sendMessage( name03, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  878.         self.setStrReg( "noin03", "" );
  879.     } else if ( v0 == 4 ) {
  880.         self.setStrReg( "nolist", substring( cList2, 0, 4 ) + "0" + substring( cList2, 5, 5 ) );
  881.         self.sendMessage( name04, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  882.         self.setStrReg( "noin04", "" );
  883.     } else if ( v0 == 5 ) {
  884.         self.setStrReg( "nolist", substring( cList2, 0, 5 ) + "0" + substring( cList2, 6, 4 ) );
  885.         self.sendMessage( name05, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  886.         self.setStrReg( "noin05", "" );
  887.     } else if ( v0 == 6 ) {
  888.         self.setStrReg( "nolist", substring( cList2, 0, 6 ) + "0" + substring( cList2, 7, 3 ) );
  889.         self.sendMessage( name06, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  890.         self.setStrReg( "noin06", "" );
  891.     } else if ( v0 == 7 ) {
  892.         self.setStrReg( "nolist", substring( cList2, 0, 7 ) + "0" + substring( cList2, 8, 2 ) );
  893.         self.sendMessage( name07, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  894.         self.setStrReg( "noin07", "" );
  895.     } else if ( v0 == 8) {
  896.         self.setStrReg( "nolist", substring( cList2, 0, 8 ) + "0" + substring( cList2, 9, 1 ) );
  897.         self.sendMessage( name08, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  898.         self.setStrReg( "noin08", "" );
  899.     } else if ( v0 == 9 ) {
  900.         self.setStrReg( "nolist", substring( cList2, 0, 9 ) + "0" );
  901.         self.sendMessage( name09, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  902.         self.setStrReg( "noin09", "" );
  903.     }
  904.     return;
  905.  
  906. }
  907. //easy 모드용
  908. function easy_balog_noban {
  909.     cList = "";
  910.  
  911.     name00 = self.getStrReg( "Enoin00" );
  912.     if ( name00 != "" ) {
  913.         cList = cList + "\r\n#b#L0#" + name00 + "#l#k";
  914.     }
  915.     name01 = self.getStrReg( "Enoin01" );
  916.     if ( name01 != "" ) {
  917.         cList = cList + "\r\n#b#L1#" + name01 + "#l#k";
  918.     }
  919.     name02 = self.getStrReg( "Enoin02" );
  920.     if ( name02 != "" ) {
  921.         cList = cList + "\r\n#b#L2#" + name02 + "#l#k";
  922.     }
  923.  
  924.     if ( self.getStrReg( "Enolist" ) != "0000000000" ) {
  925.         v0 = self.askMenu( "누구를 신청 허가해 주시겠어요?." + cList );
  926.         easy_balog_reset;
  927.         easy_balog_master;
  928.     } else {
  929.         self.say( "제재 대상인 유저가 없습니다." );
  930.         end;
  931.     }
  932.  
  933.     cList2 = self.getStrReg( "Enolist" );
  934.  
  935.     if ( v0 == 0 ) {
  936.         self.setStrReg( "Enolist", "0" + substring( cList2, 1, 2 ) );
  937.         self.sendMessage( name00, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  938.         self.setStrReg( "Enoin00", "" );
  939.     } else if ( v0 == 1 ) {
  940.         self.setStrReg( "Enolist" , substring( cList2, 0, 1 ) + "0" + substring( cList2, 2, 1 ) );
  941.         self.sendMessage( name01, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  942.         self.setStrReg( "Enoin01", "" );
  943.     } else if ( v0 == 2 ) {
  944.         self.setStrReg( "Enolist", substring( cList2, 0, 2 ) + "0");
  945.         self.sendMessage( name02, "원정대장이 제재를 해제하였습니다. 다시 신청할 수 있습니다." );
  946.         self.setStrReg( "Enoin02", "" );
  947.     }
  948.     return;
  949.  
  950. }
  951.  
  952.  
  953.  
  954. //입장후 단원들에게 메시지 보내기
  955. function balog_enterMsg {
  956.     msg = "원정대장이 맵에 입장하였습니다. 원정대 조직 시간이 종료되기 전에 맵에 입장해 주세요.";
  957.     name = self.getStrReg( "in00" );
  958.     if ( name != "" ) self.sendMessage( name, msg );
  959.     name = self.getStrReg( "in01" );
  960.     if ( name != "" ) self.sendMessage( name, msg );
  961.     name = self.getStrReg( "in02" );
  962.     if ( name != "" ) self.sendMessage( name, msg );
  963.     name = self.getStrReg( "in03" );
  964.     if ( name != "" ) self.sendMessage( name, msg );
  965.     name = self.getStrReg( "in04" );
  966.     if ( name != "" ) self.sendMessage( name, msg );
  967.     name = self.getStrReg( "in05" );
  968.     if ( name != "" ) self.sendMessage( name, msg );
  969.     name = self.getStrReg( "in06" );
  970.     if ( name != "" ) self.sendMessage( name, msg );
  971.     name = self.getStrReg( "in07" );
  972.     if ( name != "" ) self.sendMessage( name, msg );
  973.     name = self.getStrReg( "in08" );
  974.     if ( name != "" ) self.sendMessage( name, msg );
  975.     name = self.getStrReg( "in09" );
  976.     if ( name != "" ) self.sendMessage( name, msg );
  977.     name = self.getStrReg( "in10" );
  978.     if ( name != "" ) self.sendMessage( name, msg );
  979.     name = self.getStrReg( "in11" );
  980.     if ( name != "" ) self.sendMessage( name, msg );
  981.     name = self.getStrReg( "in12" );
  982.     if ( name != "" ) self.sendMessage( name, msg );
  983.     name = self.getStrReg( "in13" );
  984.     if ( name != "" ) self.sendMessage( name, msg );
  985.    
  986.     return;
  987. }
  988. //easy 모드용
  989. function easy_balog_enterMsg {
  990.     msg = "원정대장이 맵에 입장하였습니다. 원정대 조직 시간이 종료되기 전에 맵에 입장해 주세요.";
  991.     name = self.getStrReg( "Ein00" );
  992.     if ( name != "" ) self.sendMessage( name, msg );
  993.     name = self.getStrReg( "Ein01" );
  994.     if ( name != "" ) self.sendMessage( name, msg );
  995.     name = self.getStrReg( "Ein02" );
  996.     if ( name != "" ) self.sendMessage( name, msg );
  997.     name = self.getStrReg( "Ein03" );
  998.     if ( name != "" ) self.sendMessage( name, msg );
  999.     name = self.getStrReg( "Ein04" );
  1000.     if ( name != "" ) self.sendMessage( name, msg );
  1001.    
  1002.     return;
  1003. }
  1004.  
  1005. function( integer )  balog_partycheck {
  1006.     num = 0;
  1007.     for( i = 0 .. 5 ) {
  1008.         nLevel = target.getPartyMemberLevel( i );
  1009.         if ( nLevel != 0 ) {
  1010.             num++;
  1011.             if ( nLevel < 50 ) {
  1012.                 self.say( "파티에 레벨 50이 되지 않는 캐릭터가 있습니다. 레벨을 맞춰 주세요." );
  1013.                 return -1;
  1014.             }
  1015.         }
  1016.     }
  1017.     return num;
  1018. }
  1019. //easy 모드용
  1020. function( integer )  easy_balog_partycheck {
  1021.     num = 0;
  1022.     for( i = 0 .. 5 ) {
  1023.         nLevel = target.getPartyMemberLevel( i );
  1024.         if ( nLevel != 0 ) {
  1025.             num++;
  1026.             if ( nLevel < 50 or nLevel > 70 ) {
  1027.                 self.say( "파티에 레벨 50이 되지 않거나, 70을 초과한 캐릭터가 있습니다. 레벨을 맞춰 주세요." );
  1028.                 return -1;
  1029.             }
  1030.         }
  1031.     }
  1032.     return num;
  1033. }
  1034.  
  1035. function( integer ) balog_dateCheck {
  1036.     qr = target.questRecord;
  1037.  
  1038.     lastDate = qr.getEx( 7221, "lastDate" );
  1039.     if ( lastDate == "" ) lastDate = "00/00/00";
  1040.  
  1041.     cTime = currentTime;
  1042.     cDate = substring( cTime, 0, 8 );
  1043.  
  1044.     if ( lastDate != cDate ) qr.setEx( 7221, "eNum", "0" );
  1045.     eNum = integer(qr.getEx( 7221, "eNum" ));
  1046.  
  1047.     return eNum;
  1048. }
  1049.  
  1050. script "ReactorBalog" {
  1051.    
  1052.     rest = FieldSet( "Balog" );
  1053.     r = 0 ;
  1054.     if ( rest.getReactorState( 0, "center" ) != 1){
  1055.         field = Field( 105100300 );
  1056.         field.notice( 6, "일반 공격으로 제단을 때려서 체력을 회복하고 있는 발록을 나오게 해야 합니다." );
  1057.         r = random( 0, 2 );
  1058.         if ( r == 0) rest.setReactorState( 0, "totem1", 1, 0 );
  1059.         else if (r == 1) rest.setReactorState( 0, "totem2", 1, 0 );
  1060.         else rest.setReactorState( 0, "totem3", 1, 0 );
  1061.         rest.setReactorState( 0, "center", 1, 0 );
  1062.     }
  1063. }
  1064.  
  1065.  
  1066. // 이지모드 리액터 용
  1067. script "Easy_ReactorBalog" {
  1068.  
  1069.     rest = FieldSet( "Easy_Balog" );
  1070.     r = 0 ;
  1071.     if ( rest.getReactorState( 0, "center" ) != 1){
  1072.         field = Field( 105100400 );
  1073.         field.notice( 6, "일반 공격으로 제단을 때려서 체력을 회복하고 있는 발록을 나오게 해야 합니다." );
  1074.         r = random( 0, 2 );
  1075.         if ( r == 0) rest.setReactorState( 0, "totem1", 1, 0 );
  1076.         else if (r == 1) rest.setReactorState( 0, "totem2", 1, 0 );
  1077.         else rest.setReactorState( 0, "totem3", 1, 0 );
  1078.         rest.setReactorState( 0, "center", 1, 0 );
  1079.     }
  1080. }
  1081.  
  1082.  
  1083.  
  1084.  
  1085. function( integer ) SelectMode {
  1086.     if ( serverType == 1 ) {
  1087.         // 노말모드 : 5,10 채널
  1088.         // 이지모드 : 나머지 채널 -> 2009.07 변경
  1089.         // 개발섭용 0(1) 이지모드, 1(20세이상) 노말모드
  1090.  
  1091.         if ( channelID == 5 or channelID == 10 ) mode = 1;
  1092.         else mode = 0;
  1093.  
  1094.     }
  1095.  
  1096.     else if ( serverType == 2 ) {
  1097.         // 테섭, 1채 이지모드 0, 20세채 노말모드
  1098.         mode = 1;
  1099.         if ( channelID == 2 ) mode = 1;
  1100.         else if ( channelID == 0) mode = 0;
  1101.         else mode = -1;
  1102.     }
  1103.     return mode;
  1104. }
  1105.  
  1106. script "balog_accept_" {
  1107.     quest = FieldSet( "BalogEnter" );
  1108.     qr = target.questRecord;
  1109.     val = qr.getState( 2239 );
  1110.     field = self.field;
  1111. /*
  1112.     if ( target.nLevel <= 200 ) {
  1113.         rest = FieldSet( "Balog" );
  1114.         t = rest.enter( target.nCharacterID, 0 );
  1115.         if ( t == 0 ) {
  1116.             eNum = balog_dateCheck;
  1117.             target.message( "" + eNum + "" );   // 테스트
  1118.             target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1119. //          rest.setReactorState( 1, "mainReactor", 0, 0 );
  1120.         }
  1121.  
  1122.         end;
  1123.     }
  1124.     if ( val == 0 and target.nJob != 900 ) {
  1125.         val2 = qr.getState( 2235 );
  1126.         if ( val2 == 0 ) self.say( "지금은 발록 원정대에 참가할 수 없어요. 일단 페리온에 계신 만지 스승님과 이야기를 나눠보세요." );
  1127.         else self.say( "지금은 발록 원정대에 참가할 수 없어요. 일단 제 얘기를 들어봐 주세요." );
  1128.         end;
  1129.     }
  1130. */
  1131.     if ( target.nLevel < 50 ) {
  1132.         self.say( "레벨 50 이상의 유저만이 발록 원정대에 참가할 수 있습니다." );
  1133.         end;
  1134.     }
  1135.    
  1136. // 이지 모드 발록 선택 추가 (2009.05)
  1137.     Mode = SelectMode;
  1138.  
  1139.     if ( Mode == 0 ) {
  1140.         if ( serverType == 2 ) {
  1141.             self.say("현재 계신 채널에서는 #bEasy Mode 발록 원정대#k 참여가 가능합니다. 다른 모드에 참여하고 싶으시면 알맞은 채널로 이동해 주세요.\r\n\r\n#b#i3994115# 5 채널, 10 채널 / 50 ~ 70 레벨 / 3 ~ 6명\r\n#b#i3994116# 15 채널 / 50 레벨 이상 / 6 ~ 15명");
  1142.         } else {
  1143.             self.say("현재 계신 채널에서는 #bEasy Mode 발록 원정대#k 참여가 가능합니다. 다른 모드에 참여하고 싶으시면 알맞은 채널로 이동해 주세요.\r\n\r\n#b#i3994116# 5, 10 채널 / 50 레벨 이상 / 6 ~ 15명\r\n#b#i3994115# 그 외 전 채널 / 50 ~ 70 레벨 / 3 ~ 6명");
  1144.         }
  1145.         easy_balog_reset;
  1146.         master = self.getStrReg( "Emaster" );
  1147.         if ( master == "" ) {
  1148.             fNum = FieldSet( "Easy_Balog" ).getUserCount;
  1149.             if ( fNum > 0 ) {
  1150.                 self.say( "이미 먼저 구성된 발록원정대가 발록을 저지하고 있습니다. 여기서 기다리세요." );
  1151.                 end;
  1152.             }
  1153.            
  1154.             if ( target.nLevel >= 50 ) {
  1155.                 if ( target.isPartyBoss == 1 ) {
  1156.                     ch = easy_balog_check( target.sCharacterName );
  1157.                     if ( ch == 1 ) {
  1158.                         easy_balog_reset;
  1159.                     }
  1160.  
  1161.                     lastmaster = self.getStrReg( "Elastmaster" );
  1162.                     if ( target.sCharacterName == lastmaster ) {
  1163.                         self.say ( "연속으로 원정대장이 될 수 없습니다." );
  1164.                         end;
  1165.                     } else {
  1166.                         eNum = balog_dateCheck;
  1167.                         if ( eNum < 7 ) {
  1168.                             v0 = self.askYesNo( "발록 원정대장이 되시겠습니까?" );
  1169.                             if ( v0 == 0 ) {
  1170.                                 self.say( "원정대장이 되시려면 다시 말을 걸어주세요." );
  1171.                                 end;                           
  1172.                             } else {
  1173.                                 result = easy_balog_partycheck;
  1174.  
  1175.                                 if ( result == -1 ) end;
  1176.                                 else if ( result >= 3 ) { //파티원수 체크(원정대장 포함)
  1177.                                     aftermaster = self.getStrReg( "Emaster" );         
  1178.                                     if ( aftermaster != "" ) {
  1179.                                         self.say( "이미 " + aftermaster + "님이 원정대장으로 임명되었습니다." );
  1180.                                         end;
  1181.                                     } else {
  1182.                                         quest = FieldSet( "BalogEnter" );
  1183.                                         res = quest.startManually;
  1184.                                         if ( res == 0 ) {
  1185.                                             self.say( "아직 원정대를 조직할 준비가 되지 않았습니다. 잠시 후 다시 시도해 주세요." );
  1186.                                             end;
  1187.                                         }
  1188.                                         quest.resetQuestTime;
  1189.                                         quest.setVar( "Ereset", "" );
  1190.                                         newmaster = target.sCharacterName;
  1191.                                         self.setStrReg( "Emaster", newmaster );
  1192.                                         say = newmaster + "님이 발록 원정대장이 되었습니다. 원정대에 참여하실 분은 지금 신청해 주세요.";
  1193.                                         field.notice( 6, say );
  1194.                                         self.say( "발록 원정대장이 되셨습니다. 5분 이내에 원정대 조직을 마치고, 모든 대원이 입장하여야 합니다." );
  1195.                                         end;
  1196.                                     }
  1197.                                 } else {
  1198.                                     self.say( "3인 이상 파티의 파티장만이 원정대장이 될 수 있습니다." );
  1199.                                     end;
  1200.                                 }
  1201.                             }
  1202.                         } else {
  1203.                             self.say( "발록 원정대는 하루에 7회만 참가하실 수 있습니다. 오늘은 이미 7번 참여하신 것 같네요." );
  1204.                             end;
  1205.                         }
  1206.                     }
  1207.                 }
  1208.                 else {
  1209.                     self.say( "원정대장은 파티장이 신청할 수 있습니다." );
  1210.                     end;
  1211.                 }
  1212.             } else {
  1213.                 self.say( "레벨 50 ~ 70, 3인 이상 파티의 파티장만이 원정대장이 될 수 있습니다." );
  1214.                 end;
  1215.             }
  1216.         } else {
  1217.             if ( target.sCharacterName == master ) {
  1218.                 quest = FieldSet( "BalogEnter" );
  1219.                 if ( quest.getVar( "Eenter" ) == "1" ) {
  1220.                     target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1221.                     qr.set( 7222, "0" );
  1222.                     registerTransferField( 105100400, "" );
  1223.                     end;
  1224.                 }
  1225.  
  1226.                 if ( quest.getVar( "EdName" ) != "" ) {
  1227.                     quest.setVar( "EdName", "" );
  1228.                 }
  1229.  
  1230.                 v0 = self.askMenu( "발록 원정대장님 무엇을 하시겠습니까? \r\n#b#L0# 원정대 리스트 보기#l\r\n#L1# 원정대에서 추방하기#l\r\n#L2# 제재 유저 허가하기#l\r\n#r#L3# 원정대 결정하고 입장하기#l#k" );
  1231.                 easy_balog_reset;
  1232.                 easy_balog_master;
  1233.                 if ( v0 == 0 ) {
  1234.                     cList = self.getStrReg( "Elist" );
  1235.                     start = 0;
  1236.                     for ( i = 0 .. 4 ) {
  1237.                         if ( substring( cList, i, 1 ) == "1" ) {
  1238.                             start = 1;
  1239.                             break;
  1240.                         }
  1241.                     }
  1242.                     if ( start == 1 ) easy_balog_getname;
  1243.                     else {
  1244.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1245.                         end;
  1246.                     }
  1247.                 } else if ( v0 == 1 ){
  1248.                     cList = self.getStrReg( "Elist" );
  1249.                     start = 0;
  1250.                     for ( i = 0 .. 4 ) {
  1251.                         if ( substring( cList, i, 1 ) == "1" ) {
  1252.                             start = 1;
  1253.                             break;
  1254.                         }
  1255.                     }
  1256.                     if ( start == 1 ) easy_balog_ban;
  1257.                     else {
  1258.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1259.                         end;
  1260.                     }
  1261.                 } else if ( v0 == 2 ) {
  1262.                     cList = self.getStrReg( "Enolist" );
  1263.                     start = 0;
  1264.                     for ( i = 0 .. 2 ) {
  1265.                         if ( substring( cList, i, 1 ) == "1" ) {
  1266.                             start = 1;
  1267.                             break;
  1268.                         }
  1269.                     }
  1270.                     if ( start == 1 ) easy_balog_noban;
  1271.                     else {
  1272.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1273.                         end;
  1274.                     }
  1275.                 } else if ( v0 == 3 ) {
  1276.                     num = 0;
  1277.                     list = self.getStrReg( "Elist" );
  1278.                     for ( i=0 .. 4 ) {
  1279.                         if ( substring( list, i, 1 ) == "1" ) num++;
  1280.                     }                  
  1281.                     if ( num >= 2 ) { // num(파티원수) + 1(원정대장포함)
  1282.                         setParty = FieldSet( "Easy_Balog" );
  1283.                         res = setParty.enter( target.nCharacterID, 0 );
  1284.                         if ( res == -1 ) self.say( "알 수 없는 이유로 입장할 수 없습니다. 잠시 후에 다시 시도해 주십시오." );
  1285.                         else if ( res == 1 ) self.say( "파티를 맺어야만 도전할 수 있습니다." );
  1286.                         else if ( res == 2 ) self.say( "최소 3인 이상의 파티가 퀘스트를 시작할 수 있습니다." );
  1287.                         else if ( res == 3 ) self.say( "파티원의 레벨이 50이상 80 이하이어야 합니다." );
  1288.                         else if ( res == 4 ) self.say( "이미 다른 파티가 안으로 들어가 퀘스트 클리어에 도전하고 있는 중입니다." );
  1289.                         else {
  1290.                             target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1291.                             easy_balog_enterMsg;
  1292.                             easy_balog_entercheck2;
  1293.                             quest = FieldSet( "BalogEnter" );
  1294.                             quest.setVar( "Eenter", "1" );
  1295.                             qr.set( 7222, "0" );
  1296.                         }
  1297.                     } else {
  1298.                         self.say( "원정대가 3인 이상이어야 입장할 수 있습니다." );
  1299.                         end;
  1300.                     }
  1301.                 }
  1302.  
  1303.             //원정대장이 아닐경우
  1304.             } else {
  1305.                 easy_balog_banned ( target.sCharacterName );
  1306.                 quest = FieldSet( "BalogEnter" );
  1307.                 if ( quest.getVar( "Eenter" ) == "1" ) {
  1308.                     result1 = easy_balog_check( target.sCharacterName );
  1309.                     if ( result1 == 1) {
  1310.                         target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1311.                         qr.set( 7222, "0" );
  1312.                         registerTransferField( 105100400, "" );
  1313.                     } else {
  1314.                         self.say( "발록 원정대원이 아니어서 입장할 수 없습니다." );
  1315.                         end;
  1316.                     }  
  1317.                 } else {
  1318.                     master = self.getStrReg( "Emaster" );
  1319.                     v0 = self.askMenu( "무엇을 하시겠습니까?\r\n#b#L0# 발록 원정대에 참가한다#l\r\n#L1# 발록 원정대에서 탈퇴한다#l\r\n#L2# 원정대원 리스트를 본다.#k" );
  1320.                     //NPC변수 리셋
  1321.                     easy_balog_entercheck2;
  1322.                     easy_balog_reset;
  1323.                     aftermaster = self.getStrReg( "Emaster" );
  1324.                     if ( master != "" and master != aftermaster ) {
  1325.                         self.say( "지난 원정대 신청은 이미 종료되었습니다." );
  1326.                         end;
  1327.                     }
  1328.  
  1329.                     if ( v0 == 0 ) {
  1330.                         eNum = balog_dateCheck;     // 발록 입장 횟수 확인
  1331.                         if ( eNum >= 7 ) {
  1332.                             self.say( "발록 원정대는 하루에 7회만 참가하실 수 있습니다. 오늘은 이미 7번 참여하신 것 같네요." );
  1333.                             end;
  1334.                         }
  1335.  
  1336.                         name = target.sCharacterName;
  1337.                         if ( quest.getVar( "EdName" ) == name ) {
  1338.                             self.say( "현재 원정대장님이 귀하의 제재 여부를 결정하고 있습니다. 잠시 후 다시 시도해 주세요." );
  1339.                             end;
  1340.                         }
  1341.                         result1 = easy_balog_check( name );
  1342.                         result2 = easy_balog_bancheck( name );
  1343.                         if ( result1 != 1 and result2 != 1 ) easy_balog_in( target.sCharacterName );
  1344.                         else if ( result2 == 1 ) {
  1345.                             self.say( "#b" + name + "#k님은 원정대장으로부터 참가를 거부당하셨습니다." );
  1346.                             end;
  1347.                         }  
  1348.                         else {
  1349.                             self.say( "이미 원정대에 참여하고 있습니다" );
  1350.                             end;
  1351.                         }
  1352.                     } else if ( v0 == 1 ) {
  1353.                         result1 = easy_balog_check( target.sCharacterName );
  1354.                         result2 = easy_balog_bancheck( target.sCharacterName );
  1355.                         if ( result1 == 1 and result2 != 1) easy_balog_out( target.sCharacterName );
  1356.                         else if ( result2 == 1 ) {
  1357.                             self.say ( "원정대장으로 부터 참가를 거부당하였습니다. 원정대장의 허가가 있어야 참가할 수 있습니다." );
  1358.                             end;
  1359.                         }
  1360.                         else {
  1361.                             self.say( "원정대에 참여하고 있지 않아서 탈퇴할 수 없습니다." );
  1362.                             end;
  1363.                         }
  1364.                     } else if ( v0 == 2 ) {
  1365.                         easy_balog_getname;
  1366.                     }
  1367.                 }
  1368.             }
  1369.         }
  1370.  
  1371.     }
  1372. // 노말 모드 발록
  1373.     if ( Mode == 1 ) {
  1374.         if ( serverType == 2 ) {
  1375.             self.say("현재 계신 채널에서는 #bNormal Mode 발록 원정대#k 참여가 가능합니다. 다른 모드에 참여하고 싶으시면 알맞은 채널로 이동해 주세요.\r\n\r\n#b#i3994115# 5 채널, 10 채널 / 50 ~ 70 레벨 / 3 ~ 6명\r\n#b#i3994116# 15 채널 / 50 레벨 이상 / 6 ~ 15명");
  1376.         } else {
  1377.             self.say("현재 계신 채널에서는 #bNormal Mode 발록 원정대#k 참여가 가능합니다. 다른 모드에 참여하고 싶으시면 알맞은 채널로 이동해 주세요.\r\n\r\n#b#i3994116# 5, 10 채널 / 50 레벨 이상 / 6 ~ 15명\r\n#b#i3994115# 그 외 전 채널 / 50 ~ 70 레벨 / 3 ~ 6명");
  1378.         }
  1379.  
  1380.         balog_reset;
  1381.         master = self.getStrReg( "master" );
  1382.         if ( master == "" ) {
  1383.             fNum = FieldSet( "Balog" ).getUserCount;
  1384.             if ( fNum > 0 ) {
  1385.                 self.say( "이미 먼저 구성된 발록원정대가 발록을 저지하고 있습니다. 여기서 기다리세요." );
  1386.                 end;
  1387.             }
  1388.            
  1389.             if ( target.nLevel >= 50 ) {
  1390.                 if ( target.isPartyBoss == 1 ) {
  1391.                     ch = balog_check( target.sCharacterName );
  1392.                     if ( ch == 1 ) {
  1393.                         balog_reset;
  1394.                     }
  1395.  
  1396.                     lastmaster = self.getStrReg( "lastmaster" );
  1397.                     if ( target.sCharacterName == lastmaster ) {
  1398.                         self.say ( "연속으로 원정대장이 될 수 없습니다." );
  1399.                         end;
  1400.                     } else {
  1401.                         eNum = balog_dateCheck;
  1402. //                      target.message( "" + eNum + "" );   // 테스트
  1403.                         if ( eNum < 7 ) {
  1404.                             v0 = self.askYesNo( "발록 원정대장이 되시겠습니까?" );
  1405.                             if ( v0 == 0 ) {
  1406.                                 self.say( "원정대장이 되시려면 다시 말을 걸어주세요." );
  1407.                                 end;                           
  1408.                             } else {
  1409.                                 result = balog_partycheck;
  1410.  
  1411.                                 if ( result == -1 ) end;
  1412.     //                          else if ( result >= 1 ) {//개발서버
  1413.                                 else if ( result >= 3 ) {
  1414.                                     aftermaster = self.getStrReg( "master" );          
  1415.                                     if ( aftermaster != "" ) {
  1416.                                         self.say( "이미 " + aftermaster + "님이 원정대장으로 임명되었습니다." );
  1417.                                         end;
  1418.                                     } else {
  1419.                                         quest = FieldSet( "BalogEnter" );
  1420.                                         res = quest.startManually;
  1421.                                         if ( res == 0 ) {
  1422.                                             self.say( "아직 원정대를 조직할 준비가 되지 않았습니다. 잠시 후 다시 시도해 주세요." );
  1423.                                             end;
  1424.                                         }
  1425.                                         quest.resetQuestTime;
  1426.                                         quest.setVar( "reset", "" );
  1427.                                         newmaster = target.sCharacterName;
  1428.                                         self.setStrReg( "master", newmaster );
  1429.                                         say = newmaster + "님이 발록 원정대장이 되었습니다. 원정대에 참여하실 분은 지금 신청해 주세요.";
  1430.                                         field.notice( 6, say );
  1431.                                         self.say( "발록 원정대장이 되셨습니다. 5분 이내에 원정대 조직을 마치고, 모든 대원이 입장하여야 합니다." );
  1432.                                         end;
  1433.                                     }
  1434.                                 } else {
  1435.                                     self.say( "3인 이상 파티의 파티장만이 원정대장이 될 수 있습니다." );
  1436.                                     end;
  1437.                                 }
  1438.                             }
  1439.                         } else {
  1440.                             self.say( "발록 원정대는 하루에 7회만 참가하실 수 있습니다. 오늘은 이미 7번 참여하신 것 같네요." );
  1441.                             end;
  1442.                         }
  1443.                     }
  1444.                 }
  1445.                 else {
  1446.                     self.say( "원정대장은 파티장이 신청할 수 있습니다." );
  1447.                     end;
  1448.                 }
  1449.             } else {
  1450.                 self.say( "레벨 50이 넘는 3인 이상 파티의 파티장만이 원정대장이 될 수 있습니다." );
  1451.                 end;
  1452.             }
  1453.         } else {
  1454.             if ( target.sCharacterName == master ) {
  1455.                 quest = FieldSet( "BalogEnter" );
  1456.                 if ( quest.getVar( "enter" ) == "1" ) {
  1457.                     target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1458.                     qr.set( 7222, "0" );
  1459.                     registerTransferField( 105100300, "" );
  1460.                     end;
  1461.                 }
  1462.  
  1463.                 if ( quest.getVar( "dName" ) != "" ) {
  1464.                     quest.setVar( "dName", "" );
  1465.                 }
  1466.  
  1467.                 v0 = self.askMenu( "발록 원정대장님 무엇을 하시겠습니까? \r\n#b#L0# 원정대 리스트 보기#l\r\n#L1# 원정대에서 추방하기#l\r\n#L2# 제재 유저 허가하기#l\r\n#r#L3# 원정대 결정하고 입장하기#l#k" );
  1468.                 balog_reset;
  1469.                 balog_master;
  1470.                 if ( v0 == 0 ) {
  1471.                     cList = self.getStrReg( "list" );
  1472.                     start = 0;
  1473.                     for ( i = 0 .. 13 ) {
  1474.                         if ( substring( cList, i, 1 ) == "1" ) {
  1475.                             start = 1;
  1476.                             break;
  1477.                         }
  1478.                     }
  1479.                     if ( start == 1 ) balog_getname;
  1480.                     else {
  1481.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1482.                         end;
  1483.                     }
  1484.                 } else if ( v0 == 1 ){
  1485.                     cList = self.getStrReg( "list" );
  1486.                     start = 0;
  1487.                     for ( i = 0 .. 13 ) {
  1488.                         if ( substring( cList, i, 1 ) == "1" ) {
  1489.                             start = 1;
  1490.                             break;
  1491.                         }
  1492.                     }
  1493.                     if ( start == 1 ) balog_ban;
  1494.                     else {
  1495.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1496.                         end;
  1497.                     }
  1498.                 } else if ( v0 == 2 ) {
  1499.                     cList = self.getStrReg( "nolist" );
  1500.                     start = 0;
  1501.                     for ( i = 0 .. 9 ) {
  1502.                         if ( substring( cList, i, 1 ) == "1" ) {
  1503.                             start = 1;
  1504.                             break;
  1505.                         }
  1506.                     }
  1507.                     if ( start == 1 ) balog_noban;
  1508.                     else {
  1509.                         self.say( "원정대에 신청한 유저가 없습니다." );
  1510.                         end;
  1511.                     }
  1512.                 } else if ( v0 == 3 ) {
  1513.                     num = 0;
  1514.                     list = self.getStrReg( "list" );
  1515.                     for ( i=0 .. 13 ) {
  1516.                         if ( substring( list, i, 1 ) == "1" ) num++;
  1517.                     }
  1518.    
  1519.    
  1520.                     if ( num >= 5 ) {
  1521.                         setParty = FieldSet( "Balog" );
  1522.                         res = setParty.enter( target.nCharacterID, 0 );
  1523.                         if ( res == -1 ) self.say( "알 수 없는 이유로 입장할 수 없습니다. 잠시 후에 다시 시도해 주십시오." );
  1524.                         else if ( res == 1 ) self.say( "파티를 맺어야만 도전할 수 있습니다." );
  1525.                         else if ( res == 2 ) self.say( "최소 3인 이상의 파티가 퀘스트를 시작할 수 있습니다." );
  1526.                         else if ( res == 3 ) self.say( "파티원의 레벨은 최소 80 이상이어야 합니다." );
  1527.                         else if ( res == 4 ) self.say( "이미 다른 파티가 안으로 들어가 퀘스트 클리어에 도전하고 있는 중입니다." );
  1528.                         else {
  1529.                             target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1530.                             balog_enterMsg;
  1531.                             balog_entercheck2;
  1532.                             quest = FieldSet( "BalogEnter" );
  1533.                             quest.setVar( "enter", "1" );
  1534.                             qr.set( 7222, "0" );
  1535.                         }
  1536.                     } else {
  1537.                         self.say( "원정대가 6인 이상이어야 입장할 수 있습니다." );
  1538.                         end;
  1539.                     }
  1540.                 }
  1541.  
  1542.             //원정대장이 아닐경우
  1543.             } else {
  1544.                 balog_banned ( target.sCharacterName );
  1545.                 quest = FieldSet( "BalogEnter" );
  1546.                 if ( quest.getVar( "enter" ) == "1" ) {
  1547.                     result1 = balog_check( target.sCharacterName );
  1548.                     if ( result1 == 1) {
  1549.                         target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  1550.                         qr.set( 7222, "0" );
  1551.                         registerTransferField( 105100300, "" );
  1552.                     } else {
  1553.                         self.say( "발록 원정대원이 아니어서 입장할 수 없습니다." );
  1554.                         end;
  1555.                     }  
  1556.                 } else {
  1557.                     master = self.getStrReg( "master" );
  1558.                     v0 = self.askMenu( "무엇을 하시겠습니까?\r\n#b#L0# 발록 원정대에 참가한다#l\r\n#L1# 발록 원정대에서 탈퇴한다#l\r\n#L2# 원정대원 리스트를 본다.#k" );
  1559.                     //NPC변수 리셋
  1560.                     balog_entercheck2;
  1561.                     balog_reset;
  1562.                     aftermaster = self.getStrReg( "master" );
  1563.                     if ( master != "" and master != aftermaster ) {
  1564.                         self.say( "지난 원정대 신청은 이미 종료되었습니다." );
  1565.                         end;
  1566.                     }
  1567.  
  1568.                     if ( v0 == 0 ) {
  1569.                         eNum = balog_dateCheck;     // 발록 입장 횟수 확인
  1570.                         if ( eNum >= 7 ) {
  1571.                             self.say( "발록 원정대는 하루에 7회만 참가하실 수 있습니다. 오늘은 이미 7번 참여하신 것 같네요." );
  1572.                             end;
  1573.                         }
  1574.  
  1575.                         name = target.sCharacterName;
  1576.                         if ( quest.getVar( "dName" ) == name ) {
  1577.                             self.say( "현재 원정대장님이 귀하의 제재 여부를 결정하고 있습니다. 잠시 후 다시 시도해 주세요." );
  1578.                             end;
  1579.                         }
  1580.                         result1 = balog_check( name );
  1581.                         result2 = balog_bancheck( name );
  1582.                         if ( result1 != 1 and result2 != 1 ) balog_in( target.sCharacterName );
  1583.                         else if ( result2 == 1 ) {
  1584.                             self.say( "#b" + name + "#k님은 원정대장으로부터 참가를 거부당하셨습니다." );
  1585.                             end;
  1586.                         }  
  1587.                         else {
  1588.                             self.say( "이미 원정대에 참여하고 있습니다" );
  1589.                             end;
  1590.                         }
  1591.                     } else if ( v0 == 1 ) {
  1592.                         result1 = balog_check( target.sCharacterName );
  1593.                         result2 = balog_bancheck( target.sCharacterName );
  1594.                         if ( result1 == 1 and result2 != 1) balog_out( target.sCharacterName );
  1595.                         else if ( result2 == 1 ) {
  1596.                             self.say ( "원정대장으로 부터 참가를 거부당하였습니다. 원정대장의 허가가 있어야 참가할 수 있습니다." );
  1597.                             end;
  1598.                         }
  1599.                         else {
  1600.                             self.say( "원정대에 참여하고 있지 않아서 탈퇴할 수 없습니다." );
  1601.                             end;
  1602.                         }
  1603.                     } else if ( v0 == 2 ) {
  1604.                         balog_getname;
  1605.                     }
  1606.                 }
  1607.             }
  1608.         }
  1609.     }
  1610.  
  1611.     if ( Mode == -1 ) {
  1612.         self.say("현재 계신 채널에서는 발록 원정대 참가가 불가능 합니다. 아래 안내를 참고 하셔서 원하시는 채널로 이동해 주세요.\r\n\r\n#b#i3994116# 5, 10 채널 / 50 레벨 이상 / 6 ~ 15명\r\n#b#i3994115# 그 외 전 채널 / 50 ~ 70 레벨 / 3 ~ 6명");
  1613.         end;
  1614.     }
  1615.  
  1616.  
  1617. }
  1618.  
  1619.  
  1620. // 발록 보너스맵 세팅
  1621. script "balog_bonusSetting" {
  1622.     field = target.field;
  1623.     nField = field.id;
  1624.    
  1625.     if ( nField == 105100301 ) quest = FieldSet( "Balog" );
  1626.     else if ( nField == 105100401 ) quest = FieldSet( "Easy_Balog" );
  1627.     quest.resetTimeOut( 120 );
  1628.  
  1629. //  quest0 = FieldSet( "BalogEnter" );
  1630. //  quest0.setReactorState( 0, "balog_gate", 0, 0 );
  1631. }
  1632.  
  1633.  
  1634. // 주문서 랜덤
  1635. function ( integer ) rn_Create ( integer Type ) {
  1636.     if ( Type == 0 ) {
  1637.         r = random( 0, 99 );
  1638.         if ( r >= 0 and r < 5 ) sn = 5;
  1639.         else if ( r >= 5 and r < 10 ) sn = 6;
  1640.         else if ( r >= 10 and r < 15 ) sn = 7;
  1641.         else if ( r >= 15 and r < 20 ) sn = 8;
  1642.         else if ( r >= 20 and r < 25 ) sn = 9;
  1643.         else if ( r >= 25 and r < 30 ) sn = 10;
  1644.         else if ( r >= 30 and r < 50 ) sn = 11;
  1645.         else sn = 12;
  1646.     }
  1647.     else if ( Type == 1 ) {
  1648.         r = random( 0, 99 );
  1649.         if ( r >= 0 and r < 5 ) sn = 1;
  1650.         else if ( r >= 5 and r < 10 ) sn = 2;
  1651.         else if ( r >= 10 and r < 15 ) sn = 3;
  1652.         else if ( r >= 15 and r < 20 ) sn = 4;
  1653.         else if ( r >= 20 and r < 32 ) sn = 5;
  1654.         else if ( r >= 32 and r < 44 ) sn = 6;
  1655.         else if ( r >= 44 and r < 56 ) sn = 7;
  1656.         else if ( r >= 56 and r < 68 ) sn = 8;
  1657.         else if ( r >= 68 and r < 80 ) sn = 9;
  1658.         else if ( r >= 80 and r < 92 ) sn = 10;
  1659.         else sn = 11;
  1660.     }
  1661.     else if ( Type == 2 ) {
  1662.         r = random( 0, 999 );
  1663.         if ( r >= 0 and r < 150 ) sn = 1;
  1664.         else if ( r >= 150 and r < 300 ) sn = 2;
  1665.         else if ( r >= 300 and r < 450 ) sn = 3;
  1666.         else if ( r >= 450 and r < 600 ) sn = 4;
  1667.         else if ( r >= 600 and r < 665 ) sn = 5;
  1668.         else if ( r >= 665 and r < 730 ) sn = 6;
  1669.         else if ( r >= 730 and r < 795 ) sn = 7;
  1670.         else if ( r >= 795 and r < 860 ) sn = 8;
  1671.         else if ( r >= 860 and r < 925 ) sn = 9;
  1672.         else if ( r >= 9250 and r < 990 ) sn = 10;
  1673.         else sn = 11;
  1674.     }
  1675.     else if ( Type == 3 ) {
  1676.         r = random( 0, 999 );
  1677.         if ( r >= 0 and r < 20 ) sn = 0;
  1678.         else if ( r >= 20 and r < 170 ) sn = 1;
  1679.         else if ( r >= 170 and r < 320 ) sn = 2;
  1680.         else if ( r >= 320 and r < 470 ) sn = 3;
  1681.         else if ( r >= 470 and r < 620 ) sn = 4;
  1682.         else if ( r >= 620 and r < 715 ) sn = 5;
  1683.         else if ( r >= 715 and r < 810 ) sn = 6;
  1684.         else if ( r >= 810 and r < 905 ) sn = 7;
  1685.         else sn = 8;
  1686.     }
  1687.  
  1688.     if ( sn == 12 ) item = 0;
  1689.     else if ( sn == 1 ) item = 2040728;
  1690.     else if ( sn == 2 ) item = 2040729;
  1691.     else if ( sn == 3 ) item = 2040730;
  1692.     else if ( sn == 4 ) item = 2040731;
  1693.     else if ( sn == 5 ) item = 2040732;
  1694.     else if ( sn == 6 ) item = 2040733;
  1695.     else if ( sn == 7 ) item = 2040734;
  1696.     else if ( sn == 8 ) item = 2040735;
  1697.     else if ( sn == 9 ) item = 2040736;
  1698.     else if ( sn == 10 ) item = 2040737;
  1699.     else if ( sn == 11 ) item = 2040738;
  1700.     else if ( sn == 0 ) item = 2040739;
  1701.     else item = 0;
  1702.  
  1703.     return item;
  1704. }
  1705.  
  1706. // 발록의 가죽으로 주문서 교환
  1707. script  "balog_scroll" {
  1708.     inven = target.inventory;
  1709.  
  1710.     v1 = self.askMenu( "또 왔어? 자주 보네? 꽤 한가한가봐? 나한테 부탁할게 있는 눈치네? 뭐 발록의 가죽이라도 구해 온거야?#b\r\n\r\n#L0#발록의 가죽조각으로 주문서를 만들어 주세요#l\r\n#L4#발록의 가죽조각 20개로 가죽신발을 만들어 주세요.#k" );
  1711.  
  1712.     if ( v1 == 4 ) {
  1713.         if ( inven.itemCount( 4001261 ) < 20 ) {
  1714.             self.say( "그런데 발록의 가죽조각을 충분히 가지고 있지 않은것 같은데... 재료가 모자르다고. 이래서야 어디 신발을 만들어볼 수나 있겠어?" );
  1715.         }
  1716.         else {
  1717.             ret = inven.exchange( 0, 4001261, -20, 1072375, 1 );
  1718.             if ( ret == 0 ) self.say( "재료를 제대로 가지고 있는지, 혹시 장비 창에 빈 칸이 부족한건 아닌지 확인해 보게." );
  1719.             else self.say( "어때 머진 신발이지? 보기엔 평범해 보여도 발록의 가죽으로 만든 신발이라서 굉장히 튼튼하다고." );
  1720.         }
  1721.         end;
  1722.     }
  1723.     // 인벤토리 칸 부족
  1724.     if ( inven.slotCount(2) <= inven.holdCount(2)) {
  1725.         self.say( "주문서를 받고 싶다면 소비칸을 한 칸 이상 비워놓으라고." );
  1726.         end;
  1727.     }
  1728.  
  1729.     if ( v1 == 0 ) {
  1730.     //  item = rn_Create( 0 );
  1731.     //  num = 1;
  1732.     // 원하는 주문서를 받을 수 있도록 변경
  1733.         v2 = self.askMenu( "어떤 주문서를 만들어줄까? 주문서의 종류에 따라 필요한 가죽의 갯수가 달라.#b\r\n\r\n#L12#잠시만요, 나중에 만들래요.#l\r\n#L0#발록의 가죽조각 5개 -  #i2040734:# #t2040734##l\r\n#L1#발록의 가죽조각 5개 -  #i2040735:# #t2040735##l\r\n#L2#발록의 가죽조각 5개 - #i2040736:# #t2040736##l\r\n#L3#발록의 가죽조각 5개 - #i2040737:# #t2040737##l\r\n#L4#발록의 가죽조각 5개 - #i2040738:# #t2040738##l\r\n#L5#발록의 가죽조각 10개 - #i2040728:# #t2040728##l\r\n#L6#발록의 가죽조각 10개 - #i2040729:# #t2040729##l\r\n#L7#발록의 가죽조각 10개 - #i2040730:# #t2040730##l\r\n#L8#발록의 가죽조각 10개 - #i2040731:# #t2040731##l\r\n#L9#발록의 가죽조각 10개 - #i2040732:# #t2040732##l\r\n#L10#발록의 가죽조각 10개 - #i2040733:# #t2040733##l\r\n#L11#발록의 가죽조각 10개 - #i2040739:# #t2040739##l" );
  1734.         if( v2 == 0 ) {
  1735.             item = 2040734;
  1736.             num = 5;
  1737.         }
  1738.         else if ( v2 == 1 ){
  1739.             item = 2040735;
  1740.             num = 5;
  1741.         }
  1742.         else if ( v2 == 2 ){
  1743.             item = 2040736;
  1744.             num = 5;
  1745.         }
  1746.         else if ( v2 == 3 ){
  1747.             item = 2040737;
  1748.             num = 5;
  1749.         }
  1750.         else if ( v2 == 4 ){
  1751.             item = 2040738;
  1752.             num = 5;
  1753.         }
  1754.         else if ( v2 == 5 ){
  1755.             item = 2040728;
  1756.             num = 10;
  1757.         }
  1758.         else if ( v2 == 6 ){
  1759.             item = 2040729;
  1760.             num = 10;
  1761.         }
  1762.         else if ( v2 == 7 ){
  1763.             item = 2040730;
  1764.             num = 10;
  1765.         }
  1766.         else if ( v2 == 8 ){
  1767.             item = 2040731;
  1768.             num = 10;
  1769.         }
  1770.         else if ( v2 == 9 ){
  1771.             item = 2040732;
  1772.             num = 10;
  1773.         }
  1774.         else if( v2 == 10 ){
  1775.             item = 2040733;
  1776.             num = 10;
  1777.         }
  1778.         else if( v2 == 11) {
  1779.             item = 2040739;
  1780.             num = 10;
  1781.         }
  1782.         else{
  1783.             self.say("변덕은...그래, 필요한 게 생각나면 다시 찾아오라구.");
  1784.             end;
  1785.         }
  1786.     }
  1787.     else if ( v1 == 1 ) {
  1788.         item = rn_Create( 1 );
  1789.         num = 7;
  1790.     }
  1791.     else if ( v1 == 2 ) {
  1792.         item = rn_Create( 2 );
  1793.         num = 20;
  1794.     }
  1795.     else if ( v1 == 3 ) {
  1796.         item = rn_Create( 3 );
  1797.         num = 30;
  1798.     }
  1799.     else {
  1800.         item = 0;
  1801.         num = 0;
  1802.     }
  1803.  
  1804.     // 재료 부족
  1805.     if ( inven.itemCount( 4001261 ) < num ) {
  1806.         self.say( "그런데 발록의 가죽조각을 충분히 가지고 있지 않은것 같은데... 재료가 모자르다고. 이래서야 어디 주문서를 만들어볼 수나 있겠어?" );
  1807.         end;
  1808.     }
  1809.  
  1810.     if ( item != 0 ) {
  1811.         ret = inven.exchange( 0, 4001261, -num, item, 1 );
  1812.         if ( ret == 0 ) self.say( "재료를 제대로 가지고 있는 건 맞아?" );
  1813.         else self.say( "#b#t" + item + "##k를 받았군. 성공하길 빌어주지." );
  1814.     }
  1815.     else {
  1816.         ret2 = inven.exchange( 0, 4001261, -num );
  1817.         self.say( "저런 꽝이군. 오늘은 운수가 별로 안 좋은가 보지?" );
  1818.     }
  1819. }
  1820.  
  1821. // 퀘스트맵 입장 시 발동
  1822. script "tristan_questMap" {
  1823.     map = target.getFieldID;
  1824.     field = Field( map );
  1825.     field.registerOnMobCreate( "tristan_clear", 9300327 );
  1826.     field.weatherMsg( 5120000, "어둠 속에서 나타난 주니어발록을 물리쳐라!", 15 );
  1827. }
  1828.  
  1829. // 퀘스트맵에서 트리스탄의 영혼 소환용
  1830. script "tristan_clear" {
  1831.     map = target.getFieldID;
  1832.     field = Field( map );
  1833.     field.summonNpc( 1061015, 0, 171 );
  1834. }
  1835.  
  1836. // 보스맵 입장 시, 보스 소환용 스크립트
  1837. script "balog_summon" {
  1838.     field = Field( 105100300 );
  1839.  
  1840.     mob = field.getMobCount( 8830000 );
  1841.     if ( mob == 0 ) {
  1842.         field.summonMob( 400, 235, 2100132 );
  1843.         field.summonMob( 400, 235, 2100133 );
  1844.        
  1845.         // 기상효과 안내
  1846.         field.weatherMsg( 5120025, "무영의 말 : 제가 봉인의 힘을 다시 일깨울 때까지 여러분이 발록을 저지해 주세요!", 15 );
  1847.     }
  1848.  
  1849.     // 리액터 조작
  1850. //  quest = FieldSet( "BalogEnter" );
  1851. //  quest.setReactorState( 0, "balog_gate", 1, 0 );
  1852.  
  1853. }
  1854.  
  1855. // 보스맵 입장 시, 개인별로 버프 지급
  1856. script "balog_buff" {
  1857.     lv = target.nLevel;
  1858.     inven = target.inventory;
  1859.     map = target.getFieldID;
  1860.  
  1861.     // 봉인 버프
  1862.     if ( lv > 70 ) {
  1863.         target.giveBuff( 2022536 );
  1864. //      target.message( "당신의 능력이 뛰어나서 지하신전 봉인의 기운이 당신의 능력을 억누르고 있습니다." );
  1865.     }
  1866.     have = inven.itemCount( 1302015 );
  1867.     take = target.isWear( 1302015 );
  1868.  
  1869.     if ( have == 1 or take == 1 ) {
  1870.         target.giveBuff( 2022537 );
  1871. //          target.message( "영웅의 글라디우스가 빛나기 시작하면서 당신에게 힘이 되어 주었습니다." );
  1872.     }
  1873.  
  1874.     if ( map == 105100400 ) logEvent( "EasyBalogStart_" + target.sCharacterName + "_" + target.nLevel + "_" + target.nJob + "_" + currentTime );
  1875.  
  1876.  
  1877. }
  1878.  
  1879. // 보너스맵에서 나오는 포탈용 스크립트
  1880. script "balog_end" {
  1881.     inven = target.inventory;
  1882.     qr = target.questRecord;
  1883.     nField = target.getFieldID;
  1884.  
  1885.  
  1886.     if ( qr.get( 7222 ) == "1" ) {
  1887.         if ( inven.slotCount(4) > inven.holdCount(4)) {
  1888.             ret = inven.exchange( 0, 4001261, 1 );
  1889.             if ( ret == 0 ) target.message( "기타창에 빈 칸을 한 칸 이상 만드세요." );
  1890.             else {
  1891.                 target.message( "땅에 떨어진 발록의 가죽조각을 주웠다." );
  1892.  
  1893.                 // EXP지급 및 로그 기록
  1894.                 if ( nField == 105100301 ) {
  1895.                     target.incEXP( 48840, 0 );
  1896.                     logEvent( "BalogEXP_" + target.sCharacterName + "_" + target.nLevel + "_" + target.nJob + "_"  + target.getFieldID );  
  1897.  
  1898.                     // 레인보우 위크
  1899.                     deExp = dayEvent( "boss", 48840 );
  1900.                     if ( deExp != 0 ) {
  1901.                         target.incEXP( deExp, 0 );
  1902.                         target.message( "레인보우 위크:보라색 마법의 힘으로 추가 경험치를 획득했습니다." );
  1903.                     }
  1904.                 } else if ( nField == 105100401 ) {
  1905.                     target.incEXP( 35520, 0 );
  1906.                     logEvent( "EasyBalogClear_" + target.sCharacterName + "_" + target.nLevel + "_" + target.nJob + "_"  + currentTime );
  1907.  
  1908.                     // 레인보우 위크
  1909.                     deExp = dayEvent( "boss", 35520 );
  1910.                     if ( deExp != 0 ) {
  1911.                         target.incEXP( deExp, 0 );
  1912.                         target.message( "레인보우 위크:보라색 마법의 힘으로 추가 경험치를 획득했습니다." );
  1913.                     }
  1914.                
  1915.                     if ( serverType == 2 ) testerPointAdd (6);
  1916.  
  1917.                 }
  1918.  
  1919.                 qr.set( 7222, "0" );
  1920.                
  1921.                 // 발록 퇴치 횟수 기록
  1922.                 qr = target.questRecord;
  1923.                 n = integer(qr.get( 7220 ));
  1924.                 n++;
  1925.                 qr.set( 7220, string( n ));
  1926.  
  1927.                 // 버프 캔슬
  1928.                 target.cancelBuff( 2022536 );
  1929.                 target.cancelBuff( 2022537 );
  1930.  
  1931.                 // 맵이동
  1932.                 target.playPortalSE;
  1933.                 registerTransferField( 105100100, "" );
  1934.             }
  1935.         }
  1936.         else target.message( "기타창에 빈 칸을 한 칸 이상 만드세요." );
  1937.     }
  1938. }
  1939.  
  1940. // 트리스탄의 무덤 상시 출입
  1941. script "tristanEnter" {
  1942.     qr = target.questRecord;
  1943.     val = qr.getState( 2238 );
  1944.     v = qr.getState( 2634 );
  1945.  
  1946.     if( v == 1 ) {
  1947.         target.playPortalSE;
  1948.         registerTransferField( 105100101, "out00" );
  1949.     }
  1950.  
  1951.     if ( val == 2 ) {
  1952.         target.playPortalSE;
  1953.         registerTransferField( 105100101, "out00" );
  1954.     }
  1955.     else {
  1956.         target.message( "트리스탄의 영혼 : 아직 그대에게는 이곳을 지나갈 자격이 없다." );
  1957.     }
  1958. }
  1959.  
  1960. // 트리스탄의 후계자 훈장
  1961. script "q2244e" {
  1962.     qr = target.questRecord;
  1963.     inven = target.inventory;
  1964.  
  1965.     n = integer(qr.get( 7220 ));
  1966.    
  1967.     if ( n >= 200 ){
  1968.         self.say( "발록의 봉인은 100번이나 제지하다니...나의 후계자가 될 조건이 충분하네. 지금부터 자네는 내 후계자일세.\r\n\r\n#i1142079:#" );
  1969.         ret = inven.exchange( 0, 1142079, 1 );
  1970.         if ( ret == 0 ) self.say( "장비칸이 한 칸 이상 비었는지 확인해 보게." );
  1971.         else {
  1972.             target.questEndEffect;
  1973.             qr.setState( 2244, 2 );
  1974.         }
  1975.     }
  1976.     else self.say( "나의 후계자가 되려면 아직 더 많은 노력이 필요하네. 더욱 정진하도록 하게.\r\n\r\n#b발록퇴치 횟수 : " + n + " / 200" );
  1977. }
  1978.  
  1979. // 지하신전 출입
  1980. script "balogTemple" {
  1981.     qr = target.questRecord;
  1982.     val = qr.getState( 2235 );
  1983.  
  1984. //  if ( val == 1 or val == 2 ) {
  1985.         target.playPortalSE;
  1986.         registerTransferField( 105100000, "top00" );
  1987. //  }
  1988. //  else target.message( "위험한 기운에 가로막혀 들어갈 수 없습니다." );
  1989. }
  1990.  
  1991. // 보스맵안의 무영
  1992. script "balog_InOut" {
  1993.     v1 = self.askYesNo( "포기하고 나가시겠어요?" );
  1994.     if ( v1 == 0 ) self.say( "조금만 더 힘내세요." );
  1995.     else {
  1996.         // 버프 캔슬
  1997.         target.cancelBuff( 2022536 );
  1998.         target.cancelBuff( 2022537 );
  1999.  
  2000.         target.playPortalSE;
  2001.         registerTransferField( 105100100, "" );
  2002.     }
  2003. }
  2004.  
  2005. // 하루 참가  횟수 기록
  2006. script "balog_dateSet" {            // 발록 참가 횟수 정보 기록
  2007.     qr = target.questRecord;
  2008. /*
  2009.     eNum = integer(qr.getEx( 7221, "eNum" ));
  2010.     eNum++;
  2011.     qr.setEx( 7221, "eNum", string( eNum ));
  2012.     if ( target.isMaster == 1 ) target.message( "입장 횟수 : " + eNum + "" );
  2013.  
  2014.     cTime = currentTime;
  2015.     cDate = substring( cTime, 0, 8 );
  2016.     qr.setEx( 7221, "lastDate", cDate );
  2017. */
  2018.     qr = target.questRecord;
  2019.     date = qr.getEx( 7221, "lastDate" );
  2020.     count = integer(qr.getEx( 7221, "eNum" ));
  2021.     cDate = substring( currentTime, 0, 8 );
  2022.  
  2023.     if ( date == cDate ) {
  2024.         count++;
  2025.         qr.setEx( 7221, "eNum", string(count) );
  2026.     }
  2027.     else {
  2028.         qr.setEx( 7221, "eNum", "1" );
  2029.     }
  2030.     qr.setEx( 7221, "lastDate", cDate );
  2031.     if ( target.isMaster == 1 ) target.message( "입장 횟수 : " + qr.getEx( 7221, "eNum" ) + "" );
  2032. }
  2033.  
  2034. script "outCase" {
  2035.     target.cancelBuff( 2022536 );
  2036.     target.cancelBuff( 2022537 );
  2037. }
  2038.  
  2039. script "Reactorfail" {
  2040. }
  2041.  
  2042. script "Reactorsuccess" {
  2043. }
  2044.  
  2045. // 이지모드 발록, 보스 맵 입장
  2046. script "easy_balog_summon" {
  2047.     field = Field( 105100400 );
  2048.  
  2049.     mob = field.getMobCount( 8830007 );
  2050.     if ( mob == 0 ) {
  2051.         field.summonMob( 400, 235, 2100136 );
  2052.         field.summonMob( 400, 235, 2100137 );
  2053.  
  2054.         // 기상효과 안내
  2055.         field.weatherMsg( 5120025, "무영의 말 : 제가 봉인의 힘을 다시 일깨울 때까지 여러분이 발록을 저지해 주세요!", 15 );
  2056.     }
  2057. }
  2058.  
  2059. script "OutPerrion_1" {
  2060.     qr = target.questRecord;
  2061.     val = qr.get( 7223 );
  2062.  
  2063.     if ( val == "1" ) {
  2064.         qr.set( 7223, "0");
  2065.         target.playPortalSE;
  2066.         registerTransferField( 102000000, "st00" );
  2067.     } else {
  2068.         target.message("이 포탈을 이용하실 수 없습니다.");
  2069.     }
  2070.        
  2071. }
  2072.  
  2073.  
  2074. // 신전의 밑바닥 상층부 포탈용_ 페리온 통해서 온 유저 이동 제한
  2075. script "OutPerrion_2" {
  2076.     qr = target.questRecord;
  2077.     val = qr.get( 7223 );
  2078.  
  2079.     if ( val == "1" ) {
  2080.         target.screenMessage("이 곳을 통해 이동 하실 수 없습니다. 왼쪽 가장 아래 있는 포탈로 이동하십시요.");
  2081.     } else {
  2082.         target.playPortalSE;
  2083.         registerTransferField( 105100000, "st00" );
  2084.     }
  2085.        
  2086. }
  2087.  
  2088.  
  2089. ////////////////////////////////////////////////////////////////////////////////////////////////
  2090. //////                  ////////////////////////////////////////////////////////////////
  2091. /////       발록원정대()        ////////////////////////////////////////////////////////////////
  2092. ////                        ////////////////////////////////////////////////////////////////
  2093.  
  2094. // 모드체크
  2095. function (integer) balog_checkMode {        // 0 = easy, 1 = normal
  2096.     mode = 0;
  2097. /*  if ( serverType == 1 ) {               //2011.12.29 슬리피우드 개편, 발록 모드 통합
  2098.         if ( channelID == 5 or channelID == 10 ) mode = 1;
  2099.     }
  2100.     else {
  2101.         if ( channelID == 1 ) mode = 1;
  2102.     }
  2103. */
  2104.     return mode;
  2105. }
  2106.  
  2107. // 엔터 필드 타임 체크
  2108. function (integer) balog_enterFieldTime ( string FSname ) {
  2109.     quest = FieldSet( FSname );
  2110.     efTime = quest.getQuestTime;
  2111.  
  2112.     return efTime;
  2113. }
  2114.  
  2115. // 하루 입장 제한 체크
  2116. function (integer) balog_dayEnterCount {
  2117.     qr = target.questRecord;
  2118.     date = qr.getEx( 7221, "lastDate" );
  2119.     count = integer(qr.getEx( 7221, "eNum" ));
  2120.     cDate = substring( currentTime, 0, 8 );
  2121.  
  2122.     if ( date == cDate ) return count;
  2123.    
  2124.     return 0;
  2125. }
  2126.  
  2127. // 입장 시, 입장 횟수 카운팅
  2128. function balog_update_enterCount {
  2129.     qr = target.questRecord;
  2130.     date = qr.getEx( 7221, "lastDate" );
  2131.     count = integer(qr.getEx( 7221, "eNum" ));
  2132.     cDate = substring( currentTime, 0, 8 );
  2133.  
  2134.     if ( date == cDate ) {
  2135.         count++;
  2136.         qr.setEx( 7221, "eNum", string(count) );
  2137.     }
  2138.     else {
  2139.         qr.setEx( 7221, "eNum", "1" );
  2140.     }
  2141.     qr.setEx( 7221, "lastDate", cDate );
  2142.  
  2143.     return;
  2144. }
  2145.  
  2146. // 원정대원인지 확인하기
  2147. function (integer) balog_check_ex {
  2148.     ex = target.getExpeditionMemberCount;
  2149.     check = 0;
  2150.     if ( ex > 0 ) check = 1;
  2151.  
  2152.     return check;
  2153. }
  2154.  
  2155. // 입장
  2156. script "balog_accept" {
  2157.     qr = target.questRecord;
  2158.     field = self.field;
  2159.     waitFS = "BalogEnter";
  2160.  
  2161.     // 모드별 설정
  2162.     if ( balog_checkMode == 0 ) {   // easy
  2163.         minLv = 45;
  2164.         maxLv = 200;   //2011.12.29 슬리피우드 개편, 레벨 제한 변경
  2165.         minMember = 1;
  2166.         maxMember = 6;
  2167.         modeType = "이지";
  2168.         exIDval = "EexID";
  2169.         masterVal = "Emaster";
  2170.         lastMasterVal = "Elastmaster";
  2171.         enterMap = 105100400;
  2172.         bossFS = "Easy_Balog";
  2173.         exType = 2000;
  2174.     }
  2175.     else {                  // normal
  2176.         minLv = 50;
  2177.         maxLv = 200;
  2178.         minMember = 6;
  2179.         maxMember = 15;
  2180.         modeType = "노말";
  2181.         exIDval = "exID";
  2182.         masterVal = "master";
  2183.         lastMasterVal = "lastmaster";
  2184.         enterMap = 105100300;
  2185.         bossFS = "Balog";
  2186.         exType = 2001;
  2187.     }
  2188.     if ( target.isMaster == 1 ) minMember = 1;
  2189.  
  2190.     // 레벨 제한
  2191.     if ( target.nLevel < minLv or target.nLevel > maxLv ) {
  2192.         self.say( "이 안에 봉인되어 있는 발록은 너무나도 위험한 놈이기 때문에, 자격을 갖춘 용사만이 #e<발록 원정대>#n에 참가할 수 있습니다. \r\n" + minLv + "레벨 부터 " + maxLv + "레벨까지 참여할 수 있습니다." );
  2193.         end;
  2194.     }
  2195.  
  2196.     // 채널 안내
  2197.     //self.say("현재 계신 채널에서는 #b" + modeType + "모드 발록 원정대#k 참여가 가능합니다. 다른 모드에 참여하고 싶으시면 알맞은 채널로 이동해 주세요.\r\n\r\n#b 모든 채널 / 45레벨 이상 / 1 ~ 6명#k");
  2198.  
  2199.     // enter필드셋 시간 체크 및 변수 리셋
  2200.     efTime = balog_enterFieldTime( waitFS );
  2201.     if ( efTime > 302 ) {
  2202.         master = self.getStrReg( masterVal );
  2203.         if ( master != "" ) self.setStrReg( lastMasterVal, master );
  2204.         self.setStrReg( masterVal, "" );
  2205.         self.setStrReg( exIDval, "" );
  2206.     }
  2207.  
  2208.     // 1일 입장 횟수 제한
  2209.     if ( balog_dayEnterCount >= 7 ) {
  2210.         self.say( "오늘 하루 7번이나 입장했었네? 그렇다면 오늘은 더 이상 들어갈 수 없어. 내일 다시 시도해줘." );
  2211.         end;
  2212.     }
  2213.  
  2214.     // 원정대장일 때
  2215.     if ( target.isExpeditionMaster == 1 ) {
  2216.         menu = "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해..\r\n(모든 채널 / 45레벨 이상 / 1 ~ 6명)\r\n#b";
  2217.  
  2218.         if ( efTime > 302 ) menu = menu + "\r\n#L0# 발록원정대 입장을 신청한다.#l";
  2219.         else if ( efTime <= 302 and self.getIntReg( exIDval ) == target.getExpeditionID ) menu = menu + "\r\n#L1# 재입장 한다.#l";
  2220.         else {
  2221.             self.say( "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해.\r\n#b\r\n현재 접속한 채널에서는 다른 원정대가 입장을 하고 있어. 다른 채널에서 진행해줘." );
  2222.             end;
  2223.         }
  2224.        
  2225.         v0 = self.askMenu( menu );
  2226.  
  2227.         // 입장 신청
  2228.         if ( v0 == 0 ) {
  2229.             // 원정대 타입 확인
  2230.             Type = target.getExpeditionType;
  2231.             if ( exType != Type ) {
  2232.                 self.say( "현재 #b#h0##k님이 구성하신 원정대는 " + modeType + " 모드 <발록 원정대>가 아닙니다. 다시 한번 확인해 주세요." );
  2233.                 end;
  2234.             }
  2235.        
  2236.             // 연속해서 같은 원정대장이 입장을 시도할 때
  2237.             lastmaster = self.getStrReg( lastMasterVal );
  2238.             if ( target.sCharacterName == lastmaster ) {
  2239.                 self.say ( "연속으로 원정대장이 될 수는 없어. 원정대장을 바꿔서 다시 신청해줘." );
  2240.                 end;
  2241.             }
  2242.  
  2243.             // 원정대원의 숫자 확인
  2244.             exCount = target.getExpeditionMemberCount;
  2245.             if ( exCount < minMember ) {
  2246.                 self.say( "원정대가 " + minMember + "명 이상으로 구성되어야 입장할 수 있어." );
  2247.                 end;
  2248.             }
  2249.  
  2250.             // 입장 시도:필드셋 발동
  2251.             setParty = FieldSet( bossFS );
  2252.             res = setParty.enter( target.nCharacterID, 0 );
  2253. //          res = setParty.enter( target.nCharacterID, 1 );
  2254.             if ( res == -1 ) self.say( "알 수 없는 이유로 입장할 수 없습니다. 잠시 후에 다시 시도해 주십시오." );
  2255.             else if ( res == 1 ) self.say( "파티를 맺어야만 도전할 수 있습니다." );
  2256.             else if ( res == 2 ) self.say( "최소 " + minMember + "인 이상의 파티가 퀘스트를 시작할 수 있습니다." );
  2257.             else if ( res == 3 ) self.say( "파티원의 레벨은 최소 " + minLv + " 이상이어야 합니다." );
  2258.             else if ( res == 4 ) self.say( "이미 다른 원정대가 안으로 들어가 퀘스트 클리어에 도전하고 있는 중입니다." );
  2259.             else {
  2260.                 quest = FieldSet( waitFS );
  2261.                 res = quest.startManually;
  2262.                 if ( res == 0 ) {
  2263.                     self.say( "아직 원정대를 조직할 준비가 되지 않았습니다. 잠시 후 다시 시도해 주세요." );
  2264.                     end;
  2265.                 }
  2266.  
  2267.                 quest.resetQuestTime;
  2268.                 quest.setVar( "reset", "" );
  2269.                 self.setStrReg( masterVal, target.sCharacterName );
  2270.                 self.setIntReg( exIDval, target.getExpeditionID );
  2271. //              balog_update_enterCount;
  2272.                
  2273.                 // 발록 전용
  2274.                 target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  2275.                 qr.set( 7222, "0" );
  2276.  
  2277.                 self.announceToExpedition( target.getExpeditionID, "" + target.sCharacterName + "님이 원정대 입장을 선언하셨습니다. 원정대 조직 시간이 종료되기 전에 맵에 입장해 주세요." );
  2278.             }
  2279.         }
  2280.  
  2281.         // 재입장을 시도
  2282.         else if ( v0 == 1 ) {
  2283.             efTime = balog_enterFieldTime( waitFS );
  2284.             if ( efTime > 302 ) {
  2285.                 self.say("재입장 가능 시간(5분)을 초과 하여 재입장 할 수 없습니다.");
  2286.                 end;
  2287.             }
  2288.             if ( self.getIntReg( exIDval ) == target.getExpeditionID ) {
  2289.                 if ( FieldSet( bossFS ).getUserCount >= maxMember ) {
  2290.                     self.say( "입장할 수 있는 최대 인원수가 모드 들어갔어. 더 이상을 들여보내 줄 수가 없어." );
  2291.                     end;
  2292.                 }
  2293.  
  2294.                 // 발록 전용
  2295.                 target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  2296.                 qr.set( 7222, "0" );
  2297.  
  2298. //              balog_update_enterCount;
  2299.                 registerTransferField( enterMap, "" );
  2300.                 end;
  2301.             }
  2302.             else self.say( "현재 입장을 진행 중인 원정대의 일원이 아닙니다." );
  2303.         }
  2304.     }
  2305.     // 원정대원일 때
  2306.     else if ( balog_check_ex == 1 ) {
  2307.         menu = "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해..\r\n(모든 채널 / 45레벨 이상 / 1 ~ 6명)\r\n#b";
  2308.  
  2309.         if ( efTime > 302 ) {
  2310.             self.say( "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해..\r\n(모든 채널 / 45레벨 이상 / 1 ~ 6명)\r\n#b\r\n원정대장을 통해서 진행해 줘." );
  2311.             end;
  2312.         }
  2313.         else if ( efTime <= 302 and self.getIntReg( exIDval ) == target.getExpeditionID ) menu = menu + "\r\n#L1# 입장한다.#l";
  2314.         else {
  2315.             self.say( "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해.\r\n#b\r\n현재 접속한 채널에서는 다른 원정대가 입장을 하고 있어. 다른 채널에서 원정대장을 통해서 진행해 줘." );
  2316.             end;
  2317.         }
  2318.        
  2319.         v0 = self.askMenu( menu );
  2320.  
  2321.         // 입장한다
  2322.         if ( v0 == 1 ) {
  2323.             efTime = balog_enterFieldTime( waitFS );
  2324.             if ( efTime > 302 ) {
  2325.                 self.say("입장 가능 시간(5분)을 초과 하여 더이상 입장 할 수 없어.");
  2326.                 end;
  2327.             }
  2328.             if ( self.getIntReg( exIDval ) == target.getExpeditionID ) {
  2329.                 if ( FieldSet( bossFS ).getUserCount >= maxMember ) {
  2330.                     self.say( "입장할 수 있는 최대 인원수가 모드 들어갔어. 더 이상을 들여보내 줄 수가 없어." );
  2331.                     end;
  2332.                 }
  2333.  
  2334.                 target.message( "발록의 강한 기운으로 내상을 입어 HP가 조금씩 감소합니다.");
  2335.                 qr.set( 7222, "0" );
  2336.  
  2337. //              balog_update_enterCount;
  2338.                 registerTransferField( enterMap, "" );
  2339.                 end;
  2340.             }
  2341.             else self.say( "현재 입장을 진행 중인 원정대의 일원이 아닙니다." );
  2342.         }
  2343.     }
  2344.     // 원정대 소속이 아닐 때
  2345.     else {
  2346.         if ( efTime > 302 ) {
  2347.             self.say( "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해.\r\n#b\r\n원정대에 가입한 후, 원정대장을 통해서 진행해 줘." );
  2348.             target.openUIWithOption( 7, 2 ); // 원정대찾기창 띄워주기
  2349.             end;
  2350.         }
  2351.         else {
  2352.             self.say( "#e<발록 원정대>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해.\r\n#b\r\n현재 입장하고 있는 원정대는 " + self.getStrReg( masterVal ) + "의 원정대야.\r\n원정대에 가입한 후, 원정대장을 통해서 진행해 줘." );
  2353.             target.openUIWithOption( 7, 2 ); // 원정대찾기창 띄워주기
  2354.             end;
  2355.         }
  2356.  
  2357. /*          q0 = self.askMenu( "#e<발록 원정대 : " + modeType + "모드>#n\r\n이 너머에는 발록이 봉인되어 있어. 하지만 최근 발록의 봉인이 불안정해 졌어. 가능한 빨리 발록의 봉인을 강화시켜야해.\r\n#b\r\n원정대에 가입한 후, 원정대장을 통해서 진행해 줘.\r\n\r\n#b#L0# 원정대는 어떻게 결성하지?#l\r\n#L2# 원정대는 어떻게 관리하지?#l\r\n#L1# 원정대를 쉽게 구하는 방법은?#l" );
  2358.            
  2359.             // 원정대 구성 방법
  2360.             if ( q0 == 0 ) {
  2361.                 self.say( "단축키[T]를 사용하여 원정대창을 연다.\r\n" );
  2362.                 self.say( "만들고 싶은 원정대를 선택한다." );
  2363.                 self.say( "UI창 왼쪽 하단에 있는 [만들기] 버튼을 클릭하여 원정대를 결성한다." );
  2364.                 self.say( "만들어진 원정대를 확인할 수 있다." );
  2365.             }
  2366.             // 원정대를 관리하는 방법
  2367.             else if ( g0 == 2 ) {
  2368.                 self.say( "원정대 내 파티 구성하는 방법" );
  2369.                 slef.say( "원정대원 초대하기, 추방하기, 원정대장 위임" );
  2370.             }
  2371.             // 원정대를 구하는 방법
  2372.             else if ( q0 == 1 ) {
  2373.                 self.say( "단축키[O]를 사용하여 원정대 찾기를 한다." );
  2374.             }*/
  2375.     }
  2376. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement