本帖最后由 liuzhly 于 2010-01-06 09:23 编辑
继续找到:
if ( $_REQUEST['mod'] == "cgi_feed_food" )
{
// 一次最多200棵草
if( !is_numeric($_REQUEST['foodnum']) || $_REQUEST['foodnum']<1 ) { exit(); }
$_REQUEST['foodnum']>201 && $_REQUEST['foodnum']=200;
// 一次最多200棵草
if ( $_REQUEST['type'] == "0" )
。。。。。省略代码。。。。。。。。。。。
第一处:
$needfood = 0;
foreach ( $animal[animal] as $key => $value )
{
if ( 0 < $value->cId )
{
$needfood += $shop[$value->cId][consum];
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
在 if ( 0 < $value->cId ) 下面的 { 后面 添加如下红色代码:
$needfood = 0;
foreach ( $animal[animal] as $key => $value )
{
if ( 0 < $value->cId )
{
//*********************************************
$value->feedtime == null && $value->feedtime = $animal[animalfeedtime];
$needfood = ( $_SGLOBAL['timestamp'] - $value->feedtime ) / 3600 * $shop[$value->cId][consum] / 4;
if( $needfood <= $animal[animalfood] ){
$value->feedtime = $_SGLOBAL['timestamp'];
$animal[animalfood] -= $needfood;
$hungry = 0;
}else{
$value->feedtime += $animal[animalfood] * 4 / $shop[$value->cId][consum] * 3600;
$hungry = 1;
$animal[animalfood] = 0;
}
//*********************************************
$needfood += $shop[$value->cId][consum];
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
继续下面几行找到 2 处下面内容,注意是 2 处,其实发现有 :\"hungry\":0, 就是那个地方!
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":0,\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
修改为红色部分!!!:
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":{$hungry},\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
。。。。。省略代码。。。。。。。。。。。
然后继续往下找:
if ( $_REQUEST['type'] == "1" )
{
$mc_price = 60;
$mc_id = 40;
。。。。。省略代码。。。。。。。。。。。
foreach ( $animal['animal'] as $key => $value )
{
if ( 0 < $value->cId ) {
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
添加如下红色代码:
foreach ( $animal['animal'] as $key => $value )
{
if ( 0 < $value->cId ) {
//*********************************************
$value->feedtime == null && $value->feedtime = $animal[animalfeedtime];
$needfood = ( $_SGLOBAL['timestamp'] - $value->feedtime ) / 3600 * $shop[$value->cId][consum] / 4;
if( $needfood <= $animal[animalfood] ){
$value->feedtime = $_SGLOBAL['timestamp'];
$animal[animalfood] -= $needfood;
$hungry = 0;
}else{
$value->feedtime += $animal[animalfood] * 4 / $shop[$value->cId][consum] * 3600;
$hungry = 1;
$animal[animalfood] = 0;
}
//*********************************************
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
。。。。。省略代码。。。。。。。。。。。
继续下面几行找到 2 处下面内容,注意是 2 处,其实发现有 :\"hungry\":0, 就是那个地方!
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":0,\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
修改为红色部分!!!:
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":{$hungry},\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
。。。。。省略代码。。。。。。。。。。。
继续寻找:
if ( $_REQUEST['type'] == "2" )
{
$mc_price = 60;
$money = $_SGLOBAL['db']->result( $_SGLOBAL['db']->query( "SELECT money FROM ".tname( "plug_newfarm" )." where uid=".$_SGLOBAL['supe_uid'] ), 0 );
$money = json_decode( $money );
。。。。。省略代码。。。。。。。。。。。
foreach ( $animal['animal'] as $key => $value )
{
if ( 0 < $value->cId ) {
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
添加如下红色代码:
foreach ( $animal['animal'] as $key => $value )
{
if ( 0 < $value->cId ) {
//*********************************************
$value->feedtime == null && $value->feedtime = $animal[animalfeedtime];
$needfood = ( $_SGLOBAL['timestamp'] - $value->feedtime ) / 3600 * $shop[$value->cId][consum] / 4;
if( $needfood <= $animal[animalfood] ){
$value->feedtime = $_SGLOBAL['timestamp'];
$animal[animalfood] -= $needfood;
$hungry = 0;
}else{
$value->feedtime += $animal[animalfood] * 4 / $shop[$value->cId][consum] * 3600;
$hungry = 1;
$animal[animalfood] = 0;
}
//*********************************************
if ( $value->postTime == 0 )
{
$time = $_SGLOBAL['timestamp'] - $value->buyTime + $value->special;
if ( $animaltime[$value->cId][0] + $animaltime[$value->cId][1] <= $time )
{
$status = 3;
$growTimeNext = 12993;
$statusNext = 6;
}
。。。。。省略代码。。。。。。。。。。。
继续下面几行找到 2 处下面内容,注意是 2 处,其实发现有 :\"hungry\":0, 就是那个地方!
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":0,\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
修改为红色部分!!!:
$newanimal[] = "{\"buyTime\":".$value->buyTime.",\"cId\":".$value->cId.",\"growTime\":".$time.",\"growTimeNext\":".$growTimeNext.",\"hungry\":{$hungry},\"serial\":".$key.",\"status\":".$status.",\"statusNext\":".$statusNext.",\"totalCome\":".$value->totalCome."}";
。。。。。省略代码。。。。。。。。。。。
OK了,代码修改完毕!!!!
说明:其实代码很简单,就是修改的地方多,基本是相同代码,重复工作!,5个地方,分别是:显示好友农场、显示自己农场、给自己好友加草、给自己买草、给好友买草 这5个地方,原数据字段如下:
{"buyTime":"1262563514","cId":"1004","postTime":"1262675962","totalCome":0,"tou":""}
经过无缝转换,系统自动更新为:
{"buyTime":"1262563514","cId":"1004","postTime":"1262675962","totalCome":0,"tou":"","feedtime":"1262690849"}
红色代表单独喂养时间,原来程序是使用统一喂养时间,导致一些问题,目前改为每个动物有单独喂养时间,这样有利于控制食物用量!!
关于前一段时间有朋友希望改成:不喂养就不生长,在此说明,那样太狠了吧??所以我折中考虑,只需要用户在生产期把该吃的草填上就行了~~~
特例:上面代码修改后,如果用户3个月没到牧场,没朋友帮忙,那么会导致动物食量很大,就是3个月的草量了,如果不想这样,将上面红色代码部分5个地方都修改为如下:
//*********************************************
$value->feedtime == null && $value->feedtime = $animal[animalfeedtime];
$value_feedtime = $_SGLOBAL['timestamp'] - $value->feedtime > $animaltime[$value->cId][5] ? $animaltime[$value->cId][5] : $_SGLOBAL['timestamp'] - $value->feedtime;
$needfood = $value_feedtime / 3600 * $shop[$value->cId][consum] / 4;
if( $needfood <= $animal[animalfood] ){
$value->feedtime = $_SGLOBAL['timestamp'];
$animal[animalfood] -= $needfood;
$hungry = 0;
}else{
$value->feedtime += $animal[animalfood] * 4 / $shop[$value->cId][consum] * 3600;
$hungry = 1;
$animal[animalfood] = 0;
}
//*********************************************
就可以了,那样不管几个月来,只要草料够动物从购买到生长的时间段就可以了!!!!
例如:鸡,生长时间 8小时+36小时生产=44小时 ,每4小时吃一粒草,那么全过程总共需要11棵草,所以如果开始不喂养到收获,系统只需要用户增加11棵草就可以了!!
===========
如下是如果不喂养,动物就不生长的代码,正在测试之中,请大家一起测试并反馈!还是将那5个地方修改为如下代码!
//*********************************************
$value->feedtime == null && $value->feedtime = $animal[animalfeedtime];
$value_feedtime = $_SGLOBAL['timestamp'] - $value->feedtime > $animaltime[$value->cId][5] ? $animaltime[$value->cId][5] : $_SGLOBAL['timestamp'] - $value->feedtime;
$needfood = $value_feedtime / 3600 * $shop[$value->cId][consum] / 4;
if( $needfood <= $animal[animalfood] ){
$value->feedtime = $_SGLOBAL['timestamp'];
$animal[animalfood] -= $needfood;
$hungry = 0;
}else{
$foodtime = $animal[animalfood] * 4 / $shop[$value->cId][consum] * 3600;
$value->feedtime += $foodtime;
if ( $value->postTime == 0 ){ //下面就是判断如果没有草了,购买时间提前,生产时间恢复上次状态
$value->buyTime = $_SGLOBAL['timestamp'] - $foodtime;
}else{
$postandbuy = $value->postTime - $value->buyTime;
$value->buyTime = $_SGLOBAL['timestamp'] - $postandbuy - $animaltime[$value->cId][3] - $foodtime;
$value->postTime = $_SGLOBAL['timestamp'] - $animaltime[$value->cId][3] - 1 - $foodtime;
}
$hungry = 1;
$animal[animalfood] = 0;
}
//*********************************************
不过个人感觉没啥必要吧??
声明:
修改前备份一下你的程序代码与数据库,此次修改牵扯到数据字段内容更新,即使修改后,用回原来程序代码仍然没问题!!!另外,请不要复制全部代码,注意只复制红色部分,切记切记!
代码本人已使用,尚未发现问题,欢迎使用者短信或者这里留言反馈! |