[分享]任務修改
發表於 : 2008-08-08 3:21 pm
每次新增任務是一件超麻煩的事,因為每次也要新增一個檔案,浪費資源效率也減慢不少
所以我就作了一點修改,希望可以幫到各位
資料庫新增
開class/wog_mission_tool.php
尋找:(即最下的地方)
上面加上
開wog_act
尋找:
替換為
在mission資料夾新增wog_mission_run.php
為令到各位不需要更改以前的任務,我在資料庫加入了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
如上述修改改得不好,請各位見諒
所以我就作了一點修改,希望可以幫到各位
資料庫新增
- 代碼: 選擇全部
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]