kololi 发表于 2022-11-17 23:07

【运气修仙】服务端代码大公开[2月25日更新]开放股市交易农场种植偷菜/聊天功能

本帖最后由 kololi 于 2023-2-25 08:34 编辑


下载地址:本程序还在继续完善,所以开放下载目录,请选择最新日期下载最新版本
外链: https://wwz.lanzoub.com/b03dmbfbg密码:52pj
操作请看楼下置顶贴

### 2月25日更新1.14.3版
1.交易所功能上线,可以炒药材,丹药了.

### 2月18日更新1.14版
1.~~更新了音乐点播功能,~~ (该功能已下线)

### 2月8日更新1.13.3版
1.随机访问他人农场进行果实窃取
2.访问他人农场次数+已获得果实数大于 50将不能再访问他人农场.
3.果实被摘数量 / 最大收获量大于40%,将不能再被摘取.
4.可能会随机窃取自己的农场
5.自己农场收获数量计算:   随机 [自己当天幸运什 *2 到 (最大收获数量 - 已被摘取数量)],
6.增加了卡顿会重连5次.

### 1月30日更新1.13版
1.新增农场种植,配合炼丹材料需求.
2.挑战胜利后,可以进行神游挂机
3,增加了渡劫丹方
4.增加了灵药种子
5.支持客户端在线更新(旧版本需自己手动删除)
6,增加了帮助文档跳转至腾讯文档.
7.其它优化

农场升级公式 200*(N+1)
种植,铲除经验为2,收获经验根据种子成熟时长不同而不同,越长越高.

### 1月10日更新   界面大换样
## 客户端升级版来了,以后都基于这个模型了

1.仿的鹅厂界面,主题.
2.目前仿的还不完善,我还会继续努力(~~不要脸的~~)仿下去
3.主界面为消息显示,下边有输入框可以发送消息.消息过长可以换动界面变宽,但也是有限度的.
4.功能区放在下边蓝色按钮,目前只有4个.点击会新开一个窗口在里面操作.
5.目前还不能换头像,我相信不久的将来是可以换的

C#我也是边学边百度边写,感谢你们的一路陪伴,让我能坚持学下去.
特别感谢:GMsix恶魔天尊 两位道友提出宝贵意见.
上图









### 12月30日更新   增加了聊天功能

## 玩法未变

## 客户端改为C#开发

1.学了半个月的面向百度编程,拼凑出来赶在2023年前上架. 使用的win10x64+.net6+vs2022环境编译. 如果你的机器没有.net6环境,请自行安装

2.增加了公共聊天功能,因为没有自己的服务器,使用的是workerman的测试聊天室

3.服务端写了一个共公类用于通用验证功能.

4.服务端部份接口代码优化.

5.更改头像功能要等到下一个版本了.客户端进度还没完善到python版的进度,到时候再开发新玩法.



#2022 12 11 更新
##增加新功能:炼丹,目前丹方较少,其它丹方配置中......
###玩法
1.先商店处购买丹炉
2.再购买丹方,
3,仓库使用丹炉,丹方
4.洞府 > 丹室 >选择丹方>填写数量>炼制
5等待倒计时结束,即可点击取丹(可离线)
配方材料不足,无法炼丹. 材料都是挑战关卡随机获得.


# 2022 12 09 更新

## 服务端

1. 更新了挑战关卡掉落物品分布及提示
2. 更新了福袋开启随机算法: 为目前可挑战关卡下5关掉落物品随机1件
3. 更新了玩家参数计算算法:穿戴装备或脱下装备时,会重新计算所有属性及装备加成.
4. 修复了可以刷装备的BUG
5. 非装备物品,都可以以1金币价格卖出

## 客户端

1. 修复了PK时内存泄露BUG
2. 客户端运行时,显示为"工作总结",图标也改为word.
3. 优化了部分装备图片显示

# 2022 12 07 更新
### 请至下载地址自取
## 服务端更新

