[以解決] [V3] 一次接多任務-步驟式改法

WOG設定安裝教學

版主: 涅魂, 簫哥

頭像
齋月
 
文章: 557
註冊時間: 2006-02-27 7:54 am

[以解決] [V3] 一次接多任務-步驟式改法

文章齋月 » 2007-02-28 7:47 am

原文內容:http://www.2233.idv.tw/viewtopic.php?t=36796

修改前請先備份檔案,因為太多步驟,怕有漏掉。
如有少PO 請告知。

一次多任務(by涅魂) 步驟式改法 寫:
開啟 class/wog_act_chara.php 寫:尋找
代碼: 選擇全部
            setcookie("wog_cookie_mission_id",$m_item["m_id"]);
            setcookie("wog_cookie_mission_area",$m_item["m_area_id"]);

刪除

開啟 class/wog_fight_select.php 寫:尋找
代碼: 選擇全部
function fire($user_id,$mission_id=0,$m_monster_id=0,$m_kill_num=0,$m_need_num=0)
取代為
代碼: 選擇全部
function fire($user_id,$mission=array(),$mission_id=array())



尋找
代碼: 選擇全部
$mission_str=" and m_mission in (".$mission_id.",0)";
取代為
代碼: 選擇全部
$mission_str=" and m_mission in (".implode(",",$mission_id).",0)";



尋找
代碼: 選擇全部
         if( $m_monster_id==0 )
         {
            $mission_str="and m_mission=0";
            $mission_chk=0;
         }
取代為
代碼: 選擇全部
         if( count($mission_id) <= 0)
         {
         $mission_str="and m_mission=0";
         $mission_chk=0;
         }



尋找
代碼: 選擇全部
               if(!empty($m_monster_id))
               {
                  $m_monster_id=split(",",$m_monster_id);
               }
刪除



尋找
代碼: 選擇全部
if($mission_chk==1 && in_array($m[m_id],$m_monster_id))
取代為
代碼: 選擇全部
if($mission_chk==1 && $mission_id[$m['m_id']])



尋找
代碼: 選擇全部
$sql="update wog_mission_book set m_kill_num=m_kill_num-1 where p_id=".$user_id." and m_id=".$mission_id;
取代為
代碼: 選擇全部
$sql="update wog_mission_book set m_kill_num=m_kill_num-1 where p_id=".$user_id." and m_id=".$mission_id[$m['m_id']];



尋找
代碼: 選擇全部
echo "parent.npc_message('".$m["m_npc_message"]."',".($m_kill_num-1).",".$m_need_num.");\n";
取代為
代碼: 選擇全部
echo "parent.npc_message('".$m["m_npc_message"]."',".($mission[$m['m_mission']]['m_kill_num']-1).",".$mission[$m['m_mission']]['m_need_num'].");\n";



尋找
代碼: 選擇全部
                  if(!empty($m_monster_id))
                  {
                     $m_monster_id=split(",",$m_monster_id);
                  }
刪除



尋找
代碼: 選擇全部
                  if($mission_chk==1 && in_array($m[m_id],$m_monster_id))
                  {
                     $sql="update wog_mission_book set m_kill_num=m_kill_num-1 where p_id=".$user_id." and m_id=".$mission_id;
                     $DB_site->query($sql);
                     echo ","parent.mission_achieve(".($m_kill_num-1).",".$m_need_num.")"";
                  }
                  if($m_[m_mission]==0 || ($m_[m_mission]==1 && $m_monster_id==$m[m_id]))
取代為
代碼: 選擇全部
                  if($mission_chk==1 && $mission_id[$m['m_id']])
                  {
                     $sql="update wog_mission_book set m_kill_num=m_kill_num-1 where p_id=".$user_id." and m_id=".$mission_id[$m['m_id']];
                     $DB_site->query($sql);
                     echo ","parent.mission_achieve(".($mission[$mission_id[$m['m_id']]]['m_kill_num']-1).",".$mission[$mission_id[$m['m_id']]]['m_need_num'].")"";
                  }
                  if($m['m_mission']==0 || ($m['m_mission']!=0 && $m['m_id']==$mission[$m['m_mission']]['m_monster_id']))

