⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fstate.pas

📁 在网上有很多传奇源程序DELPHI
💻 PAS
📖 第 1 页 / 共 5 页
字号:
      dsurface: TDirectDrawSurface);
    procedure DBotPlusAbilClick(Sender: TObject; X, Y: Integer);
    procedure DPlusDCClick(Sender: TObject; X, Y: Integer);
    procedure DMinusDCClick(Sender: TObject; X, Y: Integer);
    procedure DAdjustAbilOkClick(Sender: TObject; X, Y: Integer);
    procedure DBotPlusAbilDirectPaint(Sender: TObject;
      dsurface: TDirectDrawSurface);
    procedure DAdjustAbilityMouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure DUserState1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure DEngServer1Click(Sender: TObject; X, Y: Integer);
    procedure DGDAllyClick(Sender: TObject; X, Y: Integer);
    procedure DGDBreakAllyClick(Sender: TObject; X, Y: Integer);
  private
    DlgTemp: TList;
    magcur, magtop: integer;
    EdDlgEdit: TEdit;
    Memo: TMemo;

    ViewDlgEdit: Boolean;
    msglx, msgly: integer;
    MenuTop: integer;

    MagKeyIcon, MagKeyCurKey: integer;
    MagKeyMagName: string;
    MagicPage: integer;

    BlinkTime: longword;
    BlinkCount: integer;  //0..9荤捞甫 馆汗

    procedure HideAllControls;
    procedure RestoreHideControls;
    procedure PageChanged;
    procedure DealItemReturnBag (mitem: TClientItem);
    procedure DealZeroGold;
  public
    StatePage: integer;
    MsgText: string;
    DialogSize: integer;

    MerchantName: string;
    MerchantFace: integer;
    MDlgStr: string;
    MDlgPoints: TList;
    RequireAddPoints: Boolean;
    SelectMenuStr: string;
    LastestClickTime: longword;
    SpotDlgMode: TSpotDlgMode;

    MenuList: TList; //list of PTClientGoods
    MenuIndex: integer;
    CurDetailItem: string;
    MenuTopLine: integer;
    BoDetailMenu: Boolean;
    BoStorageMenu: Boolean;
    BoNoDisplayMaxDura: Boolean;
    BoMakeDrugMenu: Boolean;
    NAHelps: TStringList;
    NewAccountTitle: string;

    DlgEditText: string;
    UserState1: TUserStateInfo;

    Guild: string;
    GuildFlag: string;
    GuildCommanderMode: Boolean;
    GuildStrs: TStringList;
    GuildStrs2: TStringList;
    GuildNotice: TStringList;
    GuildMembers: TStringList;
    GuildTopLine: integer;
    GuildEditHint: string;
    GuildChats: TStringList;
    BoGuildChat: Boolean;

    procedure Initialize;
    procedure OpenMyStatus;
    procedure OpenUserState (ustate: TUserStateInfo);
    procedure OpenItemBag;
    procedure ViewBottomBox (visible: Boolean);
    procedure CancelItemMoving;
    procedure DropMovingItem;
    procedure OpenAdjustAbility;

    procedure ShowSelectServerDlg;
    function  DMessageDlg (msgstr: string; DlgButtons: TMsgDlgButtons): TModalResult;
    procedure ShowMDlg (face: integer; mname, msgstr: string);
    procedure ShowGuildDlg;
    procedure ShowGuildEditNotice;
    procedure ShowGuildEditGrade;

    procedure ResetMenuDlg;
    procedure ShowShopMenuDlg;
    procedure ShowShopSellDlg;
    procedure CloseDSellDlg;
    procedure CloseMDlg;

    procedure ToggleShowGroupDlg;
    procedure OpenDealDlg;
    procedure CloseDealDlg;

    procedure SoldOutGoods (itemserverindex: integer);
    procedure DelStorageItem (itemserverindex: integer);
    procedure GetMouseItemInfo (var iname, line1, line2, line3: string; var useable: boolean);
    procedure SetMagicKeyDlg (icon: integer; magname: string; var curkey: word);
    procedure AddGuildChat (str: string);
  end;

var
  FrmDlg: TFrmDlg;

implementation

uses
   ClMain;

{$R *.DFM}

{
   ##  MovingItem.Index
      1~n : 啊规芒狼 酒捞袍 鉴辑
      -1~-8 : 厘馒芒俊辑狼 酒捞袍 鉴辑
      -97 : 背券芒狼 捣
      -98 : 捣
      -99 : 迫扁 芒俊辑狼 酒捞袍 鉴辑
      -20~29: 背券芒俊辑狼 酒捞袍 鉴辑
}

