Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

====开心农场====除草自动放进牧场包裹里用于牧场喂养,调整牧草产量

[复制链接]
liuzhly 发表于 2010-1-8 12:29:11 | 显示全部楼层 |阅读模式
本帖最后由 liuzhly 于 2010-01-09 18:19 编辑

由于牧场BUG修改,导致动物胃口过大,特增加牧草产量,除草养牧~

1、修改牧草产量,由原来的 每块地 25 的产量提高为 120 棵 ,但是降低金币价格,由原来的 6 金币降为 1 金币,想通过牧草挣钱的朋友就不要操心了~~,另外,系统自动设置好友可偷取的数量,原来 25 棵,好友能偷取的是 40% ,就是 10 棵,改成 120 ,仍然是 40% 好友可以偷,所以如果被好友偷,最后能剩下 120 * 0.6 =72 棵,好友多了要看好地啊

2、地里的杂草,原来除了就除了,现在修改为自动增加到“牧场”包裹里,用于喂养动物,谁说动物不吃杂草?
================================================================================
1、数据表增加字段:zacao ,类型:int ,默认值:0

ALTER TABLE UChome_plug_newfarm ADD `zacao` int(10) NOT NULL default '0'


打开 newfarmjson.php ,找到除草代码,添加红色代码::

if ( $_REQUEST['mod'] == "farmlandstatus" && $_REQUEST['act'] == "clearWeed" )