開啟 class/wog_act_mission.php 寫:尋找
代碼: 選擇全部
function mission_get($user_id)
{
 ...
}
全部覆蓋為
代碼: 選擇全部
   function mission_get($user_id)
   {
      global $DB_site,$_POST,$lang,$wog_arry;
      if(empty($_POST["m_id"])){alertWindowMsg($lang['wog_act_mission_error1']);}
      $sql="select p_lv,p_sex,ch_id from wog_player where p_id=".$user_id."";
      $p=$DB_site->query_first($sql);
      if(!$p)
      {
         alertWindowMsg($lang['wog_act_relogin']);
      }
      $m_item=$DB_site->query_first("select count(m_id) as num from wog_mission_book where  p_id=".$user_id." and m_status<2");
      if($m_item['num'] >= $wog_arry['mission_get_num'])
      {
         alertWindowMsg($lang['wog_act_mission_error6']);
      }
      $m_item=$DB_site->query_first("select a.m_id from wog_mission_main a ,wog_mission_book b where  b.p_id=".$user_id." and a.m_id=".$_POST["m_id"]." and a.m_not_id=b.m_id ");
      if($m_item){alertWindowMsg($lang['wog_act_mission_error3']);}
      $m_item=$DB_site->query_first("select a.m_id,a.m_area_id,a.m_kill_num from wog_mission_main a LEFT JOIN wog_mission_book b ON  b.p_id=".$user_id." and a.m_id<>b.m_id 
            where a.m_id=".$_POST["m_id"]." and (a.m_job=".$p["ch_id"]." or a.m_job=99) and a.m_lv <= ".$p["p_lv"]." and (a.m_sex=".$p["p_sex"]." or a.m_sex=3)");
      if(!$m_item){alertWindowMsg($lang['wog_act_mission_error3']);}
      $sql="insert wog_mission_book (m_id,p_id,m_status,m_kill_num)values(".$_POST["m_id"].",".$user_id.",0,".$m_item["m_kill_num"].")";
      $DB_site->query($sql);
      unset($m_item);
      showscript("parent.job_end(20)");
      unset($temp_s);
   }



尋找
代碼: 選擇全部
function mission_book($user_id)
{
 ...
}
全部覆蓋為
代碼: 選擇全部
   function mission_book($user_id)
   {
      global $DB_site,$_POST,$lang;
      $m_id=array();
      $result=$DB_site->query("select a.m_body,a.m_subject,a.m_name,a.m_id from wog_mission_main a,wog_mission_book b where b.p_id=".$user_id." and b.m_status<2 and b.m_id=a.m_id");
      while($m_item=$DB_site->fetch_array($result))
      {
         $m_item['m_body']=str_replace("\r\n","&n",$m_item['m_body']);
         $temp_s.=';'.$m_item["m_subject"].",".$m_item["m_name"].",".$m_item["m_body"];
         $m_id[]=$m_item['m_id'];
      }
      if(!$temp_s){alertWindowMsg($lang['wog_act_mission_error5']);}
      $temp_s=substr($temp_s,1,strlen($temp_s));
      $m_id=implode(',',$m_id);
      showscript("parent.mission_book('$temp_s','".$m_id."')");
      unset($m_item);
      unset($temp_s);
   }

開啟 wog.js 寫:尋找
代碼: 選擇全部
function mission_book(s,m_id)
{
 ...
}
全部覆蓋為
代碼: 選擇全部
function mission_book(s,m_id)
{
   message_cls();
   var f=parent.wog_view.document;
   m_id=m_id.split(",");
   var s1=s.split(";");
   for(var i=0;i<m_id.length;i++)
   {
      f.write('<form action="wog_act.php" method="post" target="mission" name=f1>');
      f.write(temp_table1);
      var s2=s1[i].split(",");
      f.write('<tr><td >'+s2[0]+'</td></tr>');
      f.write('<tr><td >委託者:'+s2[1]+'</td></tr>');
      var temp=s2[2];
      while(temp.indexOf("&n") > 0)
      {
         temp=temp.replace("&n","<br>");
      }
      f.write('<tr><td class=b1>'+temp+'</td></tr>');
      f.write('<tr><td ><input type="button" value="完成任務" onClick="parent.foot_trun(\'mission\',\'end\',\'\','+m_id[i]+',\'\')"> <input type="button" value="放棄任務" onClick="parent.foot_trun(\'mission\',\'break\',\'\','+m_id[i]+',\'\')"></td></tr>');
      f.write(temp_table2);
      f.write('</form>');
   }
}

開啟 wog_act_config.php 寫:尋找
代碼: 選擇全部
$wog_arry["pet_eat_money"]=50;//寵物餵食金額
下面加上
代碼: 選擇全部
$wog_arry["mission_get_num"]=3;//同時進行任務上限

開啟 wog_fight.php 寫:尋找
代碼: 選擇全部
function fire($user_id)
{
 ...
}
全部覆蓋為
代碼: 選擇全部
function fire($user_id)
{
   global $DB_site;
   $mission=array();
   $mission_id=array();
   $result=$DB_site->query("SELECT a.m_id,a.m_monster_id,a.m_kill_num as m_need_num,b.m_kill_num FROM wog_mission_main a,wog_mission_book b WHERE b.p_id=".$user_id." AND b.m_status=0 AND a.m_id=b.m_id AND a.m_area_id=".$_POST['act']);
   while($m_item=$DB_site->fetch_array($result))
   {
      if($m_item['m_kill_num'] == 0)
      $DB_site->query("update wog_mission_book set m_status=1 where p_id=".$user_id." and m_id=".$m_item['m_id']." ");
      else
      {
         $mission[$m_item['m_id']]=array('m_id' => $m_item['m_id'],'m_monster_id' => $m_item['m_monster_id'],'m_kill_num' => $m_item['m_kill_num'],'m_need_num' => $m_item['m_need_num']);
         $m_id=@explode(',',$m_item['m_monster_id']);
         foreach($m_id as $key=>$value)
         $mission_id[$m_id[$key]]=$m_item['m_id'];
      }
   }   $wog_act_class = new wog_fight_select;
   $wog_act_class->fire($user_id,$mission,$mission_id);
}


儲存所有檔案,完畢


呀成 你照著步驟修改看看吧~~
這用了我一小時 XDD
(涅為了寫出這個花了更多時間阿 :face19:



回到 精華區

誰在線上

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