本帖最后由 Rayman 于 2009-12-17 03:25 编辑
序,最近一朋友说服里经常出现有人爆点情况,分析应该是从1299升级到1310并开了80级而致,1310的版本应该不存在此问题。
一、查出所有80级爆点的人物
asp代码,运行即可显示。
- <!--#include file="conn.asp" -->
- <%
- '加入数据库链接代码
- set rs=conn.execute("select level,struserid,dex,intel,cha,strong,points from userdata")
- do while not rs.eof
- t=0
- t=rs("strong")+rs("dex")+rs("intel")+rs("cha")+rs("points")
- if t>587 then
- response.write rs("struserid") &"----->"&rs("level")&"--->"&t
- response.write("<font color=red>ERROR</font>")
- response.write "<br />"
- end if
- rs.movenext
- loop
- rs.close
- closeconn()
- %>
复制代码 说明:以上即可分析出你服务器里爆点的人物,对应你开服的最高级别,修改那个587的值即可。
二、对策
在load_user_data中做手脚,检测人物能力点总和,发现超587(80级的能力点总和)即强制洗掉。
- --GM号的登陆
- Declare @isGM int,@gold int,@knights int,@exp int,@t1 int,@t2 int,@t3 int,@t4 int,@t5 int,@t6 int
- SELECT @isGM = Authority,@gold=gold,@exp=exp,@knights=knights,@t1=strong,@t2=sta,@t3=dex,@t4=intel,@t5=cha,@t6=points FROM USERDATA WHERE strUserID =@id
- --此处是为了防不良分子建GM号进游戏,即自动封掉非“GM”和非“GM001”的GM号。
- IF @isGM=0 and @id<>'GM'
- BEGIN
- if @id<>'GM001'
- begin
- update userdata set authority=255 WHERE strUserId = @id
- end
- END
- --修正80级超点现象
- IF (@t1+@t2+@t3+@t4+@t5+@t6)>587
- begin
- exec REPAIR_STATPOINT @id
- end
复制代码 相关的洗点存储为REPAIR_STATPOINT,这个一般库里都有,如果没有,大家可以问CT要。
三、愿景
最近私服界起了一阵不正之风,攻击事件频起,倒处乱轰,有些攻击世纪和朋友服的同行被我们活捉,我们都没有公开,一方面是为了保足其脸面(至于是谁,有人明白),一方面是不愿骑士这个小私服界乱起风云。
当初一些泡国外论坛的朋友为了研究把攻击器down回国,但有些不研究的人拿到了就当宝贝,倒处攻击他人,十分的恶劣!
对此,开服者都在不断的找对策,因此希望有对策的朋友共享经验,哪怕是开服卷子里也好,但切忌去攻击他人。在此我代表世纪说一句:我们从不去攻击他人,不靠攻击他人这种低劣和无能的办法来招揽玩家,一个服的好坏在于你怎么服务于大众和玩家,人家来玩是给你面子,人家花钱,那你就得保障别人的利益,用心服务即可,靠骗人或攻击同行来的,注定是个失败者。同时,攻击者不要以为这些事情是好玩,你攻击别人,别人不会轻放过你的,一旦被捉到,你将是很惨痛的代价。 |