GithubHelp home page GithubHelp logo

eatkano's Introduction

EatKano

EatKano

🦌 网页小游戏 🥛

简介

小游戏:吃掉小鹿乃

English | 鹿乃b站 | 线上版本 | Github Pages

可选功能

简易排行榜(日/周/月) 不推荐使用

不需要排行榜把php/sql文件都删掉即可

版本需求

  • MySQL 5+
  • PHP 5+

使用方法

注: 如果你想玩的话直接去玩就可以, 这里是如何制造你的改版

Github Pages

这里 看视频步骤

如果你不需要排行榜, 那么部署到Github Pages即可.

按照如下方法更改你想要显示的文字

  1. Fork本项目,不要在现在这个页面直接改,然后发现改不了.

  2. 打开你Fork的项目, 找到static/i18n/zh.json, 找到下面这几项配置

    {
      "game-title": "新概念音游",
      "game-intro1": "从最底下的开始",
      "game-intro2": "看你能得多少分",
      "text-level-1": "试着好好练一下?",
      "text-level-2": "TCL",
      "text-level-3": "TQL",
      "text-level-4": "",
      "text-level-5": "人?"
    }

    你可以随意更改右侧文字, 就可以显示你想要的内容 不要删掉双引号

  3. 找到static/image文件夹, 点击前显示的图片是ClickBefore.png, 点击后的图片是ClickAfter.png, 把他们改成你想要的即可.

    注意文件格式, 需要是png

  4. 找到static/music文件夹, 点击时的音效是tap.mp3, 正常结束的音效是end.mp3, 点击错误的音效是err.mp3, 把他们改成你想要的即可.

    注意文件格式, 需要是mp3

  5. 更改完毕后前往项目的Settings -> Pages -> Source, 选择main 分支然后点击Save.

部署到服务器

按照这些步骤来在你的服务器上配置排行榜的数据库

  1. 创建数据库并且执行提供的脚本(这里用kano作为数据库名)

    CREATE DATABASE kano DEFAULT CHARSET=utf8;
    USE kano;
    SOURCE kano.sql;
  2. 更改有数据库信息的conn.php为你的数据库配置

    <?php
    // 把这里改为你的配置
    $link = new mysqli('localhost','NAME','PASSWORD','kano');
    mysqli_set_charset($link, 'utf8');
    if ($link->connect_error) {
        die("Failed to connect: " . $conn->connect_error);
    }
    $ranking = "kano_rank";

其它事项

点下star吧~ 欢迎pr代码

eatkano's People

Contributors

alingcat avatar arcxingye avatar hikariyo avatar zjkwdy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eatkano's Issues

新手想给项目提pr

作者你好,我想问一下项目里index.html和index.php分别是起什么作用,我看了看里面的代码很相似

道个歉

