http://www.et99.net/topic-t29537.html
這個是關於脫下當前裝備的編碼
如果要變成一按就能脫下裝備欄所有的裝備
那應該可以怎樣搞呢?
請問有大大可以教我嗎
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?居然有人能挖出這篇古文 這功能挺有意思的,以前我居然沒注意到 現在改這編碼的人很少,我建議你可能要先自己研究了 基本上涅魂寫的那些code邏輯沒什麼問題,就看怎麼套用上去 另外裝備有些新的欄位,對於新欄位要自己新增編碼 水色論壇 http://www.et99.net
簡恩峻分享
Re: [V3]請問一下怎麼弄一鍵脫裝的功能? 開啟檔案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);"); } 這一堆編碼大慨是.... 關於如果背包滿了,卸下裝備時不讓裝備直接卸下 還是有別的意思?
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?開啟檔案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+'\')"> 請問如果改成這樣可以做到一按就能把所有裝脫下嗎?
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?應該不行
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
簡恩峻分享
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?那個改成每一件裝備都抓應該怎麼改...
請問可以示範一小部分嗎? 或者你需要什麼code才能做示範? 我可以提供一下0,0
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?
不知道你用哪一個版本,下面是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
簡恩峻分享
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?這個是原本的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."')"); }
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?$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
簡恩峻分享
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?$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); 這一段是不是把那個屬性扣掉的編碼?
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?
這是扣屬性編碼 但只能扣一個裝備的屬性 水色論壇 http://www.et99.net
簡恩峻分享
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?
可以示範扣除頭d_head_id跟身體d_body_id的屬性怎樣做嗎?其餘的我會跟你的示範繼續做下去~謝謝你
Re: [V3]請問一下怎麼弄一鍵脫裝的功能?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官方聯盟推廣處
正在瀏覽這個版面的使用者:沒有註冊會員 和 8 位訪客