procedure TFrmDlg.FormCreate(Sender: TObject);
begin
   StatePage := 0;
   DlgTemp := TList.Create;
   DialogSize := 1; //扁夯 农扁
   magcur := 0;
   magtop := 0;
   MDlgPoints := TList.Create;
   SelectMenuStr := '';
   MenuList := TList.Create;
   MenuIndex := -1;
   MenuTopLine := 0;
   BoDetailMenu := FALSE;
   BoStorageMenu := FALSE;
   BoNoDisplayMaxDura := FALSE;
   BoMakeDrugMenu := FALSE;
   MagicPage := 0;
   NAHelps := TStringList.Create;
   BlinkTime := GetTickCount;
   BlinkCount := 0;

   SellDlgItem.S.Name := '';
   Guild := '';
   GuildFlag := '';
   GuildCommanderMode := FALSE;
   GuildStrs := TStringList.Create;
   GuildStrs2 := TStringList.Create; //归诀侩
   GuildNotice := TStringList.Create;
   GuildMembers := TStringList.Create;
   GuildChats := TStringList.Create;

   EdDlgEdit := TEdit.Create (FrmMain.Owner);
   with EdDlgEdit do begin
      Parent := FrmMain;  Color := clBlack; Font.Color := clWhite; Font.Size := 10; MaxLength := 30;
      Height := 16; Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}  Visible := FALSE;
   end;

   Memo := TMemo.Create (FrmMain.Owner);
   with Memo do begin
      Parent := FrmMain;  Color := clBlack; Font.Color := clWhite; Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}  Visible := FALSE;
   end;
end;

procedure TFrmDlg.FormDestroy(Sender: TObject);
begin
   DlgTemp.Free;
   MDlgPoints.Free;  //埃窜洒..
   MenuList.Free;
   NAHelps.Free;
   GuildStrs.Free;
   GuildStrs2.Free;
   GuildNotice.Free;
   GuildMembers.Free;
   GuildChats.Free; 
end;

procedure TFrmDlg.HideAllControls;
var
   i: integer;
   c: TControl;
begin
   DlgTemp.Clear;
   with FrmMain do
      for i:=0 to ControlCount-1 do begin
         c := Controls[i];
         if c is TEdit then
            if (c.Visible) and (c <> EdDlgEdit) then begin
               DlgTemp.Add (c);
               c.Visible := FALSE;
            end;
      end;
end;

procedure TFrmDlg.RestoreHideControls;
var
   i: integer;
   c: TControl;
begin
   for i:=0 to DlgTemp.Count-1 do begin
      TControl(DlgTemp[i]).Visible := TRUE;
   end;
end;

procedure TFrmDlg.Initialize;    //初始化所有对话框
var
   i: integer;
   d: TDirectDrawSurface;
