CREATE TRIGGER www.hy45.net ON dbo.tblMail1
For Insert
AS
declare @iTitle varchar(80)
declare @Sender varchar(16)
declare @Recipient varchar(16)
declare @iContent varchar(200)
declare @Time datetime
declare @iCount int
declare @DHWP varchar(10)
declare @iDHWPDM int
declare @iDHXYSL int
declare @iLL int
declare @iYZ int
declare @iMJ int
declare @iGQ int
declare @iTmpS varchar(200)
declare @iLen int
declare @iID int
--角色类型临时变量
declare @face int
Select @iTitle=Title,@Sender=Sender,@Recipient=Recipient,@iContent=Content,@Time=Time From Inserted
set @iTitle=ltrim(rtrim(@iTitle))
set @iContent=ltrim(rtrim(@iContent))
--判断发信人和收信人的名字是否相同,不相同直接结束
if (@Sender<>@Recipient) return
--判断标题是否少于3个字,少于则直接结束
if (len(@iTitle)<3) return
--判断标题前2个字是否为兑换或退还生化,不是则直接结束
if ( left(@iTitle,2)<>'变身') return
if (left(@iTitle,2)='变身')
begin
if (@iTitle='变身0' OR @iTitle='变身菲拉洛')
set @face=0
else if (@iTitle='变身1' OR @iTitle='变身阿基拉')
set @face=1
else if (@iTitle='变身2' OR @iTitle='变身撒达得')
set @face=2
else if (@iTitle='变身3' OR @iTitle='变身邓斯帝诺')
set @face=3
else if (@iTitle='变身4' OR @iTitle='变身朴真熙')
set @face=4
else if (@iTitle='变身5' OR @iTitle='变身凯诺')
set @face=5
else if (@iTitle='变身6' OR @iTitle='变身韩智华')
set @face=6
else if (@iTitle='变身7' OR @iTitle='变身露娜莉娜')
set @face=7
else if (@iTitle='变身8' OR @iTitle='变身罗贝塔')
set @face=8
else
begin
set @iC
update tblMail1 Set Content=@iContent,Line=20 Where Sender=@Sender AND Recipient=@Recipient AND Time=@Time
return
end
select @iID=face from tblGameID1 where GameID=@Recipient
if (@iID=@face)
begin
set @iC
update tblMail1 Set Content=@iContent,Line=20 Where Sender=@Sender AND Recipient=@Recipient AND Time=@Time
return
end
select @iCount=(select Count(GameID) AS iCount From tblSpecialItem1
Where ItemKind=6 AND Position=1 AND GameID=@Recipient AND (WindowKind=1 OR WindowKind=3) AND ItemDurability>=4 AND (ItemIndex=210 OR ItemIndex=211))
if (@iCount<80)
begin
set @iC
update tblMail1 Set Content=@iContent,Line=20 Where Sender=@Sender AND Recipient=@Recipient AND Time=@Time
return
end
begin transaction
delete tblSpecialItem1 Where ID IN (Select Top 80 ID From tblSpecialItem1 Where ItemKind=6 AND
Position=1 AND GameID=@Recipient AND (WindowKind=1 OR WindowKind=3)
AND ItemDurability>=4 AND (ItemIndex=210 OR ItemIndex=211))
update tblGameID1 set face=@face where GameID=@Recipient
insert into tblSpecialItem1 (ItemKind, ItemIndex, ItemDurability, Position, Map, X, Y, TileKind, GameID, WindowKind, WindowIndex, MiscTime, AttackGrade, StrengthGrade, SpiritGrade, DexterityGrade, PowerGrade)
values (6, 67, 4, 2, 1, 100, 100, 1, @Recipient, 100, 0, @Time, 0,0,0,0,0)
set @iC
update tblMail1 Set Content=@iContent,Line=20 Where Sender=@Sender AND Recipient=@Recipient AND Time=@Time
commit transaction
return
end