UID304000
帖子
精華
主題
積分1107
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限10
註冊時間2011-3-25
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 擦汗 2021-1-6 02:09 AM |
---|
簽到天數: 261 天 連續簽到: 1 天 [LV.8]以壇為家I
|
線上打怪驗證:- //----------------------------------------------------------------------------------------------------
- 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,40;
- //----- 線上驗證可錯誤次數 (預設 3 次) -----
- set $@KickOnlineWrong,3;
- //----- 線上驗證的驗證碼長度 (預設 6 碼) -----
- set $@OnlineNumber,6;
- //====================================================//
- //----- 反外掛程式的驗證碼主函式 -----
- 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","9"
- ,"1","2","3","4","5","6","7","8","9"
- ,"1","2"; }
- //====================================================//
- - script OnNPCKillEvent -1,{
- OnNPCKillEvent:
- if ( $@OnlineBotTest != 1 ) { end; }
- set KillMod,KillMod+1;
- //線上驗證部份
- if ( KillMod >= 1 ) {
- if ( KillMod >= 400 ) {
- if ( getgmlevel() >= $@GameManagement ) {
- mes "[反外掛程式]";
- mes "GM大大不需驗證偵測!!";
- mes "請您按下 Enter 鍵,繼續遊戲吧。";
- set KillMod,0;
- close; }
- set @CheckCRF,callfunc("CheckCRF_Event");
- atcommand strcharinfo(0)+":@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(61)]; }
- mes "[反外掛程式]";
- mes "您好!為了降低外掛對伺服器的侵擾,";
- mes "我們需要驗證才能讓您繼續遊戲,";
- mes "請您正確輸入下面的驗證碼。";
- mes "??????????";
- mes "?驗證碼:?^FF0000"+@OnlineBot1$+"^000000?";
- mes "??????????";
- next;
- input @OnlineBot2$;
- if(@OnlineBot2$==@OnlineBot1$) goto ite;
- if(@OnlineBot2$!=@OnlineBot1$) {
- //驗證輸入錯誤
- if(@OnlineWrong == $@KickOnlineWrong) {
- callfunc "SetCRF_Event";
- atcommand strcharinfo(0)+":@kick "+strcharinfo(0);
- close; }
- //驗證輸入剩餘次數
- mes "[反外掛程式]";
- mes "重新輸入次數:^FF0000剩餘 "+($@KickOnlineWrong-@OnlineWrong)+" 次^000000";
- next;
- goto Online_Bot_Test; }
- ite:
- callfunc "SetCRF_Event";
- mes "[反外掛程式]";
- mes "您已偵測完畢,並非外掛程式!!";
- mes "請您按下 Enter 鍵,繼續遊戲謝謝。";
- set @CheckCRF,0;
- set KillMod,0;
- set @OnlineWrong,0;
- close; } }
- if ( KillMod == 1 ) dispbottom "您再繼續屠殺 400隻怪物系統將會對您進行線上驗證。假設你若突中登出..紀錄不會因此消除!";
- 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 strcharinfo(0)+":@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; }
- //====================================================//
複製代碼 登入時的點陣線驗證:- /*
- 作者:鐵板
- */
- - script 檢查 -1,{
- OnInit:
- set $ylen,11;//垂直位移最大量 至少7
- set $xlen,5;//數字水平間格最大量
- set $totaltime,60;// 除4 =15秒
- setarray $stt$," ","●";//數字底 - 需全型
- setarray $st$,"■"," ";//空白底 - 需全型
- end;
- OnPCLoginEvent:
- if(getgmlevel())
- end;
- function logincheck ;
- pcblockmove getcharid(3),1;
- logincheck(getcharid(3));//無限次驗證->輸入正確
- logincheck(getcharid(3),3);//驗證5次->5次滿,踢除
- pcblockmove getcharid(3),0;
- end;
- OnWhisperGlobal:
- if(atoi(@whispervar0$)==getd("@an"+getcharid(3))||getd("@logincheck"+getcharid(3)))
- setd "@logincheck"+getcharid(3),1;
- else
- dispbottom "驗證碼錯誤";
- end;
- function logincheck {
- setd "@logincheck"+getarg(0),0;
- set @type,rand(getarraysize($stt$));
- function turn {
- setarray.@li0[1],0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0;
- setarray.@li1[1],0,1,0,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0;
- setarray.@li2[1],0,1,0,1,0,0,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,1,1,1,0;
- setarray.@li3[1],0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0;
- setarray.@li4[1],0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,0;
- while(set(.@i,.@i+1)<6)
- set .@re$,.@re$+(getd(getarg(0)+"["+(.@i+getarg(1)*5)+"]")?$stt$[@type]:$st$[@type]);
- return .@re$;
- }
- function cud {
- return getarg(0)+getarg(1)-($ylen-5);
- }
- function crl {
- while(set(.@i,.@i+1)-1<getarg(0))
- set .@str$,.@str$+$st$[getarg(1)];
- return .@str$;
- }
- getmapxy(.@map$,.@x,.@y,0,strcharinfo(0));
- while(set(.@a,.@a+1)<6){
- setd ".@an"+.@a,rand(10);
- setd ".@ud"+.@a,rand($ylen-6);
- setd ".@rl"+.@a,(.@a==5)?6-.@to:rand($xlen-1);
- set .@to,.@to+getd(".@rl"+.@a);
- set .@an$,.@an$+getd(".@an"+.@a);
- }
- while(set(.@p,.@p+1)+set(.@s,0)+atoi(set(.@li$,""))<$ylen+1){
- while(set(.@s,.@s+1)<6)
- set .@li$,.@li$+turn(".@li"+cud(.@p,getd(".@ud"+.@s)),getd(".@an"+.@s))+crl(getd(".@rl"+.@s),@type);
- dispbottom ""+.@li$;
- }
- setd "@an"+getarg(0),.@an$;
- announce "請在密頻輸入[npc:檢查]再輸入驗證碼 ",bc_self,0x00FFFF;
- while($totaltime-set(.@ti,.@ti+2)&&sleep2(500)){
- itemskill "WZ_EARTHSPIKE",$totaltime-.@ti;
- if(getd("@logincheck"+getarg(0))) return;
- else if(getarg(1,0) && getarg(1,0)-getarg(2,1)==0 &&$totaltime-.@ti==2) atcommand "@kick "+strcharinfo(0);
- }
- warp .@map$,.@x,.@y;
- announce "驗證逾時,更換驗證碼"+(getarg(1,0)?" 剩於驗證次數 : "+(getarg(1,0)-getarg(2,1)):""),bc_self,0xFF6600;
- logincheck(getarg(0),getarg(1,0),getarg(2,1)+1);
- }
- }
複製代碼 有辦法 將 打怪驗證的驗證方式 改成 點陣線驗證嗎@@?
又或著 直接將 登入的點陣線驗證 添加 打x隻 mob 後 需要點陣線的驗證
不知道有沒有辦法辦到!
|
|