- 星言幣
- 5666
- 現金
- 89710568
- 威望
- 131
- 點數
- 23
- 潛水
- 831 米
- 金幣
- 920000
- 在線時間
- 1166 小時
- 最後登錄
- 2012-5-12
- 精華
- 7
- 帖子
- 3004
- 積分
- 731
- 閱讀權限
- 255
- 註冊時間
- 2004-1-15
- UID
- 2
   
- 星言幣
- 5666
- 現金
- 89710568
- 威望
- 131
- 點數
- 23
- 潛水
- 831 米
- 金幣
- 920000
- 在線時間
- 1166 小時
- 最後登錄
- 2012-5-12
- 精華
- 7
- 帖子
- 3004
- 積分
- 731
- 閱讀權限
- 255
- 註冊時間
- 2004-1-15
- UID
- 2
|
每次新增任務是一件超麻煩的事,因為每次也要新增一個檔案,浪費資源效率也減慢不少
所以我就作了一點修改,希望可以幫到各位
資料庫新增- 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
複製代碼 開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)){
- $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
- 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_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 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["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為新模式
物品是支援多個或單個,不論任何類型
即是說1*10,2,3,4*100也可以
另外有一點非這裡的限制就是如使用涅魂大大的wog_item_tool.php減肥版的話道具就一定最多只能*9,原版wog_item_tool.php我就不記得有沒有問題 |
|