UID11682
帖子
精華
主題
積分147
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限5
註冊時間2007-9-3
在線時間 小時
最後登錄1970-1-1
該用戶從未簽到
|
樓主 |
發表於 2009-1-27 13:00:56
|
顯示全部樓層
回覆 6樓的 魂哥 的帖子
e_tower,71,117,5 script 無限之塔看守人 421,{
if( !getcharid(1) )
{
mes "[無限之塔看守人]";
mes "對不起,您沒有隊伍。";
close;
}
if( getgmlevel()>90 )
{
mes "[無限之塔看守人]";
mes "尊貴的來賓";
mes "你想做什麼?";
next;
switch( select( "重新開始","挑戰","我還沒準備好" ) )
{
case 1:
mes "[無限之塔看守人]";
mes "好的,沒問題.";
close2;
goto OnTimer14410000;
case 2:
mes "[無限之塔看守人]";
mes "了不起,讓我們開始吧!";
close2;
for( set .@i,1; .@i<7; set .@i,.@i+1)
killmonsterall .@i+"@tower";
set .team,getcharid(1);
set .intest,1;
donpcevent "naght::OnRoom1";
warpparty "1@tower",50,355,.team;
initnpctimer;
announce "GM正在測試無限之塔.",bc_all;
close;
case 3:
close;
}
}
if(.intest)
{
mes "[無限之塔看守人]";
mes "GM現在正在測試無限之塔.";
close;
}
if(!.team)
{
if( getcharid(0) != getpartyleader(getcharid(1),2) )
{
mes "[無限之塔看守人]";
mes "對不起,只有隊長才可以登記。";
close;
}
else if( gettimetick(2) - ET_Tower > 43200 )
{
mes "[無限之塔看守人]";
mes "歡迎 "+strcharinfo(0)+".";
mes "你想登記進入無限之塔嗎?";
mes "挑戰需要支付200W";
next;
switch( select( "是的","不要" ) )
{
case 1:
getpartymember(getcharid(1));
if( $@partymembercount < 2 || zeny < 2000000 )
{
mes "[無限之塔看守人]";
mes "對不起,你的隊伍成員必須在二人以上或者金錢不夠.";
close;
}
mes "[無限之塔看守人]";
mes "你只有4個小時的時間.";
mes "4小時後,你和你的全體隊員只有等待12小時後才能重新登記進入無限之塔。";
next;
mes "[無限之塔看守人]";
mes "你確定要登記嗎?";
next;
switch( select( "是的","不要" ) )
{
case 1:
mes "[無限之塔看守人]";
mes "你的隊伍已經成功登記了.";
set zeny,zeny-2000000;
close2;
set .ET_Slot,0;
set .ET_Players$[.ET_Slot],strcharinfo(0);
set .ET_Slot,.ET_Slot+1;
set .team, getcharid(1);
set ET_Tower, gettimetick(2);
set .ET_Tower,1;
getpartymember(getcharid(1));
set .partymembers,$@partymembercount;
announce "無限之塔已經被打開.",bc_all;
mapannounce "e_tower","請"+getpartyname(.team)+"的隊伍成員(不包括隊長),確認登記.",bc_map;
end;
case 2:
close;
}
case 2:
close;
}
}
else
{
mes "[無限之塔看守人]";
mes "對不起,12小時內不能重複挑戰.";
close;
}
}
else
{
for(set .@i,0; .@i<getarraysize(.ET_Players$); set .@i,.@i+1)
{//in case he signed up
if( .ET_Players$[.@i] == strcharinfo(0) )
{
mes "[無限之塔看守人]";
mes "對不起, 你已經登記過了.";
close;
}
}
if(getcharid(1)!=.team)
{
mes "[無限之塔看守人]";
mes "對不起, 隊員 "+getpartyname(.team)+" 已經登記過了.";
mes "請稍後再來.";
close;
}
else if( .ET_Tower < .partymembers)
{
if(gettimetick(2)-ET_Tower>43200)
{
mes "[無限之塔看守人]";
mes "確認你的登記.";
next;
switch( select( "是","否" ) )
{
case 1:
mes "[無限之塔看守人]";
mes "已經登記成功.";
close2;
set .ET_Players$[.ET_Slot],strcharinfo(0);
set .ET_Slot,.ET_Slot+1;
set ET_Tower,gettimetick(2);
set .ET_Tower, .ET_Tower+1;
mapannounce "e_tower","須登記人數:"+.partymembers+" 已登記人數:"+.ET_Tower,bc_map;
if(.ET_Tower==.partymembers)
{
mapannounce "e_tower","所有隊員都登記成功,冒險即將開始.",bc_map;
donpcevent "naght::OnRoom1";
warpparty "1@tower",50,355,.team;
initnpctimer;
end;
}
end;
case 2:
close;
}
}
else
{
mes "[無限之塔看守人]";
mes "對不起,你已經登記過了或者上次參加的時間離現在不到12小時.";
close;
}
}
else if( getcharid(0) != getpartyleader(getcharid(1),2) )
{
for(set .@i,0; .@i <= 12; set .@i,.@i + 1 )
{
if(.ET_Players$[.@i] == strcharinfo(0))
{
mes "[無限之塔看守人]";
mes "我將打開一個入口,它會把你傳送到第一層.";
close2;
warp "1@tower",50,355;
end;
}
}
mes "[無限之塔看守人]";
mes "在登記正在處理的過程中,你不能進行登記,所以我不能允許你進入無限之塔。";
close;
}
else
{
mes "[無限之塔看守人]";
mes "你想離開還是回到你的隊友身邊?";
next;
switch( select( "離開.","返回." ) )
{
case 1:
mes "[無限之塔看守人]";
mes "那就這樣吧.";
close2;
set .team,0;
set .ET_Tower,0;
setnpctimer 14404500;
startnpctimer;
end;
case 2:
for(set .@i,0; .@i <= 12; set .@i,.@i + 1 )
{
if(.ET_Players$[.@i] == strcharinfo(0))
{
mes "[無限之塔看守人]";
mes "我將打開一個入口,它會把你傳送到第一層.";
close2;
warp "1@tower",50,355;
end;
}
}
mes "[無限之塔看守人]";
mes "在登記正在處理的過程中,你不能進行登記,所以我不能允許你進入無限之塔。";
close;
}
}
}
OnTimer3600000:
for( set .@i,1; .@i<7; set .@i,.@i+1)
mapannounce .@i+"@tower","還剩3個小時.",bc_map;
end;
OnTimer7200000:
for( set .@i,1; .@i<7; set .@i,.@i+1)
mapannounce .@i+"@tower","還剩2個小時.",bc_map;
end;
OnTimer10800000:
for( set .@i,1; .@i<7; set .@i,.@i+1)
mapannounce .@i+"@tower","還剩1個小時.",bc_map;
end;
OnTimer14400000:
for( set .@i,1; .@i<7; set .@i,.@i+1)
mapannounce .@i+"@tower","時間到,你們將被傳送到普隆德拉首都.",bc_map;
end;
OnTimer14405000:
warpparty "hugel",102,162,getvariableofnpc(.team,"無限之塔看守人");
end;
OnTimer14410000:
announce "無限之塔重新開放了",bc_all;
set .team,0;
set .ET_Tower,0;
set .intest,0;
set $@et_award,0;
for( set .@i,1; .@i<7; set .@i,.@i+1)
killmonsterall .@i+"@tower";
for(set .@i,2; .@i<102; set .@i,.@i+1)
disablenpc "ET_Warp_"+.@i;
disablenpc "納戶特基格";
disablenpc "warptonaght1";
disablenpc "warptonaght2";
disablenpc "ET_Exit";
end;
OnInit:
disablenpc "納戶特基格";
disablenpc "warptonaght1";
disablenpc "warptonaght2";
disablenpc "ET_Exit";
for(set .@i,2; .@i<102; set .@i,.@i+1)
disablenpc "ET_Warp_"+.@i;
end;
OnPCLoadMapEvent:
getmapxy(.@m$,.@x,.@y,0);
if( (.@m$ == "1@tower" || .@m$ == "2@tower" || .@m$ == "3@tower" || .@m$ == "4@tower" || .@m$ == "5@tower") )
{
if(!getvariableofnpc(.team,"無限之塔看守人"))
warp "SavePoint",0,0;
if(!@eting)
set @eting,1;
if( getcharid(0)==getpartyleader(getvariableofnpc(.team,"無限之塔看守人"),2) )
{
if( .@m$ == "2@tower" && !($@et_award&1) )
{
getitem 7726,1;
set $@et_award,$@et_award|1;
}
else if( .@m$ == "3@tower" && !($@et_award&2) )
{
getitem 7726,1;
set $@et_award,$@et_award|2;
}
else if( .@m$ == "4@tower" && !($@et_award&4) )
{
getitem 7726,1;
set $@et_award,$@et_award|4;
}
}
}
end;
OnPCLogoutEvent:
if(@eting)
if((getmapusers("1@tower")+getmapusers("2@tower")+getmapusers("3@tower")+getmapusers("4@tower")+getmapusers("5@tower")+getmapusers("6@tower"))==1)
donpcevent "無限之塔看守人::OnTimer14410000";
end;
} |
|