【发布时间】:2012-09-18 22:43:32
【问题描述】:
我正在尝试为我一直在设计的一款在线游戏编写一个 php 战斗系统。
简而言之,它将是一款 MMORPG,玩家的统计数据将保存在几个 MySQL 表中,怪物数据也将保存。
简而言之,我担心人们会通过编辑怪物的 hp 来做某事,所以它说他们杀死了怪物,将他们的 HP 最大值保留在计算机上(因为更新不是不切实际每转一个 MySQL 条目?),或者别的什么。
我仍然只是 PHP 的中级,所以我不确定如何隐藏这些值不被用户更改,但又不会通过每次发生攻击时更新 MySQL 表来造成严重的服务器拥塞。
谁能告诉我以下一项或多项:
有没有办法单独在 PHP 中隐藏这些活动变量以防止被编辑以允许作弊?
如果没有,或者它对服务器不是很友好,是否有一个相对简单的 Java 小程序或用于控制主机变量的应用程序,可以以相对简单的方式进行编程?
目前怪物只有普通攻击,玩家只有攻击,不过我打算先扩展玩家的技能攻击。
【问题讨论】:
-
你被否决了,因为这里没有真正的问题。你本可以删掉这个问题的 3/4 并仍然传达信息。我建议您重新考虑您的要求,然后再试一次。
-
首先,服务器端(PHP)的变量不能被用户编辑。其次,一般来说,游戏防止作弊的工作方式是请求做某事,并处理实际的计算服务器端。 EX:客户端请求攻击,服务器确定他们是否可以,以及它造成了多少损害并将其报告给客户端,客户端已经显示了他们认为应该是什么样子,如果服务器不同意,应该改变。
-
@Alex Luunix 谢谢,我知道 PHP 本身不能被用户编辑。我的问题是,如果您对 Cheat Engine 有所了解,您是否可以更改浏览器属性中的内容。我担心用户会使用某种东西让浏览器始终认为他们仍然拥有最大 HP,并将该值返回给服务器......我的问题是我如何才能高效地执行您最后所说的操作?以 MP 为例,每次施法时不断更新 MP 不会占用带宽吗?