begin
   FrmMain.DWinMan.ClearAll;

   DBackground.Left := 0;
   DBackground.Top := 0;
   DBackground.Width := SCREENWIDTH;
   DBackground.Height := SCREENHEIGHT;
   DBackground.Background := TRUE;
   FrmMain.DWinMan.AddDControl (DBackground, TRUE);

   {-----------------------------------------------------------}

   //通用对话框
   d := FrmMain.WProgUse.Images[360];
   if d <> nil then begin
      DMsgDlg.SetImgIndex (FrmMain.WProgUse, 360);
      DMsgDlg.Left := (SCREENWIDTH - d.Width) div 2;
      DMsgDlg.Top := (SCREENHEIGHT - d.Height) div 2;
   end;
   DMsgDlgOk.SetImgIndex (FrmMain.WProgUse, 361);
   DMsgDlgYes.SetImgIndex (FrmMain.WProgUse, 363);
   DMsgDlgCancel.SetImgIndex (FrmMain.WProgUse, 365);
   DMsgDlgNo.SetImgIndex (FrmMain.WProgUse, 367);
   DMsgDlgOk.Top := 126;
   DMsgDlgYes.Top := 126;
   DMsgDlgCancel.Top := 126;
   DMsgDlgNo.Top := 126;

   {-----------------------------------------------------------}

   ///登录对话框
   d := FrmMain.WProgUse.Images[60];
   if d <> nil then begin
      DLogIn.SetImgIndex (FrmMain.WProgUse, 60);
      DLogIn.Left := (SCREENWIDTH - d.Width) div 2;
      DLogIn.Top := (SCREENHEIGHT - d.Height) div 2;
   end;
   DLoginNew.SetImgIndex (FrmMain.WProgUse, 61);
   DLoginNew.Left := 24;
   DLoginNew.Top  := 207;
   DLoginOk.SetImgIndex (FrmMain.WProgUse, 62);
   DLoginOk.Left := 171;
   DLoginOk.Top := 165;
   DLoginChgPw.SetImgIndex (FrmMain.WProgUse, 53);
   DLoginChgPw.Left := 111;
   DLoginChgPw.Top  := 207;
   DLoginClose.SetImgIndex (FrmMain.WProgUse, 64);
   DLoginClose.Left := 252;
   DLoginClose.Top := 28;

   {-----------------------------------------------------------}

   if not EnglishVersion then begin
      //韩文对话框
      //选择服务器
      d := FrmMain.WProgUse.Images[160]; //81];
      if d <> nil then begin
         DSelServerDlg.SetImgIndex (FrmMain.WProgUse, 160);
         DSelServerDlg.Left := (SCREENWIDTH - d.Width) div 2;
         DSelServerDlg.Top := (SCREENHEIGHT - d.Height) div 2;
      end;
      DSSrvClose.SetImgIndex (FrmMain.WProgUse, 64);
      DSSrvClose.Left := 448;
      DSSrvClose.Top := 33;

      DSServer1.SetImgIndex (FrmMain.WProgUse, 161); //82);
      DSServer1.Left := 134;
      DSServer1.Top  := 102;
      DSServer2.SetImgIndex (FrmMain.WProgUse, 162); //83);
      DSServer2.Left := 236;
      DSServer2.Top  := 101;
      DSServer3.SetImgIndex (FrmMain.WProgUse, 163);
      DSServer3.Left := 87;
      DSServer3.Top  := 190;
      DSServer4.SetImgIndex (FrmMain.WProgUse, 164);
      DSServer4.Left := 280;
      DSServer4.Top  := 190;
      DSServer5.SetImgIndex (FrmMain.WProgUse, 165);
      DSServer5.Left := 134;
      DSServer5.Top  := 280;
      DSServer6.SetImgIndex (FrmMain.WProgUse, 166);
      DSServer6.Left := 236;
      DSServer6.Top  := 280;

      DEngServer1.Visible := FALSE;
   end else begin
      //英(中)文对话框:选择服务器
      d := FrmMain.WProgUse.Images[256]; //81];
      if d <> nil then begin
         DSelServerDlg.SetImgIndex (FrmMain.WProgUse, 256);
         DSelServerDlg.Left := (SCREENWIDTH - d.Width) div 2;
         DSelServerDlg.Top := (SCREENHEIGHT - d.Height) div 2;
      end;
      DSSrvClose.SetImgIndex (FrmMain.WProgUse, 64);
      DSSrvClose.Left := 245;
      DSSrvClose.Top := 31;

      DEngServer1.SetImgIndex (FrmMain.WProgUse, 257);
      DEngServer1.Left := 65;
      DEngServer1.Top  := 204;

      DSServer1.Visible := FALSE;
      DSServer2.Visible := FALSE;
      DSServer3.Visible := FALSE;
      DSServer4.Visible := FALSE;
      DSServer5.Visible := FALSE;
      DSServer6.Visible := FALSE;

   end;

   {-----------------------------------------------------------}

   //新用户对话框
   d := FrmMain.WProgUse.Images[63];
   if d <> nil then begin
      DNewAccount.SetImgIndex (FrmMain.WProgUse, 63);
      DNewAccount.Left := (SCREENWIDTH - d.Width) div 2;
      DNewAccount.Top := (SCREENHEIGHT - d.Height) div 2;
   end;
   DNewAccountOk.SetImgIndex (FrmMain.WProgUse, 62);
   DNewAccountOk.Left := 160;
   DNewAccountOk.Top := 417;
   DNewAccountCancel.SetImgIndex (FrmMain.WProgUse, 52);
   DNewAccountCancel.Left := 448;
   DNewAccountCancel.Top := 419;
   DNewAccountClose.SetImgIndex (FrmMain.WProgUse, 64);
   DNewAccountClose.Left := 587;
   DNewAccountClose.Top := 33;

   {-----------------------------------------------------------}

   //修改密码对话框
   d := FrmMain.WProgUse.Images[50];
   if d <> nil then begin
      DChgPw.SetImgIndex (FrmMain.WProgUse, 50);
      DChgPw.Left := (SCREENWIDTH - d.Width) div 2;
      DChgPw.Top  := (SCREENHEIGHT - d.Height) div 2;
   end;
   DChgpwOk.SetImgIndex (FrmMain.WProgUse, 62);
   DChgPwOk.Left := 182;
   DChgPwOk.Top := 252;
   DChgpwCancel.SetImgIndex (FrmMain.WProgUse, 52);
   DChgPwCancel.Left := 277;
   DChgPwCancel.Top := 251;

   {-----------------------------------------------------------}

   //选择角色对话框
   DSelectChr.Left := 0;
   DSelectChr.Top := 0;
   DSelectChr.Width := SCREENWIDTH;
   DSelectChr.Height := SCREENHEIGHT;
   DscSelect1.SetImgIndex (FrmMain.WProgUse, 66);
   DscSelect2.SetImgIndex (FrmMain.WProgUse, 67);
   DscStart.SetImgIndex (FrmMain.WProgUse, 68);
   DscNewChr.SetImgIndex (FrmMain.WProgUse, 69);
   DscEraseChr.SetImgIndex (FrmMain.WProgUse, 70);
   DscCredits.SetImgIndex (FrmMain.WProgUse, 71);
   DscExit.SetImgIndex (FrmMain.WProgUse, 72);
      DscSelect1.Left := 134;
      DscSelect1.Top := 454;
      DscSelect2.Left := 685;
      DscSelect2.Top := 454;
      DscStart.Left := 367;
      DscStart.Top := 457;
      DscNewChr.Left := 321;
      DscNewChr.Top := 488;
      DscEraseChr.Left := 311;
      DscEraseChr.Top := 509;
      DscCredits.Left := 362;
      DscCredits.Top := 529;
      DscExit.Left := 379;
      DscExit.Top := 559;

   {-----------------------------------------------------------}

   //创建角色对话框

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -