yl941
发表于 2008-11-3 19:28:40
见到老外的存储过程里面是要关联到用户相关的4个表的,而现在的login存储程序只关联到2个表,我想原因可能在这,不过由于2个表的排序规则不一样,不能直接复制使用
jiji0513
发表于 2008-11-3 19:38:43
了解~~
[ 本帖最后由 jiji0513 于 2008-11-3 19:39 编辑 ]
jiji0513
发表于 2008-11-3 19:46:00
我參考此篇文章的
http://www.kofans.cn/bbs/thread-7218-1-1.html
修复重复选择种族的方法
我已經用查询分析器,输入,F5怎進去遊戲還是要選種族呢???
koollook
发表于 2008-11-3 23:01:09
我换了个服务端+那个新武器的数据库(朋友给的,网上没有)现在种族直接跳过的!一切正常!
天剑风小流
发表于 2008-11-3 23:53:35
修改存储过程
CREATE PROCEDURE ACCOUNT_LOGIN
@AccountID varchar(21),
@Password varchar(13),
@nRet smallint OUTPUT
AS
DECLARE @Nation tinyint, @CharNum smallint
SET @Nation = 0
SET @CharNum = 0
DECLARE @pwd varchar(13)
SET @pwd = null
SELECT @pwd = strPasswd FROM . WHERE strAccountID = @AccountID and idays=6
IF @pwd IS null
BEGIN
SET @nRet = 0
--SET @nRet = 4
RETURN
END
ELSE IF @pwd <> @Password
BEGIN
SET @nRet = 0
--SET @nRet = 3
RETURN
END
DECLARE @gokhantasci varchar(21)
select @gokhantasci = count(straccountid) FROM premium_service WHERE strAccountID = @AccountID
if @gokhantasci = 0
begin
insert into PREMIUM_SERVICE (strAccountID, strType, nDays) VALUES (@AccountID, 1, 3)
end
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 1
RETURN
END
IF @CharNum = 0
BEGIN
SET @nRet = 1
RETURN
END
ELSE
BEGIN
SET @nRet = @Nation+1
--SET @nRet = 1
RETURN
END
GO
==========================
CREATE PROCEDURE MYST_LOGIN
@AccountID varchar(21),
@Password varchar(13),
@nRet smallint OUTPUT
AS
DECLARE @Nation tinyint, @CharNum smallint
SET @Nation = 0
SET @CharNum = 0
DECLARE @pwd varchar(13)
SET @pwd = null
SELECT @pwd = strPasswd FROM . WHERE strAccountID = @AccountID
IF @pwd IS null
BEGIN
SET @nRet = 0
RETURN
END
ELSE IF @pwd <> @Password
BEGIN
SET @nRet = 0
RETURN
END
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 1
RETURN
END
IF @CharNum >= 0
BEGIN
SET @nRet = 1
RETURN
END
ELSE
BEGIN
SET @nRet = @Nation+1
RETURN
END
GO
ctgwglzc
发表于 2008-11-4 11:34:12
可跳过种族选择的储存过程
文件名: 可跳过种族选择的储存过程.rar
描述: 密码有的话论坛默认
下载地址: http://www.rayfile.com/files/6fe40e02-aa21-11dd-97a3-0019d11a795f/
jiji0513
发表于 2008-11-4 13:34:57
那些數據用法是查询分析器,输入,F5???
eason
发表于 2008-11-4 14:02:05
原帖由 CT 于 2008-11-4 11:34 发表 http://www.kofans.cn/bbs/static/image/common/back.gif
可跳过种族选择的储存过程
文件名: 可跳过种族选择的储存过程.rar
描述: 密码有的话论坛默认
下载地址: http://www.rayfile.com/files/6fe40e02-aa21-11dd-97a3-0019d11a795f/
CT你的地址失效了,
hotpp
发表于 2008-11-4 19:36:32
上述方法无效的情况下可以尝试我的存贮过程,反正我是在上述无效的情况下用下面的存贮过程实现跳种族选择的!
(注明:AU一定要选对!)
CREATE PROCEDURE ACCOUNT_LOGIN
@AccountID varchar(21),
@Password varchar(13),
@nRet smallint OUTPUT
AS
DECLARE @Nation tinyint, @CharNum smallint
SET @Nation = 0
SET @CharNum = 0
DECLARE @pwd varchar(13)
SET @pwd = null
SELECT @pwd = strPasswd FROM . WHERE strAccountID = @AccountIDandidays>0
IF @pwd IS null
BEGIN
--SET @nRet = 0
SET @nRet = 4
RETURN
END
ELSE IF @pwd <> @Password
BEGIN
--SET @nRet = 0
SET @nRet = 3
RETURN
END
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 1
RETURN
END
IF @CharNum = 0
BEGIN
SET @nRet = 1
RETURN
END
ELSE
BEGIN
SET @nRet = @Nation+1
RETURN
END
GO
jiji0513
发表于 2008-11-5 20:55:13
19樓的用了也是沒辦法><"
變成登入遊戲都變成 密碼不符 = =?