吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3150|回复: 83
上一主题 下一主题
收起左侧

[其他转载] 【PHP】非常古老的回合制WEBGAME游戏HOF源代码(个人进行了一定的优化修改)

   关闭 [复制链接]
跳转到指定楼层
楼主
zozoylolo 发表于 2023-10-2 20:49 回帖奖励
很久没发帖了,经常刷论坛也是没登录隐身在刷,打算分享这个代码的时候犹豫了很久,毕竟不是原创,但看完代码觉得真的写的相当不错,虽然都十几年前的东西了,但架构和数据的处理仍然值得借鉴和学习,有兴趣的童鞋也可以自己二次开发尝试一下。
这是一个上古级别的文字网页游戏,2008年4月就停止更新了,我是在某论坛下到了一款被称为文字版DNF的换皮源代码时发现的,已经被改的面目全非,然后寻找了一下,还好找到了比较原始的版本,还是汉化版本的。

这个源代码包简称hof,全称是Hall of Fame,意为荣誉圣殿,是小日子流传过来的文字页游源代码,开发者开源,但是保留对其版权及二次开发的所有权。这个代码跟国内常见的PHP代码不同,没有使用SQL数据库,而是将基本数据写到php文件里,将动态数据写入dat文件,看见时候还是蛮惊艳的,代码小巧别致,单内容非常丰富,具备了回合制页游的基本功能,包含4个基本职业和11个转职后的进阶职业,游戏内容也非常丰富,粗略看了一下,设计了上百个游戏技能和近千种游戏道具,还具备了基本的商店、竞技场、精炼、制造、招募等等核心功能,但是由于代码过于古老,网页编码为gbk,且仅能在PHP5.3以下正常运行,于是我对这个源代码进行了下列优化修改:
1、删除了源代码包里的几个网页木马,已经尽力了,不知道删除干净没有;
2、修改了代码网页编码为utf-8,便于在目前常用的主流浏览器上面使用;
3、修改了PHP5.3以上版本不兼容的代码,目前在PHP7下运行暂时没发现问题;
4、对于部分细节的汉化进行了优化,但因为我拿到的就是已经汉化的版本,很多原版的日文由于编码问题翻译不出来了,所以只能就细节部分进行优化,但代码整体是中文的,基本不存在英文影响体验进行的问题。

架设方法:PHPSTUDY环境或IIS配置PHP支持后直接可用,测试环境PHP7。
测试账号:test/test
后台管理地址:./admin.php
后台管理密码:123456

后续个人是打算好好研究一下这个代码,计划把我喜欢的寻仙资源、世界观、概念和道具引入进来,重做角色职业、道具系统和技能,然后整合一些寻宝、赌坊之类的小游戏小玩法,自己弄个自娱自乐的网页游戏,总体来说这个源代码还是非常可玩耐玩的。

下面是基本配置文件的源代码,总体来看还是功能很丰富的,注释中的乱码是因为编码改变变成了乱码,不知道原来是什么,所以没办法作进一步的翻译:
[PHP] 纯文本查看 复制代码
<?php
// 游戏设置
define("TITLE","荣誉圣殿中文版 (Hall of Fame)");//网页标题
define("MAX_TIME",100);//最大体力
define("TIME_GAIN_DAY",500);//每日所获得的体力
define("MAX_CHAR",5);//最大角色数量
define("MAX_USERS",500);//最大用户数量
define("ABANDONED",60*60*24*14);//删除用户周期
define("CONTROL_PERIOD",60*60*12);//自动管理周期
define("RECORD_IP",1);//IP记录(0=NO 1=YES)

// 其他设置
define("DEBUG",0);// 0=OFF
define("CHAR_NO_IMAGE","NoImage.gif");// 无角色图片
define("SESSION_SWITCH",1);// 0=OFF
define("CHAR_ROW",5);//角色队列数
define("CRYPT_KEY",'$1$12345678$');//パス射规步キ〖(ゲ〖ム肋弥稿は恃えるな)
define("COOKIE_EXPIRE",60*60*24*3);//cookie时间 60*60*24*3
define("UP_PASS","password");// 公告管理密码

define("START_TIME",100);//游戏初始体力
define("START_MONEY",10000);//游戏初始资金
define("MAX_STATUS",255);//最大属性点
define("GET_STATUS_POINT",3);//升级获得属性点
define("GET_SKILL_POINT",1);//升级获得技能点
define("MAX_LEVEL",50);//最大等级
define("SELLING_PRICE",1/5);//卖出物品比率(物品原价x比率)
define("REFINE_LIMIT",10);//篮希嘎肠猛

define("EXP_RATE",1);//经验倍数
define("MONEY_RATE",1);//金钱倍数

