在游戏战斗中,要求玩家多少秒内不能发招.asp.net 2.0 + sqlserver2005这种需求要如何实现呢?只要说明思路.

解决方案 »

  1.   

    在表中设计一个起始时间tT                              S
    2007-02-06 11:00:00            10秒除用这种方式
      

  2.   

    我想到3种方法供你参考1.在工具箱里面有个Timer组建,可以实现
    2.用sleep(1000),休眠时间
    3.可以在游戏开始的时候,先弹出一个层,"Ready Go",就象格斗里面的,让层显示一段时间后隐藏,然后判断当层隐藏后,才可以发招,也就是游戏已经开始
      

  3.   

    我是楼主:具体需求为例如A,B处于战斗中,A发一个招式(特别招式)给B,使B在一定时间内不能发招.
    在游戏中,类似"多少秒内使一玩家的属性处于一个特别状态"这种做法有很多.所以采用用数据库方式来记录这种状态不太可能.
      

  4.   

    ALTER proc [dbo].[sp_LockStatus_Event39]
    (
    @PlayerID varchar(30), --玩家ID
    @T int --时间(秒)
    @Flag int = null, --定身状态(null:默认状态,0:无法进行任何行动,1:无法进行普通攻击,2:无法进行招式操作)
    )
    as
    declare @strSQL varchar(5000)
    set @strSQL = N''
    set nocount on
    begin tran
    update Players set LockStatus = @Flag where PlayerID = @PlayerID
    set @strSQL = N'waitfor delay  '''+ @T +'''';
    exec(@strSQL)
    update Players set LockStatus = 0 where PlayerID = @PlayerID
    commit tran大家觉得我这种做法行吗?