| 我粗心大意,写标题给写错了,真猪 之前的版本在运行中发现一些问题,尤其是转换的时候有问题,已经解决,重新核对了人物角色
 
 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
 |