1. 增加调用登陆验证
2. 更新玩家输出算法
3. 增加了一个装备栏,可提供属性增强.
4. 增加了服务器返回一些参数调用.
5. 修复了一些bug
6. 重新定义了玩家级别名称
7. 重新定义了装备套装名称



## 客户端更新

1. 部份参数获取由本地改为服务器获取.
2. 修复了挑战时,内存泄露的BUG
3. 去掉了一些尚未上架功能的显示按钮.
4. 更换装备时,会重新计算玩家输出及防御
5. 优化了一些算法.
# 2022 12 05 更新
本次更新了大量服务端代码,就不贴上来了,都可以在后边的链接里下载到,打包内容含数据库脚本,代码只删除了连接数据库的database.php配置文件.现讲一下主要更新的代码内容和玩法.
1.服务端代码由原来的单controller拆分为多个controller.
2.服务端代码返回json格式.(如果客户端出现解析json出错,大程度上是服务器卡了,或者挂了)
3.基于fastphp良好的开源,可以直接在服务端进行装备烛率控制,关卡难度设置,渡劫成功率等,方便服务端的管理 .
4.其它
服务端主要代码代表如下

管理端控制关卡难度及爆装截图如下.

###客户端用python进行了重写,启动时会有亿点点慢.玩法如下
1.登陆成功即修炼,每日可领取50精力,精力用完会自动随机单修or双修 1至10次,然后继续修炼.
2.修炼可获得金币,修为,五行属性.五行中:金加物理攻击,火加道术攻击,木加生命,土加防御,水加命中,闪避.
3.当日运气好坏,决定了获得修炼结果多少.
4.当修为增高至200以上时,可以进入"洞府"进行渡劫,不同境界需要不同修为,成功率也不一样,渡劫失败将损失50%的修为(只是本次升级差客部分),同时可以服用丹药提升成功率.
5.丹药目前可以从商店购买,后期会在"洞府"开放炼丹功能.
6.没事的时候,可以进行"挑战"关卡,这里会有装备及材料随机掉落,请确保血量充足,挑战后请及时补血.当挑战成功一个关卡后,就可以进行"神游",
7."神游"需要消耗丹药,请根据你的丹药数量进行神游,神游不会消耗HP.每次神游5分钟,可以离线挂机,等到时候上来再收取神游挂机的掉落物品.
8."神游"目前不限当日总次数,后期开发会限制前100次,正常挂机,后100次,降低50%,爆装率.
9.丹药合成,种植,自由市场,世界聊天 ,门派,技能,排行等功能开发中

###ps :本次放出的为开发版本,很多资料及显示有误,仅供参考.
所有配图都在资源中,可以自由替换为自己喜欢的图片




# 就是玩
                        完全自主知识产权,有喜欢的就拿去随便改,也不需要通知我,随意转载二次开发也不用告知我。有什么问题的,可以一起研究,探讨、学习。
                        客户端下载内提供了一个测试环境,欢迎测试(配置为国外虚拟空间,所以请忍受网速)
# 开发环境
## 服务端
                        服务程序是基于fastadmin(当前版本1.3.4.20220530)开发的, mysql版本5.50. 运行于php 7.2
## 客户端
                         客户端是基于python3.8 + win7_x64开发的。其中有两个控件是在CSDN上转过来的,鉴于广告嫌疑,不贴地址了。
                        
