Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*================================================
- - Design Project : Infinity Dojo.
- - Design Date : 2015-11-21
- - Modified Date : 2018-03-10
- - Version : 1.1
- - Contact Method : RC : rariwork & Line : @fij3590v
- - Script Classification : Instance Class.
- - Support : rAthena
- - Update Content :
- - Ver 1.0 Infrastructure Complete. 1121
- - Ver 1.1 Optimize the overall structure. 0727
- ==================================================
- >>>各位大哥大姐請勿轉載,萬分感激。<<<
- ===================================================*/
- prontera,131,112,3 script 無限道館報名 10191,{
- mes "[ 副本報名人員 ]";
- mes "^0000FF登記中,請稍後!^000000";
- close2;
- getpartymember(getcharid(1));
- if(!getcharid(1) ){
- mes "[ 副本報名人員 ]";
- mes "^ff0000登記失敗,請加入一個隊伍再來登記吧。^000000";
- close;
- }
- if (getcharid(0) != getpartyleader(getcharid(1),2)) {
- mes "[ 副本報名人員 ]";
- mes "^FF0000登記失敗,只有隊長才可以登記。^000000";
- close;
- }
- callfunc "PartyIPCheck";
- setd "$@leader"+getcharid(1),getcharid(3);
- getpartymember(getcharid(1));
- getpartymember(getcharid(1),2);
- set @partyst,0;
- set @partymembercount,$@partymembercount;
- copyarray .@partymemberaid[0],$@partymemberaid[0],@partymembercount;
- copyarray .@partymembername$[0],$@partymembername$[0],@partymembercount;
- for(set .@i,0;.@i<@partymembercount;set .@i,.@i+1) {
- if(!getmapxy(.@map$,.@x,.@y,0,.@partymembername$[.@i])) {
- attachrid .@partymemberaid[.@i];
- if( BaseLevel < 99 ) {
- mes "[ 副本報名人員 ]";
- mes "^FF0000登記失敗,隊伍內有玩家等級未達規定!^000000";
- close;
- }
- if(gettimetick(2)-Infinite<1800){
- mes "[ 副本報名人員 ]";
- mes "^FF0000登記失敗,隊伍內有玩家冷卻時間未殆盡。^000000";
- close;
- }
- {
- attachrid getd("$@leader"+getcharid(1));
- set @partyst,1;
- }
- attachrid getd("$@leader"+getcharid(1));
- }
- }
- mes "[ 副本報名人員 ]";
- mes "^FF0000登記成功,您已符合副本需求!^000000";
- next;
- if ( select("^0000FF開始挑戰^000000")==1) {
- instance_create("無限道館");
- instance_enter("無限道館");
- setd "$@leader"+getcharid(1),getcharid(3);
- getpartymember(getcharid(1));
- getpartymember(getcharid(1),2);
- set @partyst,0;
- set @partymembercount,$@partymembercount;
- copyarray .@partymemberaid[0],$@partymemberaid[0],@partymembercount;
- copyarray .@partymembername$[0],$@partymembername$[0],@partymembercount;
- for(set .@i,0;.@i<@partymembercount;set .@i,.@i+1) {
- if(!getmapxy(.@map$,.@x,.@y,0,.@partymembername$[.@i])) {
- attachrid .@partymemberaid[.@i];
- set Infinite,gettimetick(2);
- warp instance_mapname("4@guild"),49,45;
- {
- attachrid getd("$@leader"+getcharid(1));
- set @partyst,1;
- }
- attachrid getd("$@leader"+getcharid(1));
- }
- }
- }
- end;
- }
- 4@guild,49,49,4 script 道館人員#4 4_M_BARMUND,{
- setarray 'Mvp[1],
- 1147,1087,1086,1115,1038,1159,
- 1389,1046,1059,1150,1039,1157,
- 1112,1251,1373,1272,1630,1885,
- 1518,1252,1492,1623,1418,1312,
- 1583,1708; // MVPID
- set 'MvpNum,26; // MVP總數
- if('GameOpen==1){
- mes "[道館人員]";
- mes "^FF0000挑戰已經開始了。^000000";
- close;
- }
- if ( getcharid(0) != getpartyleader(getcharid(1),2) ) {
- mes "[道館人員]";
- mes "^FF0000請隊長跟我說話。^000000";
- close;
- }
- mes "[道館人員]";
- mes "^00A5B4無限關卡!^000000";
- mes "準備好要挑戰了嗎?";
- next;
- if ( select("稍後挑戰:^FF0000開始挑戰^000000")==1) { close; }
- close2;
- set 'GameOpen,1;
- set $vote1$,"離開副本";
- instance_announce 0,"道館人員 : 在聊天頻道輸入【離開副本】.即可結束副本.",bc_map,0xFFE100;
- sleep2 2000;
- instance_announce 0,"道館人員 : 必須在我的視線範圍附近喊出【離開副本】才會觸發離開!。",bc_map,0xFFE100;
- sleep2 2000;
- instance_announce 0,"道館人員 : 所有人都可以輸入,請玩家注意言詞使用,5 秒後挑戰即將開始。",bc_map,0xFFE100;
- sleep2 5000;
- doevent instance_npcname("道館系統")+"::Onbosskill";
- defpattern 1, "([^:]+):\\s"+$vote1$+".*", "Ondoing";
- activatepset 1;
- 'partymembercount = $@partymembercount;
- hideonnpc instance_npcname(strnpcinfo(0));
- end;
- Ondoing:
- instance_announce 0,"[系統] - 結束副本 , 2 秒後自動傳送出去副本.",bc_map,0xFFE100;
- sleep2 2000;
- instance_warpall "prontera",200,129;
- instance_destroy(instance_id());
- end;
- }
- 4@guild,0,0,0 script 道館系統 HIDDEN_NPC,{
- Onbosskill:
- set .@mobcount,mobcount(strnpcinfo(4),instance_npcname(strnpcinfo(0))+"::Onbosskill");
- if(.@mobcount > 0) {
- announce "道館裁判 : 還剩下 [ "+.@mobcount+" ] 隻怪物",17;
- end;
- } else {
- if ( 'round == 10 && 'givechoose != 10 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,10;
- }
- if ( 'round == 20 && 'givechoose != 20 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,20;
- }
- if ( 'round == 30 && 'givechoose != 30 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,30;
- }
- if ( 'round == 40 && 'givechoose != 40 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,40;
- }
- if ( 'round == 50 && 'givechoose != 50 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,50;
- }
- if ( 'round == 60 && 'givechoose != 60 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,60;
- }
- if ( 'round == 70 && 'givechoose != 70 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,70;
- }
- if ( 'round == 80 && 'givechoose != 80 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,80;
- }
- if ( 'round == 90 && 'givechoose != 90 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,90;
- }
- if ( 'round == 100 && 'givechoose != 100 ){
- addrid(5,0,strnpcinfo(4));
- mapannounce instance_mapname("4@guild"),"10 秒後領獎階段.",bc_map,"0x00FFFF";
- sleep2 5000;
- atcommand "@option 0 0 "+((checkoption(8)*8)|(checkoption(16)*16)|(checkoption(32)*32)|(checkoption(128)*128)|(checkoption(256)*256)|(checkoption(512)*512)|(checkoption(1024)*1024));
- sleep2 5000;
- 'player = getmapusers(instance_mapname("4@guild"));
- callsub Ongiveitem,100;
- }
- if ( 'round > 30 && 'round < 61 ){
- setarray 'Mvp[1],2068,2156,1708,1785,2022,2202,1734,1685,1719,1871,1768,2087,1751,1874,1917; // MVPID
- set 'MvpNum,15; // MVP總數
- }
- if ( 'round > 60 && 'round < 81 ){
- setarray 'Mvp[1],1646,1647,1648,1649,1650,1651,1956,1874,1916,1832; // MVPID
- set 'MvpNum,10; // MVP總數
- }
- if ( 'round > 80 ){
- setarray 'Mvp[1],2235,2236,2237,2238,2239,2240,2241,1874,1916; // MVPID
- set 'MvpNum,9; // MVP總數
- }
- set 'round,'round+1;
- if ( 'round == 10 || 'round == 20 || 'round == 30 || 'round == 40 || 'round == 50 || 'round == 60 || 'round == 70 || 'round == 80 || 'round == 90 || 'round == 100 ){
- set 'instancemap$,instance_mapname("4@guild");
- mapannounce instance_mapname("4@guild"),"接下來將要挑戰第 "+'round+" 關 , 加油!.",bc_map,"0x00FFFF";
- sleep2 2000;
- // 第一隻
- set 'ModF,rand(1,'MvpNum);
- set 'hp['ModF], getmonsterinfo('Mvp['ModF],MOB_MAXHP);
- set 'ATK1['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK1);
- set 'ATK2['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK2);
- monster(instance_mapname("4@guild"),49,49,"--ja--",'Mvp['ModF],1,instance_npcname("道館系統")+"::Onbosskill");
- 'skillunit = $@mobid[0];
- if ( 'round >= 10 ){
- setunitdata 'skillunit,UMOB_MAXHP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_HP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMIN,'ATK1['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMAX,'ATK2['ModF]*('round/10);
- }
- // 第二隻
- set 'ModF,rand(1,'MvpNum);
- set 'hp['ModF], getmonsterinfo('Mvp['ModF],MOB_MAXHP);
- set 'ATK1['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK1);
- set 'ATK2['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK2);
- monster(instance_mapname("4@guild"),49,49,"--ja--",'Mvp['ModF],1,instance_npcname("道館系統")+"::Onbosskill");
- 'skillunit = $@mobid[0];
- if ( 'round >= 10 ){
- setunitdata 'skillunit,UMOB_MAXHP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_HP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMIN,'ATK1['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMAX,'ATK2['ModF]*('round/10);
- }
- end;
- }
- set 'instancemap$,instance_mapname("4@guild");
- mapannounce instance_mapname("4@guild"),"接下來將要挑戰第 "+'round+" 關 , 加油!.",bc_map,"0x00FFFF";
- sleep2 2000;
- set 'ModF,rand(1,'MvpNum);
- set 'hp['ModF], getmonsterinfo('Mvp['ModF],MOB_MAXHP);
- set 'ATK1['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK1);
- set 'ATK2['ModF],getmonsterinfo('Mvp['ModF],MOB_ATK2);
- monster(instance_mapname("4@guild"),49,49,"--ja--",'Mvp['ModF],1,instance_npcname("道館系統")+"::Onbosskill");
- 'skillunit = $@mobid[0];
- if ( 'round >= 10 )
- setunitdata 'skillunit,UMOB_MAXHP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_HP,'hp['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMIN,'ATK1['ModF]*('round/10);
- setunitdata 'skillunit,UMOB_ATKMAX,'ATK2['ModF]*('round/10);
- }
- end;
- Ongiveitem:
- .@level = getarg(0);
- switch(.@level){
- case 10:
- setarray .@item[1],40001,40011,40021,40031,40041,40051;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 10;
- break;
- case 20:
- setarray .@item[1],40002,40012,40022,40032,40042,40052;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 20;
- break;
- case 30:
- setarray .@item[1],40003,40013,40023,40033,40043,40053;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 30;
- break;
- case 40:
- setarray .@item[1],40004,40014,40024,40034,40044,40054;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 40;
- break;
- case 50:
- setarray .@item[1],40005,40015,40025,40035,40045,40055;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 50;
- break;
- case 60:
- setarray .@item[1],40006,40016,40026,40036,40046,40056;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 60;
- break;
- case 70:
- setarray .@item[1],40007,40017,40027,40037,40047,40057;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 70;
- break;
- case 80:
- setarray .@item[1],40008,40018,40028,40038,40048,40058;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 80;
- break;
- case 90:
- setarray .@item[1],40009,40019,40029,40039,40049,40059;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 90;
- break;
- case 100:
- setarray .@item[1],40010,40020,40030,40040,40050,40060;
- setarray .@num[1],1,1,1,1,1,1;
- 'givechoose = 100;
- break;
- }
- switch(select("[ 領取 ] - "+getitemname(.@item[1])+" x "+.@num[1]+":[ 領取 ] - "+getitemname(.@item[2])+" x "+.@num[2]+":[ 領取 ] - "+getitemname(.@item[3])+" x "+.@num[3]+":[ 領取 ] - "+getitemname(.@item[4])+" x "+.@num[4]+":[ 領取 ] - "+getitemname(.@item[5])+" x "+.@num[5]+":[ 領取 ] - "+getitemname(.@item[6])+" x "+.@num[6]+"")){
- case 1:
- .@give = 1;
- break;
- case 2:
- .@give = 2;
- break;
- case 3:
- .@give = 3;
- break;
- case 4:
- .@give = 4;
- break;
- case 5:
- .@give = 5;
- break;
- case 6:
- .@give = 6;
- break;
- }
- getitem .@item[.@give],.@num[.@give];
- 'giv += 1;
- if ( 'player == 'giv ){
- addtimer 20000,instance_npcname(strnpcinfo(0))+"::Onbosskill";
- mapannounce instance_mapname("4@guild"),"休息 20 秒後後開始",bc_map,"0x00FFFF";
- 'giv = 0;
- }
- end;
- }
- 4@guild mapflag restricted 8
- 4@guild mapflag noloot
- 4@guild mapflag nomemo
- 4@guild mapflag noteleport
- 4@guild mapflag noexp
- 4@guild mapflag partylock
- 4@guild mapflag monster_noteleport
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement