[分享](V3)加入工會成員申請驗證方式與工會成員上限設定

WOG設定安裝教學

版主: 涅魂, 簫哥


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

[分享](V3)加入工會成員申請驗證方式與工會成員上限設定

文章涅魂 » 2007-03-16 10:34 pm

藉由這個追加的功能可以在會長許可的情況下讓提出申請加入工會的玩家直接加入,省去會長驗證的步驟

而工會成員上限則可以讓會長控制目前工會的最大規模,並加上限制最大規模讓系統管理員能控制工會的最大規模

此外,為了系統的統一性而將工會會戰設定移入新增的[工會設定]按鈕內,範例圖示如下
圖檔
圖檔
[hr]
修改開始
在您的資料庫中輸入下列sql語法
代碼: 選擇全部
ALTER TABLE `wog_group_main` ADD `g_join_type` TINYINT( 1 ) DEFAULT '0' NOT NULL ,
ADD `g_peo_max` SMALLINT( 3 ) DEFAULT '0' NOT NULL ;

開啟檔案wog/class/wog_act_group.php 寫:尋找
代碼: 選擇全部
   function group_fire_set($user_id)
   {
      global $DB_site,$_POST,$lang;
      $group_main=$DB_site->query_first("select a.g_id,a.g_adm_id1,a.g_adm_id2,a.g_fire_time from wog_group_main a,wog_player b where a.g_id=b.p_g_id and b.p_id=".$user_id);
      if(!$group_main)
      {
         alertWindowMsg($lang['wog_act_group_nogroup']);
      }
      if($user_id!=$group_main["g_adm_id1"])
      {
         alertWindowMsg($lang['wog_act_group_nolyadmin']);
      }
      if($group_main["g_fire_time"]+(60*60*2)>time())
      {
         alertWindowMsg($lang['wog_act_group_nochang']);
      }
      $DB_site->query("update wog_group_main set g_fire=".$_POST["temp_id2"].",g_fire_time=".time()." where g_id=".$group_main["g_id"]);
      $this->group_center($user_id);
      unset($group_main);
   }

覆蓋成
代碼: 選擇全部
   function group_set($user_id)
   {
      global $DB_site,$_POST,$lang,$wog_arry;
      $group=$DB_site->query_first("select a.g_id,a.g_adm_id1,a.g_adm_id2,a.g_peo,a.g_fire_time from wog_group_main 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($user_id!=$group['g_adm_id1'])
      {
         alertWindowMsg($lang['wog_act_group_nolyadmin']);
      }
      switch($_POST['pay_id'])
      {
         case 'fire':
         if($group['g_fire_time']+(60*60*2)>time())
         {
            alertWindowMsg($lang['wog_act_group_nochang']);
         }
         $DB_site->query("update wog_group_main set g_fire=".$_POST['temp_id2'].",g_fire_time=".time()." where g_id=".$group['g_id']);
         break;
         default:
         $field='';
         $value='';
         switch($_POST['pay_id'])
         {
            case 'join_type':
            $field='g_join_type';
            $value=$_POST['temp_id2'];
            break;
            case 'peo_max':
            $value=$_POST['temp_id'];
            if($value > $wog_arry['g_peo_max'])
            {
               alertWindowMsg('工會成員無法高於'.$wog_arry['g_peo_max'].'人');
            }
            if($value < $group['g_peo'] && $value > 0)
            {
               alertWindowMsg('工會人數上限需高於目前工會人數');
            }
            $field='g_peo_max';
            break;
            default:
            alertWindowMsg('未知的的錯誤');
            break;
         }
         $DB_site->query("update wog_group_main set ".$field."=".$value." where g_id=".$group['g_id']);
         break;
      }
      unset($group);
      showscript("parent.job_end(3);");
   }


In group_get_save_member()
尋找
代碼: 選擇全部
global $DB_site,$_POST,$lang;

覆蓋成
代碼: 選擇全部
global $DB_site,$_POST,$lang,$wog_arry;

尋找
代碼: 選擇全部
      $p_count=$DB_site->query_first("select g_peo from wog_group_main  where g_id=".$group["g_id"]."");
      if($p_count[0]>=20)
      {
         alertWindowMsg($lang['wog_act_group_ful']);
      }

覆蓋成
代碼: 選擇全部
      $p_count=$DB_site->query_first("select g_peo,g_peo_max from wog_group_main  where g_id=".$group["g_id"]."");
      if(($p_count[0]>=$p_count['g_peo_max']  && $p_count['g_peo_max'] > 0) || $p_count['g_peo'] >= $wog_arry['g_peo_max'])
      {
         alertWindowMsg($lang['wog_act_group_ful']);
      }

In group_add()
尋找
代碼: 選擇全部
global $DB_site,$_POST,$lang;

覆蓋成
代碼: 選擇全部
global $DB_site,$_POST,$lang,$wog_arry;

尋找
代碼: 選擇全部
      $group=$DB_site->query_first("select g_peo  from wog_group_main  where g_id=".$_POST["g_id"]."");
      if($group[0]>=20)
      {
         alertWindowMsg($lang['wog_act_group_ful']);
      }
      $group=$DB_site->query_first("select g_j_id from wog_group_join where p_id=".$user_id." and g_id=".$_POST["g_id"]."");
      if($group)
      {
         alertWindowMsg($lang['wog_act_group_post']);
      }
      $DB_site->query("insert into wog_group_join(g_id,p_id,g_j_dateline)values(".$_POST["g_id"].",".$user_id.",".time().")");
      showscript("parent.job_end(14)");

覆蓋成
代碼: 選擇全部
      $group=$DB_site->query_first("select g_id,g_peo,g_join_type,g_peo_max from wog_group_main  where g_id=".$_POST["g_id"]."");
      if(($group['g_peo']>=$group['g_peo_max'] && $group['g_peo_max'] > 0) || $group['g_peo'] >= $wog_arry['g_peo_max'])
      {
         alertWindowMsg($lang['wog_act_group_ful']);
      }
      switch($group['g_join_type']) //招生方式 0=會長驗證 1=自動加入
      {
         default:
         case 0:
            $group=$DB_site->query_first("select g_j_id from wog_group_join where p_id=".$user_id." and g_id=".$_POST["g_id"]."");
            if($group)
            {
               alertWindowMsg($lang['wog_act_group_post']);
            }
            $DB_site->query("insert into wog_group_join(g_id,p_id,g_j_dateline)values(".$_POST["g_id"].",".$user_id.",".time().")");
            showscript("parent.job_end(14)");
         break;
         
         case 1:
            $DB_site->query("update wog_player set p_g_id=".$group['g_id'].",p_g_number=1000,p_g_morale=100 where p_id=".$user_id."");
            $DB_site->query("update wog_group_main set g_peo=g_peo+1 where g_id=".$group["g_id"]."");
            $DB_site->query("delete from wog_group_join where p_id=".$user_id);
            showscript("parent.job_end(15)");
         break;
      }

尋找
代碼: 選擇全部
}
?>

