[分享](V3)改造風雲榜

WOG設定安裝教學

版主: 涅魂, 簫哥


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

[分享](V3)改造風雲榜

文章涅魂 » 2007-04-21 10:21 am

這個是我臨時興起而改的風雲榜… :oops:

主要特色有標籤、快取這兩大特色,若有興趣的話可以安裝看看^^

範例圖片

[hr]2007-06-03 修正顯示系統圖片BUG[hr]開始安裝[hr]
開啟檔案wog/class/wog_etc_king.php 寫:全部,改成
代碼: 選擇全部
<?
/*=====================================================
 Copyright (C) ETERNAL<iqstar.tw@gmail.com>
 Modify : 2005/01/01
 URL : http://www.2233.idv.tw
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.
===================================================== */

class wog_etc_king{
   function king_view()
   {
      global $DB_site,$wog_arry,$lang;
      $type=$_GET['type'];
      $time=$_GET['time'];
      $key=null;
      $err=false;
      echo charset();
      echo "<script language=JavaScript >\n";
      switch($type)
      {
         case 'win':
         $key=0;
         break;
         case 'lv':
         $key=1;
         break;
         case 'hp':
         $key=2;
         break;
         case 'at':
         $key=3;
         break;
         case 'mat':
         $key=4;
         break;
         case 'agl':
         $key=5;
         break;
         case 'pk':
         $key=6;
         break;
         case 'race':
         $key=7;
         break;
         case 'money':
         $key=8;
         break;
      }
      if(!is_numeric($time) || $key === null)$err=true;
      elseif($time < time()-60*15) //15分鐘後重新取得快取
      {
         switch($type)
         {
            case 'win':
               $sql="select p_name,p_win,i_img,p_img_set,p_img_url from wog_player order by p_win desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$ps["p_win"]." WIN";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'lv':
               $sql="select p_name,p_lv,i_img,p_img_set,p_img_url from wog_player order by p_lv desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$lang['wog_etc_king_lv']." ".$ps["p_lv"]."";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'hp':
               $sql="select p_name,p_hpmax,i_img,p_img_set,p_img_url from wog_player order by p_hpmax desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$lang['wog_etc_king_hp']." ".$ps["p_hpmax"]."";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'at':
               $sql="select p_name,p_at,i_img,p_img_set,p_img_url from wog_player order by p_at desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$lang['wog_etc_king_ac']." ".$ps["p_at"]."";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'mat':
               $sql="select p_name,p_mat,i_img,p_img_set,p_img_url from wog_player order by p_mat desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$lang['wog_etc_king_mc']." ".$ps["p_mat"]."";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'agl':
               $sql="select p_name,p_agl,i_img,p_img_set,p_img_url from wog_player order by p_agl desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].",".$lang['wog_etc_king_agl']." ".$ps["p_agl"]."";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'pk':
               $sql="select p_name,p_pk_win,i_img,p_img_set,p_img_url from wog_player order by p_pk_win desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].", ".$ps["p_pk_win"]." WIN";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'race':
               $sql="select p_name,p_cho_win,i_img,p_img_set,p_img_url from wog_player order by p_cho_win desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].", ".$ps["p_cho_win"]." WIN";
               }
               $s=substr($s,1,strlen($s));
            break;
            case 'money':
               $sql="select p_name,p_money,i_img,p_img_set,p_img_url from wog_player order by p_money desc LIMIT 5 ";
               $p=$DB_site->query($sql);
               $s="";
               while($ps=$DB_site->fetch_array($p))
               {
                  if($ps["p_img_set"]==1)
                  {
                     $ps["i_img"]=$ps["p_img_url"];
                  }
                  $s.=";".$ps["i_img"].",".$ps["p_name"].", ".$ps["p_money"]." money";
               }
               $s=substr($s,1,strlen($s));
            break;
            default:
            $err=true;
            break;
         }
         if($err == false)echo "parent.well[".$key."].temp_str='".$s."',parent.well[".$key."].time=".time().";\n";
      }
      $DB_site->free_result($p);
      $DB_site->close();
      echo "parent.rank_view(".$key.")";
      echo "</script>\n";
      compress_exit();
   }

}
?>

