道館腳本陷入無限迴圈裡
本帖最後由 wwee2457 於 2013-2-25 11:32 PM 編輯玩家死掉後 重新進入道館上一場留下來的MVP不會消失 這時候在點道館NPC
就會無限召王出來
以下是我道館的腳本 請神人幫我看哪邊出錯了//--- Script 執行時的特殊設定 , 請各伺服器勿亂做更改 ---
set $@ModB1NameSize,(getarraysize($@ModB1Name)-1);
set $@ModB1ItemSize,(getarraysize($@Mod1FReItemAID)-1);
set $@ModB1AllGSSize,(getarraysize($@GuanShuMod2)-1);
}
//====================================================//
//--- 道館販賣物品的相關設定 , 請各伺服器依情況斟酌 ---
- shop 道館商#0 891,522:8500,12257:13000,683:5000,682:5000,601:60,602:300,610:4000,611:40,1065:100,645:800,656:1500,657:3000,715:600,716:600,717:600,525:1000
//====================================================//
function script Mod_F_Script1 {
mes "[道館傳送員]";
mes "您好,我是道館傳送員。";
mes "請問有需要什麼服務嗎?";
next;
select("我要參加挑戰!");
if ( getcharid(1) == 0 ) {
mes "[道館傳送員]";
mes "對不起,您沒有加入任何隊伍!";
mes "無法參加挑戰賽。";
close;
}
if ( BaseLevel < $@ModJFBaseLv ) {
mes "[道館傳送員]";
mes "對不起,您的等級不足!";
mes "無法參加挑戰賽。";
mes "等級限制:^FF0000"+$@ModJFBaseLv+"^000000 等";
close;
}
for ( set @MnS,1; @MnS <= 5; set @MnS,@MnS+1 ) {
if ( getmapusers( @MnS+"@gvs" ) == 0 ) set $@ModBPID[@MnS],0;
}
for ( set @MnS,1; @MnS <= 5; set @MnS,@MnS+1 ) {
if ( getcharid(1) == $@ModBPID[@MnS] ){
mes "[道館傳送員]";
mes "您是 [^FF0000"+getpartyname(getcharid(1))+"^000000] 的隊員吧!";
mes "參加前須付^FF0000"+$@ModBZenyPS+"^000000的參加費唷!";
next;
if (select("報名參加挑戰!","不小心點到!")==2) {
mes "[道館傳送員]";
mes "那您以後別在那麼不小心哩!";
close;
}
if ( $@ModBStart[@MnS] == 1 ) {
mes "[道館傳送員]";
mes "您的隊友已經開始挑戰了,";
mes "請稍後或加入其他隊伍另外報名參加!";
close;
}
if ( zeny < $@ModBZenyPS ) {
mes "[道館傳送員]";
mes "對不起,您沒有足夠的金錢!";
close;
}
if ( getmapusers(@MnS+"@gvs") >= $@ModBPlayer ) {
mes "[道館傳送員]";
mes "隊伍 [^FF0000"+getpartyname(getcharid(1))+"^000000] 參加的人數已滿,";
mes "請稍後或加入其他隊伍另外報名參加!";
close;
}
set zeny,zeny - $@ModBZenyPS;
warp @MnS+"@gvs",49,47;
end;
}
}
//====================================================//
mes "[道館傳送員]";
mes "您和您的隊伍要報名參加挑戰賽嗎?";
mes "參加前須付^FF0000"+$@ModBZenyHG+"^000000的報名費唷!";
next;
if (select("報名參加挑戰!","不小心點到!")==2) {
mes "[道館傳送員]";
mes "那您以後別在那麼不小心哩!";
close;
}
if ( Zeny < $@ModBZenyHG ) {
mes "[道館傳送員]";
mes "對不起,您沒有足夠的金錢!";
close;
}
for ( set @MnS,1; @MnS <= 5; set @MnS,@MnS+1 ) {
if ( getmapusers( @MnS+"@gvs" ) == 0 ) {
enablenpc "道館員#"+@MnS;
if ( $@ModBPShop == 1 || $@ModBPShop == 2 ) {
enablenpc "道館商#"+@MnS;
} else {
disablenpc "道館商#"+@MnS;
}
killmonsterall @MnS+"@gvs";
set Zeny,Zeny - $@ModBZenyHG;
set $@ModBStart[@MnS],0;
set $@ModBPID[@MnS],getcharid(1);
set $@ModBCID[@MnS],getcharid(0);
set $@GuanShuA[@MnS],1;
announce "請 ["+getpartyname($@ModBPID[@MnS])+"] 隊伍的隊員,找 [道館傳送員] !",15;
warp @MnS+"@gvs",49,47;
end;
}
}
mes "[道館傳送員]";
mes "所有場地都有隊伍在挑戰中,";
mes "請您稍後再試,謝謝!!";
close;
}
//====================================================//
1@gvs,50,50,4 script 道館員#1 758,{ callfunc "ModB_Referee1",1; }
2@gvs,50,50,4 script 道館員#2 758,{ callfunc "ModB_Referee1",2; }
3@gvs,50,50,4 script 道館員#3 758,{ callfunc "ModB_Referee1",3; }
4@gvs,50,50,4 script 道館員#4 758,{ callfunc "ModB_Referee1",4; }
5@gvs,50,50,4 script 道館員#5 758,{ callfunc "ModB_Referee1",5; }
//====================================================//
function script ModB_Referee1 {
if ( getcharid(0) != $@ModBCID[@MnS] ) {
mes "[道館員]";
mes "您不是報名參加挑戰賽的人";
close;
}
mes "[道館員]";
mes "您好,我是道館員。";
mes "請問有需要為您服務嗎?";
next;
switch(select("開始挑戰!","不小心點到!")) {
case 1:
set $@ModBStart[@MnS],1;
set $@ModBQuantity[@MnS],$@GuanShuMod2[$@GuanShuA[@MnS]];
set $@ModBCheckMod[@MnS],$@ModBQuantity[@MnS];
disablenpc "道館員#"+@MnS;
if ( $@ModBPShop == 2 ) {
disablenpc "道館商#"+@MnS;
}
doevent "ModB_Mod1::OnSummon_ModB";
close;
end;
case 2:
mes "[道館員]";
mes "那您以後別在那麼不小心哩!";
close;
}
}
//====================================================//
- script ModB_Mod1 -1,{
OnSummon_ModB:
set $@ModBMod[@MnS],rand(1,$@ModB1NameSize);
set $@ModBQuantity[@MnS],$@ModBQuantity[@MnS]-1;
monster @MnS+"@gvs",50,50,"--ja--",$@ModB1Name[$@ModBMod[@MnS]],1,"ModB_Mod1::OnKill_ModB";
announce "道館員 : 魔物 ["+getmonsterinfo($@ModB1Name[$@ModBMod[@MnS]],MOB_NAME)+"] 已放出,挑戰開始!",1;
if ( $@ModBQuantity[@MnS] != 0 ) {
goto OnSummon_ModB;
}
if ( $@GuanShuA[@MnS] == $@ModB1AllGSSize ) {
announce "道館員 : 最後一關挑戰開始,請繼續努力!",1;
}
end;
OnKill_ModB:
set $@ModBCheckMod[@MnS],$@ModBCheckMod[@MnS]-1;
if ( $@ModBCheckMod[@MnS] != 0 ) {
end;
}
announce"道館員 : 恭喜第 ["+$@GuanShuA[@MnS]+"] 關挑戰成功!",17;
if ( $@GuanShuA[@MnS] == $@ModB1AllGSSize ) {
announce "道館員 : 恭喜隊伍 ["+getpartyname($@ModBPID[@MnS])+"] ,挑戰道館成功!!",15;
areawarp @MnS+"@gvs",0,0,300,300,"1@rev",34,120;
end;
}
set @CheckRestsA,1;
CheckRestsA:
if ( getarraysize($@GuanShuCRests) > @CheckRestsA ){
if ( $@GuanShuA[@MnS] == $@GuanShuCRests[@CheckRestsA] ) {
set $@GuanShuA[@MnS],$@GuanShuA[@MnS] +1;
announce "道館員 : 休息時間,請準備好在開始挑戰!",17;
enablenpc "道館員#"+@MnS;
if ( $@ModBPShop == 2 ) {
announce "道館員 : 地圖 12 點鐘方向設有 [道具商人] 唷!",17;
enablenpc "道館商#"+@MnS;
}
end;
}
set @CheckRestsA,@CheckRestsA+1;
goto CheckRestsA;
}
set $@GuanShuA[@MnS],$@GuanShuA[@MnS] +1;
set $@ModBQuantity[@MnS],$@GuanShuMod2[$@GuanShuA[@MnS]];
set $@ModBCheckMod[@MnS],$@ModBQuantity[@MnS];
addtimer 5000,"ModB_Mod1::OnSummon_ModB";
end;
} http://okayro.com/forum.php?mod=redirect&goto=findpost&ptid=122848&pid=1331943&fromuid=192389
頁:
[1]