-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-08 3:21 pm
每次新增任務是一件超麻煩的事,因為每次也要新增一個檔案,浪費資源效率也減慢不少
所以我就作了一點修改,希望可以幫到各位
資料庫新增
- 代碼: 選擇全部
ALTER TABLE `wog_mission_main` ADD `put_item_id` varchar(250) ALTER TABLE `wog_mission_main` ADD `get_item_id` varchar(250) ALTER TABLE `wog_mission_main` ADD `m_run` tinyint(4) UNSIGNED DEFAULT '0' NOT NULL ALTER TABLE `wog_mission_main` ADD `get_money` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `get_item_id` ;
開class/wog_mission_tool.php 尋找:(即最下的地方) - 代碼: 選擇全部
} ?>
上面加上 - 代碼: 選擇全部
function mission_itema($user_id,$m_id) { global $DB_site,$_POST,$a_id,$lang,$wog_arry,$syn_debug,$syn_item,$wog_item_tool; if(empty($m_id)){alertWindowMsg($lang['wog_act_syn_error6']);} $syn_itema=$DB_site->query_first("select a.put_item_id,a.get_item_id from wog_mission_main a where a.m_id=".$m_id." "); if(!$syn_itema){alertWindowMsg($lang['wog_act_syn_error6']);} $item=split(",",$syn_itema["put_item_id"]); $item_pack_s=array(); $sql="select a_id,d_body_id,d_foot_id,d_hand_id,d_head_id, d_item_id from wog_item where p_id=".$user_id." "; $item_pack=$DB_site->query_first($sql); $item_pack_s=array(); for($i=0;$i<count($item);$i++){ if(eregi("[\*]", $item[$i])){ $item_s=split("\*",$item[$i]); }else{ $item_s[0]=$item[$i]; $item_s[1]=1; } check_type($item_s[0]); $item_pack_s[$i]=$a_id; if(!$item_packs[$a_id]){ $item_packs[$a_id]=array(); $item_packs[$a_id]=split(",",$item_pack[$a_id]); } if($a_id=="d_item_id") { $item_packs[$a_id]=$wog_item_tool->item_out($user_id,$item_s[0],$item_s[1],$item_packs[$a_id]); }else{ for($ii=0;$ii<$item_s[1];$ii++){ $item_packs[$a_id]=$wog_item_tool->item_out($user_id,$item_s[0],1,$item_packs[$a_id]); } } } $temp_sql=""; for($i=0;$i<count($item_pack_s);$i++){ $a_ids=$item_pack_s[$i]; if(!eregi($a_ids, $temp_sql)){ $s=implode(",",$item_packs[$a_ids]); if($item_pack[$a_ids]=="") { $s=substr($s,1,strlen($s)); } $temp_sql.=",".$a_ids."='".$s."'"; } } $temp_sql=substr($temp_sql,1,strlen($temp_sql)); $DB_site->query("update wog_item set ".$temp_sql." where p_id=".$user_id." "); unset($temp_sql,$a_ids,$item_packs,$item_pack,$a_id); } function mission_rewarda($user_id,$m_id) { global $DB_site,$_POST,$a_id,$lang,$wog_arry,$syn_debug,$syn_item,$wog_item_tool; if(empty($m_id)){alertWindowMsg($lang['wog_act_syn_error6']);} $syn_itema=$DB_site->query_first("select a.put_item_id,a.get_item_id from wog_mission_main a where a.m_id=".$m_id." "); if(!$syn_itema){alertWindowMsg($lang['wog_act_syn_error6']);} $item=split(",",$syn_itema["get_item_id"]); $item_pack_s=array(); $sql="select a_id,d_body_id,d_foot_id,d_hand_id,d_head_id, d_item_id from wog_item where p_id=".$user_id." "; $item_pack=$DB_site->query_first($sql); $item_pack_s=array(); for($i=0;$i<count($item);$i++){ if(eregi("[\*]", $item[$i])){ $item_s=split("\*",$item[$i]); }else{ $item_s[0]=$item[$i]; $item_s[1]=1; } check_type($item_s[0]); $item_pack_s[$i]=$a_id; if(!$item_packs[$a_id]){ $item_packs[$a_id]=array(); $item_packs[$a_id]=split(",",$item_pack[$a_id]); } if($a_id=="d_item_id") { $item_packs[$a_id]=$wog_item_tool->item_in($item_packs[$a_id],$item_s[0],$item_s[1]); }else{ for($ii=0;$ii<$item_s[1];$ii++){ $item_packs[$a_id]=$wog_item_tool->item_in($item_packs[$a_id],$item_s[0]); } } } $temp_sql=""; for($i=0;$i<count($item_pack_s);$i++){ $s=""; $a_ids=$item_pack_s[$i]; if(!eregi($a_ids, $temp_sql)){ for($j=0;$j<count($item_packs[$a_ids]);$j++){ if($item_packs[$a_ids][$j]!=""){ $s.=",".$item_packs[$a_ids][$j]; } } $s=substr($s,1,strlen($s)); $temp_sql.=",".$a_ids."='".$s."'"; } } $temp_sql=substr($temp_sql,1,strlen($temp_sql)); $DB_site->query("update wog_item set ".$temp_sql." where p_id=".$user_id." "); }
開wog_act 尋找: - 代碼: 選擇全部
case "end": include("./class/wog_item_tool.php"); include("./class/wog_mission_tool.php"); ................ break;
替換為 - 代碼: 選擇全部
case "end": include("./class/wog_item_tool.php"); include("./class/wog_mission_tool.php"); //include("./mission/wog_mission_".$_POST["temp_id"].".php"); $sql="select m_run from wog_mission_main where m_id=".$_POST["temp_id"]." "; $mission=$DB_site->query_first($sql); if($mission[0]==0) { include("./mission/wog_mission_".$_POST["temp_id"].".php"); }else{ include("./mission/wog_mission_run.php"); } $wog_item_tool= new wog_item_tool; $wog_mission_tool= new wog_mission_tool; mission_end($_COOKIE["wog_cookie"],$_POST["temp_id"]); unset($wog_item_tool); unset($wog_mission_tool); break;
在 mission資料夾新增wog_mission_run.php - 代碼: 選擇全部
<? /*===================================================== Copyright (C) ETERNAL<iqstar.tw@gmail.com> Modify : 2005/11/01 URL : http://www.2233.idv.tw This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ===================================================== */ function mission_start($user_id,$m_id) { } function mission_body($user_id,$m_id) { } function mission_end($user_id,$m_id) { global $DB_site,$_POST,$a_id,$lang,$wog_item_tool,$wog_mission_tool;
$m_book=$wog_mission_tool->mission_check($user_id,$m_id); $sql="select m_id,m_run,put_item_id,get_item_id,get_money from wog_mission_main where m_id=".$m_book["m_id"]." "; $mission=$DB_site->query_first($sql); if($m_book["m_pet_id"]!=0){ $wog_mission_tool->mission_pet($user_id,$m_book["m_pet_id"]); }
if($mission["get_money"]){ $wog_mission_tool->mission_money($user_id,$mission["get_money"]); }
if($mission["put_item_id"]){ $wog_mission_tool->mission_itema($user_id,$m_id); } if($mission["get_item_id"]){ $wog_mission_tool->mission_rewarda($user_id,$m_id); }
$wog_mission_tool->mission_status_update($user_id,$m_id,$m_book["m_end_message"],$m_book["m_lv"]); } ?>
為令到各位不需要更改以前的任務,我在資料庫加入了m_run,0為使用以前的模式,1為新模式
為免出現像上次亂碼的問題,我已在我的論壇發布
http://www.kw86.com/upload/thread-3911-1-1.html
物品是支援多個或單個,不論任何類型
即是說1*10,2,3,4*100也可以
另外有一點非這裡的限制就是如使用涅魂大大的wog_item_tool.php減肥版的話道具就一定最多只能*9,原版wog_item_tool.php我就不記得有沒有問題
[已修改於該頁]修正空缺值的問題
http://www.et99.org/viewtopic.php?p=3987973#3987973
如上述修改改得不好,請各位見諒 涅魂 寫:<u>積分 +2</u>
分享修改
at 2008-08-08 03:31 pm[/point]
最後由 minglo 於 2009-09-09 6:30 pm 編輯,總共編輯了 10 次。
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-08 4:05 pm
此修改適於Control Panel for Online FF Battle-WOG v3[作者:齋月]上
此修改同時發布於我的論壇上,避免出現亂碼情況
http://www.kw86.com/upload/viewthread.p ... 2#pid20378
開admin.js
尋找
- 代碼: 選擇全部
f.write('<tr><td>結束內容</td><td colspan=2><textarea cols="58" rows="10" name="m_end_message">'+s[2]+'</textarea></td></tr>');
下面加上 - 代碼: 選擇全部
f.write('<tr><td colspan=3>'+hr+'以下是新版任務才可使用</td></tr>'); f.write('<tr><td>需要物品</td><td colspan=2><textarea cols="58" rows="10" name="put_item_id">'+s[18]+'</textarea></td></tr>'); f.write('<tr><td>獲得獎勵</td><td colspan=2><textarea cols="58" rows="10" name="get_item_id">'+s[19]+'</textarea></td></tr>'); f.write('<tr><td>版本</td><td>'+(s[20]==0?"舊版":"新版")+'</td><td><input type="radio" value="0" name="m_run">舊版 <input type="radio" value="1" name="m_run">新版 </tr>');
尋找 - 代碼: 選擇全部
showadmin("ch");
加上 - 代碼: 選擇全部
f.f1.m_run[s[20]].checked=true;
開adminmain.php 尋找 - 代碼: 選擇全部
$imodify["pet_name"].",".$m
後面加上 - 代碼: 選擇全部
.",".$imodify["put_item_id"].",".$imodify["get_item_id"].",".$imodify["m_run"]
尋找 - 代碼: 選擇全部
if($_POST["store"]=="")$_POST["store"]=0; $temp_s=...............(略) $mode=0;
在 - 代碼: 選擇全部
$temp_s=...............
的 - 代碼: 選擇全部
";
前方加上 - 代碼: 選擇全部
,,,2
尋找admin_mission_main_sub() 再 尋找$DB_site->query("Update ..... 於 - 代碼: 選擇全部
where m_id=
前加上 - 代碼: 選擇全部
,put_item_id='".$_POST["put_item_id"]."',get_item_id='".$_POST["get_item_id"]."',m_run='".$_POST["m_run"]."'
再 尋找$DB_site->query("INSERT INTO .... 於 - 代碼: 選擇全部
) VALUES (
前加上 - 代碼: 選擇全部
,put_item_id,get_item_id,m_run
於 - 代碼: 選擇全部
)");
前加上 - 代碼: 選擇全部
,'".$_POST["put_item_id"]."','".$_POST["get_item_id"]."','".$_POST["m_run"]."'
-
leo199345
-
- 文章: 198
- 註冊時間: 2006-01-18 9:32 pm
由 leo199345 » 2008-08-09 11:05 am
還未嘗試..不過想問些問題..
這個系統很讚的,呵呵
MING大..對於任務需要物品和獎勵物品..
能同時有多個嗎?
即是...例如需要ID:1,2,3的物品來回任務..完任務後獎勵ID:4,5,6
現在能嗎?
送上雞皮一枚
================
發現些東西了,呵呵
- 代碼: 選擇全部
function mission_itema($user_id,$m_id) { global $DB_site,$_POST,$a_id,$lang,$wog_arry,$syn_debug,$syn_item,$wog_item_tool; if(empty($m_id)){alertWindowMsg($lang['wog_act_syn_error6']);} $syn_itema=$DB_site->query_first("select a.put_item_id,a.get_item_id from wog_mission_main a where a.m_id=".$m_id." "); if(!$syn_itema){alertWindowMsg($lang['wog_act_syn_error6']);} $item=split(",",$syn_itema["put_item_id"]); $item_pack_s=array(); $sql="select a_id,d_body_id,d_foot_id,d_hand_id,d_head_id, d_item_id[color=red],d_incantation_id,d_card_id,d_sitpet_id [/color] from wog_item where p_id=".$user_id." "; $item_pack=$DB_site->query_first($sql); $item_pack_s=array(); for($i=0;$i<count($item);$i++){ if(eregi("[\*]", $item[$i])){ $item_s=split("\*",$item[$i]); }else{ $item_s[0]=$item[$i]; $item_s[1]=1; } check_type($item_s[0]); $item_pack_s[$i]=$a_id; if(!$item_packs[$a_id]){ $item_packs[$a_id]=array(); $item_packs[$a_id]=split(",",$item_pack[$a_id]); } if($a_id=="d_item_id") { $item_packs[$a_id]=$wog_item_tool->item_out($user_id,$item_s[0],$item_s[1],$item_packs[$a_id]); }else{ for($ii=0;$ii<$item_s[1];$ii++){ $item_packs[$a_id]=$wog_item_tool->item_out($user_id,$item_s[0],1,$item_packs[$a_id]); } } } $temp_sql=""; for($i=0;$i<count($item_pack_s);$i++){ $a_ids=$item_pack_s[$i]; if(!eregi($a_ids, $temp_sql)){ $temp_sql.=",".$a_ids."='".implode(",",$item_packs[$a_ids])."'"; } } $temp_sql=substr($temp_sql,1,strlen($temp_sql)); $DB_site->query("update wog_item set ".$temp_sql." where p_id=".$user_id." "); unset($temp_sql,$a_ids,$item_packs,$item_pack,$a_id); } function mission_rewarda($user_id,$m_id) { global $DB_site,$_POST,$a_id,$lang,$wog_arry,$syn_debug,$syn_item,$wog_item_tool; if(empty($m_id)){alertWindowMsg($lang['wog_act_syn_error6']);} $syn_itema=$DB_site->query_first("select a.put_item_id,a.get_item_id from wog_mission_main a where a.m_id=".$m_id." "); if(!$syn_itema){alertWindowMsg($lang['wog_act_syn_error6']);} $item=split(",",$syn_itema["get_item_id"]); $item_pack_s=array(); $sql="select a_id,d_body_id,d_foot_id,d_hand_id,d_head_id, d_item_id[color=red],d_incantation_id,d_card_id,d_sitpet_id[/color] from wog_item where p_id=".$user_id." "; $item_pack=$DB_site->query_first($sql); $item_pack_s=array(); for($i=0;$i<count($item);$i++){ if(eregi("[\*]", $item[$i])){ $item_s=split("\*",$item[$i]); }else{ $item_s[0]=$item[$i]; $item_s[1]=1; } check_type($item_s[0]); $item_pack_s[$i]=$a_id; if(!$item_packs[$a_id]){ $item_packs[$a_id]=array(); $item_packs[$a_id]=split(",",$item_pack[$a_id]); } if($a_id=="d_item_id") { $item_packs[$a_id]=$wog_item_tool->item_in($item_packs[$a_id],$item_s[0],$item_s[1]); }else{ for($ii=0;$ii<$item_s[1];$ii++){ $item_packs[$a_id]=$wog_item_tool->item_in($item_packs[$a_id],$item_s[0]); } } } $temp_sql=""; for($i=0;$i<count($item_pack_s);$i++){ $a_ids=$item_pack_s[$i]; if(!eregi($a_ids, $temp_sql)){ $temp_sql.=",".$a_ids."='".implode(",",$item_packs[$a_ids])."'"; } } $temp_sql=substr($temp_sql,1,strlen($temp_sql)); $DB_site->query("update wog_item set ".$temp_sql." where p_id=".$user_id." "); }
如果自己wog沒這三種東西就要把它們刪除喔~
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-09 11:21 am
這個我忘記了說,物品是支援多個或單個,不論任何類型
即是說1*10,2,3,4*100也可以
另外有一點非這裡的限制就是如使用涅魂大大的wog_item_tool.php減肥版的話道具就一定最多只能*9,原版wog_item_tool.php我就不記得有沒有問題
另外已刪除多出來的東西
-
leo199345
-
- 文章: 198
- 註冊時間: 2006-01-18 9:32 pm
由 leo199345 » 2008-08-09 11:29 am
喔...這真是非常讚的分享了..
立即試用~^^
-
10度C~
-
- 文章: 493
- 註冊時間: 2005-12-22 10:25 pm
由 10度C~ » 2008-08-09 2:49 pm
minglo 寫:這個我忘記了說,物品是支援多個或單個,不論任何類型 即是說1*10,2,3,4*100也可以 另外有一點非這裡的限制就是如使用涅魂大大的wog_item_tool.php減肥版的話道具就一定最多只能*9,原版wog_item_tool.php我就不記得有沒有問題 另外已刪除多出來的東西
上限應該是可以改的~跟減肥版應該沒什麼關係@@
我的 歡迎大家來玩玩<~此圖還在~表示我WOG還在= =
雖然沒有別人的好~但是還是希望可以多多推廣.....
有目標了:圖X系統 20%
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-09 3:08 pm
10度C~ 寫:minglo 寫:這個我忘記了說,物品是支援多個或單個,不論任何類型 即是說1*10,2,3,4*100也可以 另外有一點非這裡的限制就是如使用涅魂大大的wog_item_tool.php減肥版的話道具就一定最多只能*9,原版wog_item_tool.php我就不記得有沒有問題 另外已刪除多出來的東西
上限應該是可以改的~跟減肥版應該沒什麼關係@@
我手上正使用減肥版的確出現這個限制,主要原因
- 代碼: 選擇全部
if($item_num < 0 || $item_num >$this->itemMax){ alertWindowMsg($lang['wog_act_errdate']); }
這部分的檢查影響,其實是可以作修改,不過我認為沒有太大必要
如果是要修改,我可以遲一點發佈出來@@
-
10度C~
-
- 文章: 493
- 註冊時間: 2005-12-22 10:25 pm
由 10度C~ » 2008-08-09 3:10 pm
minglo 寫:我手上正使用減肥版的確出現這個限制,主要原因 - 代碼: 選擇全部
if($item_num < 0 || $item_num >$this->itemMax){ alertWindowMsg($lang['wog_act_errdate']); }
這部分的檢查影響,其實是可以作修改,不過我認為沒有太大必要 如果是要修改,我可以遲一點發佈出來@@
不是出現在這嗎= =...... - 代碼: 選擇全部
class wog_item_tool{ [color=red]var $itemMax=99;[/color] function dataCheck(&$arr,&$user_id)
我的 歡迎大家來玩玩<~此圖還在~表示我WOG還在= =
雖然沒有別人的好~但是還是希望可以多多推廣.....
有目標了:圖X系統 20%
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-09 3:44 pm
原減肥版是這個呀= =
var $itemMax=9;
而且我不想修改數量限制=.=
不然我的倉庫還有用
-
黑咪
-
- 文章: 161
- 註冊時間: 2007-12-24 11:23 am
- 性別: 男生
由 黑咪 » 2008-08-10 8:59 pm
不知為什麼...我使用新版不能完成任務><
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-10 9:45 pm
可不可以給我看看你的修改?
我也是用這個修改,到目前為止我這邊也沒有錯誤的報告@@
-
黑咪
-
- 文章: 161
- 註冊時間: 2007-12-24 11:23 am
- 性別: 男生
由 黑咪 » 2008-08-11 8:11 am
是我個人不細心問題...
抱歉
最後由 黑咪 於 2008-08-11 6:41 pm 編輯,總共編輯了 1 次。
-
minglo
-
- 文章: 250
- 註冊時間: 2004-01-17 10:05 am
- 來自: hong kong
-
由 minglo » 2008-08-11 8:45 am
有沒有在mission資料夾新增wog_mission_run.php??
資料庫有加入了
ALTER TABLE `wog_mission_main` ADD `put_item_id` varchar(250)
ALTER TABLE `wog_mission_main` ADD `get_item_id` varchar(250)
ALTER TABLE `wog_mission_main` ADD `m_run` tinyint(4) UNSIGNED DEFAULT '0' NOT NULL
這些嗎?
-
黑咪
-
- 文章: 161
- 註冊時間: 2007-12-24 11:23 am
- 性別: 男生
由 黑咪 » 2008-08-11 6:40 pm
-﹏-
抱歉,原來是我把wog_mission_run.php放在class..
打擾了大大..抱歉
-
黑咪
-
- 文章: 161
- 註冊時間: 2007-12-24 11:23 am
- 性別: 男生
由 黑咪 » 2008-08-11 9:04 pm
又來問題了
任務獎勵的物品的問題
個案:玩家的武器背包是空的時候完成有送武器的任務時,該現家的武器背包便會變成〔,123〕,弄致玩家開不到武器背包
希望大大能夠解決
|