搜索
 找回密码
 加入

无聊从自己的论坛给大家转些帖子

wsyzyddd 2007-9-15 15:49:24 1168
架设SF要改的端口

80 | TCP/UDP | Web Server
8888 | UDP/UDP | UDP Backport
10020 | TCP/UDP | Karus Connections
10030 | TCP/UDP | Elmorad Connections
10040 | TCP/UDP | Battlefield Connections
15000 | TCP/UDP | Listening Port
15001 | TCP/UDP | Login Server
15100 | TCP/UDP | Game Server




鄙人小浪的服务端




经验交流  当然啊,首先是数据库问题垃~
  虽然现在对数据库依然不是很了解,但大部分问题还是可以解决的。。。。

  慢慢的发自己处理问题时的经验~

  


  1.载入AIsever的时候~
  出现打不开~
  在任务管理器里面看进程,发现在载入到50M-80M的时候,卡住不动了~
  这是因为在K_NPCPOS 里面出现了K_NPC和K_MONSTER里面不存在的NPCID
  当然读不过去了
  在K_npcPOS里面把不存在的行删掉即可
  在查询里面运行如下命令


      select * from (selcet * from K_NPCPOS where npcid <> K_NPC.ssid )where npcid<> K_MONSTER.ssid

      把结果包含的行全部删掉即可



  2.服务端运行占用CPU100%~~~
  
  删掉多余的NPC和怪即可
      运行下面的命令
  
      select * from K_NPCPOS where zoneid <> zone_info.zoneno

      把结果包含的行全部删掉即可


      3. 打开Eb的时候出现

      QUEST INFO LORD FAIL

      evt文件是引导AIsever文件载入MAP的文件
  那些程序在运行时发现EVT都会自动加载,但是EB不需要啊!
  要是按照EVT的来加载,自然出现问题了。。。
  仔细看看AI里面的MAP,只比EB里面的多了几个EVT不是吗?


鄙人小浪~~



1.弄装备问题的方法
就是让别人的装备可以看见的方法,

需要应用到储存过程:
userdate_update里面的就是我们要的了
userdate_update储存过程里面和服务端有关的全部复制下~
放到服务端定时读取的一个储存过程里面就可以了。
原理是
别人在自己跟前换装备就可以看见了,而换装备调用的储存过程就是这个,我们先这样更改试试~~

但是哪个储存过程定时读取~
还不知道,所以需要有对服务的源代码研究厉害的说下哪个储存是被被定时读取.呵呵


PS:宇宙语:其实那个存储过程还是和服务端程序有关,好像是auj什么的那个最后一个程序,还有论坛里的数据库缺少几个存储过程




2.服务端4个程序各自的作用

LOGIN:登陆啦,开了这个就可以进入写账号密码的界面了,出现10061就是这个出现问题了
AIsever:整个私服的中心文件,运算处理游戏中的数据
Eb:这是中继站了,从AISEVER和数据库取得数据,整理数据,然后发给AISEVER或者发给AUJARD传输给客户端
AUJARD:输出数据给客户端,就是和可获得联系的东西

PS:不知道正确与否,有问题回复说下

最后希望高手指点下,AISEVER和数据库是怎样联系的
以及2转职业的技能怎么做,不可能把一转的技能复制下改再添加吧?



3.设置NPC卖的物品以及价格

价钱在ITEM_basic里面有改的
有个列就是prize ,那个就是设置价格的 .(1098和1503的一样的)比如想给卖武器的NPC(假设ID为10011)里加个火魔:
而且要把火魔的价钱弄在1E.....
先看火魔是在哪个表里面的...
找到了,在item_14***
然后找到火魔那行~~往后面拉......
这列就是了,名字是
prize
值写100000000(物品价格在此)
拉到最后面,是
bycansell (这个很好理解吧?翻译过来就是可以出售与否。1就是可以,0就是不行)
值写1
倒数第2是
bysellgroup
写要卖这个暗金物品的NPC的
ID
比如小浪要写的就是 10011(NPCID啦)
最后在客户端的TBL里面改好就OK了..

PS:把可获得对应TBL(item_14***)最后面的那列改成10011(NPCID)即可

鄙人小浪~~


大家都碰到过运行EB或AI出现V++错误的时候吧~

出现这种情况不要就认为这个服务端不行,先用个只设置了6个数据源的机子上测试下,只要可以打开那个界面,这个服务端就可以用。
换个试试!
现在基本上只有4种库~
1,1098的库
2,网上流传多时的1503库
3,1508的库
4,鄙人小浪的库


鄙人小浪~~







实现点卡制以下SQL就实现点卡需要用的SQL语句
update TB_user set iDate = @date +iPoint where iPoint <> 0
update TB_user set iPonit = 0 where iPoint <> 0
--充点后自动更改时间
需要每小时运行一次的