。。。。代码省略。。。。。
                                if ( intval( $_REQUEST['ownerId'] ) == $_SGLOBAL['supe_uid'] )
                                {
                                                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set money=money+2,exp=exp+2,farmlandstatus='".$farm_srt."',zacao=zacao+1 where uid=".$_SGLOBAL['supe_uid'] );
。。。。。代码省略。。。。。。。。。。。。
                                                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set money=money+2,exp=exp+2,zacao=zacao+1 where uid=".$_SGLOBAL['supe_uid'] );



PS:为什么不直接加到包裹里??说明一下:为了节省资源,减少数据库查询与更新,特增加中间字段用于缓存杂草,当用户打开牧场,再添加杂草为牧草!

然后打开 newmc.php ,找到添加红色代码:

if ( $_REQUEST['mod'] == "cgi_enter" || $_REQUEST['mod'] == "cgi_enter?" )
{

。。。。。代码省略。。。。。。。。。。。。
                                $query = $_SGLOBAL['db']->query( "SELECT money,animal,mc_exp,mc_taskid,wenzi,parade,dabian,mc_a,fruit,zacao FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] );
                                while ( $value = $_SGLOBAL['db']->fetch_array( $query ) )
                                {
                                                                $list[] = $value;
                                }
        $zacao = $list[0][zacao];
        $zacaosql = "";
        if($zacao > 0){
                $mc_id = 40;
                $fruitarr = json_decode( $list[0][fruit] );
                $fruitarr->$mc_id += $zacao;
                $fruitarr = json_encode( $fruitarr );
                $zacao = 0;
                $zacaosql = ",fruit='".$fruitarr."',zacao=0";
        }

                                $animal = ( array )json_decode( $list[0][animal] );
                                                //wenzi

。。。。。代码省略。。。。。。。。。。。。
                                $animal[animalfeedtime] = $_SGLOBAL['timestamp'];
                                $stranimal = json_encode( $animal );
                                $animal[animalfood] = floor( $animal[animalfood] );
                                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set animal='".$stranimal."'{$zacaosql} where uid=".$_SGLOBAL['supe_uid'] );


当用户加载自己牧场 自动 增加杂草为牧草 !

另外,要适当调整牧草价格,这是本人设置的,牧草产量:120,价格:1 金币:

                                "40" => array( "cId" => 40, "cName" => "\\u7267\\u8349 ", "cType" => "1", "growthCycle" => "28800", "maturingTime" => "1", "expect" => 150, "output" => "120", "sale" => "1", "price" => "120", "cLevel" => "0", "cropExp" => "10", "cCharm" => "0", "cropChr" => "0" ),

商店:
if ( $_REQUEST['mod'] == "shop" && $_REQUEST['act'] == "getShopInfo" ){ //[=2=]
        if ( $_REQUEST['type'] == "1" ){
echo "{\"1\":[{\"cId\":40,\"cName\":\"\\u7267\\u8349 \",\"cType\":\"1\",\"growthCycle\":\"28800\",\"maturingTime\":\"1\",\"expect\":120,\"output\":\"120\",\"sale\":\"1\",\"price\":\"120\",\"cLevel\":\"0\",\"cropExp\":\"10\",\"cCharm\":\"0\",\"cropChr\":\"0\"},{.....后面省略

到此完毕!!!


在农场包裹里加上自动增加代码,这个可以忽略,因为打开牧场自动增加,如果想友好点,打开包裹也自动增加,可加可不加的功能,自己看着办,
if ( $_REQUEST['mod'] == "repertory" && $_REQUEST['act'] == "getUserCrop" )
{
                                $fruit = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT fruit FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] ), 0 );
                                $fruit = ( array )json_decode( $fruit );

                                $fruitarr = array( );
                                foreach ( $fruit as $key => $value )
                                {
                                                                if ( 0 < $value )
                                                                {
                                                                                                $fruitarr[] = "{\"cId\":".$key.",\"cType\":".$crops[$key][cType].",\"cName\":\"".$crops[$key][cName]."\",\"amount\":".$value.",\"price\":\"".$crops[$key][sale]."\"}";
                                                                }
                                }
                                $fruitarr = json_encode( $fruitarr );
                                $fruitarr = str_replace( "\"{", "{", $fruitarr );
                                $fruitarr = str_replace( "}\"", "}", $fruitarr );
                                echo stripslashes( $fruitarr );
}
将绿色代码修改如下红色代码:
        $query = $_SGLOBAL['db']->query( "SELECT fruit,zacao FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] );
        while ( $value = $_SGLOBAL['db']->fetch_array( $query ) ){
                $list[] = $value;
        }
        $fruit = json_decode( $list[0][fruit] );
        $zacao = $list[0][zacao];
        if($zacao > 0){
                $mc_id = 40;
                $fruit->$mc_id += $zacao;
                $zacao = 0;
                $_SGLOBAL['db']->query( "UPDATE ".tname( "plug_newfarm" )." set fruit='".json_encode( $fruit )."',zacao=0 where uid=".$_SGLOBAL['supe_uid'] );
        }

评分

2

查看全部评分

回复

使用道具 举报

xiaolooo 发表于 2010-1-8 13:05:08 | 显示全部楼层
顶!!!感谢分享
回复

使用道具 举报

xiaolooo 发表于 2010-1-8 13:05:58 | 显示全部楼层
顶!!!感谢分享
回复

使用道具 举报

hs999 发表于 2010-1-8 13:16:14 | 显示全部楼层
感谢分享,DZ有你更精彩
回复

使用道具 举报

kazzak 发表于 2010-1-8 13:19:59 | 显示全部楼层
这种帖子就是传说中需要顶的那种
回复

使用道具 举报

patiku 发表于 2010-1-8 17:16:31 | 显示全部楼层
顶~~
支持好东西、好人品!!
回复

使用道具 举报

dansui1314 发表于 2010-1-8 17:26:24 | 显示全部楼层
就是我想要的,谢了!!
回复

使用道具 举报

dansui1314 发表于 2010-1-8 18:01:51 | 显示全部楼层
牧草加到农场仓库有个小问题,累加后不会刷新
比如第一次我除了7颗草,打开仓库后显示有7颗
我再去帮人除掉3颗草,打开仓库还是显示示7颗
如果是水果,就会自动更新为最新数量
不知道有没有解决办法
回复

使用道具 举报

samfs 发表于 2010-1-8 19:04:32 | 显示全部楼层
高手乍现,顶起无限
回复

使用道具 举报

 楼主| liuzhly 发表于 2010-1-8 19:06:59 | 显示全部楼层
这个事我查过,应该是flash控制~~

flash内在判断,如果是鼠标点击 偷取、收获、清理仓库、卖出果实操作,点击仓库,刷新包裹

如果是其他,点击仓库,使用缓存,我通过程序代码证实了,目前没办法!

其实不用那个包裹,让用户自己到牧场去查看也可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-10-21 18:44 , Processed in 0.126993 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表