geffen.gat,156,80,1 script Login_Looks_OnInit#555 -1,{ OnInit: //----- 是否開啟線上驗證 (預設 開啟) ----- set $@OnlineBotTest,1; //----- 是否開啟系統提示 (預設 開啟) On/Off ----- set $@NpcShowOnOff,1; //====================================================// //--- Script 執行時的相關設定 , 請各伺服器依情況斟酌 --- //----- 不需驗證的最小GM權限 (預設 40 等) ----- set $@GameManagement,100; //----- 線上驗證可錯誤次數 (預設 3 次) ----- set $@KickOnlineWrong,2; //----- 線上驗證的驗證碼長度 (預設 6 碼) ----- set $@OnlineNumber,6; //----- 線上驗證的限制時間 (請用 5的倍數) ----- set $@Totaltime,10; //====================================================// //----- 反外掛程式的驗證碼主函式 ----- // setarray $@BotName$[1],"1","1","2","3","4","5","6","7","8","9" // ,"1","2","3","4","5","6","7","8","9" // ,"A","B","C","D","E","F","G","H","I" // ,"J","K","L","M","N","O","P","Q","R" // ,"S","T","U","V","W","X","Y","Z" // ,"a","b","c","d","e","f","g","h","i" // ,"j","k","l","m","n","o","p","q","r" // ,"s","t","u","v","w","x","y","z"; setarray $@BotName$[1],"1","1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8" ,"1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8","9" ,"1","2","3","4","5","6","7","8"; } //====================================================// - script OnNPCKillEvent -1,{ OnNPCKillEvent: if ( $@OnlineBotTest != 1 ) end; set KillMod,KillMod+1; //線上驗證部份 if ( KillMod >= 1 ) { if ( KillMod >= 100 ) { if ( getgmlevel() >= $@GameManagement ) { mes "[反外掛程式]"; mes "GM大大不需驗證偵測!!"; mes "請您按下 Enter 鍵,繼續遊戲吧。"; set KillMod,0; close; } set @CheckCRF,callfunc("CheckCRF_Event"); atcommand "@option 02 00 64 "; Online_Bot_Test: set @OnlineWrong,@OnlineWrong+1; set @OnlineBot1$,""; for ( set @i,0; @i < $@OnlineNumber; set @i,@i + 1 ) { set @OnlineBot1$,@OnlineBot1$+$@BotName$[rand(70)]; } mes "[反外掛程式]"; mes "您好!為了降低外掛對伺服器的侵擾,"; mes "我們需要驗證才能讓您繼續遊戲,"; mes "請您正確輸入下面的驗證碼。"; mes "╔════╦═══╗"; mes "║驗證碼:║^FF0000"+@OnlineBot1$+"^000000║"; mes "╚════╩═══╝"; initnpctimer "OnTimerDelay",getcharid(3); announce "║ 反外掛程式 ║ : 請輸入對話框內的驗證碼,您有"+$@Totaltime+"秒的輸入時間.",bc_self,0xB41E3C; set @check,1; set @time,0; next; input @OnlineBot2$; if(@OnlineBot2$==@OnlineBot1$) goto ite; if(@OnlineBot2$!=@OnlineBot1$) { //驗證輸入錯誤 if(@OnlineWrong == $@KickOnlineWrong) { callfunc "SetCRF_Event"; atcommand "@kick "+strcharinfo(0); close; } //驗證輸入剩餘次數 mes "[反外掛程式]"; mes "重新輸入次數:^FF0000剩餘 "+($@KickOnlineWrong-@OnlineWrong)+" 次^000000"; next; set @time,-1; goto Online_Bot_Test; } ite: callfunc "SetCRF_Event"; mes "[反外掛程式]"; mes "您已偵測完畢,並非外掛程式!!"; mes "請您按下 Enter 鍵,繼續遊戲謝謝。"; set @CheckCRF,0; set KillMod,0; set @OnlineWrong,0; set @time,-1; set @check,0; close; } } if ( KillMod == 1 ) dispbottom "您再繼續屠殺 5 隻怪物系統將會對您進行線上驗證。"; end; } //====================================================// - script OnTimerDelay -1,{ OnTimer5000: set @time,@time+5; set @total,$@Totaltime - @time; if( @time == $@Totaltime ) { announce "║ 反外掛程式 ║ : 驗證失敗,剔除下限.",bc_self,0x6666FF; callfunc "SetCRF_Event"; atcommand "@kick "+strcharinfo(0); end; } if( @check == 1 ) { announce "║ 反外掛程式 ║ : 您剩餘"+@total+"秒可輸入對話框內的數字.",bc_self,0x3399FF; } if( @time > 0 ) { initnpctimer "OnTimerDelay",getcharid(3); } else { set @time,0; } end; } //====================================================// function script CheckCRF_Event { set @CheckCRF,0; if ( checkfalcon() || checkcart() || checkriding() ) set @CheckCRF,1; if ( checkoption(0x80) ) set @CheckCRF,2; if ( checkoption(0x100) ) set @CheckCRF,3; if ( checkoption(0x200) ) set @CheckCRF,4; if ( checkoption(0x400) ) set @CheckCRF,5; return @CheckCRF; } //====================================================// function script SetCRF_Event { atcommand "@option 00 00 00 "; if ( @CheckCRF == 1 ) { if ( getskilllv(39) >=1 ) setcart; if ( getskilllv(63) >= 1 ) setriding; if ( getskilllv(127) >= 1 ) setfalcon; } if ( @CheckCRF == 2 ) setcart 2; if ( @CheckCRF == 3 ) setcart 3; if ( @CheckCRF == 4 ) setcart 4; if ( @CheckCRF == 5 ) setcart 5; return; } //====================================================//