[v3]公會倉庫

提供WOG各方面的技術問題,並提供最新path更新。

版主: 涅魂, 簫哥, 10度C~

stu6707
 
文章: 162
註冊時間: 2008-10-26 1:00 pm

[v3]公會倉庫

文章stu6707 » 2011-04-28 3:32 pm

寫了個公會功能,讓新手多個幫助

剛進遊戲都沒錢沒裝,加入公會取得公會裝備可以讓新手快點渡過艱難期 :)

這外掛只有功能,沒有美化.... 請多包涵 :face10:

因只做過簡單測試,運行是沒有問題,不過不能保證無bug

所以發現bug請回報~ 謝謝~~~



外掛名稱:公會倉庫

功能:倉庫

說明:wog_group_main 中的 g_storage 是用來設定可不可以自由拿裝,0是可以,1是只能由會長取裝

修改步驟:

資料庫
CREATE TABLE `wog_group_storage` (
`g_id` INT NOT NULL DEFAULT '0',
`a_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`d_head_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`d_body_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`d_hand_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`d_foot_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`d_item_id` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
)

CREATE TABLE `wog_group_msg` (
`m_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`g_id` INT( 10 ) NOT NULL DEFAULT '0',
`title` VARCHAR( 150 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`dateline` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'
)

ALTER TABLE `wog_group_main` ADD `g_storage` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0';


wog_act.php

代碼: 選擇全部
case "group":

下加
代碼: 選擇全部
      include_once("./class/wog_item_tool.php");
      $wog_item_tool = new wog_item_tool;


代碼: 選擇全部
         case "save_book":
            $wog_act_class->group_book_save($HTTP_COOKIE_VARS["wog_cookie"]);
         break;
      }

換成
代碼: 選擇全部
         case "save_book":
            $wog_act_class->group_book_save($HTTP_COOKIE_VARS["wog_cookie"]);
         break;
         case "storage_view":
            $wog_act_class->group_storage_view($HTTP_COOKIE_VARS["wog_cookie"]);
         break;
         case "storage":
            $wog_act_class->group_storage($HTTP_COOKIE_VARS["wog_cookie"]);
         break;
      }
      unset($wog_item_tool);


wog_act_group.php

代碼: 選擇全部
$DB_site->query("insert into wog_group_area(g_id,g_a_type,g_a_hp,g_a_dateline)values(".$g_id.",6,100,".time().")");

下加
代碼: 選擇全部
$DB_site->query("INSERT INTO wog_group_storage(g_id,a_id,d_head_id,d_body_id,d_hand_id,d_foot_id,d_item_id)VALUES(".$g_id.",'','','','','','')");

代碼: 選擇全部
}
?>

