fstate.pas

来自「2009最新 传奇汉化0599代码 传奇汉化」· PAS 代码 · 共 1,919 行 · 第 1/5 页

PAS
1,919
字号
    procedure DBBSListRefreshClick(Sender: TObject; X, Y: Integer);
    procedure DBBSListCloseClick(Sender: TObject; X, Y: Integer);
    procedure DBBSListOKClick(Sender: TObject; X, Y: Integer);
    procedure DBBSMsgCloseClick(Sender: TObject; X, Y: Integer);
    procedure DBBSMsgDlgDirectPaint(Sender: TObject;
      dsurface: TDirectDrawSurface);
    procedure DBBSListWriteClick(Sender: TObject; X, Y: Integer);
    procedure DBBSListNoticeClick(Sender: TObject; X, Y: Integer);
    procedure DBBSMsgOkClick(Sender: TObject; X, Y: Integer);
    procedure DBBSMsgReplyClick(Sender: TObject; X, Y: Integer);
    procedure DBBSMsgDeleteClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsCloseClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsSoundOffClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsSoundOnClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsDropViewOnClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsDropViewOffClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsEffectOffClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsEffectOnClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsSkillBarOffClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsSkillBarOnClick(Sender: TObject; X, Y: Integer);
    procedure DOptionsSkillMode1Click(Sender: TObject; X, Y: Integer);
    procedure DOptionsSkillMode2Click(Sender: TObject; X, Y: Integer);
    procedure DSkillBarDirectPaint(Sender: TObject;
      dsurface: TDirectDrawSurface);
    procedure DSkillBarMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure DUSGroupClick(Sender: TObject; X, Y: Integer);
    procedure DUSFriendClick(Sender: TObject; X, Y: Integer);
    procedure DUSMailClick(Sender: TObject; X, Y: Integer);
    procedure DSalesMailClick(Sender: TObject; X, Y: Integer);
    procedure DSelectChrClick(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
    MaxLineHeight: Integer;
    StatePage: integer;
    MsgText: string;
    DialogSize: integer;
    {
    m_n66C:Integer;
    m_n688:Integer;
    m_n6A4:Integer;
    m_n6A8:Integer;
    }
//    m_Dicea:array[0..35] of Integer;

    m_nDiceCount:Integer;
    m_boPlayDice:Boolean;
    m_Dice:array[0..9] of TDiceInfo;

    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;
    AuctionMenuIndex: Integer;
    GTListMenuIndex: Integer;
    MenuTopLine: integer;
    BoDetailMenu: Boolean;
    BoStorageMenu: Boolean;
    BoNoDisplayMaxDura: Boolean;
    BoMakeDrugMenu: Boolean;
    BoMakeGem:Boolean;
    sMakeGemName:String;
    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;
    
    FriendList: Array[0..1] of TList; //List of PTClientFriends
    FriendIndex: Array[0..1] of Integer;
    FriendPage: Integer;
    FriendScreen: Byte; //0 = FriendList, 1 = BlackList

    EdSalesEdit: TMemo;
    EdMemo: TMemo;
    EdMail: TMemo;
    EdMailRead: TMemo;
    BBSMemo: TMemo;    

    MailList: TList; //List of pTMailItem
    BlockList: TList; //List of pTBlockItem
    MailIndex: Integer;
    BlockIndex: Integer;    
    MailPage: Integer;
    BlockPage: Integer;

    BBSSticky: integer;

    LastBeltDoubleClick: integer;
    
    procedure Initialize;
    procedure DoBeltSetup;    
    procedure OpenMyStatus;
    procedure OpenUserState (UserState: 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 CancelGemMaking;
    procedure CloseMDlg;

    procedure ToggleShowGroupDlg;
    procedure OpenDealDlg;
    procedure CloseDealDlg;

    procedure OpenFriendDlg;
    procedure OpenMailDlg;
    procedure OpenBlockListDlg;        

    procedure ToggleAuctionWindow;

    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);

    function FindFriendObject(sName: String): pTClientFriends;
    
    procedure ToggleGTListWindow;
    procedure ToggleDecoListWindow;
    procedure ToggleBBSListWindow;
    procedure ToggleBBSMsgWindow;
  end;

var
  FrmDlg: TFrmDlg;

implementation

uses
   ClMain, MShare, Share, SDK;
{$R *.DFM}

function TFrmDlg.FindFriendObject(sName: String): pTClientFriends;
var
  A,I: Integer;
  Friend: ptClientFriends;
begin
  for A := 0 to 1 do begin
    for I := 0 to FriendList[A].Count-1 do begin
      Friend := PTClientFriends(FriendList[A].Items[I]);
      if Friend <> nil then begin
        if LowerCase(Friend.Name) = LowerCase(sName) then begin
          Result := Friend;
          exit;
        end;
      end;
    end;
  end;
  Result := nil;
end;

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

procedure TFrmDlg.FormCreate(Sender: TObject);
begin
   MaxLineHeight := 0;
   StatePage := 0;
   DlgTemp := TList.Create;
   DialogSize := 1; //扁夯 农扁
   m_nDiceCount:=0;
   m_boPlayDice:=False;
   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;

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

   FriendList[F_GOOD] := TList.Create;
   FriendList[F_BAD] := TList.Create;
   FriendIndex[F_GOOD] := -1;
   FriendIndex[F_BAD] := -1;
   FriendScreen := F_GOOD;

   EdMemo := TMemo.Create (FrmMain.Owner);
   with EdMemo do begin
      Parent := FrmMain;
      Color := clBlack;
      Font.Color := clWhite;
      Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}
      Visible := FALSE;
      MaxLength := 100;
      OnMouseMove := DGenericMouseMove;
      OnChange := TextAreaNotify;
      OnClick := TextAreaNotify;
      OnDblClick := TextAreaNotify;
   end;

   EdSalesEdit := TMemo.Create (FrmMain.Owner);
   with EdSalesEdit do begin
      Parent := FrmMain;
      Color := clBlack;
      Font.Color := clWhite;
      Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}
      Visible := FALSE;
      MaxLength := 100;
      OnMouseMove := DGenericMouseMove;
      OnChange := TextAreaNotify;
      OnClick := TextAreaNotify;
      OnDblClick := TextAreaNotify;
      Left := 34;
      Top := 414;
      Width := 143;
      Height := 19;
   end;

   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;

   MailList := TList.Create;   
   BlockList := TList.Create;

   EdMail := TMemo.Create (FrmMain.Owner);
   with EdMail do begin
      Parent := FrmMain;
      Color := clBlack;
      Font.Color := clWhite;
      Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}
      Visible := FALSE;
      MaxLength := 100;
      OnMouseMove := DGenericMouseMove;
      OnChange := TextAreaNotify;
      OnClick := TextAreaNotify;
      OnDblClick := TextAreaNotify;
   end;
   EdMailRead := TMemo.Create (FrmMain.Owner);
   with EdMailRead do begin
      Parent := FrmMain;
      Color := clBlack;
      Font.Color := clWhite;
      Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}
      Visible := FALSE;
      MaxLength := 100;
      OnMouseMove := DGenericMouseMove;
      OnChange := TextAreaNotify;
      OnClick := TextAreaNotify;
      OnDblClick := TextAreaNotify;
   end;

   BBSMemo := TMemo.Create (FrmMain.Owner);
   with BBSMemo do begin
      Parent := FrmMain;
      Color := clBlack;
      Font.Color := clWhite;
      Font.Size := 10;
      Ctl3d := FALSE;
      BorderStyle := bsSingle;  {OnKeyPress := EdDlgEditKeyPress;}
      Visible := FALSE;
      OnChange := BBSTextNotify;
      //OnMouseMove := DGenericMouseMove;
      //OnChange := TextAreaNotify;
      //OnClick := TextAreaNotify;
      //OnDblClick := TextAreaNotify;
   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;
   FriendList[F_GOOD].Free;
   FriendList[F_BAD].Free;  
   MailList.Free;

⌨️ 快捷键说明

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