设为首页 加入收藏
网站首页 家族联盟 技术文章 外挂下载 网站帮助
发布红月 发布家族 开区服务 IP生成器 广告联系
 

业务联系QQ:170892752

您当前位置: www.hy45.net 战争开始时间的储存过程的新设置
红月搜索: 条件 名称 IP 时间 介绍
战争开始时间的储存过程的新设置
文章作者:管理员 文章来源:红月私服中心 更新时间:2008-8-8 6:58:12 

/****** Object:  Stored Procedure dbo.RMS_ARMY_DECLAREWAR    Script Date: 2004-5-13 11:21:06 ******/


CREATE PROCEDURE RMS_ARMY_DECLAREWAR 
 @ArmyID1 int,
 @ArmyID2 int,
 @WarKind1 int,
 @WarKind2 int,
 @WarPlace int,
 @WarStartHour int,
 @WarDuration int

AS
set nocount on

begin transaction RMS_ARMY_DECLAREWAR  
 

 declare @AllianceID1 int
 declare @AllianceID2 int
 declare @CheckArmyID int
 declare @RowCount int
 declare @IsCorrectWar int
 declare @IsAlliance1 int
 declare @IsAlliance2 int
 declare @GameID varchar(14)
 set @IsCorrectWar=1
 set @CheckArmyID=0
 set @IsAlliance1=0
 set @IsAlliance2=0


 if @WarKind1=2 or @WarKind2=2 -- Army hall War
 begin
  select @CheckArmyID=ArmyID from tblAgitList1 where AgitNumber=@WarPlace
 end
 else if @WarKind1=4 or @WarKind2=4 -- Shop War
 begin
  select @CheckArmyID=ArmyID from tblArmyShopList1 where ShopNumber=@WarPlace
 end
 else if @WarKind1=6 or @WarKind2=6 -- HQ War
 begin
  select @CheckArmyID=ArmyID from tblArmyBase1
 end


 if  (@WarKind1=0 and @WarKind2=0) or ( (@WarKind1=2 or @WarKind1=4 or @WarKind1=6)  and @CheckArmyID=@ArmyID1) or ( (@WarKind2=2 or @WarKind2=4 or @WarKind2=6) and @CheckArmyID=@ArmyID2)
 begin
  select @AllianceID1=AllianceID from tblArmyAllianceList1 where ArmyID=@ArmyID1
  if @@ROWCOUNT!=0
  begin
   set @IsAlliance1=1
   select @RowCount=count(*) from tblArmyWarList1 where ArmyID in (select ArmyID from tblArmyAllianceList1 where AllianceID=@AllianceID1)
   if @RowCount!=0
   begin
    set @IsCorrectWar=0
   end
  end
  else
  begin
   select @RowCount=count(*) from tblArmyWarList1 where ArmyID=@ArmyID1
   if @RowCount!=0
   begin
    set @IsCorrectWar=0
   end
  end

  select @AllianceID2=AllianceID from tblArmyAllianceList1 where ArmyID=@ArmyID2
  if @@ROWCOUNT!=0
  begin
   set @IsAlliance2=1
   select @RowCount=count(*) from tblArmyWarList1 where ArmyID in (select ArmyID from tblArmyAllianceList1 where AllianceID=@AllianceID2)
   if @RowCount!=0
   begin
    set @IsCorrectWar=0
   end
  end
  else
  begin
   select @RowCount=count(*) from tblArmyWarList1 where ArmyID=@ArmyID2
   if @RowCount!=0
   begin
    set @IsCorrectWar=0
   end
  end

  if (@IsCorrectWar=1) and datepart(hour,GetDate())>=20 and datepart(hour,GetDate())<=21
  begin
   declare @WarBegin datetime
   declare @WarEnd datetime
   set @WarBegin=GetDate()
   set @WarBegin=dateadd(hour,@WarStartHour,@WarBegin)
   set @WarEnd=dateadd(hour,@WarDuration,@WarBegin)

   if @WarKind1=6 or @WarKind2=6
   begin
    insert tblArmyWarList1 values(@ArmyID1,@ArmyID2,@WarBegin,@WarEnd,@WarKind1,@WarPlace,0,0,'','','','',0)
    insert tblArmyWarList1 values(@ArmyID2,@ArmyID1,@WarBegin,@WarEnd,@WarKind2,@WarPlace,0,0,'','','','',0)
   end
   else
   begin
    insert tblArmyWarList1 values(@ArmyID1,@ArmyID2,@WarBegin,@WarEnd,@WarKind1,@WarPlace,0,1000,'','','','',0)
    insert tblArmyWarList1 values(@ArmyID2,@ArmyID1,@WarBegin,@WarEnd,@WarKind2,@WarPlace,0,1000,'','','','',0)
   end
   EXEC RMS_ARMY_WRITEWARLOG @ArmyID1=@ArmyID1,@ArmyID2=@ArmyID2,@LogKind='WarDeclaration'

   declare @FromArmyName varchar(10)
   declare @FromArmyCommander varchar(14)
   declare @ToArmyName varchar(10)
   set @FromArmyName=''
   set @FromArmyCommander=''
   set @ToArmyName=''
   Select @FromArmyName=Name,@FromArmyCommander=Commander from tblArmyList1 where ID=@ArmyID1
   Select @ToArmyName=Name from tblArmyList1 where ID=@ArmyID2
  
   Declare @MailContent varchar(400)
   if @WarKind1=2 or @WarKind2=2
   begin
    declare @AgitChar varchar(30)
    if @WarPlace>20 and @WarPlace<=40
    begin
     set @WarPlace=@WarPlace-20
     set @AgitChar='Freedom Camp Army Hall '+CAST(@WarPlace AS varchar)
    end
    else
    begin
     set @AgitChar='Liberation Camp Army Hall '+CAST(@WarPlace AS varchar)
    end

    set @MailContent=