上加
代碼: 選擇全部
   function group_storage_view($user_id)
   {
      global $DB_site,$_POST,$lang;
      $group=$DB_site->query_first("SELECT a.".$_POST["temp_id"]." FROM wog_group_storage a,wog_player b WHERE a.g_id=b.p_g_id AND b.p_id=".$user_id);
      if(!$group)
      {
         alertWindowMsg($lang['wog_act_group_nogroup']);
      }
      if(empty($group[0]))
      {
         $s="";
      }else
      {
         $temp_item="";
         if($_POST["temp_id"]=="d_item_id")
         {
            $groups=explode(",",$group[0]);
            for($i=0;$i<count($groups);$i++)
            {
               $groupss=explode("*",$groups[$i]);
               $temp_item.=",".$groupss[0];
            }
            $temp_item=substr($temp_item,1,strlen($temp_item));
         }else
         {
            $temp_item=$group[0];
         }
         $temp_str=$DB_site->query("SELECT d_id,d_df,d_mdf,d_agl,d_mstr,d_magl,d_msmart,d_name,d_at,d_mat FROM wog_df WHERE d_id IN ($temp_item)");
         $s="";
         while($temp_strs=$DB_site->fetch_array($temp_str))
         {
            $s.=";".$temp_strs['d_id'].","  //0
            .$temp_strs['d_df'].","         //1
            .$temp_strs['d_mdf'].","        //2
            .$temp_strs['d_agl'].","        //3
            .$temp_strs['d_mstr'].","       //4
            .$temp_strs['d_magl'].","       //5
            .$temp_strs['d_msmart'].","     //6
            .$temp_strs['d_name'].","       //7
            .$temp_strs['d_at'].","         //8
            .$temp_strs['d_mat'];           //9
         }
         $DB_site->free_result($temp_str);
         unset($temp_strs);
         $s=substr($s,1,strlen($s));
      }

      $DB_site->query("DELETE FROM wog_group_msg WHERE dateline < ".(time()-(10*24*60*60))."");
      $pack=$DB_site->query("SELECT a.title,a.dateline FROM wog_group_msg a,wog_player b WHERE a.g_id=b.p_g_id AND b.p_id=".$user_id." ORDER BY m_id DESC LIMIT 10");
      $msg="";
      while($packs=$DB_site->fetch_array($pack))
      {
         $msg.=";".$packs['title'].",".date("Y/m/d  g:i a",$packs['dateline']);
      }
      $msg=substr($msg,1,strlen($msg));
      showscript("parent.group_storage_view('$s','$group[0]','".$_POST["temp_id"]."','$msg')");
   }

   function group_storage($user_id)
   {
      global $DB_site,$_POST,$lang,$wog_arry,$wog_item_tool,$a_id;
      switch($_POST["temp_id"])
      {
         case 1:
            $adds=$_POST["adds"];
            if(empty($adds))
            {
               alertWindowMsg($lang['wog_act_arm_noselect']);
            }
            check_type($adds);
            $group=$DB_site->query_first("SELECT a.".$a_id.",b.g_id,b.g_adm_id1,b.g_storage FROM wog_group_storage a,wog_group_main b,wog_player c WHERE a.g_id=c.p_g_id AND b.g_id=c.p_g_id AND c.p_id=".$user_id);
            if(!$group)
            {
               alertWindowMsg($lang['wog_act_group_nogroup']);
            }
            if($group['g_storage']==1 && $group['g_adm_id1']!=$user_id)
            {
               alertWindowMsg("只有會長能取出裝備");
            }
            if(empty($group[0]))
            {
               alertWindowMsg($lang['wog_act_errwork']);
            }
            $temp_pack=explode(",",$group[0]);
            $temp_pack=$wog_item_tool->item_out($user_id,$adds,$_POST["item_num"],$temp_pack);
            $pack=$DB_site->query_first("SELECT a.".$a_id.",b.p_name,b.p_bag FROM wog_item a,wog_player b WHERE a.p_id=".$user_id." AND b.p_id=".$user_id);
            $temp_pack2=array();
            if(!empty($pack[0]))
            {
               $temp_pack2=explode(",",$pack[0]);
            }
            $temp_pack2=$wog_item_tool->item_in($temp_pack2,$adds,$_POST["item_num"]);
            $bag=$a_id=="d_item_id"?$wog_arry["item_limit"]+$pack[2]:$wog_arry["item_limit"];
            if(count($temp_pack2) > $bag)
            {
               alertWindowMsg($lang['wog_act_bid_full']);
            }
            $name=$DB_site->query_first("SELECT d_name FROM wog_df WHERE d_id=".$adds);
            $DB_site->query("UPDATE wog_group_storage SET ".$a_id."='".implode(',',$temp_pack)."' WHERE g_id=".$group[g_id]);
            $DB_site->query("UPDATE wog_item SET ".$a_id."='".implode(',',$temp_pack2)."' WHERE p_id=".$user_id);
            $DB_site->query("INSERT INTO wog_group_msg(m_id,g_id,title,dateline)VALUES('',".$group[g_id].",'".$pack[1]." 從倉庫取出 ".$name[0]."',".time().")");
            showscript("parent.job_end(15)");
         break;
         case 2:
            $adds=$_POST["adds"];
            if(empty($adds))
            {
               alertWindowMsg($lang['wog_act_arm_noselect']);
            }
            $check=$DB_site->query_first("SELECT d_name,d_type,d_send FROM wog_df WHERE d_id=".$adds);
            if($check[2]==1)
            {
               alertWindowMsg($lang['wog_act_arm_nosend']);
            }
            check_type($check[1],1);
            $pack=$DB_site->query_first("SELECT a.".$a_id.",b.g_id,b.".$a_id.",c.p_name FROM wog_item a,wog_group_storage b,wog_player c WHERE a.p_id=".$user_id." AND b.g_id=c.p_g_id AND c.p_id=".$user_id);
            if(!$pack)
            {
               alertWindowMsg($lang['wog_act_group_nogroup']);
            }
            $temp_pack=explode(",",$pack[0]);
            $temp_pack=$wog_item_tool->item_out($user_id,$adds,$_POST["item_num"],$temp_pack);
            $temp_pack2=array();
            if(!empty($pack[2]))
            {
               $temp_pack2=explode(",",$pack[2]);
            }
            $temp_pack2=$wog_item_tool->item_in($temp_pack2,$adds,$_POST["item_num"]);
            $DB_site->query("UPDATE wog_item SET ".$a_id."='".implode(',',$temp_pack)."' WHERE p_id=".$user_id);
            $DB_site->query("UPDATE wog_group_storage SET ".$a_id."='".implode(',',$temp_pack2)."' WHERE g_id=".$pack[1]);
            $DB_site->query("INSERT INTO wog_group_msg(m_id,g_id,title,dateline)VALUES('',".$pack[1].",'".$pack[3]." 將 ".$check[0]." 放入倉庫',".time().")");
            showscript("parent.job_end(15)");
         break;
         default:
            alertWindowMsg("發生錯誤");
         break;
      }
   }


