-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 1:12 pm
參考網路遊戲的好友名單做出來的....
不過功能似乎有點陽春=口=||
改天再加點功能好了
功能簡介 寫:1.可以透過[新增]功能在名單中加入您的好友。 2.可透過[刪除]功能刪除位於好友名單中的玩家。 3.可以透過好友名單來迅速確認好友是否在線上。 4.[NEW]透過[傳送訊息]功能可以迅速發短訊給你的好友。(未加入於原始碼中,欲加入此功能者請 點此)
在您的資料庫中輸入下列語法 寫:CREATE TABLE `wog_friend` ( `p_id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT , `f_id` TEXT NOT NULL , PRIMARY KEY ( `p_id` ) ) TYPE = MYISAM ;
開啟檔案wog/wog.js 寫:尋找 - 代碼: 選擇全部
//###### 分頁 begin #####
前面,加上 - 代碼: 選擇全部
function f_list(f_name)//##friend_system { message_cls(); var view_name=parent.wog_view; view_name.document.write(temp_table1); view_name.document.write('<tr><td width=70%>好友名稱</td><td width=30%>線上狀態</td></tr>'); if(f_name) { s1=f_name.split(";"); for(var a=0;a<s1.length;a++) { s2=s1[a].split(","); var fcolor=psex(s2[2]); view_name.document.write('<tr><td><a href=javascript:parent.yesname("'+s2[0]+'")><font color='+fcolor+'>'+s2[0]+'</font></a></td><td>'+s2[1]+'</td></tr>'); } }else { view_name.document.write('<tr><td colspan=2>沒有任何好友資料。</td></tr>'); } view_name.document.write('<tr><td colspan=2>'); view_name.document.write('<form action="wog_etc.php" method="GET">'); view_name.document.write('<input type=text name=f_name><input type=radio name="act" value=add CHECKED>新增<input type=radio name="act" value=del>刪除 <input type=submit value="送出"><input type=hidden name="f" value="friend"> <input type=button value="資料全刪除" onClick="parent.del_all_con()"></form>'); view_name.document.write(temp_table2); } function del_all_con() { if(confirm("確定刪除所有好友資料?")==true) { parent.wog_view.document.URL="./wog_etc.php?f=friend&act=del_all"; } }
開啟檔案wog/wog_etc.php 寫:尋找 - 代碼: 選擇全部
case "race":
前面,加上 - 代碼: 選擇全部
case "friend": if($HTTP_COOKIE_VARS["wog_cookie"]==""){alertWindowMsg($lang['wog_act_nofroum_member']);} include("./class/wog_etc_friend.php"); $wog_etc_class= new wog_etc_friend; switch ($_GET["act"]) { case "list": $wog_etc_class->f_list($HTTP_COOKIE_VARS["wog_cookie"]); break; case "add": $wog_etc_class->f_add($HTTP_COOKIE_VARS["wog_cookie"]); break; case "del": $wog_etc_class->f_del($HTTP_COOKIE_VARS["wog_cookie"]); break; case "del_all": $wog_etc_class->f_del_all($HTTP_COOKIE_VARS["wog_cookie"]); break; default: break; } break;
開啟檔案wog/wog_top.htm 寫:尋找 - 代碼: 選擇全部
【<a href="wog_id_admin.htm" target="wog_view">帳號中心</a>】
後面,加上 - 代碼: 選擇全部
【<a href="wog_etc.php?f=friend&act=list" target="wog_view">好友名單</a>】
建立檔案wog/class/wog_etc_friend.php 寫:內容 - 代碼: 選擇全部
<? class wog_etc_friend{
function f_list($user_id) { global $DB_site,$wog_arry,$_POST; $peo=$DB_site->query_first("select f_id from wog_friend where p_id=".$user_id); if($peo && !empty($peo[f_id])) { $sql=$DB_site->query("select DISTINCT p_name,p_sex,p_online_time from wog_player where p_id in (".$peo[f_id].")"); $s=""; while($f=$DB_site->fetch_array($sql)) { ($f[p_online_time] < time()-$wog_arry[offline_time])?$online="<font color=999999>Offline</font>":$online="<font color=ffff00>ONLINE</font>"; $s.=";".$f[p_name].",".$online.",".$f[p_sex]; } $DB_site->free_result($sql); $s=substr($s,1,strlen($s)); }else {$s="";} showscript("parent.f_list('".$s."')"); unset($s); } function f_add($user_id) { global $DB_site,$_GET; $add=$DB_site->query_first("select p_id from wog_player where p_name='".$_GET["f_name"]."' and p_userlv!=1 and p_userlv!=2"); if(empty($add[p_id]) || empty($_GET["f_name"])){alertWindowMsg('好友名稱錯誤!','./wog_etc.php?f=friend&act=list');} if($add[p_id]==$user_id){alertWindowMsg('不能加入自己!','./wog_etc.php?f=friend&act=list');} $p=$DB_site->query_first("select f_id from wog_friend where p_id=".$user_id); if(eregi($add[p_id],$p[f_id])){alertWindowMsg('已存在於好友名單中!','./wog_etc.php?f=friend&act=list');} if(!$p) { $DB_site->query("insert wog_friend(p_id,f_id)values(".$user_id.",".$add[p_id].")"); }else { if(empty($p[f_id])) {$s=$add[p_id];} else {$s=$p[f_id].",".$add[p_id];} $DB_site->query("update wog_friend set f_id='".$s."' where p_id=".$user_id); } $this->f_list($user_id); } function f_del($user_id) { global $DB_site,$_GET; $p=$DB_site->query_first("select f_id from wog_friend where p_id=".$user_id); if(!$p || empty($p[f_id])){alertWindowMsg('您尚未建立好友名單!','./wog_etc.php?f=friend&act=list');} $del_id=$DB_site->query_first("select p_id from wog_player where p_name='".$_GET["f_name"]."'"); if(empty($del_id[p_id]) || !$del_id){alertWindowMsg('刪除對象不存在!','./wog_etc.php?f=friend&act=list');} if(eregi(",",$p[f_id])) {$friend=split(",",$p[f_id]);} else {$friend[0]=$p[f_id];} $s=@array_diff($friend,$del_id); if(count($s)==count($friend)){alertWindowMsg('您的好友名單中沒有這位玩家!','./wog_etc.php?f=friend&act=list');} $s=@join(",",$s); $DB_site->query("update wog_friend set f_id='".$s."' where p_id=".$user_id); $this->f_list($user_id); } function f_del_all($user_id) { global $DB_site; $DB_site->query("update wog_friend set f_id='' where p_id=".$user_id); $this->f_list($user_id); } } ?>
儲存,關閉所有檔案。
完畢,有問題請提出。
最後由 涅魂 於 2007-02-14 5:02 pm 編輯,總共編輯了 10 次。
-
Kagami
-
- 文章: 256
- 註冊時間: 2005-07-01 2:38 pm
- 來自: HongKong
由 Kagami » 2005-07-28 1:43 pm
很好....我的wog安裝了....還未有找到bug..
謝謝大大的分享..
有一個建議..就是如果找不到人的時候出現了 - 代碼: 選擇全部
好友名稱錯誤!
之後是返回好友名單....不是出現白色畫面^^"
還有可以禁止玩家在好友名單加入gm和sa?
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 1:55 pm
Kagami 寫:很好....我的wog安裝了....還未有找到bug.. 謝謝大大的分享.. 有一個建議..就是如果找不到人的時候出現了 - 代碼: 選擇全部
好友名稱錯誤!
之後是返回好友名單....不是出現白色畫面^^"
開啟檔案wog/class/wog_etc_friend.php 尋找 - 代碼: 選擇全部
alertWindowMsg('好友名稱錯誤!');
改成 - 代碼: 選擇全部
alertWindowMsg('好友名稱錯誤!','./wog_etc.php?f=friend&act=list');
kagami 寫:還有可以禁止玩家在好友名單加入gm和sa?
開啟檔案wog/class/wog_etc_friend.php 尋找 - 代碼: 選擇全部
$add=$DB_site->query_first("select p_id from wog_player where p_name='".$_GET["f_name"]."'");
改成 - 代碼: 選擇全部
$add=$DB_site->query_first("select p_id from wog_player where p_name='".$_GET["f_name"]."' and p_userlv!=1 and p_userlv!=2");
完畢。
以上兩項加入至原始碼中。
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 2:01 pm
再加上四點~~
開啟檔案wog/class/wog_etc_friend.php
尋找
- 代碼: 選擇全部
alertWindowMsg('不能加入自己!');
改成 - 代碼: 選擇全部
alertWindowMsg('不能加入自己!','./wog_etc.php?f=friend&act=list');
尋找 - 代碼: 選擇全部
alertWindowMsg('已存在於好友名單中!');
改成 - 代碼: 選擇全部
alertWindowMsg('已存在於好友名單中!','./wog_etc.php?f=friend&act=list');
尋找 - 代碼: 選擇全部
alertWindowMsg('您尚未建立好友名單!');
改成 - 代碼: 選擇全部
alertWindowMsg('您尚未建立好友名單!','./wog_etc.php?f=friend&act=list');
尋找 - 代碼: 選擇全部
alertWindowMsg('您的好友名單中沒有這位玩家!');
改成 - 代碼: 選擇全部
alertWindowMsg('您的好友名單中沒有這位玩家!','./wog_etc.php?f=friend&act=list');
儲存,關閉所有檔案。
原始碼已更正。
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 2:07 pm
找到一個小BUG..
開啟檔案wog/class/wog_etc_friend.php
尋找
- 代碼: 選擇全部
{$friend=$p[f_id];}
改成 - 代碼: 選擇全部
{$friend[0]=$p[f_id];}
儲存,關閉所有檔案
完畢。
(原始碼已更正。)
-
Kagami
-
- 文章: 256
- 註冊時間: 2005-07-01 2:38 pm
- 來自: HongKong
由 Kagami » 2005-07-28 3:59 pm
提供一個可有可無的功能...
在wog.js中
找: - 代碼: 選擇全部
s[19]="復活成功,經驗值下降1/5";
在下加上: - 代碼: 選擇全部
s[20]="增加好友成功!";
打開.class/wog_etc_friend.php 找: - 代碼: 選擇全部
$DB_site->query("update wog_friend set f_id='".$s."' where p_id=".$user_id);
在下加上: - 代碼: 選擇全部
showscript("parent.job_end(20)");
完成..這是個很沒用的功能..加不加都沒差....
-
maxjbl
-
- 文章: 178
- 註冊時間: 2005-05-03 4:20 am
-
由 maxjbl » 2005-07-28 7:01 pm
這個外掛 是不是只判斷 英數的ID帳號 中文的帳號 或使用萬用字元帳號 都出現 [好友名稱錯誤] 麻煩大大了
-
Kagami
-
- 文章: 256
- 註冊時間: 2005-07-01 2:38 pm
- 來自: HongKong
由 Kagami » 2005-07-28 7:19 pm
maxjbl 寫:這個外掛 是不是只判斷 英數的ID帳號 中文的帳號 或使用萬用字元帳號 都出現 [好友名稱錯誤] 麻煩大大了
我的wog沒問題..你看..
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 7:39 pm
maxjbl 寫:這個外掛 是不是只判斷 英數的ID帳號 中文的帳號 或使用萬用字元帳號 都出現 [好友名稱錯誤] 麻煩大大了
出現"好友名稱錯誤"的情況可能是
1.沒有輸入名稱
2.對象不存在
3.有錯字
4.對象為SA或GM
以上,再仔細檢查看看吧。
最後由 涅魂 於 2005-07-28 7:46 pm 編輯,總共編輯了 1 次。
-
¥飛天阿鳥¥
-
- 文章: 322
- 註冊時間: 2004-11-07 3:04 pm
- 來自: 水色的某一處 團體:變態團團員 團隊:烤鳥隊長
-
由 ¥飛天阿鳥¥ » 2005-07-28 7:39 pm
有好友名單
相反的
未來可能會出現仇人名單吧!
強烈建議阿~~
不過這個好友名單不錯]\!
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 7:44 pm
¥黑暗四天王¥ 寫:有好友名單 相反的 未來可能會出現仇人名單吧! 強烈建議阿~~
不過這個好友名單不錯]\!
不過列出仇人名單要做什麼=口=??
難道列進去會記得比較清楚嗎??
-
maxjbl
-
- 文章: 178
- 註冊時間: 2005-05-03 4:20 am
-
由 maxjbl » 2005-07-28 7:45 pm
涅魂 寫:maxjbl 寫:這個外掛 是不是只判斷 英數的ID帳號 中文的帳號 或使用萬用字元帳號 都出現 [好友名稱錯誤] 麻煩大大了
出現"好友名稱錯誤"的情況可能是 1.沒有輸入名稱 2.對象不存在 3.有錯字 4.對象為SA或GM 以上。
收到!!!
-
¥飛天阿鳥¥
-
- 文章: 322
- 註冊時間: 2004-11-07 3:04 pm
- 來自: 水色的某一處 團體:變態團團員 團隊:烤鳥隊長
-
由 ¥飛天阿鳥¥ » 2005-07-28 8:34 pm
涅魂 寫:¥黑暗四天王¥ 寫:有好友名單 相反的 未來可能會出現仇人名單吧! 強烈建議阿~~
不過這個好友名單不錯]\!
不過列出仇人名單要做什麼=口=?? 難道列進去會記得比較清楚嗎??
如果在工會戰鬥偷打的話加入仇人....(我最討厭這一種人 )
在聊天畫面說出不雅言語加入仇人.可通知該站長施予禁言~~
大概只有這幾種吧~~
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-28 9:15 pm
刪除玩家的部分發現兩個問題
1.輸入不存在的玩家時好友名單會歸零...= =
之前把這部分遺忘掉了...
開啟檔案wog/class/wog_etc_friend.php
尋找
- 代碼: 選擇全部
$del_id=$DB_site->query_first("select p_id from wog_player where p_name='".$_GET["f_name"]."'");
下面,加上 - 代碼: 選擇全部
if(empty($del_id[p_id]) || !$del_id){alertWindowMsg('刪除對象不存在!','./wog_etc.php?f=friend&act=list');}
2.在被加入好友的情況下刪除角色之後,位於好友名單中的該玩家會無法刪除....= = 這個問題似乎無解...~"~ 若要資料逐一比對資料庫似乎又很費資源.... 所以以下提供最後的應對方式....資料初始化.. 建議好友名單中有超過3位以上為空號時才用此功能將資料初始化..。 開啟檔案wog/wog.js 尋找 - 代碼: 選擇全部
<input type=hidden name="f" value="friend"> 後面,加上 - 代碼: 選擇全部
<input type=button value="資料全刪除" onClick="parent.del_all_con()"></form>
尋找 - 代碼: 選擇全部
//###### 分頁 begin #####
上面,加上 - 代碼: 選擇全部
function del_all_con() { if(confirm("確定刪除所有好友資料?")==true) { parent.wog_view.document.URL="./wog_etc.php?f=friend&act=del_all"; } }
開啟檔案wog/wog_etc.php 尋找 - 代碼: 選擇全部
case "del": $wog_etc_class->f_del($HTTP_COOKIE_VARS["wog_cookie"]); break;
下面,加上 - 代碼: 選擇全部
case "del_all": $wog_etc_class->f_del_all($HTTP_COOKIE_VARS["wog_cookie"]); break;
開啟檔案wog/class/wog_etc.friend.php 尋找 - 代碼: 選擇全部
} ?>
上面,加上 - 代碼: 選擇全部
function f_del_all($user_id) { global $DB_site; $DB_site->query("update wog_friend set f_id='' where p_id=".$user_id); $this->f_list($user_id); }
儲存,關閉所有檔案。
完畢。
(原始碼已更正。)
-
涅魂
-
- 文章: 4463
- 註冊時間: 2004-01-04 11:17 am
- 來自: Taiwan
- 性別: 男生
由 涅魂 » 2005-07-30 10:25 am
NEW SYSTEM
新增快速傳訊功能給被加入為好友的玩家
※為了防止程式碼露餡以及遊戲的美觀,傳送給玩家訊息的時候(點選 《<☎>》 )不會在狀態列顯示出連結結果。
※此功能不會加在上面,欲加入者請照下列步驟逐一修改。
開啟檔案wog/wog.js
尋找
- 代碼: 選擇全部
var temp_m_hpmax=0;
下面,加上 - 代碼: 選擇全部
var to_name="";
尋找 - 代碼: 選擇全部
function f_list(f_name)//##friend_system { .......... .......... .......... }
改成 - 代碼: 選擇全部
function f_list(f_name)//##friend_system { message_cls(); var view_name=parent.wog_view; view_name.document.write(temp_table1); view_name.document.write('<tr><td width=60%>好友名稱</td><td width=10%>傳送訊息</td><td width=30%>線上狀態</td></tr>'); if(f_name) { s1=f_name.split(";"); for(var a=0;a<s1.length;a++) { s2=s1[a].split(","); var fcolor=psex(s2[2]); view_name.document.write('<tr><td><a href=javascript:parent.yesname("'+s2[0]+'")><font color='+fcolor+'>'+s2[0]+'</font></a></td><td><span onClick="javascript:parent.to_name=\''+s2[0]+'\';parent.message()">《<☎>》</span></td><td>'+s2[1]+'</td></tr>'); } }else { view_name.document.write('<tr><td colspan=2>沒有任何好友資料。</td></tr>'); } view_name.document.write('<tr><td colspan=3>'); view_name.document.write('<form action="wog_etc.php" method="GET">'); view_name.document.write('<input type=text name=f_name><input type=radio name="act" value=add CHECKED>新增<input type=radio name="act" value=del>刪除 <input type=submit value="送出"><input type=hidden name="f" value="friend"> <input type=button value="資料全刪除" onClick="parent.del_all_con()"></form>'); view_name.document.write(temp_table2); }
尋找 - 代碼: 選擇全部
view_name.document.write('<tr><td>遊戲中的帳號</td><td class="b1"><input type="text" name="name" size="12"></td></tr>');
改成 - 代碼: 選擇全部
view_name.document.write('<tr><td>遊戲中的帳號</td><td class="b1"><input type="text" name="name" size="12" value="'+to_name+'"></td></tr>');
尋找 - 代碼: 選擇全部
view_name.document.write('<tr><td colspan="2"><input type="button" value="送出" onClick="parent.foot_trun(\'message\',\'\',this.form.name.value,this.form.body.value)"></td></tr>');
下面,加上 - 代碼: 選擇全部
parent.to_name="";
完畢。
|