開啟檔案wog/wog.js 寫:尋找
代碼: 選擇全部
function get_temp_table1() {return temp_table1;}

上方, 加上
代碼: 選擇全部
var well=new Array();
well[0]=new well_data('勝場 TOP','win');
well[1]=new well_data('等級 TOP','lv');
well[2]=new well_data('HP TOP','hp');
well[3]=new well_data('物理攻擊 TOP','at');
well[4]=new well_data('魔法攻擊 TOP','mat');
well[5]=new well_data('速度 TOP','agl');
well[6]=new well_data('PK WIN TOP','pk');
well[7]=new well_data('鳥奪冠 TOP','race');
well[8]=new well_data('豪野人 TOP','money');
function well_data(title,type,temp_str){this.title=title,this.type=type,this.temp_str='',this.time=0;}
function rank_view(key)
{
   message_cls();
   var f=parent.wog_view.document;
   f.write('');
   f.write(temp_table1);
   f.write('<tr>');
   for(var i=0;i < well.length;i++)
   {
      f.write('<td '+(i!=key?'onmouseover="this.style.color=\'#4B689E\'" onmouseout="this.style.color=\'white\'" onclick="parent.wog_view.location.href=\'wog_etc.php?f=king&type='+well[i].type+'&time='+well[i].time+'\'" style="cursor:pointer"':'bgcolor="#4B689E"')+'>'+well[i].title+'</td>');
   }
   f.write('</tr>'+temp_table2);
   if(key != null)
   {
      var temp_str="";
      temp_str=well[key].temp_str;
      if(temp_str)
      {
         f.write(temp_table1);
         var s=temp_str.split(";");
         for(var j=0;j < s.length;j++)
         {
            var s1=s[j].split(",");
            var p_img_url="";
            if(s1[0].indexOf("http") == -1)
            p_img_url='<img src="'+img+s1[0]+(s1[0].lastIndexOf('.')!=-1?'':'.gif')+'" border="0">';
            else
            p_img_url='<img src="'+s1[0]+'" border="0">';
            f.write('<tr><td width="25%">'+p_img_url+'</td><td width="25%">'+s1[1]+'</td><td width="50%">'+s1[2]+'</td></tr>');
         }
         f.write(temp_table2);
      }
   }
}

完畢,有任何問題歡迎指教^^


最後由 涅魂 於 2007-06-03 10:55 pm 編輯,總共編輯了 3 次。

頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

文章齋月 » 2007-04-21 2:28 pm

這種排法真的很讚呢~!
無能的我就收下了 XD
[hr]
為什麼涅寫程式碼都像吃飯一樣簡單呢?
沉思中 =_=++
[hr]



逍遙亂舞
 
文章: 65
註冊時間: 2006-06-28 2:30 pm
來自: 宇宙

文章逍遙亂舞 » 2007-04-21 5:27 pm

喔!我實是太喜歡這外掛了,比起舊的那個風雲榜,這個風雲榜的外觀漂亮很多


正在慢慢的吸收PHP知識,如果發現有甚麼好的教學網站,請介紹給我,謝謝!


星戰風雲Online 已完成60%


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-04-21 6:49 pm

謝謝各位的贊賞囉,美味的GP我就收下啦XD

剛看了月的的PL後又有靈感了…等等吃完飯就來動工= =+

[hr]寫程式像在吃飯?[s]因為我本來就把程式當飯吃啊~[/s]



頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

文章齋月 » 2007-04-22 5:02 am

研究要怎修改才能按下風雲榜後首先出現 勝場TOP 呵呵~~
開啟 wog_top.htm 寫:FIND
代碼: 選擇全部
wog_etc.php?f=king
REPLACE
代碼: 選擇全部
wog_etc.php?f=king&type=[color=red]lv[/color]&time=0

