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

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

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

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

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

文章蛋治 » 2015-05-25 10:51 pm

http://www.et99.net/topic-t29537.html
這個是關於脫下當前裝備的編碼
如果要變成一按就能脫下裝備欄所有的裝備
那應該可以怎樣搞呢?
請問有大大可以教我嗎




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

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

文章ETERNAL » 2015-06-02 2:50 pm

蛋治 寫:http://www.et99.net/topic-t29537.html
這個是關於脫下當前裝備的編碼
如果要變成一按就能脫下裝備欄所有的裝備
那應該可以怎樣搞呢?
請問有大大可以教我嗎


居然有人能挖出這篇古文

這功能挺有意思的,以前我居然沒注意到

現在改這編碼的人很少,我建議你可能要先自己研究了

基本上涅魂寫的那些code邏輯沒什麼問題,就看怎麼套用上去

另外裝備有些新的欄位,對於新欄位要自己新增編碼


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

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

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

文章蛋治 » 2015-06-03 6:40 pm

開啟檔案wog/class/wog_act_arm.php 寫:
In arm_view() Function

Find
代碼: 選擇全部
showscript("parent.arm_view('$s','$pack[0]')");

Replace
代碼: 選擇全部
showscript("parent.arm_view('$s','$pack[0]','$_POST[temp_id]')");


Find
代碼: 選擇全部
}
?>

Before Add
代碼: 選擇全部
function arm_demount($user_id)
{
global $DB_site,$_POST,$a_id,$temp_ss,$lang;
if(empty($_POST["pay_id"]))
{
alertWindowMsg($lang["wog_act_arm_noarm"]);
}
$p=$DB_site->query_first("SELECT a.$_POST[pay_id],b.$_POST[pay_id] FROM wog_item a,wog_player b WHERE a.p_id=$user_id AND b.p_id=$user_id");
$item=explode(",",$p[0]);
if(count($item) >= 15)
{
alertWindowMsg($lang["wog_act_buy_tenitem"]);
}
if($p[1] == 0)
{
alertWindowMsg($lang["wog_act_arm_noarm"]);
}
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl FROM wog_df WHERE d_id=$p[1]");
$p[0].=($p[0] == "")?$p[1]:",".$p[1];
$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] WHERE p_id=$user_id");
$DB_site->query("UPDATE wog_item SET $_POST[pay_id]='$p[0]' WHERE p_id=$user_id");
showscript("parent.job_end(11);");
}




這一堆編碼大慨是....
關於如果背包滿了,卸下裝備時不讓裝備直接卸下
還是有別的意思?




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

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

文章ETERNAL » 2015-06-04 9:43 am

是的

是背包滿了不讓卸下

if(count($item) >= 15)

這裡限制數量為15


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

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

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

文章蛋治 » 2015-06-04 10:13 am

開啟檔案wog/wog.js 寫:
Find
代碼: 選擇全部
function arm_view(a,d)

Replace
代碼: 選擇全部
function arm_view(a,d,a_id,d_head_id,d_body_id,d_hand_id,d_foot_id)


In arm_view() Function

Find
代碼: 選擇全部
<input type="submit" value="裝備">

After Add
代碼: 選擇全部
<input type="button" value="一鍵卸下" onClick="parent.foot_trun(\'arm\',\'demount\',\''+a_id+'\',\''+d_head_id+'\',\''+d_body_id+'\',\''+d_hand_id+'\',\''+d_foot_id+'\')">

請問如果改成這樣可以做到一按就能把所有裝脫下嗎?




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

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

文章ETERNAL » 2015-06-04 11:39 am

應該不行

JS端
我記得foot_trun 不能傳這麼多參數

PHP端
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl FROM wog_df WHERE d_id=$p[1]");
這裡也只有抓一件裝備的屬性,要改成身上每件裝備都抓


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

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

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

文章蛋治 » 2015-06-04 10:52 pm

那個改成每一件裝備都抓應該怎麼改...
請問可以示範一小部分嗎?
或者你需要什麼code才能做示範?
我可以提供一下0,0




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

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

文章ETERNAL » 2015-06-05 2:40 pm

蛋治 寫:那個改成每一件裝備都抓應該怎麼改...
請問可以示範一小部分嗎?
或者你需要什麼code才能做示範?
我可以提供一下0,0


不知道你用哪一個版本,下面是V4.5的範例
V3做法也是一樣,裝備欄位沒這麼多,code也會更少

JS端可以不用改