上面,加上
代碼: 選擇全部
   function group_set_view($user_id)
   {
      global $DB_site;
      $group=$DB_site->query_first("Select g_id,g_fire,g_join_type,g_peo_max From wog_group_main Where g_adm_id1=".$user_id);
      if(!$group)
      {
         alertWindowMsg('只有會長具有管理工會的權限');
      }
      showscript("parent.group_set_view(".$group['g_id'].",".$group['g_fire'].",".$group['g_join_type'].",".$group['g_peo_max'].");");
   }

開啟檔案wog/wog.js 寫:尋找
代碼: 選擇全部
f.write('<tr><td colspan="4"><input type="button" value="開戰設定" onClick="parent.foot_trun(\'group\',\'fire_set\',\'\',\'\',document.forms[0].f_set)"> <input type="radio" name="f_set" value="0" '+no+'>關 <input type="radio" name="f_set" value="1" '+yes+'>開 只有會長才能設定</td></tr>');

刪除

尋找
代碼: 選擇全部
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\',\'set_view\')"></td><td class=b1><會長專用></td></tr>');

尋找
代碼: 選擇全部
function group_book_view(temp)

上面,加上
代碼: 選擇全部
function group_set_view(g_id,fire,join_type,peo_max)
{
   var f=parent.wog_view.document;
   message_cls();
   f.write('<form action="wog_act.php" method="POST" target="mission" name="f1">');
   f.write(temp_table1);
   f.write('<tr><td colspan="3" bgcolor="#3B588E">工會設定</td></tr>');
   f.write('<tr><td width="20%" bgcolor="#4B689E">會戰設定</td><td width="65%"><input type="radio" name="fire_set" value="0">關 <input type="radio" name="fire_set" value="1">開</td><td width="15%"><input type="button" value="設定" onclick="parent.foot_trun(\'group\',\'set\',\'fire\',\'\',document.f1.fire_set)"></td></tr>');
   f.write('<tr><td colspan="3">'+hr+'</td></tr>');
   f.write('<tr><td width="20%" bgcolor="#4B689E">招生方式</td><td width="65%"><input type="radio" name="jointype_set" value="0">會長驗證 <input type="radio" name="jointype_set" value="1">自動加入</td><td width="15%"><input type="button" value="設定" onclick="parent.foot_trun(\'group\',\'set\',\'join_type\',\'\',document.f1.jointype_set)"></td></tr>');
   f.write('<tr><td colspan="3">'+hr+'</td></tr>');
   f.write('<tr><td width="20%" bgcolor="#4B689E">工會人數上限</td><td width="65%"><input type="text" name="peo_max" value="'+peo_max+'" size="6">人 (不限人數請設置為0人)</td><td width="15%"><input type="button" value="設定" onclick="parent.foot_trun(\'group\',\'set\',\'peo_max\',document.f1.peo_max.value)"></td></tr>');
   f.write(temp_table2);
   f.write('</form>');
   f.f1.fire_set[fire].checked=true;
   f.f1.jointype_set[join_type].checked=true;
}