@FromArmyName+' Army Commander '+@FromArmyCommander+'
has targeted '+@ToArmyName+' Army for war.
War will be:
From: '+convert(varchar,@WarBegin, 120)+'
To:   '+convert(varchar,@WarEnd, 120)+'
War target is '+@ToArmyName+' Army''s
'+@AgitChar+'.'
   end
   else if @WarKind1=0 and @WarKind2=0
   begin
    set @MailContent=
@FromArmyName+' Army Commander '+@FromArmyCommander+'
has targeted '+@ToArmyName+' Army for war.
War will be:
From: '+convert(varchar,@WarBegin, 120)+'
To:   '+convert(varchar,@WarEnd, 120)
   end
   else if @WarKind1=4 or @WarKind2=4
   begin
    declare @ShopOwner varchar(30)
    declare @ShopNumber int
    set @ShopNumber=@WarPlace
    set @ShopOwner=''
    if @ShopNumber=1
    begin
     set @ShopOwner='Street 1 Shop'
    end
    else if @ShopNumber=2
    begin
     set @ShopOwner='Street 1 Weapon Shop'
    end
    else if @ShopNumber=3
    begin
     set @ShopOwner='Street 1 Runaway Girl'
    end
    else if @ShopNumber=4
    begin
     set @ShopOwner='Street 1 Old Lady 2'
    end
    else if @ShopNumber=5
    begin
     set @ShopOwner='Street 2 Store'
    end
    else if @ShopNumber=6
    begin
     set @ShopOwner='Street 2 Weapon Shop'
    end
    else if @ShopNumber=7
    begin
     set @ShopOwner='Street 2 Runaway Girl'
    end
    else if @ShopNumber=8
    begin
     set @ShopOwner='Street 3 Shop'
    end
    else if @ShopNumber=9
    begin
     set @ShopOwner='Street 3 Geographer'
    end
    else if @ShopNumber=10
    begin
     set @ShopOwner='Street 3 Old Lady 1'
    end
    else if @ShopNumber=11
    begin
     set @ShopOwner='Street 3 Runaway Girl'
    end
    else if @ShopNumber=12
    begin
     set @ShopOwner='Street 3 Old Lady 2'
    end
    else if @ShopNumber=13
    begin
     set @ShopOwner='Downtown 1 Archeologist'
    end
    else if @ShopNumber=14
    begin
     set @ShopOwner='Downtown 1 Shop'
    end
    else if @ShopNumber=15
    begin
     set @ShopOwner='Downtown 2 Grocer 1'
    end
    else if @ShopNumber=16
    begin
     set @ShopOwner='Downtown 2 Grocer 2'
    end
    else if @ShopNumber=17
    begin
    set @ShopOwner='Downtown 2 Weapon Shop 1'
    end
    else if @ShopNumber=18
    begin
     set @ShopOwner='Downtown 2 Archeologist'
    end
    else if @ShopNumber=19
    begin
     set @ShopOwner='Downtown 3 Weapon Shop1'
    end
    else if @ShopNumber=20
    begin
     set @ShopOwner='Downtown 3 Weapon Shop 2'
    end
    else if @ShopNumber=21
    begin
     set @ShopOwner='Downtown 3 Geographer'
    end
    else if @ShopNumber=22
    begin
     set @ShopOwner='Downtown 4 Grocer'
    end
    else if @ShopNumber=23
    begin
     set @ShopOwner='Himalaya Shop'
    end
    else if @ShopNumber=24
    begin
     set @ShopOwner='Himalay Food Shop'
    end

    set @MailContent=
@FromArmyName+' Army Commander '+@FromArmyCommander+'
has declared war on '+@ToArmyName+'.
War will be:
From: '+convert(varchar,@WarBegin, 120)+'
To:   '+convert(varchar,@WarEnd, 120)+'
War location will be '+@ShopOwner+'
that is owned by the'
+@ToArmyName+' Army.'
   end
   else if @WarKind1=6 or @WarKind2=6
   begin
    set @MailContent=