#下载地址
本程序还在继续完善,所以开放下载目录,请选择最新日期下载最新版本
外链:https://wwz.lanzoub.com/b03dmbfbg 密码:52pj
# 配置
## 服务端配置
1.首先你要安装好fastadmin,
2. mysql内新建一个yqxx_name的表,脚本我贴在后边或下载文件内。
3.将Index.php放于fastadmin目录中的,application\xiuxian\controller 目录下,
4.如果你会用fastadmin在线命令管理,可以直接把上边新建的yqxx_name表,进行一键生成CRUD。
5.不会的,就把Name.php文件放在 于fastadmin目录中的,application\xiuxian\controller 目录下application\admin\model\yqxx目录下。
6.修改fastadmin目录中的application目录下config.php文件第87行原为'url_html_suffix'      => 'html',修改为'url_html_suffix'      => 'html|d',即增加了 |d,d前边是竖线,不是大写字母I也不是小写字母l,也不是数字1
7.fastadmin要开启验证码功能(默认是开启的),因为程序注册账号时,要验证码。
8.默认情况fastadmin是要开放public目录为web根目录的。
9.基本配置完成了,就可以开启服务了。简单吧 ^_*
### 注意: 在网页内注册的账号是不可以在客户端登陆的。所以必须用客户端注册账号才行哦~

## 客户端配置
1.客户端打开后,点右键可以关闭或挂机时选迷你页放置一旁。
2.挂机时,点对应想修炼的金、木、水、火、土 对应的字即可,精力不足时,将自动随机1至10单修获得精力,然后继续修炼,重复。
3. 下载文件解压后,资源文件夹下有yqxx.ini为服务器连接及账号配置主文件
4. 主要配件如下,对应为账号,密码,版本,及服务器的连接地址



```

zhanghao = aaaaaa
mima = aaaaaa
banben = 1.29
url = http://yqxx.44ol.com/xiuxian/index/
```
### 修改url为你要联的服务器地址即可
    如果你有服务器资源欢迎开放,交流
               
               