整不来github 好像不小心改的时候提了requests 请忽略(捂脸

设置按键时会意外开始游戏

在“游戏设置”页面进行按键设置时,若输入了修改前的按键,且该按键对应开始游戏的键,则会意外开始游戏。

eg: 游戏的默认按键为“DFJK”,即这局游戏中要按下对应第二列的键“F”来开始游戏。当在文本框中输入“f”时,游戏会开始。(第一个人物消失,开始读秒

issue_eg1

PC上使用Microsoft Edge(版本 97.0.1072.69)时发现了此问题,安卓端使用Microsoft Edge(版本46.02.4.5147)测试尚无此问题。

有个疑问

这个是怎么知道使用index.html文件还是index.php文件的

无法使用排行榜功能

conn.php里的内容都改了,但是没有数据写入到数据库的表里面
看php和mysql日志也没任何尝试写入或访问的记录
php版本5.6和7.4都试了

星夜大佬好

俺是一个纯纯的门外汉,如果冒犯还请谅解www
在期末考试的时候同学转了吃掉小鹿乃这个游戏给我,然后就上头了,压根没复习。
放了寒假就自己摸索着用大佬的开源随便改了下图和字(即使这样还耗了老长时间),许多朋友见到就希望我发布一个关于魔改这个游戏的教程,如果大佬同意的话我会在开头就附上出处来源。感谢大佬!

关于日榜数据更新的问题

正常排行榜是刷新纪录之后才会更新,但当以前有一个纪录,你想上今天的日榜必须超过之前的记录才可以。
不知道我表述清不清楚,举个例子:
比如某人昨天打到了180,昨天时在日榜 周榜 月榜的第一。到了今天,日榜一刷新,他在今天打到了179,明明没有人超过他,却不会被显示在日榜上,只有换个名称才可以刷新。
这个能解决下嘛,周榜月榜会不会也出现这种问题

可以加入静音模式的一点建议

虽说可能并不常见,但却是有舍本逐末想认真玩本体而不想听音效的玩家存在(笑),所以可不可以加入静音选项
下面是可能的一种样式,仅供参考~

index.php

<script>
        function mutePage() {
            if(document.getElementById("mute").innerHTML == "有声模式"){
                $('#mute').text('已静音');
                gameInitMute();
            }
            else if(document.getElementById("mute").innerHTML == "已静音"){
                $('#mute').text('有声模式');
                gameInitUnmute();
            }
            else{
                alert("你绝对改了什么奇怪的东西吧!")
            }
        }
    </script>
<div class="container mb-3">
       <button id="mute" class="btn btn-secondary btn-lg" onclick="mutePage()">有声模式</button>
</div>

index.js

     w.gameInitMute = function gameInitMute() {
        createjs.Sound.registerSound({
            src: "./static/music/mute.mp3",
            id: "err"
        });
        createjs.Sound.registerSound({
            src: "./static/music/mute.mp3",
            id: "end"
        });
        createjs.Sound.registerSound({
            src: "./static/music/mute.mp3",
            id: "tap"
        });
        gameRestart();
    };
    
    w.gameInitUnmute = function gameInitUnmute() {
        createjs.Sound.registerSound({
            src: "./static/music/err.mp3",
            id: "err"
        });
        createjs.Sound.registerSound({
            src: "./static/music/end.mp3",
            id: "end"
        });
        createjs.Sound.registerSound({
            src: "./static/music/tap.mp3",
            id: "tap"
        });
        gameRestart();
    };

律师函警告⚠️

我是坤坤的经纪人!由于您已经触犯到我们家坤坤的尊严!特此警告 再接再厉

排行榜页面显示Warning和Notice

image
环境:Windows7,nginx1.18.0,mysql-8.0.33
如图所示,访问rank.php会显示
Warning
: mysqli_fetch_row() expects parameter 1 to be mysqli_result, bool given in
E:\myfirstnginxserver\eatkano\rank.php
on line
143

Notice
: Trying to access array offset on value of type null in
E:\myfirstnginxserver\eatkano\rank.php
on line
143
或许和这个sql语句有关系
image

ez4crack

gameStart();setInterval(function(){for(let i=0;i<19;i++){//createjs.Sound.play("tap");
tar = document.getElementById(_gameBBList[i].id);
tar.className = tar.className.replace(_ttreg, ' tt$1');
_gameBBListIndex++;
_gameScore++;
gameLayerMoveNextRow();}},1)

请问该项目是否允许修改移植?

该项目没有注明使用的协议,因此依照通常规定这个项目是属于“保留所有权利”的状态。但README文档中又提及“不需要排行榜把PHP文件都扔掉即可"。
请问该项目是否允许修改代码或发布修改的代码呢?万分感谢。

关于反作弊

这游戏挺有意思的,群里大伙玩了一晚上,不过有俩地方有待完善:

0x01 加密问题

虽然脚本被加密混淆了,但是可以很轻松通过

encrypt2 = encrypt;
encrypt = function(text){
    console.log(text);
    // 这里想干什么都行,比如把原本的分数替换为 233
    return encrypt2("233" + text.substr(3,));
}

实现打印加密前的明文内容,进行修改也可以。

0x02 变量问题

脚本内的变量全都是全局变量,可以直接被外部修改,例如

setInterval(function() {
    _date1 = new Date();
    _gameTimeNum = 20;
}, 100);

就可以实现暂停时间,加密混淆形同虚设。

实验:排行榜第一名那个嘉然 ID 就是我(狗头

0x03 修复方法

  1. 使用局部变量
  2. 避免直接公开加密方法 貌似没啥用

建议直接用 Swoole 一类的玩意起个 WebSocket 服务器,然后点击事件发送给服务器验证,通过判断点击时间间隔验证操作是否合法,以及是否有出现故意拖慢时间的操作,实现真 · 服务端反作弊(狗头

建议监听键盘事件

电脑玩起来累惨啦
顺便可以说一下改在什么地方吗?以便到时候自己更新,因为魔改的差不多了(

关于性能问题

数据库那边可以开个map做缓存,或者干脆直接使用redis+持久化存储数据

关于php/sql版本的咨询

想问问您的实例在运行时使用的php和sql版本号,因为有出现
Uncaught Error: Call to a member function prepare() on bool in ./rank.php:52
的情况。
谢谢!!

不错

建议加上音乐!

关于反作弊

在开局后修改__gs__(分数)变量(未被加密)
就可以随便上传记录。。各种加密措施直接形同虚设。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.