[閒聊]在WOG4上放牧場(開始製作...)

提供WOG各方面的技術問題,並提供最新path更新。

版主: 涅魂, 簫哥, 10度C~

aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

[閒聊]在WOG4上放牧場(開始製作...)

文章aaasss9555 » 2010-01-09 8:17 pm

相信大家都知道facebook的開心農場,可以種菜、養動物...和偷菜
我就想說也可以在WOG4製作一個外掛-牧場
讓大家可以偷菜賺錢,也可以養動物,想要失流量也可以新增一個布置系統
在此提供大家一個參考,等寒假再來研究看看

代碼: 選擇全部
★這次的牧場系統,我想跟牧場整合在一起
牧場功能:種菜、偷菜、放蟲...
寵物功能:幫忙除蟲...
介面:將原先的寵物畫面改成右半部59%右半部牧場畫面39%,牧場畫面有簡單的背景和各不同時期的植物圖,在土地上按左鍵會出現視窗,可選擇執行動作


wog_crop資料庫 寫:_/_/_/_/_/_/_/_/_/_/_/_/
_/ wog_crop _/
_/_/_/_/_/_/_/_/_/_/_/_/
cr_id 作物ID
cr_name 作物名稱
cr_price 單價
cr_amount 收成數量 [隨機數(cr_amount-10)~(cr_amount)]
cr_time 成長時間(秒)

舉例:
1,胡蘿蔔,10,100,60
2,玉米,30,50,90
...........

wog_crop資料庫 寫:_/_/_/_/_/_/_/_/_/_/_/_/
_/ wog_earth _/
_/_/_/_/_/_/_/_/_/_/_/_/
ea_id 放土地ID
p_id 放玩家ID
earth 土地資訊(作物ID)
ea_water 溼度
ea_pest 蟲害
ea_time 時間


另外如有建議會更好的資料庫結構可以提出來一起討論

但還是先把單機部份製作好,再來新增互動功能


最後由 aaasss9555 於 2010-01-13 7:14 pm 編輯,總共編輯了 10 次。
書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。

狂人kkill
 
文章: 28
註冊時間: 2009-12-25 2:06 am

文章狂人kkill » 2010-01-09 8:21 pm

不错,我也想过.可惜想到会很复杂就没搞了呵呵.希望有此精神的朋友做出来分享...


没有不可能完成的事情,只有懒散不去完成事情的人!

tyteen4a03
 
文章: 53
註冊時間: 2007-09-09 8:35 pm
性別: 男生

文章tyteen4a03 » 2010-01-10 6:20 pm

在WOG4種HP水XD



aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

文章aaasss9555 » 2010-01-13 7:16 pm

狂人kkill 寫:不错,我也想过.可惜想到会很复杂就没搞了呵呵.希望有此精神的朋友做出来分享...


我就是那個有精神的人
原來在寫這篇文章時只是純構想
完全沒有想過可以靠自己的力量
現在顯示部分已經差不多了


書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。

aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

文章aaasss9555 » 2010-02-02 7:16 pm

這是我照個寵物飢餓寫的植物定時會-1水分,不過好像怪怪的
問題是假設"farm_dry_time"已經可以扣水分2,不是扣一次時ea_dateline已經變成現在時間了
要執行第二次時farm_dry_time就沒有小於ea_dateline了
代碼: 選擇全部
         $f=$DB_site->query_first("select ea_water,ea_dateline from wog_farm where p_id=".$userid);
         if($f)
         {
            if($time-$f["ea_dateline"] > $wog_arry["farm_dry_time"]*60*60 )
            {
               $f["ea_water"]=$f["ea_water"]-1;
               if($f["ea_water"] < 0){$f["ea_water"]=0;}
               $DB_site->query("update wog_farm set ea_dateline=".$time.",ea_water=".$f["ea_water"]." where p_id=".$userid);
            }
         }



書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2010-02-03 2:05 pm

這是常見老問題,改用while去跑吧
代碼: 選擇全部
$f=$DB_site->query_first("select ea_water,ea_dateline from wog_farm where p_id=".$userid);
         if($f)
         {
            while($time-$f["ea_dateline"] > $wog_arry["farm_dry_time"]*60*60 )
            {
               [color=red]$f['ea_dateline'] += $wog_arry["farm_dry_time"]*60*60;[/color]
               $f["ea_water"]=$f["ea_water"]-1;
               if($f["ea_water"] < 0){$f["ea_water"]=0; [color=brown]break;[/color]}
               
            }
            [color=red]$DB_site->query("update wog_farm set ea_dateline=".$time.",ea_water=".$f["ea_water"]." where p_id=".$userid);[/color]
         }

對效能龜毛的話,可以換成計算式去解決
代碼: 選擇全部
$f=$DB_site->query_first("select ea_water,ea_dateline from wog_farm where p_id=".$userid);
         if($f)
         {
            [color=red]$f["ea_water"] -= floor( ($time-$f["ea_dateline"]) / ($wog_arry["farm_dry_time"]*60*60) );[/color]
            if($f["ea_water"] < 0){$f["ea_water"]=0;}
            $DB_site->query("update wog_farm set ea_dateline=".$time.",ea_water=".$f["ea_water"]." where p_id=".$userid);
         }



圖檔

aaasss9555
 
文章: 172
註冊時間: 2009-07-30 9:15 pm

文章aaasss9555 » 2010-02-03 3:04 pm

不懂為什麼在while裡面
if($f["ea_water"] < 0){$f["ea_water"]=0;}
要加上break

另外每澆一次水,為了及時顯示現在的水分
$this->farm_index($user_id);
我都讓她重新執行一次顯示農場介面
不過這樣感覺很沒效率
有沒有辦法只更新ea_water的資料
而達到即時顯示效果


書本的好壞不在於厚度而是內容;
人生的意義在於內涵而不是長短。


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2010-02-03 7:25 pm

break可加可不加,加上去能讓迴圈在適當時機更快結束

而局部更新的問題就與ajax相關了,實作方法不少,建議你可以先從ajax基礎開始了解 :wink:


圖檔


回到 Online FF Battle-WOG官方聯盟推廣處

誰在線上

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