[V3]請問一下怎麼弄一鍵脫裝的功能?

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

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

蛋治
 
文章: 17
註冊時間: 2012-02-12 12:28 am

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章蛋治 » 2015-06-12 11:41 pm

ETERNAL 寫:SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_body_id (抓取身體屬性)
SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_head_id (抓取頭屬性)


紅色的字是我跟著你改的
但是按鍵後卻沒反應
請問是那裡出錯了..

function arm_alldemount($user_id)
{
global $DB_site,$_POST,$a_id,$temp_ss,$lang,$wog_arry,$wog_item_tool,$wog_act_suit;
$p=$DB_site->query_first("SELECT a.".$_POST['pay_id']." AS item,b.".$_POST['pay_id']." AS eq,b.p_bag,b.p_userlv FROM wog_item a,wog_player b WHERE a.p_id=".$user_id." AND b.p_id=".$user_id);
if(!$p['eq'])
{
alertWindowMsg($lang["wog_act_arm_noarm"]);
}
check_type($p['eq']);
if($p['item']=="N/A" || empty($p['item']))
{
if($a_id=="d_item_id"){
$DB_site->query("UPDATE wog_item SET ".$_POST['pay_id']."='".$p['eq']."*1' WHERE p_id=".$user_id);
}else{
$DB_site->query("UPDATE wog_item SET ".$_POST['pay_id']."='".$p['eq']."' WHERE p_id=".$user_id);
}
}else{
$p['item']=$wog_item_tool->item_in(explode(',',$p['item']),$p['eq'],1);
if($a_id=="d_item_id")
{
$bag=$wog_arry["item_limit"]+$p['p_bag'];
}else
{
$bag=$wog_arry["item_limit"]+$p['p_bag'];
}
if(count($p['item']) > $bag)
{
alertWindowMsg($lang['wog_act_bid_full']);
}
$p['item']=implode(',',$p['item']);
$DB_site->query("UPDATE wog_item SET ".$_POST['pay_id']."='',a_id='',d_head_id='',d_body_id='',d_hand_id='',d_foot_id='',d_item_id='',d_card_id='',d_car_id='',d_ca_id='',d_book_id='',d_god_id=''' WHERE p_id=".$user_id);
}
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=a_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_body_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_head_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_hand_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_foot_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_item_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_card_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_car_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_ca_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_book_id");
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_g_hp,d_g_sp,d_g_str,d_g_smart,d_g_agi,d_g_life,d_g_vit,d_g_au,d_g_be FROM wog_df WHERE d_id=d_god_id");

$DB_site->query("UPDATE wog_player SET ".$_POST['pay_id']."='',p_at=p_at-".$eq['d_at'].",p_mat=p_mat-".$eq['d_mat'].",p_df=p_df-".$eq['d_df'].",p_mdf=p_mdf-".$eq['d_mdf'].",p_agl=p_agl-".$eq['d_agl'].",p_bag=p_bag-".$eq['d_g_bag']." WHERE p_id=".$user_id);
$suit_demount=$wog_act_suit->suit_demount($user_id,$p['eq'],2);
showscript("parent.arm_setup('".$_POST['pay_id']."','');parent.act_click('arm','view','".$a_id."')");
}




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章ETERNAL » 2015-06-13 2:02 am

上面能看到幾個問題
1.
語法錯了
該用變數的地方沒有改成變數
2.
程式邏輯錯了
能力屬性要組合累加沒有加上去
3.
我給的教學是V4的table結構,不能直接放到V3裡面
4.
涅魂的code是一鍵脫裝,不是一鍵全脫.上面有幾段無效代碼要移除

建議先看懂並理解這裡面的說明
post4061959.html#p4061959
我提供code不能直接複製貼上使用,我寫的作為例子跟教學參考用,每個人的WOG都不同,要自行依自己的實際情況去改


水色論壇 http://www.et99.net
簡恩峻分享

蛋治
 
文章: 17
註冊時間: 2012-02-12 12:28 am

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章蛋治 » 2015-06-21 12:18 am

ETERNAL 寫:上面能看到幾個問題
1.
語法錯了
該用變數的地方沒有改成變數
2.
程式邏輯錯了
能力屬性要組合累加沒有加上去
3.
我給的教學是V4的table結構,不能直接放到V3裡面
4.
涅魂的code是一鍵脫裝,不是一鍵全脫.上面有幾段無效代碼要移除

建議先看懂並理解這裡面的說明
post4061959.html#p4061959
我提供code不能直接複製貼上使用,我寫的作為例子跟教學參考用,每個人的WOG都不同,要自行依自己的實際情況去改