wog.js

代碼: 選擇全部
   f.write('<tr><td><input type="button" value="認領會員" onClick="parent.act_click(\'group\',\'get_member\')"></td><td class=b1><--核准入會申請<會長專用></td></tr>');

下加
代碼: 選擇全部
   f.write('<tr><td><input type="button" value="公會倉庫" onclick="parent.act_click(\'group\',\'storage_view\',\'a_id\')"></td><td class="b1"><--公會倉庫</td></tr>');

隨便放
代碼: 選擇全部
function group_storage_view(a,d,item_type,msg)
{
   var f=parent.wog_view.document;
   vData=d;
   message_cls();
   f.write('<input type="button" value="武器" onclick="parent.act_click(\'group\',\'storage_view\',\'a_id\')"> ');
   f.write('<input type="button" value="頭部" onclick="parent.act_click(\'group\',\'storage_view\',\'d_head_id\')"> ');
   f.write('<input type="button" value="身體" onclick="parent.act_click(\'group\',\'storage_view\',\'d_body_id\')"> ');
   f.write('<input type="button" value="手部" onclick="parent.act_click(\'group\',\'storage_view\',\'d_hand_id\')"> ');
   f.write('<input type="button" value="腳部" onclick="parent.act_click(\'group\',\'storage_view\',\'d_foot_id\')"> ');
   f.write('<input type="button" value="道具" onclick="parent.act_click(\'group\',\'storage_view\',\'d_item_id\')">');
   f.write('<form action="wog_act.php" method="post" target="mission">');
   f.write(temp_table1);
   f.write('<tr><td>取出</td><td>物攻</td><td>魔攻</td><td>物防</td><td>魔防</td><td>速度</td><td>能力限制</td><td>名稱</td></tr>');
   if(a != "")
   {
      var s1=a.split(";");
      for(var i=0;i<s1.length;i++)
      {   
         var s2=s1[i].split(",");
         var temps=srhCount(s2[0]);
         var s3=null;
         if(tmpNum != "")
         {
            s3=tmpNum.split(",");
         }
         for(var j=0;j<temps;j++)
         {
            var temp_num=s3!=null?"*"+s3[j]:"";
            f.write('<tr><td><input type="radio" name="adds" value="'+s2[0]+'"></td><td>'+s2[8]+'</td><td>'+s2[9]+'</td><td>'+s2[1]+'</td><td>'+s2[2]+'</td><td>'+s2[3]+'</td><td>力:'+s2[4]+' 速:'+s2[5]+' 智:'+s2[6]+'</td><td>'+s2[7]+temp_num+'</td></tr>');
         }
      }
   }else
   {
      f.write('<tr><td colspan="8">沒有物品</td></tr>');
   }
   f.write('<tr><td colspan="8"><br><input type="submit" value="取出"></td></tr>');
   f.write('<tr><td colspan="8">請選擇數量:<select name="item_num">');
   for(var j=1;j<10;j++)
   {
      f.write('<option value="'+j+'" >'+j+'</option>');
   }
   f.write('</select></td></tr>');
   f.write('</table>');
   f.write('<input type="hidden" name="f" value="group">');
   f.write('<input type="hidden" name="act" value="storage">');
   f.write('<input type="hidden" name="temp_id" value="1">');
   f.write('</form>');
   f.write(temp_table1)
   f.write('<tr><td>內容</td><td>發生時間</td></tr>');
   if(msg!="")
   {
      var s1=msg.split(";");
      for(var i=0;i<s1.length;i++)
      {   
         var s2=s1[i].split(",");
         f.write('<tr><td>'+s2[0]+'</td><td>'+s2[1]+'</td></tr>');
      }
   }else
   {
      f.write('<tr><td colspan="2">尚未發生任何事件</td></tr>');   
   }
   f.write('</table>');
}

in arm_view 找
代碼: 選擇全部
   f.write('<input type="hidden" name="act" value="setup">');

下加
代碼: 選擇全部
   f.write('<input type="hidden" name="temp_id" value="2">');


代碼: 選擇全部
<input type="button" value="拍賣" onClick="parent.sale_item(document.f1.items)">

後加
代碼: 選擇全部
 <input type="submit" value="貢獻" onclick="document.f1.f.value=\'group\';document.f1.act.value=\'storage\'">


儲存關閉



回到 Online FF Battle-WOG官方聯盟推廣處

誰在線上

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