# 源代码
## 本次开放服务端主代码如下
### Index.php
```php

<?php

namespace app\xiuxian\controller;

use app\common\controller\Frontend;
use app\common\library\Ems;
use app\common\model\User;
use fast\Random;
use think\Db;
use think\Exception;
use think\Validate;
use addons\wechat\model\WechatCaptcha;



use app\admin\model\yqxx\Name;

class Index extends Frontend
{
//Index.php
    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';
    protected $layout = '';


    public function index()
    {
      return '$this->view->fetch()';
    }

    public function login()
    {

      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $banben = $this->request->post('banben');
            $rule = [
                'username'=> 'require|length:3,30',
                'password'=> 'require|length:6,30',
                'banben'   => 'require|length:4,5',
            ];
            $msg = [
                'banben.require'   => 'banben can not be empty',
                'username.require' => '账号是必填字段',
                'username.length'=> '账号长度在6到30字符',
                'password.require' => '密码是必填字段',
                'password.length'=> '密码长度在6到30字符',
                'nickname.length'=> '昵称长度在3到30字符',
                'nickname.require'=> '昵称是必填字段',
            ];
            $data = [
                'username'=> $username,
                'password'=> $password,
                'banben'   => $banben,
            ];
            $validate = new Validate($rule, $msg);
            $result = $validate->check($data);
            if (!$result) {
                echo "{\"code\":0,\"data\":\"{$validate->getError()}\"}" ;
                return;
            }
            if ($this->auth->login($username, $password)) {
                $Name = Name::get($username);

                $day_0 =($Name->yunshitime);
                $day_1 = date("Ymd");
                if($day_1 > $day_0 ){
                  $Name->jinriyunshi = mt_rand(1,5);
                  $Name->yunshitime = $day_1;
                  $Name->save();
                }
                echo '{"code":1,"data":'. $Name . '}' ;
                return;
            } else {
                echo '{"code":0,"data":"账号或密码有误"}' ;
            }
      }
    }

    public function register()
    {
      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $email = $this->request->post('email');
            $nickname = $this->request->post('daohao', '');
            $captcha = $this->request->post('captcha');
            $rule = [
                'username'=> 'require|length:6,30',
                'password'=> 'require|length:6,30',
                'email'   => 'email',
                'nickname'    => 'require|length:3,30',
            ];

            $msg = [
                'username.require' => '账号是必填字段',
                'username.length'=> '账号长度在6到30字符',
                'password.require' => '密码是必填字段',
                'password.length'=> '密码长度在6到30字符',
                'nickname.length'=> '昵称长度在3到30字符',
                'email.require'    => '邮箱是必填字段',
                'email'            => '邮箱输入有误',
                'nickname.require'=> '昵称是必填字段',
            ];
            $data = [
                'username'=> $username,
                'password'=> $password,
                'email'   => $email,
                'nickname'    => $nickname,
            ];
            //验证码
            $captchaResult = \think\Validate::is($captcha, 'captcha');
            if (!$captchaResult) {
                echo '{"code":0,"data":"验证码错误"}' ;
                return;
            }
            $validate = new Validate($rule, $msg);
            $result = $validate->check($data);
            if (!$result) {
                echo "{\"code\":0,\"data\":\"{$validate->getError()}\"}" ;
                return;
            }
            if ($this->auth->register($username, $password, $email, $nickname)){
                $user = User::get(["username"=> $username]);
                $params = [
                  'zhanghao' => $username,
                  'mima' => $user->password,
                  'name'    => $nickname,
                  'sex'    => mt_rand(0,1),
                ];
                Db::startTrans();
                try {
                  $Name = Name::create($params, true);
                  echo '{"code":1,"data":"注册成功"}';
                  Db::commit();
                  return;
                }catch (Exception $e) {
                  Db::rollback();
                  echo '{"code":0,"data":"注册失败"}';
                  return ;
                }

            } else {
                echo "{\"code\":0,\"data\":\"" . $this->auth->getError() ."\"}" ;
                return;
            }
      }
    }

    public function getPersonData()
    {
      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            if ($this->auth->login($username, $password)) {
                $Name = Name::get($username);
                echo '{"code":1,"data":'. $Name . '}' ;
            } else {
                echo '{"code":0,"data":"账号或密码有误"}' ;
            }
      }
    }


    public function lilianbaoming()
    {
      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $time = time();
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $Name = Name::get($username);
            if($Name){
                $Name->lilianbaomingtime = $time;
                $Name->save();
                echo '{"code":1,"data":"报名成功"}' ;
            }
            else{
                echo '{"code":0,"data":"报名失败"}' ;
            }

      }
    }
    public function lilianjieguo_new()
    {
      if ($this->request->isGet()){
            echo "当前为 GET 请求"; return;
      }
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $ditu = $this->request->post('ditu');
            $token = $this->request->post('token');

            $time = time();
            $Name = Name::get($username);
            if($Name){
                if($Name->jingli <= 0){
                  echo '{"code":0,"data":"精力不足,请领精力或明日再练"}' ;
                  return;
                }
    //            $Name->lilianbaomingtime = $time;
    //            $Name->save();
                $step = $time - $Name->lilianbaomingtime;
                $step_end =$time - $Name->lilianendtime;
                $salt = Random::alnum();
                $a = array_fill(0,1, 1);
                $b = array_fill(0,4, 2);
                $arr = array_merge($a, $b);
//var_dump($arr);
                $d = mt_rand(0,4);
//                echo $arr[$d];
                if($arr[$d] == 1){
                  $jinbi = mt_rand(0,10);
                  $Name->jinbi = $Name->xiuwei-$jinbi;
                  $Name->lilianendtime =$time;
                  $Name->jingli = $Name->jingli -1;
                  $Name->save();
//                  echo "2 历练失败,损失{$jinbi}金币!";
                  echo '{"code":1,"data":{"status":2,"result":"历练失败,损失' . $jinbi .'金币!"}}' ;
                  return;
                }
                if($step >= 300 and $step_end >= 300) { //报名后300秒,距上次结束也要大于300秒,防卡BUG
                  $jinriyunshi = $Name->jinriyunshi;
                  $xiuwei = mt_rand(1,10);
                  $jinbi = mt_rand(1,10);
                  $shuxing = mt_rand(1,10);

                  $yunshijiajian_xiuwei = mt_rand(1,2*$jinriyunshi);
                  $yunshijiajian_jinbi = mt_rand(1,2*$jinriyunshi);
                  $yunshijiajian_shuxing = mt_rand(1,2*$jinriyunshi);

                  $jinri_jinbi = $jinbi + $yunshijiajian_jinbi;
                  $jinri_xiuwei = $xiuwei + $yunshijiajian_xiuwei;
                  $jinri_shuxing = $shuxing + $yunshijiajian_shuxing;
                  $add = '增加';
//                  $jinriyunshi = mt_rand(1,5);
                  $yunshi = '一般';
                  $map = '金';
                  switch ($jinriyunshi) {
                        case 1:
                            $yunshi = "超级厄运";
                            $add = "减少";
                            $jinri_jinbi = $jinbi - $yunshijiajian_jinbi; if($jinri_jinbi<0){$yunshijiajian_jinbi=$jinbi;$jinri_jinbi=0;}
                            $jinri_xiuwei = $xiuwei - $yunshijiajian_xiuwei;if($jinri_xiuwei<0){$yunshijiajian_xiuwei=$xiuwei;$jinri_xiuwei=0;}
                            $jinri_shuxing = $shuxing - $yunshijiajian_shuxing;if($jinri_shuxing<0){$yunshijiajian_shuxing=$shuxing ;$jinri_shuxing=0;}
                            break;

                        case 2:
                            $yunshi = "厄运";
                            $add = "减少";
                            $jinri_jinbi = $jinbi - $yunshijiajian_jinbi; if($jinri_jinbi<0){$yunshijiajian_jinbi=$jinbi;$jinri_jinbi=0;}
                            $jinri_xiuwei = $xiuwei - $yunshijiajian_xiuwei;if($jinri_xiuwei<0){$yunshijiajian_xiuwei=$xiuwei;$jinri_xiuwei=0;}
                            $jinri_shuxing = $shuxing - $yunshijiajian_shuxing;if($jinri_shuxing<0){$yunshijiajian_shuxing=$shuxing ;$jinri_shuxing=0;}
                        case 4:
                            $yunshi = "运势一般";
                            break;
                        case 5:
                            $yunshi = "好运";
                            break;
                        case 6:
                            $yunshi = "超级好运";
                            break;
                  }
                  $addchar = "";

                  $aa = array_fill(0,2, 1);
                  $bb = array_fill(0,3, 2);
                  $arrd = array_merge($aa, $bb);
//                  var_dump($arr);
                  $dd = mt_rand(0,4);
//                  echo $arrd[$d];
                  if($arrd[$dd] == 2){
                        switch ($ditu){
                            case 1:
                              $map = "金";
                              $Name->jin = $Name->jin+$jinri_shuxing;
                              break;
                            case 2:
                              $map = "木";
                              $Name->mu = $Name->mu+$jinri_shuxing;
                              break;
                            case 3:
                              $map = "水";
                              $Name->shui = $Name->shui+$jinri_shuxing;
                              break;
                            case 4:
                              $map = "火";
                              $Name->huo = $Name->huo+$jinri_shuxing;
                              break;
                            case 5:
                              $map = "土";
                              $Name->tu = $Name->tu+$jinri_shuxing;
                              break;
                        }
                        $addchar = "获得{$map}属性{$jinri_shuxing}点.";

                  }
                  $Name->xiuwei = $Name->xiuwei+$jinri_xiuwei;
                  $Name->jinbi = $Name->xiuwei+$jinri_jinbi;
                  $Name->lilianendtime =$time;
                  $Name->jingli = $Name->jingli -1;
    //                $Name->lilianbaomingtime = 4070880000;
                  $Name->xueliang = $Name->xiuwei + 50 * $Name->mu;
                  $Name->min_wuligongji = $Name->jin;
                  $Name->max_wuligongji = $Name->jin;
                  $Name->max_daoshugongji = $Name->huo;
                  $Name->min_daoshugongji = $Name->huo;
                  $Name->wulifangyu = $Name->tu;
                  $Name->daoshufangyu = $Name->tu;
                  $Name->shanbi = $Name->shui;
                  $Name->mingzhong = $Name->shui;

                  $Name->save();
                  $str = "历练成功,获得{$xiuwei}修为,{$jinbi}金币,因为{$yunshi}收益{$add}{$yunshijiajian_xiuwei}修为,{$yunshijiajian_jinbi}金币。" . $addchar;
                  echo '{"code":1,"data":{"status":1,"result":"' . $str .'"}}' ;
                }
                else{
                  echo '{"code":1,"data":{"status":2,"result":"历练需要5分钟"}}' ;
                }

            }
            else{
                echo '{"code":0,"data": "name不存在"}' ;
            }
      }
    }

    public function danxiu_new()
    {

      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $token = $this->request->post('token');

            $time = time();
            $Name = Name::get($username);
            if ($Name) {
                $step = $time - $Name->danxiutime;
                $step2 = $time - $Name->lilianendtime;
                if($step2 >= 900){#if($step2 >= 900){
                  if($step >=900){ #if($step >=900){
                        $xiuwei = mt_rand(0,10);
                        $Name->lilianendtime = $time;
                        $Name->jingli = $Name->jingli+1;
                        $Name->xiuwei = $Name->xiuwei+ $xiuwei;
                        $Name->save();
//                        echo"1 单修完成,精力恢复1点,修为增加{$xiuwei}点";
                        echo '{"code":1,"data":"单修完成,精力恢复1点,修为增加'.$xiuwei.'点"}' ;
                        return ;
                  }
                  else{
                        echo '{"code":0,"data": "修练时间不足"}' ;
                        return;
                  }
                }
                else{
                  echo '{"code":0,"data": "请不要卡BUG"}' ;
                  return;
                }


            }
            else{
                echo $time ."当前为 POST 请求lilianbaomingtime name不存在:" .$username;
            }
      }

    }


    public function getshijieliaotian(){
      if ($this->request->isPost()) {
            echo '{"code":1,"data":"成功"}' ;
         return;
      }
    }
    public function isgetgonggao(){
      if ($this->request->isPost()) {
            echo '{"code":1,"data":"成功"}' ;
            return;
      }
    }

    public function getToken()
    {

      if ($this->request->isGet()) echo "当前为 GET 请求";
      if ($this->request->isPost()) {
            $username = $this->request->post('zhanghao');
            $password = $this->request->post('mima');
            $salt = Random::alnum();
            echo '{"code":1,"data":"' . $salt.'"}' ;

      }

    }




    publicfunction test(){
//      $Name = Name::get("aaaaaa");
//      $day_0 =($Name->yunshitime);
//      $day_1 = date("Ymd");
//      echo date($Name->yunshitime);
//      echo '<br>';
//      echo date("Ymd");
//      echo '<br>';
//      echo $day_1 > $day_0 ;
//      echo '<br>';

      $a = array_fill(0,50, 1);
      $b = array_fill(0,16, 2);
      $c = array_fill(0,2, 3);
      $d = array_fill(0,32, 0);
      $arr = array_merge($a, $b, $c,$d );
//var_dump($arr);
      $d = mt_rand(0,99);
      echo $arr[$d];
      echo '<br>';
      echo json_encode($b);
      echo '<br>';
      echo json_encode($arr );

    }

    publicfunction captcha(){
       $type = [];
      $captcha = $this->request->post('captcha');
      echo 'recive' . $captcha;
      $captchaResult = \think\Validate::is($captcha, 'captcha');
      echo '' . $captchaResult . '| ';
      if($captchaResult){
            echo 'sucess';
      }
      else{
            echo 'failue';
      }
      echo '****';
      if (isset(self::$type['captcha'])) {
            // 注册的验证规则
            echo var_dump($type['captcha']);
            $result = call_user_func_array(self::$type['captcha'], [$captcha]);
            echo '{$result} $result';
      }





    }

}

```