如此一來每次開啟風雲榜首先出現的就是LV排行(不緩存)
要其他排行就把紅色部分改成相對應type
[hr]
涅魂 寫:剛看了月的的LP後又有靈感了…等等吃完飯就來動工= =+

看了我的LP就有靈感阿,這讓我很害羞阿 :face5:
期待XD[hr]
最近在寫 裝備限制使用場數 的功能....
好難OTZ
現在做出來的最大極限就只能

裝備都從剩餘場數最少的裝備
傳送都從剩餘場數最少的傳送
拍賣都從剩餘場數最少的拍賣
販賣都從剩餘場數最少的販賣
合成都從剩餘場數最少的合成

沒辦法直接挑想要的剩餘場數OTZ....
(這功能玩了一星期...忘記做紀錄...沒辦法PO上來請教更好的改法了 囧)




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-04-22 11:42 am

唔,這個功能若要以目前的儲存結構會很難寫

若月真的想要完成這個功能的話可能重新編寫物品的儲存格式會比較好...^^|||

至於我上面的靈機一動...之後覺得還是算了

原本看了月的PL後發現上面擠了一大串字體覺得不好點,突然就想到弄個可以左右滑動的顯示方式說不定會比較好

雖然DOM並不成問題,但是模擬一下之後發現顯示的效果不是很滿意,所以就不做了=口=|||


圖檔

頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

文章齋月 » 2007-04-22 12:21 pm

(小小聲說)看來涅沒看到我有改字

恩~~的確是很難寫 @@ 我是用新開一個資料表 wog_limit 裡面資料欄有 p_id,d_id,d_limit,limit_status 這四個 + wog_df 新加欄位 d_limit 來做的 OTZ....

目前再改最後部份 拍賣 了..... 其他都加減可以用了.....

大概架構是 任何有關裝備的動作時 就判斷 d_limit 是否大於0 是的話就 再wog_limit插入新資料/改變limit_status(0背包1裝備)

然後選取裝備上的困難是因為 我使用 from wog_limit where XXXX order by d_limit LIMIT 1 不這樣限制會全部符合的資料 limit_status 都會改變....

總之......這次修改沒有做紀錄真的是失算.......




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-04-22 12:29 pm

我每次修改的時候都沒有紀錄+備份耶XD

只要寫好的時候再循線追蹤就好了,對我來說紀錄不是很重要XD


圖檔

頭像
Kagami
 
文章: 256
註冊時間: 2005-07-01 2:38 pm
來自: HongKong    

文章Kagami » 2007-04-22 2:42 pm

涅魂 寫:我每次修改的時候都沒有紀錄+備份耶XD

只要寫好的時候再循線追蹤就好了,對我來說紀錄不是很重要XD

這樣的話可能會把心血全光的= ="
還是做一下backup吧..xd..
會考完了..可以上回水色..xd




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-04-22 4:53 pm

歡迎回歸~(咬

心血全光?東西都在我的程式裏頭怎麼會白費呢@@?

我說的紀錄是說我沒有記下修改的歷程喔,不是修改時不儲存檔案^^"


圖檔

頭像
Kagami
 
文章: 256
註冊時間: 2005-07-01 2:38 pm
來自: HongKong    

文章Kagami » 2007-04-22 5:27 pm

呃..修改歷程..這個要是寫又要花很長時間..加上又沒什麼功用,當然不會記錄啦..XD
太長時間沒上水色..好象有點接不上的樣子..T_T




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-04-23 12:32 am

別擔心,過不久你就會習慣的XD


圖檔


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-06-03 10:52 pm

BUG修正
修正顯示系統圖片時無法使用gif以外的格式

開啟檔案wog/wog.js

尋找
代碼: 選擇全部
p_img_url='<img src="'+img+s1[0]+'.gif" border="0">';

改為
代碼: 選擇全部
p_img_url='<img src="'+img+s1[0]+(s1[0].lastIndexOf('.')!=-1?'':'.gif')+'" border="0">';

如此即可使用gif之外的副檔名,不過副檔名必須儲存在s1[0]之中




回到 精華區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 7 位訪客