Truncate table Temp
insert into  Temp (User) (select strAccountID from TB_user where @date >iDate and @mouth >= iMouth)
--选取过期账号
update a set a.Authority = 255
from userdate a,Account_char b,Temp c
where ((a.strUserID = (select b.strCharID1 from b where b.strAccountID = c.User )
or (a.strUserID = (select b.strCharID2 from b where b.strAccountID = c.User )
or (a.strUserID = (select b.strCharID3 from b where b.strAccountID = c.User ))
--停权过期账号

DELETE FROM userdata where struserID = (select strCharID1 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM userdata where struserID = (select strCharID3 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM userdata where struserID = (select strCharID2 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM warehouse where strAccountID = (select strCharID1 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM warehouse where strAccountID = (select strCharID3 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM warehouse where strAccountID = (select strCharID2 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM Account_char where strAccountID = (select strCharID1 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM Account_char where strAccountID = (select strCharID3 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
DELETE FROM Account_char where strAccountID = (select strCharID2 from Account_char where Account_char.strAccountID <> (select strAccountID from TB_user))
--删除不能选取的角色

  下面的是制作对应网页需要用到的SQL
充点网页
添加的变量@account,@Num,@Passage
要用的SQL语句
update a.iPoint = TB_iPoint + b.iPoint , b.iPoint = 0
from TB_user a,Point b
where a.strAccountID = @account and b.iNum = @Num and b.iPassage = @passage
--充点网页

查询剩余天数的网页
添加变量@Account
--查询剩余天数
--输出
select @date - iDate from TB_user where strAccountID = @Account

鄙人小浪~~





自己收集的怪物代码15**的
100-109小地精
112-115大地精
200-205布几
300-304蝙蝠
500-505浪人
600-605狗
700-705虫子
800-805
859老鼠
900-905小蝎子
910-912 大蝎子
1000-1005死尸
1100-1106小骷髅
1108-1111大骷髅
1200-1205指挥官
1207-1211
1259大指挥官
1300-1305小锯末
1307-1311
1359大锯末
1600,1601,1606-1616半兽人
1631-1639大半兽人
1701-1704
1706沼地锯末
2000-2002梅杜莎
2100-2103教徒
2200-2203
2205哈B
2400,2401,2404,2405石头
2599-2604,2605-2607,2609半人马
6011杀人峰
反正在大部分库都是这样的
直接用即可

1098的
地精100-109 210 211
大地精112-115
布坎兽200-206
蝙蝠300-304
青蛙400-408
浪人500-506 508-514
狗600-605
大狗609-614
虫子700-706
老鼠800-806
蝎子900-905
大蝎子910-913
僵尸1000-1005
骷髅1100-1106
大骷髅1108-1116
邪恶1200-1210 1212
巨魔 1300-1303
大锯末1305
国锯末 1307-1310
半兽人1601-1603
大半兽人1606-1607 1631-1639 1641-1642
沼地巨魔1701-1704 1707-1708
梅杜莎2000-2003 2005-2007
小鬼2010-2013
德鲁依2100-2108 (2105教主)
哈比2200-2207(2204女王)
石人2400-2407
半人马2601,2600头头
梦魇2800-2803
魔女3000-3006
国的狗4000-4400

只有普通怪的哦!
BB没有写

鄙人小浪~~





给研究KO的朋友提一些建议  现在好多人都还是纠缠在数据库上面,何必?
  数据库的问题无非就是设置的问题,根本不需要在深入了~、
  这是句大实话。
  原因很简单,数据库的所有东西我们都可以自己改,然后观察结果,什么东西都可以研究明白的。。
  反而是服务端,因为加壳和加密之类的,现在进度非常慢,非常慢!!
  所以吗,发现没加壳的端或源代码,赶紧下载~~
  而且现在网上的那些问题,90%都是对数据库不熟悉导致的,因此发了问题没人回答千万不要丧气,你的问题在别人看来可能真的~真的很弱智~~发现问题先自己试着解决,实在不行再去询问,要不然自己的技术提高很慢的,实践出能力嘛。
  送大家句话吧~鄙人一直坚持的
  有问题就必须去想怎么解决,知道怎么解决就必须去想为什么~

  这应该是每个SF爱好者都需要的品质~
  真真正正一直做到这些,没有什么难得到你的~

鄙人小浪~~

2 回复

wsyzyddd
2007-9-15 15:32:58
楼主
点击查看详情
这些只不过是研究KO出现问题的九牛一毛而已,只是希望通过这个帖子吸引更多的人研究我们的骑士
binwang
2007-9-15 15:49:24
呵呵,问题的确很多
高级模式
游客