###Name.php

```php
<?php

namespace app\admin\model\yqxx;

use think\Model;


class Name extends Model
{

   

    //Name.php

    // 表名
    protected $table = 'yqxx_name';
   
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = false;

    // 定义时间戳字段名
    protected $createTime = false;
    protected $updateTime = false;
    protected $deleteTime = false;

    // 追加属性
    protected $append = [
      'jinglitime_text',
      'yunshitime_text',
      'lilianbaomingtime_text',
      'lilianendtime_text',
      'bossbaomingtime_text',
      'tiaozhanshibaitime_text',
      'daolvfenkaitime_text',
      'shuangxiutime_text',
      'danxiutime_text'
    ];
   

   



    public function getJinglitimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['jinglitime']) ? $data['jinglitime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getYunshitimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['yunshitime']) ? $data['yunshitime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getLilianbaomingtimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['lilianbaomingtime']) ? $data['lilianbaomingtime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getLilianendtimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['lilianendtime']) ? $data['lilianendtime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getBossbaomingtimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['bossbaomingtime']) ? $data['bossbaomingtime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getTiaozhanshibaitimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['tiaozhanshibaitime']) ? $data['tiaozhanshibaitime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getDaolvfenkaitimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['daolvfenkaitime']) ? $data['daolvfenkaitime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getShuangxiutimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['shuangxiutime']) ? $data['shuangxiutime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }


    public function getDanxiutimeTextAttr($value, $data)
    {
      $value = $value ? $value : (isset($data['danxiutime']) ? $data['danxiutime'] : '');
      return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
    }

    protected function setJinglitimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setYunshitimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setLilianbaomingtimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setLilianendtimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setBossbaomingtimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setTiaozhanshibaitimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setDaolvfenkaitimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setShuangxiutimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }

    protected function setDanxiutimeAttr($value)
    {
      return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
    }


}

```

