我粗心大意,写标题给写错了,真猪
之前的版本在运行中发现一些问题,尤其是转换的时候有问题,已经解决,重新核对了人物角色
create PROCEDURE [dbo].[nationchange]
@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 [dbo].[TB_USER] WHERE strAccountID = @AccountID and idays>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 where struserid =@name1 or struserid =@name2 or struserid =@name3;
update userdata set knights=0 where struserid =@name1 or struserid =@name2 or struserid =@name3;
update userdata set zone=21 where struserid =@name1 or struserid =@name2 or struserid =@name3;
end |