開啟檔案wog/wog_act.php 寫:尋找
代碼: 選擇全部
         case "fire_set":
            $wog_act_class->group_fire_set($HTTP_COOKIE_VARS["wog_cookie"]);
         break;

覆蓋成
代碼: 選擇全部
         case "set":
            $wog_act_class->group_set($HTTP_COOKIE_VARS["wog_cookie"]);
         break;

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

下面,加上
代碼: 選擇全部
         case 'set_view':
            $wog_act_class->group_set_view($HTTP_COOKIE_VARS["wog_cookie"]);
         break;

開啟檔案wog/wog_act_config.php 寫:尋找
代碼: 選擇全部
$wog_arry["g_a_peo"]=3;//駐守領土人數上限

下面,加上
代碼: 選擇全部
$wog_arry['g_peo_max']=20;//工會成員最大人數

儲存、關閉所有檔案

完畢,有問題請指教^^


最後由 涅魂 於 2007-05-01 10:11 pm 編輯,總共編輯了 3 次。

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

文章齋月 » 2007-03-17 9:01 am

裝好後按設定會沒有反應呢 不曉得是不是我裝錯了 0.0?




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

文章涅魂 » 2007-03-17 7:38 pm

找到問題發生的原因了,原來是我忘記把wog_act.php裡面把fire_set改成set的步驟忘了… :oops:

請照下面修改看看吧(頂樓文章已修正)

開啟檔案wog_act.php
尋找
代碼: 選擇全部
         case "fire_set":
            $wog_act_class->group_fire_set($HTTP_COOKIE_VARS["wog_cookie"]);
         break;

覆蓋成
代碼: 選擇全部
         case "set":
            $wog_act_class->group_set($HTTP_COOKIE_VARS["wog_cookie"]);
         break;

完畢,有問題請指教 :)


圖檔

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

文章齋月 » 2007-03-18 7:36 am

原來是沒有改名 我竟然沒有檢查出來 囧TZ....
快要變成胡亂裝魔人了...不懂也照裝 T^T

開啟 /class/wog_act_group.php 寫:IN group_add()

尋找
代碼: 選擇全部
$DB_site->query("delete from wog_group_join where p_id=".$group["p_id"]);
覆蓋為
代碼: 選擇全部
$DB_site->query("delete from wog_group_join where p_id=".$user_id."");

沒有取 $group["p_id"] 這個值 :wink:
因為這樣 用自動加入後 玩家申請該公會 頁面不會跳到 showscript("parent.job_end(15)");

========================

IN group_set()

尋找
代碼: 選擇全部
if($value < $group['g_peo'])
覆蓋成
代碼: 選擇全部
if($value < $group['g_peo'] && $value != 0)

小小的修改~~
[point="涅魂"]<u>積分 +1</u>

找出BUG

at 2007-03-18 12:07 pm[/point]




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

文章涅魂 » 2007-03-18 12:06 pm

謝謝月幫忙找出bug囉^^

請收下一點積分吧~


圖檔

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

文章齋月 » 2007-03-18 1:18 pm

要謝謝涅寫出功能才對 :wink:

base on this
我寫了 公會擴張的修改

不過沒有邊修改邊記錄,完全忘了改了什麼 =.=
所以............ :face6:

有空再整理 :oops:
(不難,想要擴張的站長,可以自己試試。。。)
(比起涅的龐大架構+重寫,簡單一百倍有了。。。)




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

文章涅魂 » 2007-03-18 1:27 pm

嗯,想辦法不被當掉比較重要XD

月先專心地搶救英文吧,要是因為WOG而影響課業可能會有不好的影響呢

這裡目前有我跟蕭哥兩個活人版主還是可以應付些問題的,別太擔心囉^^


圖檔

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

文章齋月 » 2007-03-18 2:19 pm

涅魂 寫:這裡目前有我跟蕭哥兩個活人版主還是可以應付些問題的,別太擔心囉^^


我我我 沒有涅你說的那種意思  :oops:
只是喜歡和大家聊天罷了 :wink:

搶救英文 說的是阿  :face5:




回到 精華區

誰在線上

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