```sql

CREATE TABLE `yqxx_name` (
      `zhanghao` VARCHAR(32) NOT NULL COLLATE 'utf8mb4_general_ci',
      `mima` VARCHAR(32) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `name` VARCHAR(32) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `sex` TINYINT(4) NOT NULL DEFAULT '1',
      `xiuwei` INT(11) NOT NULL DEFAULT '100',
      `jinrixiuwei` INT(11) NOT NULL DEFAULT '0',
      `jinbi` INT(11) NOT NULL DEFAULT '0',
      `jinrijinbi` INT(11) NOT NULL DEFAULT '0',
      `zhuangbeipingfen` INT(11) NOT NULL DEFAULT '0',
      `jinglitime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `jingli` INT(11) NOT NULL DEFAULT '50',
      `jingliShangXian` INT(11) NOT NULL DEFAULT '50',
      `yunshitime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `jinriyunshi` INT(11) NOT NULL DEFAULT '3',
      `xueliang` INT(11) NOT NULL DEFAULT '100',
      `min_wuligongji` INT(11) NOT NULL DEFAULT '0',
      `max_wuligongji` INT(11) NOT NULL DEFAULT '0',
      `min_daoshugongji` INT(11) NOT NULL DEFAULT '0',
      `max_daoshugongji` INT(11) NOT NULL DEFAULT '0',
      `wulifangyu` INT(11) NOT NULL DEFAULT '0',
      `daoshufangyu` INT(11) NOT NULL DEFAULT '0',
      `shanbi` INT(11) NOT NULL DEFAULT '0',
      `mingzhong` INT(11) NOT NULL DEFAULT '0',
      `jin` INT(11) NOT NULL DEFAULT '0',
      `mu` INT(11) NOT NULL DEFAULT '0',
      `shui` INT(11) NOT NULL DEFAULT '0',
      `huo` INT(11) NOT NULL DEFAULT '0',
      `tu` INT(11) NOT NULL DEFAULT '0',
      `toubu` BIGINT(20) NOT NULL DEFAULT '4',
      `shangyi` BIGINT(20) NOT NULL DEFAULT '1',
      `xiayi` BIGINT(20) NOT NULL DEFAULT '2',
      `xiezi` BIGINT(20) NOT NULL DEFAULT '3',
      `wuqi` BIGINT(20) NOT NULL DEFAULT '0',
      `peishi` BIGINT(20) NOT NULL DEFAULT '6',
      `fabao` BIGINT(20) NOT NULL DEFAULT '5',
      `lilianbaomingtime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `lilianstatus` VARCHAR(10) NULL DEFAULT '0' COLLATE 'utf8mb4_general_ci',
      `lilianendtime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `bossbaomingmap` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `bossbaomingtime` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `bosszhandoujieguo` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `bosswin` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `bosslose` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `ispk` INT(11) NOT NULL DEFAULT '0',
      `pkcishu` INT(11) NOT NULL DEFAULT '0',
      `pkfenshu` INT(11) NOT NULL DEFAULT '0',
      `pkname` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `istiaozhan` INT(11) NOT NULL DEFAULT '0',
      `lingqutiaozhanjiangli` INT(11) NOT NULL DEFAULT '0',
      `tiaozhancengshu` INT(11) NOT NULL DEFAULT '0',
      `tiaozhanshibaitime` INT(11) NOT NULL DEFAULT '20221111',
      `zhuanyundan` INT(11) NOT NULL DEFAULT '0',
      `xiaoxiuweidan` INT(11) NOT NULL DEFAULT '0',
      `daolvzhanghao` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `daolvname` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `daolvstatus` TINYINT(4) NULL DEFAULT NULL,
      `daolvfenkaitime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `daolvhaogan` INT(11) NOT NULL DEFAULT '0',
      `shuangxiustatus` TINYINT(4) NOT NULL DEFAULT '0',
      `shuangxiutime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `danxiustatus` TINYINT(4) NOT NULL DEFAULT '0',
      `danxiutime` BIGINT(20) NOT NULL DEFAULT '20221111',
      `fankui` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `chenghao` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `shiyongchenghao` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `tupo` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `liaotianpifu` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `shiyongpifu` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `fabaoewai` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `guanzhu` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `menpaiid` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `isguanli` INT(11) NOT NULL DEFAULT '0',
      `toubuqianghua` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `shangyiqianghua` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `xiayiqianghua` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `xieziqianghua` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `wuqiqianghua` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `doushouqi_win` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
      `jiajianxiuwei` INT(11) NOT NULL DEFAULT '0',
      `jiajianjinbi` INT(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`zhanghao`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

```