define("NEW_NAME_COST",100000);//改变队伍名称所需资金
define("BBS_OUT","http://localhost/bbs/");//论坛链接地址
define("BBS_BOTTOM_TOGGLE",0);//底部论坛链接按钮(0=OFF 1=ON)
define("AUCTION_TOGGLE",1);//是否开启拍卖会所(0=OFF 1=ON)
define("AUCTION_EXHIBIT_TOGGLE",0);////拍卖(0=暂停 1=开启)
define("JUDGE_LIST_AUTO_LOAD",1);//条件判定列表自动取得 1=自动 0=手动操作
define("AUCTION_MAX",100);//最大拍卖数

// 排名设置
define("RANK_TEAM_SET_TIME",60*60*48);//排名队伍設定周期
define("RANK_BATTLE_NEXT_LOSE",60*60*24);//失败后再挑战时间
define("RANK_BATTLE_NEXT_WIN",60*1);//赢得排名站再战的时间

// 对战设置
define("NORMAL_BATTLE_TIME",1);//默认战斗消耗体力
define("ENEMY_INCREASE",0);//对手选择(随机)
define("BATTLE_MAX_TURNS",100);//战斗最大回合数
define("TURN_EXTENDS",20);// 疯缅がつきそうな眷圭变墓するタ〖ン眶。
define("BATTLE_MAX_EXTENDS",100);//变墓した眷圭の呵络乖瓢搀眶(变墓の嘎肠)
define("BTL_IMG_TYPE",2);// (0=GD 1=CSS 2=瓤啪貉茶咙蝗脱CSS)
define("BTL_IMG","./image.php");// GD文件
define("BATTLE_STAT_TURNS",10);// 战斗统计回合
define("DEAD_IMG","mon_145.gif");// HP=0时的角色图片
define("MAX_BATTLE_LOG",100);// 战斗记录保存数(通常怪)
define("MAX_BATTLE_LOG_UNION",50);// 战斗记录保存数(BOSS)
define("MAX_BATTLE_LOG_RANK",50);// 战斗记录保存数(BOSS)
define("MAX_STATUS_MAXIMUM",2500);// 最大战斗回合数(1000%=10)

define("DELAY_TYPE",1);// 0=奠 1=糠
// DELAY_TYPE=0
define("DELAY",2.5);//ディレイ(2笆惧が誊奥。眶猛が你いとSPDが光い客は铜网)
// DELAY_TYPE=1
define("DELAY_BASE",5);// 眶猛が光いと汗がつかなくなる。

// union
define("UNION_BATTLE_TIME",10);//BOSS战消耗体力
define("UNION_BATTLE_NEXT",60*20);//BOSS战再挑战时间

// files
define("INDEX","index.php");

// CLASS FILE
define("CLASS_DIR", "./class/");
define("BTL_IMG_CSS", CLASS_DIR."class.css_btl_image.php");// CSS山绩
define("CLASS_MAIN", CLASS_DIR."class.main.php");
define("CLASS_USER", CLASS_DIR."class.user.php");
define("CLASS_CHAR", CLASS_DIR."class.char.php");
define("CLASS_MONSTER", CLASS_DIR."class.monster.php");
define("CLASS_UNION", CLASS_DIR."class.union.php");
define("CLASS_BATTLE", CLASS_DIR."class.battle.php");
define("CLASS_SKILL_EFFECT", CLASS_DIR."class.skill_effect.php");
define("CLASS_RANKING", CLASS_DIR."class.rank2.php");
define("CLASS_JS_ITEMLIST", CLASS_DIR."class.JS_itemlist.php");
define("CLASS_SMITHY", CLASS_DIR."class.smithy.php");
define("CLASS_AUCTION", CLASS_DIR."class.auction.php");
define("GLOBAL_PHP", CLASS_DIR."global.php");
define("COLOR_FILE", CLASS_DIR."Color.dat");

// DATA FILE
define("DATA_DIR", "./data/");
define("DATA_BASE_CHAR", DATA_DIR."data.base_char.php");
define("DATA_JOB", DATA_DIR."data.job.php");
define("DATA_ITEM", DATA_DIR."data.item.php");
define("DATA_ENCHANT", DATA_DIR."data.enchant.php");
define("DATA_SKILL", DATA_DIR."data.skill.php");
define("DATA_SKILL_TREE", DATA_DIR."data.skilltree.php");
define("DATA_JUDGE_SETUP", DATA_DIR."data.judge_setup.php");
define("DATA_JUDGE", DATA_DIR."data.judge.php");
define("DATA_MONSTER", DATA_DIR."data.monster.php");
define("DATA_LAND", DATA_DIR."data.land_info.php");
define("DATA_LAND_APPEAR", DATA_DIR."data.land_appear.php");
define("DATA_CLASSCHANGE", DATA_DIR."data.classchange.php");
define("DATA_CREATE", DATA_DIR."data.create.php");
define("DATA_TOWN", DATA_DIR."data.town_appear.php");

