UID256198
帖子
精華
主題
積分797
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限10
註冊時間2010-4-22
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 郁悶 2013-2-12 06:05 AM |
---|
簽到天數: 122 天 連續簽到: 1 天 [LV.7]常住居民III
|
昨天心血來潮 就開始搏命的研究 修改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
|