OK論壇

 找回密碼
 註冊
查看: 3347|回復: 5

[修改] 防雙開道管 可用於 你不希望有人雙開進入的某個地圖 限定SQL...

[複製鏈接]
  • TA的每日心情
    郁悶
    2013-2-12 06:05 AM
  • 簽到天數: 122 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2010-9-17 09:11:45 | 顯示全部樓層 |閱讀模式
    昨天心血來潮 就開始搏命的研究 修改XD

    我的寫法是
    利用
    "OnTouch:"功能      <-- 玩家進入觸發範圍時執行某事件,用法如下的『範例1』    範例請到下面的帖子觀看吧.....
    ↑是引用這個帖子的  http://www.lollipop168.com/archiver/?tid-209.html
    然後 就在各個道館的裁判下(是下面嗎??  (邏輯來說是下面)..
    例 我裁判的位子分別是 "guild_vs1,50,49,4""guild_vs2,50,49,4""guild_vs3,50,49,4""guild_vs4,50,49,4""guild_vs5,50,49,4"
    於是..我寫了5個 NPC代號/外觀為"-1"的NPC 座標 都跟上面的裁判位子一致
    由於 OnTouch 功能 不支援 function 的方式所以只能一個一個做...通通都貼上來 會很長 所以就不貼了...
    至於座標 我相信 只要是有稍稍摸過腳本的人都會改....
    guild_vs1,50,49,4    script    檢測IP#1    -1,2,2,{
            end;
    OnTouch:
            if(@No_Twp_Ip == 1 ) { end; }
            mes "[檢測IP]";
            mes "IP檢測中.....。";
            mes "請稍等...。";
            next;
        //取得登入者IP
        query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@LastIp$);

        //檢查同IP帳號
        query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+.@LastIp$+"'", .@AccountId);

        //檢查同IP在線人數
        for( set .@i ,0; .@i   <  getarraysize(.@AccountId);   set .@i,.@i+1 ) {
            if( isloggedin ( .@AccountId[.@i] ) ) set .@j,.@j+1 ;
            if( .@j > 1 ) {
                mes "抱歉,^FF6600" + strcharinfo(0) + "^000000,IP[^FF6600" + .@LastIp$ + "^000000]";
                mes "^FF0000相同的IP,系統中已有 1 位在線上.";
                mes "防止雙開系統將送你回主城!^000000";
                sleep2(3000);
                warp "payon.gat",197,219;
                end;
            }
        }
            mes "抱歉,^FF6600" + strcharinfo(0) + "^000000,IP[^FF6600" + .@LastIp$ + "^000000]";
            mes "^FF0000相同的IP,系統中僅有 1 位在線上.";
            mes "防止雙開系統將結束檢測,謝謝合作。^000000";
            set @No_Twp_Ip,@No_Twp_Ip+1;
            close;
    end;
    }
    ps.上面的查詢ip腳本是轉載自某個大大寫的 (對不起把你忘了~"~)

    至於 腳本最前面要加上這個 "if(@No_Twp_Ip == 1 ) { end; }" 判斷式是因為

    避免 二次驗證 總不能要玩家忍受 打個道管 只要經過裁判附近 就要跟防雙開 NPC 對話一次吧@@"  要是我 我也會發瘋XD

    還有一點一定要注意..  報名NPC 一定要加上 "set @No_Twp_Ip,0;" 這句 把驗證紀錄歸零
    千萬不要放在領獎NPC裡面 ... (如果打倒掛彩出場不就等於 第二次 免驗證...?
    至於 要放在哪裡  通常放在 玩家與NPC 對話之前應該都沒有問題 就是

    set @No_Twp_Ip,0;  這個位子 通常都可以
    mes "您和您的隊伍想參加嗎?";
    mes "須先繳納 ^22DD22"+$@camoney+"^000000 元的報名費";

    因為道館的腳本 眾多 我也不能保證不會出錯

    我改的這個腳本 有一個很怪的問題 就是 只要 伺服器上 有另一個玩家 跟你一樣的IP 不論是否在打管 都會視為 雙開(不讓你進去道管...)

    如果還是不董....就下載 夾帶檔案吧.......不過 還是有些小地方需要修改就是了...

    本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒有帳號?註冊

    x
    回復

    使用道具 舉報

  • TA的每日心情
    難過
    2011-6-18 03:13 PM
  • 簽到天數: 36 天

    連續簽到: 0 天

    [LV.5]常住居民I

    發表於 2010-9-17 15:26:23 | 顯示全部樓層
    我的話
    我會把判斷IP那整大段 放在要進入道管地圖的NPC上面。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2010-9-25 12:21 AM
  • 簽到天數: 7 天

    連續簽到: 0 天

    [LV.3]偶爾看看II

    發表於 2010-9-22 23:53:37 | 顯示全部樓層
    用IP防雙開從之前就有一些奇怪的問題
    例如我就碰過用IP分享器 明明二個人顯示的IP不一樣
    例: 一個 127.0.0.1 一個 127.0.0.2
    但是系統還是會把他判定為同IP
    真的不知道該怎麼去解決這個問題
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2013-2-12 06:05 AM
  • 簽到天數: 122 天

    連續簽到: 1 天

    [LV.7]常住居民III

     樓主| 發表於 2010-9-24 06:06:49 | 顯示全部樓層
    這個 我也很無解... 可能是分享器的問題吧....?:100+:

    這個問題 我現在也不能馬上研究 前幾天 另一台電腦被借走了:104:
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2010-10-7 12:23 AM
  • 簽到天數: 1 天

    連續簽到: 0 天

    [LV.1]初來乍到

    發表於 2010-10-1 09:19:32 | 顯示全部樓層
    :91:這玩意兒太棒了!我剛測試過 超好用的!
    不過我是放置在領獎處!
    讓你開雙窗也白搭!!太讚了!!
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2010-10-7 12:23 AM
  • 簽到天數: 1 天

    連續簽到: 0 天

    [LV.1]初來乍到

    發表於 2010-10-1 23:51:45 | 顯示全部樓層
    不好意思 請問大大!
    若我要無限次搜查IP
    是不是將"if(@No_Twp_Ip == 1 ) { end; }"刪除即可無限次數檢查IP!
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2024-5-3 02:25 AM , Processed in 0.056521 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表