define("MANUAL", DATA_DIR."data.manual0.php");
define("MANUAL_HIGH", DATA_DIR."data.manual1.php");

define("GAME_DATA_JOB", DATA_DIR."data.gd_job.php");
define("GAME_DATA_ITEM", DATA_DIR."data.gd_item.php");
define("GAME_DATA_JUDGE", DATA_DIR."data.gd_judge.php");
define("GAME_DATA_MONSTER", DATA_DIR."data.gd_monster.php");

define("TUTORIAL", DATA_DIR."data.tutorial.php");
// DAT
define("AUCTION_ITEM","./auction.dat");//アイテムオ〖クション脱のファイル
define("AUCTION_ITEM_LOG","./auction_log.dat");//アイテムオ〖クション脱のログファイル

define("REGISTER","./register.dat");
define("UPDATE","./update.dat");
define("CTRL_TIME_FILE","./ctrltime.dat");//年袋瓷妄のための箕粗淡脖ファイル
define("RANKING","./ranking.dat");
define("BBS_BOTTOM","./bbs.dat");
define("BBS_TOWN","./bbs_town.dat");
define("MANAGE_LOG_FILE","./managed.dat");//年袋瓷妄淡峡ファイル
define("USER_NAME","./username.dat");//叹涟瘦赂ファイル

// dir
define("IMG_CHAR","./image/char/");
define("IMG_CHAR_REV","./image/char_rev/");
define("IMG_ICON","./image/icon/");
define("IMG_OTHER","./image/other/");
define("USER","./user/");
define("UNION","./union/");
define("DATA","data.dat");
define("ITEM","item.dat");

define("LOG_BATTLE_NORMAL","./log/normal/");
define("LOG_BATTLE_RANK","./log/rank/");
define("LOG_BATTLE_UNION","./log/union/");

// 觉轮年盗
define("FRONT","front");
define("BACK","back");

define("TEAM_0",0);
define("TEAM_1",1);
define("WIN",0);
define("LOSE",1);
define("DRAW","d");

define("ALIVE",0);
define("DEAD",1);
define("POISON",2);

define("CHARGE",0);
define("CAST",1);

?>


按照管理,上几张截图,有图有真相才行:





最后附上下载地址,因为源代码体积很小,只有2M多一些,就直接在论坛上传了:
hof.zip (2.1 MB, 下载次数: 502)

免费评分

参与人数 11吾爱币 +12 热心值 +9 收起 理由
randomnany + 1 + 1 热心回复!
xsd173 + 1 谢谢@Thanks!
blindcat + 2 + 1 谢谢@Thanks!
lalicorne + 1 我很赞同!
RobinMaas + 1 谢谢@Thanks!
CainY + 1 谢谢@Thanks!
cjcmxc + 1 + 1 我很赞同!
2217936322 + 2 + 1 谢谢@Thanks!
ytw6176 + 2 + 1 谢谢@Thanks!
sp0770 + 1 + 1 谢谢@Thanks!
TSLPY + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
ytw6176 发表于 2023-10-2 21:47
感谢分享,居然才2MB,下载看下老前辈写的php
推荐
 楼主| zozoylolo 发表于 2023-10-3 09:13 |楼主
cyxnzb 发表于 2023-10-2 21:44
挺厉害的,放在0几年甚至1几年估计能火

火不了,国内玩游戏一直有一个急功近利和不社交就得死的坏毛病,在文字游戏最鼎盛的2000年左右,玩的也是江湖。这类偏文字和策略类的网页游戏都属于小众,另外还有一个国外的phaos的文字游戏也非常好。
头像被屏蔽
3#
tunnel213 发表于 2023-10-2 20:53
4#
stu2162583 发表于 2023-10-2 21:13
感谢楼主分享
5#
sp0770 发表于 2023-10-2 21:28
唉,算了,主要是自己不会配置
6#
啊笨 发表于 2023-10-2 21:35
打开提示No input file specified.

不知道要怎么操作
7#
cyxnzb 发表于 2023-10-2 21:44
挺厉害的,放在0几年甚至1几年估计能火
8#
jiang000 发表于 2023-10-2 21:52
谁弄好了叫我来玩
9#
aonima 发表于 2023-10-2 22:03
php啊,我的编程入门语言,现在忘的差不多了
10#
CainY 发表于 2023-10-2 22:25

感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-29 13:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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