架设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爱好者都需要的品质~ 
  真真正正一直做到这些,没有什么难得到你的~ 
 
鄙人小浪~~ |