只要改PHP端
1
在wog_player_arm ,這張table裡面查出玩身上所有裝備的ID
像這樣
select a_id,d_body_id,d_head_id,d_hand_id,d_foot_id,d_item_id,d_item_id2,s_a_id,s_body_id,s_head_id,s_hand_id,s_foot_id,s_item_id,p_a_id,p_body_id,p_head_id,p_hand_id,p_foot_id,p_item_id,d_item_num,d_item_num2 from wog_player_arm where p_id=$user_id

2.
定義所有屬性
$d_at=0
$d_mat=0
$d_df=0
$d_mdf=0
$d_str=0
$d_agi=0
$d_smart=0
$d_life=0
$d_vit=0
$d_au=0
$d_b=0
$d_hp=0
$d_sp=0

3.
接著查出所有裝備品的屬性,
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
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

魔石的話
wog_stone_setup
wog_stone_temp
要從這兩張table去查屬性
魔石屬性抓取有點複雜,要自己去查一下了

精鍊的話
wog_plus_setup
從這張table去查屬性
SELECT d_at,d_mat,d_df,d_mdf,d_str,d_agi,d_smart,d_life,d_vit,d_au,d_be from wog_plus_setup where p_id=$user_id and d_id=p_a_id
SELECT d_at,d_mat,d_df,d_mdf,d_str,d_agi,d_smart,d_life,d_vit,d_au,d_be from wog_plus_setup where p_id=$user_id and d_id=p_body_id

4.
然後把相關屬性加總
$d_at =d_at(裝備基礎屬性)+d_at(魔石屬性)+d_at(精鍊屬性)
$d_mat =d_mat(裝備基礎屬性)+d_mat(魔石屬性)+d_mat(精鍊屬性)

5.
執行
UPDATE wog_player SET at=at-$d_at,mat=mat-$d_mat,df=df-$d_df,mdf=mdf-$d_mdf,agi=agi-$d_agi,str=str-$d_str,life=life-$d_life,vit=vit-$d_vit,smart=smart-$d_smart,hp=hp-$d_hp,sp=sp-$d_sp,au=au-$d_au,be=be-$d_be, WHERE p_id=$user_id

update wog_player_arm set
a_id='',d_body_id='',d_head_id='',d_hand_id='',d_foot_id='',d_item_id='',d_item_id2='',s_a_id='',s_body_id='',s_head_id='',s_hand_id='',s_foot_id='',s_item_id='',p_a_id='',p_body_id='',p_head_id='',p_hand_id='',p_foot_id='',p_item_id='',d_item_num='',d_item_num2='' where p_id=$user_id

6.
組合卸下後的物品ID
規則如下
裝備ID:魔石ID&精鍊ID
:符號是魔石的分割符號
&符號是精鍊的分割符號

update wog_item set a_id=a_id+組合後的物品ID,d_body_id+組合後的物品ID....... where p_id=$user_id


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

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

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

文章蛋治 » 2015-06-05 4:06 pm

謝謝ET大大的分享
我會試一下;如果有問題我會再上來滙報一下...謝謝



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

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

文章蛋治 » 2015-06-05 5:44 pm

這個是原本的wog_act_arm.php

[function arm_demount($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']."='".$p['item']."' WHERE p_id=".$user_id);
}
$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl,d_g_bag FROM wog_df WHERE d_id=".$p['eq']);
$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."')");
}


現在改成:

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_df,d_mdf,d_agl,d_g_bag FROM wog_df WHERE d_id=".$p['eq']);
$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-08 10:39 am

$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);

這只是把裝備拿掉,但屬性不會扣掉


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

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

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

文章蛋治 » 2015-06-08 2:09 pm

$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl,d_g_bag FROM wog_df WHERE d_id=".$p['eq']);
$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);


這一段是不是把那個屬性扣掉的編碼?




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

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

文章ETERNAL » 2015-06-08 2:11 pm

蛋治 寫:$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl,d_g_bag FROM wog_df WHERE d_id=".$p['eq']);
$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);


這一段是不是把那個屬性扣掉的編碼?


這是扣屬性編碼
但只能扣一個裝備的屬性


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

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

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

文章蛋治 » 2015-06-08 2:27 pm

ETERNAL 寫:
蛋治 寫:$eq=$DB_site->query_first("SELECT d_at,d_mat,d_df,d_mdf,d_agl,d_g_bag FROM wog_df WHERE d_id=".$p['eq']);
$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);


這一段是不是把那個屬性扣掉的編碼?


這是扣屬性編碼
但只能扣一個裝備的屬性


可以示範扣除頭d_head_id跟身體d_body_id的屬性怎樣做嗎?其餘的我會跟你的示範繼續做下去~謝謝你




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

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

文章ETERNAL » 2015-06-08 5:43 pm

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 (抓取頭屬性)


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

下一頁

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

誰在線上

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

cron