@FromArmyName+' Army Commnader '+@FromArmyCommander+'
has declared war on '+@ToArmyName+'.
War will be:
From: '+convert(varchar,@WarBegin, 120)+'
To:   '+convert(varchar,@WarEnd, 120)+'
War location will be '+@ToArmyName+'
Army''s HQ.'
   end


   if @IsAlliance1=1
   begin

    DECLARE ArmyMemberList CURSOR
    FOR
     SELECT RegularSoldier FROM tblArmyMemberList1 WHERE ArmyID in (SELECT ArmyID FROM tblArmyAllianceList1 WHERE AllianceID=@AllianceID1)
 
    OPEN ArmyMemberList

    FETCH FROM ArmyMemberList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyMemberList INTO @GameID
    END
    CLOSE ArmyMemberList
    DEALLOCATE ArmyMemberList
   end
   else
   begin

    DECLARE ArmyMemberList CURSOR
    FOR
     SELECT RegularSoldier FROM tblArmyMemberList1 WHERE ArmyID=@ArmyID1     OPEN ArmyMemberList

    FETCH FROM ArmyMemberList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyMemberList INTO @GameID
    END
    CLOSE ArmyMemberList
    DEALLOCATE ArmyMemberList
   end

   if @IsAlliance2=1
   begin
    DECLARE ArmyMemberList CURSOR
    FOR
     SELECT RegularSoldier FROM tblArmyMemberList1 WHERE ArmyID in (SELECT ArmyID FROM tblArmyAllianceList1 WHERE AllianceID=@AllianceID2)
 
    OPEN ArmyMemberList

    FETCH FROM ArmyMemberList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender=ArmyAdmin,@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyMemberList INTO @GameID
    END
    CLOSE ArmyMemberList
    DEALLOCATE ArmyMemberList
   end
   else
   begin

    DECLARE ArmyMemberList CURSOR
    FOR
     SELECT RegularSoldier FROM tblArmyMemberList1 WHERE ArmyID=@ArmyID2
 
    OPEN ArmyMemberList

    FETCH FROM ArmyMemberList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyMemberList INTO @GameID
    END
    CLOSE ArmyMemberList
    DEALLOCATE ArmyMemberList
   end

   if @IsAlliance1=1
   begin
    DECLARE ArmyCommanderList CURSOR
    FOR
     SELECT Commander FROM tblArmyList1 WHERE ID in  (SELECT ArmyID FROM tblArmyAllianceList1 WHERE AllianceID=@AllianceID1)
 
    OPEN ArmyCommanderList
 
    FETCH FROM ArmyCommanderList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyCommanderList INTO @GameID
    END
    CLOSE ArmyCommanderList
    DEALLOCATE ArmyCommanderList
   end
   else
   begin
    DECLARE ArmyCommanderList CURSOR
    FOR
     SELECT Commander FROM tblArmyList1 WHERE ID=@ArmyID1
 
    OPEN ArmyCommanderList
 
    FETCH FROM ArmyCommanderList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyCommanderList INTO @GameID
    END
    CLOSE ArmyCommanderList
    DEALLOCATE ArmyCommanderList
   end

   if @IsAlliance2=1
   begin
    DECLARE ArmyCommanderList CURSOR
    FOR
     SELECT Commander FROM tblArmyList1 WHERE ID in  (SELECT ArmyID FROM tblArmyAllianceList1 WHERE AllianceID=@AllianceID2)
 
    OPEN ArmyCommanderList
 
    FETCH FROM ArmyCommanderList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyCommanderList INTO @GameID
    END
    CLOSE ArmyCommanderList
    DEALLOCATE ArmyCommanderList
   end
   else
   begin
    DECLARE ArmyCommanderList CURSOR
    FOR
     SELECT Commander FROM tblArmyList1 WHERE ID=@ArmyID2
 
    OPEN ArmyCommanderList
 
    FETCH FROM ArmyCommanderList INTO @GameID
    WHILE @@FETCH_STATUS =0
    BEGIN
     EXEC RMS_SENDMAIL @Recipient=@GameID,@Sender='ArmyAdmin',@Title='Declaration of War',@Line=6,@MailContent=@MailContent,@Item=''
     FETCH FROM ArmyCommanderList INTO @GameID
    END
    CLOSE ArmyCommanderList
    DEALLOCATE ArmyCommanderList
   end

  end
 end

commit transaction RMS_ARMY_DECLAREWAR

 


GO

 

浏览次数:1
最新文章
· 可随意变换的新人出生地图存储过程...
· 邮件转生储存...
· 战争开始时间的储存过程的新设置...
· 如何把自己改为GM...
· 加王的方法...
· 部分新特代码...
· 红月私服改版新建议...
· 红月家族...
· 装备位置代码...
· 关于克隆人...
热门文章
· 红月技能点属性上限...
· 退出游戏自动打开网站代码...
· 升华原版升级代码...
· Web服务器安全加固步骤(三)...
· Web服务器安全加固步骤(四)...
· 地图能否PK的设置...
· Web服务器安全加固步骤(一)...
· 3.8C红月私服限制部分外挂的方法...
· 积分计算方式...
· 红月服务器如何做到冲卡的...
关于我们 开区服务 网站帮助 全部私服
 
Copyright 2008-2010 Www.hy45.Net All Rights Reserved
品牌商标、文字、形象及内容归 红月私服中心 版权所有
注释:本站发布所有游戏信息,均来自互联网。请玩家仔细辨认信息的真实性!
网站备案登记号
闽ICP备06051081号