www.pudn.com > Roulette.rar > TltConst.pas


unit TltConst; 
 
interface 
uses Windows, Types; 
const 
  SSockets = 'sockets'; 
 
  asGetServerInfo            = $20;   // Specify a call to get Server Ver. 
  asGetCurrentRound        = $21; 
  asSetCountDown             = $22; 
  asLoginPlayer              = $23; 
  asLogoffPlayer             = $24; 
  asResetRound               = $25; 
  asSetRound                 = $26; 
  asGetRoundScord            = $30; 
  asBet                      = $31; 
  asTimeSetting              = $32; 
  asPlayerInfo               = $33; 
  asWheelResult              = $34; 
  asWheelParams              = $35; 
 
  asGetRoundInfo             = $40; 
  asPlayerEdit               = $41; 
  asPlayerList               = $42; 
  asSetRoundResult           = $43; 
  asGetGameParams            = $44; 
  asSetGameParams            = $45; 
  asGetRoundScordInfo        = $46; 
  asGetRoundLog              = $47; 
  asGetPlayerBetLog          = $48; 
 
  asSetRoundState           = $50; 
  asGetRoundState           = $51; 
  asUploadPlayerList        = $52; 
 
  asClearPlayerList         = $53; 
  asClearGameLog            = $54; 
  asClearPlayerBetLog       = $55; 
  asCheckAdmin              = $60; 
  asLockServer              = $70; 
 
 
//  asSetRound                 = $46; 
 
 
 
type 
  TServerInfo = record 
    ServerVer : String[255]; 
  end; 
  TBetType = (btRed, btBlack, btGreen); 
  TBatArray = array [TBetType] of integer; 
  TRoundScord = record 
    Count : integer; 
    Number :array [0..50] of integer; 
  end; 
 
  TRoundState = (rsWaitToBegin, rsDemo{开始本轮}, rsBeting{下注}, rsBeforeWheel{准备开局}, 
    rsWheeling{转盘},rsScore{分数},rsPaused{系统暂停}, 
    rsStop, rsPauseAtRoundEnd, rsReset);//, rsSyn{数据同步}); 
  TRound = packed record 
    Main : integer; 
    No : integer; 
    WheelNo : integer; 
    CountDown: integer; 
    Scord : TRoundScord; 
    State : TRoundState; 
    WheelResult : integer; 
    Auto : boolean; 
  end; 
   
 
  TRoundInfo = packed record //当前局状态 
    CurrentRound : TRound; 
    //用户下注数量 
    CurrentBetCount : array[0..2] of integer; 
    //总下注量 
    TotalBetCount : array[0..2] of integer; 
    //当前预计利润 
    WillValue : array[0..2] of integer; 
    //当前预计出结果 
    WillResult : integer; 
    //单人最高下注量 
    MaxBetCount : array[0..2] of integer; 
    //当前系统重彩池金额 
    TotalValue, ObjectValue : integer; 
    //结果预计 
    OldResult : integer; 
    //是否人工干预 
     
  end; 
 
   TRoundInfoLog = packed record 
     ID : integer; 
     Roundno :integer; 
     wheelno :integer; 
     dvalue : integer; 
     value : integer; 
     r,g,b : integer; 
     result : byte; 
     resultcolor : byte; 
     datetime : TDateTime; 
     auto : boolean; 
   end; 
 
  TTimeSetting = packed record 
    BetTimeSet : DWord; 
    BeforeWheelTimeSet : DWord; 
    WheelingTimeSet : DWord; 
    ScoreTimeSet : DWord; 
    WheelEndSet : DWord; 
  end; 
 
