一个存储过程,来允许角色转换国家-已经修正问题
我粗心大意,写标题给写错了,真猪之前的版本在运行中发现一些问题,尤其是转换的时候有问题,已经解决,重新核对了人物角色
createPROCEDURE .
@AccountID varchar(21),
@Password varchar(13)
AS
DECLARE @Nation tinyint, @Nation1 tinyint,@CharNum smallint,@realrace tinyint,@realclass int
SET @Nation = 0
SET @Nation1 = 0
SET @CharNum = 0
DECLARE @pwd varchar(13),@name1 varchar(30),@name2 varchar(30),@name3 varchar(30)
SET @pwd = null
SELECT @pwd = strPasswd FROM . WHERE strAccountID = @AccountIDandidays>0
IF @pwd IS null
BEGIN
RETURN
END
IF @pwd <> @Password
BEGIN
RETURN
END
if @pwd = @Password
begin
begin
select @nation=bnation ,@name1=strcharid1, @name2=strcharid2,@name3=strcharid3 from account_char where straccountid=@AccountID;
end
if @nation=1
begin
set @nation1=2;
end
else if @nation = 2
begin
set @nation1=1;
end;
if @nation=1
begin
begin
--1
select @realrace=race,@realclass=class from userdata where struserid =@name1;
if @realrace=1
begin
update userdata set face=11 where struserid =@name1 ;
end
else if @realrace=2 and (@realclass=111 or @realclass=112)
begin
update userdata set face=12 where struserid =@name1;
end
else if @realrace=2 and (@realclass=107 or @realclass=108)
begin
update userdata set face=12 where struserid =@name1 ;
end
else if @realrace=2 and (@realclass=109 or @realclass=110)
begin
update userdata set face=12 where struserid =@name1 ;
end
else if @realrace=3
begin
update userdata set face=12 where struserid =@name1 ;
end
else if @realrace=4
begin
update userdata set face=13 where struserid =@name1 ;
end;
--2
select @realrace=race,@realclass=class from userdata where struserid =@name2;
if @realrace=1
begin
update userdata set face=11 where struserid =@name2 ;
end
else if @realrace=2 and (@realclass=111 or @realclass=112)
begin
update userdata set face=12 where struserid =@name2 ;
end
else if @realrace=2 and (@realclass=107 or @realclass=108)
begin
update userdata set face=12 where struserid =@name2 ;
end
else if @realrace=2 and (@realclass=109 or @realclass=110)
begin
update userdata set face=12 where struserid =@name2 ;
end
else if @realrace=3
begin
update userdata set face=12 where struserid =@name2 ;
end
else if @realrace=4
begin
update userdata set face=13 where struserid =@name2 ;
end;
--3
select @realrace=race,@realclass=class from userdata where struserid =@name3;
if @realrace=1
begin
update userdata set face=11 where struserid =@name3 ;
end
else if @realrace=2 and (@realclass=111 or @realclass=112)
begin
update userdata set face=12 where struserid =@name3 ;
end
else if @realrace=2 and (@realclass=107 or @realclass=108)
begin
update userdata set face=12 where struserid =@name3 ;
end
else if @realrace=2 and (@realclass=109 or @realclass=110)
begin
update userdata set face=12 where struserid =@name3 ;
end
else if @realrace=3
begin
update userdata set face=12 where struserid =@name3 ;
end
else if @realrace=4
begin
update userdata set face=13 where struserid =@name3 ;
end
end
update userdata set class=class+100 where struserid =@name1 or struserid =@name2 or struserid =@name3;
end
else if @nation=2
begin
begin
--1
if @realrace=11
begin
update userdata set face=1 where struserid =@name1 ;
end
else if @realrace=12 and (@realclass=207 or @realclass=208)
begin
update userdata set face=2 where struserid =@name1 ;
end
else if @realrace=12 and (@realclass=211 or @realclass=212)
begin
update userdata set face=2 where struserid =@name1 ;
end
else if @realrace=12 and (@realclass=209 or @realclass=210)
begin
update userdata set face=2 where struserid =@name1 ;
end
else if @realrace=12 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name1 ;
end
else if @realrace=13 and (@realclass=211 or @realclass=212)
begin
update userdata set face=4 where struserid =@name1 ;
end
else if @realrace=13 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name1 ;
end
else if @realrace=13 and (@realclass=209 or @realclass=210)
begin
update userdata set face=3 where struserid =@name1 ;
end;
--2
select @realrace=race,@realclass=class from userdata where struserid =@name2;
if @realrace=11
begin
update userdata set face=1 where struserid =@name2 ;
end
else if @realrace=12 and (@realclass=207 or @realclass=208)
begin
update userdata set face=2 where struserid =@name2 ;
end
else if @realrace=12 and (@realclass=211 or @realclass=212)
begin
update userdata set face=2 where struserid =@name2 ;
end
else if @realrace=12 and (@realclass=209 or @realclass=210)
begin
update userdata set face=2 where struserid =@name2 ;
end
else if @realrace=12 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name2 ;
end
else if @realrace=13 and (@realclass=211 or @realclass=212)
begin
update userdata set face=4 where struserid =@name2 ;
end
else if @realrace=13 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name2 ;
end
else if @realrace=13 and (@realclass=209 or @realclass=210)
begin
update userdata set face=3 where struserid =@name2 ;
end;
--3
select @realrace=race,@realclass=class from userdata where struserid =@name3;
if @realrace=11
begin
update userdata set face=1 where struserid =@name3 ;
end
else if @realrace=12 and (@realclass=207 or @realclass=208)
begin
update userdata set face=2 where struserid =@name3 ;
end
else if @realrace=12 and (@realclass=211 or @realclass=212)
begin
update userdata set face=2 where struserid =@name3 ;
end
else if @realrace=12 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name3 ;
end
else if @realrace=12 and (@realclass=209 or @realclass=210)
begin
update userdata set face=2 where struserid =@name3 ;
end
else if @realrace=13 and (@realclass=211 or @realclass=212)
begin
update userdata set face=4 where struserid =@name3 ;
end
else if @realrace=13 and (@realclass=205 or @realclass=206)
begin
update userdata set face=1 where struserid =@name3 ;
end
else if @realrace=13 and (@realclass=209 or @realclass=210)
begin
update userdata set face=3 where struserid =@name3 ;
end
end
update userdata set class=class-100 where struserid =@name1 or struserid =@name2 or struserid =@name3;
end;
update account_char set bnation=@nation1 where straccountid=@AccountID;
update userdata set nation=@nation1 where struserid =@name1 or struserid =@name2 or struserid =@name3;
delete from KNIGHTS_USER wherestruserid =@name1 or struserid =@name2 or struserid =@name3;
update userdata set knights=0 wherestruserid =@name1 or struserid =@name2 or struserid =@name3;
update userdata set zone=21 where struserid =@name1 or struserid =@name2 or struserid =@name3;
end 这个要怎么用...? 具体要怎么用 createPROCEDURE .
创建一个名称为nationchange的储存过程,然后把楼主的代码全部复制进去。 很好 支持 明白了 谢谢 !~~ 还有问题的,有的转了,人物没头了,衣服穿不了,有的技能出错了
麻烦楼主再测试下吧 发现问题,不是存储的问题,是进游戏不能跳过选择种族引起的问题~
跳过选择种族谁有解决办法啊? {:1_217:}
页:
[1]