kololi 发表于 2023-1-30 12:28

运气修仙操作说明









藏经阁开发中~~

sbwfnhn 发表于 2022-11-18 09:18

牛皮,一般懂产品,会UI的不懂代码,懂代码的不懂产品与UI,你这全栈型人材,佩服

kololi 发表于 2023-1-6 13:45

zhangguo11 发表于 2023-1-4 15:03
筑基就卡在莽荒山了,现在分神了,还卡在莽荒山,大佬是不是有点不合理

雀食不合理,还在优化,给我点时间

kololi 发表于 2022-11-17 23:11

如果你有服务器资源欢迎开放,交流地址

tanglikecuan 发表于 2022-11-18 08:01

{:1_921:}来学习看看!

wychashe 发表于 2022-11-18 08:09

纯粹技术喜欢

1921688998 发表于 2022-11-18 08:24

这个挺好的

桂花糕乀 发表于 2022-11-18 08:36

收藏 支持!!专业帖子值得学习!!

tzlqjyx 发表于 2022-11-18 08:38

真的是运气啊

rchaiyang 发表于 2022-11-18 08:40

就是玩,就喜欢你这玩和分享的态度,赞赞赞哈哈哈哈

4899 发表于 2022-11-18 08:44

学习学习

zt185 发表于 2022-11-18 09:14

有能力的下载研究研究,楼主真无私!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【运气修仙】服务端代码大公开[2月25日更新]开放股市交易农场种植偷菜/聊天功能