//  TPlayerState = (psActive, psNotActive, psNoExist, psUnkown); 
  TPlayerState = (psNoBody, psLogining, psLoginError, psActive); 
  TPlayerInfo = packed record 
    ID : String[32]; 
    password : String[32]; 
    UserName : String[16]; 
    money : integer; 
    LastActiveTime : TDateTime; 
    State : TPlayerState; 
    Bet : array [TBetType] of Integer; 
    Memo : String[32]; 
  end; 
 
  TEditFlag = (efNewID, efCreatePlayer, efEditPlayer, efDeletePlayer,efAddMoney, efError); 
 
  TPlayerEditInfo = packed record 
    PlayerInfo : TPlayerInfo; 
    EditFlag : TEditFlag; 
  end; 
 
  TWheelInfo = packed record 
    RoundID : integer; 
    WheelID : integer; 
    RedBet : integer; 
    BlackBet : integer; 
    GreenBet : integer; 
    Result : integer; 
    ResultColor : integer; 
    Settment : integer; 
    DateTime : TDateTime; 
    AutoValue : boolean; 
  end; 
 
  TRoundScordInfos = packed record 
    RoundMain : integer; 
    WheelCount : integer; //0..50; 
    WheelInfos : array [0..50] of TWheelInfo; 
  end; 
 
  TPlayerBetInfo = packed record 
    PlayerID : String[32]; 
    r : integer; 
    b : integer; 
    g : integer; 
    Settlement : integer; 
    Datetime : TDateTime; 
    RoundNo: integer; 
    WheelNo : integer; 
    Result : integer; 
    ResultColor : integer; 
    RoundMain : integer; 
    PreMoney : integer; 
  end; 
 
 
  TArrayofPlayerBetInfo = array [0..50000] of TPlayerBetInfo; 
  TArrayofRoundInfo = array [0..10000] of TRoundInfoLog; 
 
  PArrayofRoundInfo = ^TArrayofRoundInfo; 
 
const 
  PLFCountOnly = 1; 
  PLFAllPlayer = 2; 
  PLFSelectPlayer =3; 
  PLFLastChangePlayer =4; 
  PLFRoundLength = 5; 
type 
  TGameParams = packed record 
    RoundMain : integer; 
    BelTime : integer;                   //下注时间 
    BeforeWheelTime : integer;           //开盘前时间 
    TotalValue : integer;                //总彩池值 
    ObjectValue : integer;               //期望 
    Rate : integer;                      //提成比,游戏难度 
    Bleed : integer;                     //阀值 
    AdminStr : String[50]; 
  end; 
  PPlayerInfo = ^TPlayerInfo; 
  TArrayOfPlayerInfo = array [0..30000] of TPlayerInfo; 
  PArrayOfPlayerInfo = ^TArrayOfPlayerInfo; 
  TPlayerList = packed record 
    Size : integer; 
    PlayerCount : integer; 
    Flag : integer; 
    LastUpdate : TDateTime; 
    Data : PArrayOfPlayerInfo; 
  end; 
 
  TChangePassword = packed record 
    ID : String[64]; 
    OldPassword : String[64]; 
    NewPassword : String[64]; 
  end; 
 
  TWheelParam = packed record 
    FrameTime,TimeDuration: integer; //帧时间ms,持续时间ms 
    WheelV,WheelTheta, WheelA,//轮子角速度,角度,角加速度 
    BallV, BallTheta, BallHeight, BallR, BallA //球角速度,角度,高度,旋转半径,角加速度 
      : single; 
  end; 
  TWheelParams = packed record 
    WheelStartTickCount : DWord; 
    ParamsCount : DWord; 
    Params : array [0..4] of TWheelParam; 
  end; 
 
 
 
  TClientProc = procedure of object; 
const 
  AngleOfNum : array [0..36] of integer = (26, 0,32,15,19,4,21,2,25,17,34,6,27, 
    13,36,11,30,8,23,10,5,24,16,33,1,20,14,31,9,22,18,29,7,28,12,35,3); 
var 
  NumOfAngle : array [0..36] of Single ; 
 
var 
  INumOfAngle, JNumOfAngle : integer; 
implementation 
initialization 
  for INumOfAngle := 0 to 36 do 
  begin 
    for JNumOfAngle := 0 to 36 do 
    begin 
      if AngleOfNum[JNumOfAngle] = INumOfAngle then 
        NumOfAngle[INumOfAngle] := JNumOfAngle * 2 * Pi / 37; 
    end; 
  end; 
 
end.