我研究過..因為現在的人都很少用global去寫
所以我都有點不會寫.. :( :(
ET大大可以幫我寫嗎 :| :| :|



蛋治
 
文章: 17
註冊時間: 2012-02-12 12:28 am

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章蛋治 » 2015-06-21 1:33 am

蛋治 寫:
ETERNAL 寫:上面能看到幾個問題
1.
語法錯了
該用變數的地方沒有改成變數
2.
程式邏輯錯了
能力屬性要組合累加沒有加上去
3.
我給的教學是V4的table結構,不能直接放到V3裡面
4.
涅魂的code是一鍵脫裝,不是一鍵全脫.上面有幾段無效代碼要移除

建議先看懂並理解這裡面的說明
post4061959.html#p4061959
我提供code不能直接複製貼上使用,我寫的作為例子跟教學參考用,每個人的WOG都不同,要自行依自己的實際情況去改


我研究過..因為現在的人都很少用global去寫
所以我都有點不會寫.. :( :(
ET大大可以幫我寫嗎 :| :| :|


這一段是轉職業時裝備全脫光光的文章http://www.et99.net/become-t36795.html 但我開過那個job.php有點複雜不會弄 :(




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章ETERNAL » 2015-06-23 3:19 pm

我老了等退休

年輕一輩請繼續努力加油吧 :mrgreen: :mrgreen:

那個轉職脫光的方式可以參考


水色論壇 http://www.et99.net
簡恩峻分享


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

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章涅魂 » 2015-06-23 10:31 pm

參考wog_act_arm.php寫的,拿武器跟道具測試了幾次應該沒問題了

圖檔

In File /js/wog_item.js
Find
代碼: 選擇全部
function arm_link(a1)
{
   w_c(temp_table1);
   w_c('<tr><td><a href="javascript:parent.arm_change_menu(0)" target="mission">裝備類</a> <a href="javascript:parent.arm_change_menu(5)" target="mission">道具類</a> : ');
   var temp=arm_return_menu(a1);
   w_c('<span id="arm_menu">'+temp+'<span>');
   w_c('</td></tr>');
   w_c(temp_table2);
   w_c("<br>");
   //p_nc();
};

Replace with
代碼: 選擇全部
function arm_link(a1)
{
   var strUnsetupAll = '<a href="javascript:parent.arm_unsetup_all()">卸下全部裝備</a> | ';
   w_c(temp_table1);
   w_c('<tr><td>'+strUnsetupAll+'<a href="javascript:parent.arm_change_menu(0)" target="mission">裝備類</a> <a href="javascript:parent.arm_change_menu(5)" target="mission">道具類</a> : ');
   var temp=arm_return_menu(a1);
   w_c('<span id="arm_menu">'+temp+'<span>');
   w_c('</td></tr>');
   w_c(temp_table2);
   w_c("<br>");
   //p_nc();
};

function arm_unsetup_all() {
   if(!confirm("確定卸下所有裝備?"))
      return;
   act_click("arm", "unsetup_all");
}
function arm_unsetup_all_success() {
   alert('所有裝備已成功卸下');
   var list = ['a_id', 'd_head_id', 'd_body_id', 'd_hand_id', 'd_foot_id', 'd_item_id', 'd_item_id2'], i;
   for(i = 0; i < list.length; ++i) {
      arm_setup(list[i], "");
   }
   arm_select(0);
   
}


In file wog_act.php
Find
代碼: 選擇全部
         case "unsetup":
            $wog_act_class->arm_unsetup($_COOKIE["wog_cookie"]);
         break;

Append with
代碼: 選擇全部
         case "unsetup_all":
            $wog_act_class->arm_unsetup_all($_COOKIE['wog_cookie']);
            break;

In file /class/wog_act_arm.php
Find
代碼: 選擇全部
function arm_move($user_id)

Prepend with
代碼: 選擇全部
   function arm_unsetup_all($user_id) {
      $armlist = array(0, 1, 2, 3, 4, 5, 11);
      foreach($armlist as $key=>$type) {
         $this->_unsetup($user_id, $type);
      }
      check_arm_status($user_id);
      showscript("parent.arm_unsetup_all_success()");
   }
   
   private function _unsetup($user_id, $type) { //卸下裝備
      global $a_id, $DB_site, $wog_item_tool, $lang;
      $a_id=type_name($type);
      $s_id="";
      $p_id="";
      get_type_name($type,$s_id,$p_id);
      $s_id2=",".$s_id;
      $p_id2=",".$p_id;

      $item_num_name="";
      $a_id2=$a_id;
      if($a_id=="d_item_id"){$item_num_name="d_item_num";}
      if($a_id=="d_item_id2"){$item_num_name="d_item_num2";}

      $sql="select ".$a_id.$s_id2.$p_id2.",d_item_num,d_item_num2 from wog_player_arm where p_id=".$user_id;
      $check_item=$DB_site->query_first($sql);
      if(empty($check_item))
      {
         alertWindowMsg($lang['wog_act_relogin']);
      }
      if(empty($check_item[0])) {
         return false;
      }

      $item_id=$check_item[0];
      $hs_id=$check_item[$s_id];
      $ps_id=$check_item[$p_id];
      $d_item_num=$check_item[$item_num_name];

      if($a_id=="d_item_id" || $a_id=="d_item_id2")
      {
         $sql="update wog_player_arm set ".$a_id."=0,".$s_id."=0,".$p_id."=0,".$item_num_name."=0 where p_id=".$user_id;
      }
      else
      {
         $sql="update wog_player_arm set ".$a_id."=0,".$s_id."=0,".$p_id."=0 where p_id=".$user_id;
      }
      $DB_site->query($sql);

      if(!empty($hs_id))
      {
         $item_id.=":".$hs_id;
      }
      if(!empty($ps_id))
      {
         $item_id.="&".$ps_id;
      }
      if($type==11){$a_id="d_item_id";$type=5;}
      $sql="select ".$a_id." from wog_item where p_id=".$user_id;
      $check_item=$DB_site->query_first($sql);
      if(!empty($check_item[0]))
      {
         $check_item=explode(",",$check_item[0]);
         
         if($a_id=="d_item_id" || $a_id=="d_item_id2")
         {
            $check_item=$wog_item_tool->item_in($check_item,$item_id,$d_item_num);
         }
         else
         {
            $check_item=$wog_item_tool->item_in($check_item,$item_id,1);
         }
      }
      else{
         unset($check_item);
         $check_item = array();
         if($a_id=="d_item_id")
         {
            $check_item[]=$item_id."*".$d_item_num;
         }
         else
         {
            $check_item[]=$item_id;
         }
      }
      $DB_site->query("update wog_item set ".$a_id."='".implode(',',$check_item)."' where p_id=".$user_id);
      unset($p2,$check_item,$p3);
      return true;
   }

就這樣


圖檔


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

Re: [V3]請問一下怎麼弄一鍵脫裝的功能?

文章涅魂 » 2015-06-24 3:02 pm

下面是V3版本,原則上我會以V4版本的程式碼為準,以後有需要的請自己portal成v3版本囉 :roll:
新版PHP有把一些舊版功能取消掉,因此下面的程式碼使用新版的$_COOKIE,使用舊版PHP請自己換成$HTTP_COOKIE_VARS。
圖檔

In file wog.js
Find
代碼: 選擇全部
function arm_select()
{
   var f=parent.wog_view.document;
   message_cls();
   f.write(temp_table1);
   f.write('<form method="post" target="mission">');
   f.write('<tr><td><input type="button" value="武器裝具" onClick="parent.act_click(\'arm\',\'view\',\'a_id\')"> <input type="button" value="頭部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_head_id\')"> <input type="button" value="身體裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_body_id\')"> <input type="button" value="手部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_hand_id\')"> <input type="button" value="腳部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_foot_id\')"> <input type="button" value="道具裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_item_id\')"></tr>');
//##########----------syn_system_start----------##########
   f.write('<tr><td><input type="button" value="武器合成" onClick="parent.act_click(\'syn\',\'view\',\'a_id\')"> <input type="button" value="頭盔合成" onClick="parent.act_click(\'syn\',\'view\',\'d_head_id\')"> <input type="button" value="鎧甲合成" onClick="parent.act_click(\'syn\',\'view\',\'d_body_id\')"> <input type="button" value="護手合成" onClick="parent.act_click(\'syn\',\'view\',\'d_hand_id\')"> <input type="button" value="長靴合成" onClick="parent.act_click(\'syn\',\'view\',\'d_foot_id\')"> <input type="button" value="道具合成" onClick="parent.act_click(\'syn\',\'view\',\'d_item_id\')"></tr>');
//##########----------syn_system_end----------##########
   f.write('</form>');
   f.write(temp_table2);
}

Replace with
代碼: 選擇全部
function arm_select()
{
   var f=parent.wog_view.document;
   message_cls();
   f.write(temp_table1);
   f.write('<form method="post" target="mission">');
   f.write('<tr><td><input type="button" value="武器裝具" onClick="parent.act_click(\'arm\',\'view\',\'a_id\')"> <input type="button" value="頭部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_head_id\')"> <input type="button" value="身體裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_body_id\')"> <input type="button" value="手部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_hand_id\')"> <input type="button" value="腳部裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_foot_id\')"> <input type="button" value="道具裝具" onClick="parent.act_click(\'arm\',\'view\',\'d_item_id\')"></tr>');
//##########----------syn_system_start----------##########
   f.write('<tr><td><input type="button" value="武器合成" onClick="parent.act_click(\'syn\',\'view\',\'a_id\')"> <input type="button" value="頭盔合成" onClick="parent.act_click(\'syn\',\'view\',\'d_head_id\')"> <input type="button" value="鎧甲合成" onClick="parent.act_click(\'syn\',\'view\',\'d_body_id\')"> <input type="button" value="護手合成" onClick="parent.act_click(\'syn\',\'view\',\'d_hand_id\')"> <input type="button" value="長靴合成" onClick="parent.act_click(\'syn\',\'view\',\'d_foot_id\')"> <input type="button" value="道具合成" onClick="parent.act_click(\'syn\',\'view\',\'d_item_id\')"></tr>');
//##########----------syn_system_end----------##########
   f.write('<tr><td><a href="javascript:parent.arm_unsetup_all()">卸下所有裝備</td></tr>');
   f.write('</form>');
   f.write(temp_table2);
}

function arm_unsetup_all() {
   if(!confirm("確定卸下所有裝備?"))
      return;
   act_click("arm", "unsetup_all");
}
function arm_unsetup_all_success() {
   alert('所有裝備已成功卸下');
   var list = ['a_id', 'd_head_id', 'd_body_id', 'd_hand_id', 'd_foot_id', 'd_item_id', 'd_item_id2'], i;
   for(i = 0; i < list.length; ++i) {
      arm_setup(list[i], "");
   }
   arm_select();
   
}


In file wog_act.php
Find
代碼: 選擇全部
         case "setup":
            $wog_act_class->arm_setup($_COOKIE["wog_cookie"]);
         break;

Append with
代碼: 選擇全部
         case "unsetup_all":
            $wog_act_class->arm_unsetup_all($_COOKIE['wog_cookie']);
            break;

In file /class/wog_act_arm.php
FInd
代碼: 選擇全部
   function arm_move($user_id)

Prepend with
代碼: 選擇全部
   function arm_unsetup_all($user_id) {
      global $DB_site, $lang, $wog_item_tool;
      $p = $DB_site->query_first('
         SELECT
            a_id, d_head_id, d_body_id, d_hand_id, d_item_id
         FROM wog_player
         WHERE p_id='.$user_id.'
      ');
      $bag = $DB_site->query_first('
         SELECT
            a_id, d_head_id, d_body_id, d_hand_id, d_item_id
         FROM wog_item
         WHERE p_id='.$user_id.'
      ');
      $equipments = array_unique(array($p['a_id'], $p['d_head_id'],
         $p['d_body_id'], $p['d_hand_id'], $p['d_item_id']));
      $changes = $DB_site->query_first('
         SELECT
            SUM(d_at) AS at, SUM(d_mat) AS mat, SUM(d_df) AS df, SUM(d_mdf) AS mdf,
            SUM(d_agl) AS agl
         FROM wog_df
         WHERE d_id IN ('.implode(',', $equipments).')
      ');
      $DB_site->query_first('
         UPDATE wog_player
         SET
            p_at=p_at-'.+$changes['at'].', p_mat=p_mat-'.+$changes['mat'].',
            p_df=p_df-'.+$changes['df'].', p_mdf=p_mdf-'.+$changes['mdf'].',
            p_agl=p_agl-'.+$changes['agl'].', a_id=0, d_head_id=0, d_body_id=0,
            d_hand_id=0, d_foot_id=0, d_item_id=0
         WHERE p_id='.$user_id.'
      ');
      $armlist = array('a_id', 'd_head_id', 'd_body_id', 'd_hand_id', 'd_foot_id');
      foreach($armlist as $type) {
         if(!+$p[$type])
            continue;
         $bag[$type] = (empty($bag[$type]) ?'':$bag[$type].',').$p[$type];
      }
      $type = 'd_item_id';
      if(+$p[$type]) {
         if(strpos($bag[$type], $p[$type].'*') === false) {
            $bag[$type] = (empty($bag[$type]) ?'':$bag[$type].',').$p[$type].'*1';
         }
         else {
            
            $list = explode(',', $bag[$type]);
            foreach($list as $key=>$items) {
               if(strpos($items, $p[$type].'*') === false)
                  continue;
               $temp = explode('*', $items);
               $list[$key] = $temp[0].'*'.($temp[1]+1);
               break;
            }
            $bag[$type] = implode(',', $list);
         }
      }
      $DB_site->query_first('
         UPDATE wog_item
         SET
            a_id="'.$bag['a_id'].'", d_head_id="'.$bag['d_head_id'].'",
            d_body_id="'.$bag['d_body_id'].'", d_hand_id="'.$bag['d_hand_id'].'",
            d_hand_id="'.$bag['d_hand_id'].'", d_foot_id="'.$bag['d_foot_id'].'",
            d_item_id="'.$bag['d_item_id'].'"
         WHERE p_id='.$user_id.'
      ');
      showscript('parent.arm_unsetup_all_success();');
   }



圖檔

上一頁

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

誰在線上

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

cron