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

📄 mshare.pas

📁 原版翎风(LF)引擎(M2)源码(Delphi)
💻 PAS
📖 第 1 页 / 共 3 页
字号:

  g_boNoDarkness            :Boolean;
  g_nRunReadyCount          :Integer; //助跑就绪次数,在跑前必须走几步助跑




  g_EatingItem              :TClientItem;
  g_dwEatTime               :LongWord; //timeout...


  g_dwDizzyDelayStart       :LongWord;
  g_dwDizzyDelayTime        :LongWord;

  g_boDoFadeOut             :Boolean;
  g_boDoFadeIn              :Boolean;
  g_nFadeIndex              :Integer;
  g_boDoFastFadeOut         :Boolean;




  g_boAutoDig               :Boolean;  //自动锄矿
  g_boSelectMyself          :Boolean;  //鼠标是否指到自己


  //游戏速度检测相关变量
  g_dwFirstServerTime       :LongWord;
  g_dwFirstClientTime       :LongWord;
  //ServerTimeGap: int64;
  g_nTimeFakeDetectCount    :Integer;
  g_dwSHGetTime             :LongWord;
  g_dwSHTimerTime           :LongWord;
  g_nSHFakeCount            :Integer;   //检查机器速度异常次数,如果超过4次则提示速度不稳定

  g_dwLatestClientTime2     :LongWord;
  g_dwFirstClientTimerTime  :LongWord; //timer 矫埃
  g_dwLatestClientTimerTime :LongWord;
  g_dwFirstClientGetTime    :LongWord; //gettickcount 矫埃
  g_dwLatestClientGetTime   :LongWord;
  g_nTimeFakeDetectSum      :Integer;
  g_nTimeFakeDetectTimer    :Integer;

  g_dwLastestClientGetTime  :LongWord;

//外挂功能变量开始
  g_dwDropItemFlashTime  :LongWord = 5 * 1000; //地面物品闪时间间隔
  g_nHitTime             :Integer  = 1400;  //攻击间隔时间间隔
  g_nItemSpeed           :Integer  = 60;
  g_dwSpellTime          :LongWord = 500;  //魔法攻间隔时间

  g_DeathColorEffect     :TColorEffect = ceGrayScale;
  g_boClientCanSet       :Boolean  = True;
  g_boCanRunHuman        :Boolean  = False;
  g_boCanRunMon          :Boolean  = False;
  g_boCanRunNpc          :Boolean  = False;
  g_boCanRunAllInWarZone :Boolean  = False;
  g_boCanStartRun        :Boolean  = False; //是否允许免助跑
  g_boParalyCanRun       :Boolean  = False;//麻痹是否可以跑
  g_boParalyCanWalk      :Boolean  = False;//麻痹是否可以走
  g_boParalyCanHit       :Boolean  = False;//麻痹是否可以攻击
  g_boParalyCanSpell     :Boolean  = False;//麻痹是否可以魔法

  g_boShowRedHPLable     :Boolean  = True; //显示血条     saharah
  g_boShowHPNumber       :Boolean  = True; //显示血量数字
  g_boShowJobLevel       :Boolean  = True; //显示职业等级
  g_boDuraAlert          :Boolean  = True; //物品持久警告
  g_boMagicLock          :Boolean  = False; //魔法锁定
  g_boAutoPuckUpItem     :Boolean  = False;

  g_boShowHumanInfo      :Boolean  = True;
  g_boShowMonsterInfo    :Boolean  = False;
  g_boShowNpcInfo        :Boolean  = False;
//外挂功能变量结束
  g_dwAutoPickupTick     :LongWord;
  g_dwAutoPickupTime     :LongWord = 50; //自动捡物品间隔
  g_AutoPickupList       :TList;
  g_MagicLockActor       :TActor;
  g_boNextTimePowerHit   :Boolean;
  g_boCanLongHit         :Boolean;
  g_boCanWideHit         :Boolean;
  g_boCanCrsHit          :Boolean;
  g_boCanTwnHit          :Boolean;
  g_boCanStnHit          :Boolean;
  g_boNextTimeFireHit    :Boolean;

  g_ShowItemList         :TGList;
  g_boShowAllItem        :Boolean = False;//显示地面所有物品名称

  g_boDrawTileMap        :Boolean = True;
  g_boDrawDropItem       :Boolean = True;

  g_nTestX:Integer = 71;
  g_nTestY:Integer = 212;
  DlgConf        :TConfig = (
                            DBottom     :(Image:1;Left:0;Top:0;Width:0;Height:0);
                            DMyState    :(Image:8;Left:643;Top:61;Width:0;Height:0);
                            DMyBag      :(Image:9;Left:682;Top:41;Width:0;Height:0);
                            DMyMagic    :(Image:10;Left:722;Top:21;Width:0;Height:0);
                            DOption     :(Image:11;Left:764;Top:11;Width:0;Height:0);
                            DBotMiniMap :(Image:130;Left:219;Top:104;Width:0;Height:0);
                            DBotTrade   :(Image:132;Left:219 + 30; Top:104;Width:0;Height:0);
                            DBotGuild   :(Image:134;Left:219 + 30*2; Top:104;Width:0;Height:0);
                            DBotGroup   :(Image:128;Left:219 + 30*3; Top:104;Width:0;Height:0);
                            DBotPlusAbil:(Image:140;Left:219 + 30*4; Top:104;Width:0;Height:0);
                            DBotFriend  :(Image:530;Left:219 + 30*5; Top:104;Width:0;Height:0);
                            DBotMemo    :(Image:532;
                                          Left:SCREENWIDTH div 2 + (SCREENWIDTH div 2 - (400 - 353)){753};
                                          Top:204;
                                          Width:0;
                                          Height:0);
                            DBotExit    :(Image:138;
                                          Left:SCREENWIDTH div 2 + (SCREENWIDTH div 2 - (400 - 160)){560};
                                          Top:104;
                                          Width:0;
                                          Height:0);
                            DBotLogout  :(Image:136;
                                          Left:SCREENWIDTH div 2 + (SCREENWIDTH div 2 - (400 - 160)) - 30{560};//Left:560 - 30;
                                          Top:104;
                                          Width:0;
                                          Height:0);
                            DBelt1      :(Image:0;Left:285;Top:59;Width:32;Height:29);
                            DBelt2      :(Image:0;Left:328;Top:59;Width:32;Height:29);
                            DBelt3      :(Image:0;Left:371;Top:59;Width:32;Height:29);
                            DBelt4      :(Image:0;Left:415;Top:59;Width:32;Height:29);
                            DBelt5      :(Image:0;Left:459;Top:59;Width:32;Height:29);
                            DBelt6      :(Image:0;Left:503;Top:59;Width:32;Height:29);
                            DGold       :(Image:29;Left:10;Top:190;Width:0;Height:0);
                            DRepairItem :(Image:26;Left:254;Top:183;Width:48;Height:22);
                            DClosebag   :(Image:371;Left:309;Top:203;Width:14;Height:20);
                            DMerchantDlg      :(Image:384;Left:0;Top:0;Width:0;Height:0);
                            DMerchantDlgClose :(Image:64;Left:399;Top:1;Width:0;Height:0);
                            DConfigDlg        :(Image:204;Left:0;Top:0;Width:0;Height:0);
                            DConfigDlgOk      :(Image:361;Left:514;Top:287;Width:0;Height:0);
                            DConfigDlgClose   :(Image:64;Left:584;Top:6;Width:0;Height:0);
                            DMenuDlg          :(Image:385;Left:138;Top:163;Width:0;Height:0);
                            DMenuPrev         :(Image:388;Left:43;Top:175;Width:0;Height:0);
                            DMenuNext         :(Image:387;Left:90;Top:175;Width:0;Height:0);
                            DMenuBuy          :(Image:386;Left:215;Top:171;Width:0;Height:0);
                            DMenuClose        :(Image:64;Left:291;Top:0;Width:0;Height:0);
                            DSellDlg          :(Image:392;Left:328;Top:163;Width:0;Height:0);
                            DSellDlgOk        :(Image:393;Left:85;Top:150;Width:0;Height:0);
                            DSellDlgClose     :(Image:64;Left:115;Top:0;Width:0;Height:0);
                            DSellDlgSpot      :(Image:0;Left:27;Top:67;Width:0;Height:0);
                            DKeySelDlg        :(Image:620;Left:0;Top:0;Width:0;Height:0);
                            DKsIcon           :(Image:0;Left:51;Top:31;Width:0;Height:0);
                            DKsF1             :(Image:232;Left:25;Top:78;Width:0;Height:0);
                            DKsF2             :(Image:234;Left:57;Top:78;Width:0;Height:0);
                            DKsF3             :(Image:236;Left:89;Top:78;Width:0;Height:0);
                            DKsF4             :(Image:238;Left:121;Top:78;Width:0;Height:0);
                            DKsF5             :(Image:240;Left:160;Top:78;Width:0;Height:0);
                            DKsF6             :(Image:242;Left:192;Top:78;Width:0;Height:0);
                            DKsF7             :(Image:244;Left:224;Top:78;Width:0;Height:0);
                            DKsF8             :(Image:246;Left:256;Top:78;Width:0;Height:0);
                            DKsConF1          :(Image:626;Left:25;Top:120;Width:0;Height:0);
                            DKsConF2          :(Image:628;Left:57;Top:120;Width:0;Height:0);
                            DKsConF3          :(Image:630;Left:89;Top:120;Width:0;Height:0);
                            DKsConF4          :(Image:632;Left:121;Top:120;Width:0;Height:0);
                            DKsConF5          :(Image:633;Left:160;Top:120;Width:0;Height:0);
                            DKsConF6          :(Image:634;Left:192;Top:120;Width:0;Height:0);
                            DKsConF7          :(Image:638;Left:224;Top:120;Width:0;Height:0);
                            DKsConF8          :(Image:640;Left:256;Top:120;Width:0;Height:0);
                            DKsNone           :(Image:623;Left:296;Top:78;Width:0;Height:0);
                            DKsOk             :(Image:621;Left:296;Top:120;Width:0;Height:0);
                            DChgGamePwd       :(Image:621;Left:296;Top:120;Width:0;Height:0);
                            DChgGamePwdClose  :(Image:64;Left:312;Top:1;Width:0;Height:0);
                            DItemGrid         :(Image:0;Left:29;Top:41;Width:286;Height:162);
                           );
  procedure InitObj();
  procedure LoadWMImagesLib(AOwner: TComponent);
  procedure InitWMImagesLib(DDxDraw: TDxDraw);
  procedure UnLoadWMImagesLib();
  function  GetObjs (nUnit,nIdx:Integer):TDirectDrawSurface;
  function  GetObjsEx (nUnit,nIdx:Integer; var px, py: integer): TDirectDrawSurface;
  function  GetMonImg (nAppr:Integer):TWMImages;
  function  GetMonAction (nAppr:Integer):pTMonsterAction;
  function  GetJobName (nJob:Integer):String;
  procedure ClearShowItemList();
  function  GetItemType(ItemType:TItemType):String;
  function  GetShowItem(sItemName:String):pTShowItem;
  procedure LoadUserConfig(sUserName:String);
  procedure SaveUserConfig(sUserName:String);
implementation
uses FState, HUtil32;

procedure LoadWMImagesLib(AOwner: TComponent);
var
  I:Integer;
begin
  g_WMainImages        := TWMImages.Create(AOwner);
  g_WMain2Images       := TWMImages.Create(AOwner);
  g_WMain3Images       := TWMImages.Create(AOwner);
  g_WChrSelImages      := TWMImages.Create(AOwner);
  g_WMMapImages        := TWMImages.Create(AOwner);
  g_WTilesImages       := TWMImages.Create(AOwner);
  g_WSmTilesImages     := TWMImages.Create(AOwner);
  g_WHumWingImages     := TWMImages.Create(AOwner);
  g_WBagItemImages     := TWMImages.Create(AOwner);
  g_WStateItemImages   := TWMImages.Create(AOwner);
  g_WDnItemImages      := TWMImages.Create(AOwner);
  g_WHumImgImages      := TWMImages.Create(AOwner);
  g_WHairImgImages     := TWMImages.Create(AOwner);
  g_WWeaponImages      := TWMImages.Create(AOwner);
  g_WMagIconImages     := TWMImages.Create(AOwner);
  g_WNpcImgImages      := TWMImages.Create(AOwner);
  g_WMagicImages       := TWMImages.Create(AOwner);
  g_WMagic2Images      := TWMImages.Create(AOwner);
{$IF CUSTOMLIBFILE = 1}
//效果
  g_WEventEffectImages := TWMImages.Create(AOwner);
{$IFEND}
//用0填充缓冲区
  FillChar(g_WObjectArr,SizeOf(g_WObjectArr),0);
  FillChar(g_WMonImagesArr,SizeOf(g_WMonImagesArr),0);

end;
procedure InitWMImagesLib(DDxDraw: TDxDraw);
var
  sFileName:String;
  I:Integer;
begin

  g_WMainImages.DxDraw    := DDxDraw;
  g_WMainImages.DDraw     := DDxDraw.DDraw;
  g_WMainImages.FileName  := MAINIMAGEFILE;
  g_WMainImages.LibType   := ltUseCache;
  g_WMainImages.Initialize;

  g_WMain2Images.DxDraw   := DDxDraw;
  g_WMain2Images.DDraw    := DDxDraw.DDraw;
  g_WMain2Images.FileName := MAINIMAGEFILE2;
  g_WMain2Images.LibType  := ltUseCache;
  g_WMain2Images.Initialize;

  g_WMain3Images.DxDraw   := DDxDraw;
  g_WMain3Images.DDraw    := DDxDraw.DDraw;
  g_WMain3Images.FileName := MAINIMAGEFILE3;
  g_WMain3Images.LibType  := ltUseCache;
  g_WMain3Images.Initialize;



  g_WChrSelImages.DxDraw   := DDxDraw;
  g_WChrSelImages.DDraw    := DDxDraw.DDraw;
  g_WChrSelImages.FileName := CHRSELIMAGEFILE;
  g_WChrSelImages.LibType  := ltUseCache;
  g_WChrSelImages.Initialize;

  g_WMMapImages.DxDraw     := DDxDraw;
  g_WMMapImages.DDraw      := DDxDraw.DDraw;
  g_WMMapImages.FileName   := MINMAPIMAGEFILE;
  g_WMMapImages.LibType    := ltUseCache;
  g_WMMapImages.Initialize;

  g_WTilesImages.DxDraw    := DDxDraw;
  g_WTilesImages.DDraw     := DDxDraw.DDraw;
  g_WTilesImages.FileName  := TITLESIMAGEFILE;
  g_WTilesImages.LibType   := ltUseCache;
  g_WTilesImages.Initialize;

  g_WSmTilesImages.DxDraw   := DDxDraw;
  g_WSmTilesImages.DDraw    := DDxDraw.DDraw;
  g_WSmTilesImages.FileName := SMLTITLESIMAGEFILE;
  g_WSmTilesImages.LibType  := ltUseCache;
  g_WSmTilesImages.Initialize;

  g_WHumWingImages.DxDraw   := DDxDraw;
  g_WHumWingImages.DDraw    := DDxDraw.DDraw;
  g_WHumWingImages.FileName := HUMWINGIMAGESFILE;
  g_WHumWingImages.LibType  := ltUseCache;
  g_WHumWingImages.Initialize;

  g_WBagItemImages.DxDraw   := DDxDraw;
  g_WBagItemImages.DDraw    := DDxDraw.DDraw;
  g_WBagItemImages.FileName := BAGITEMIMAGESFILE;
  g_WBagItemImages.LibType  := ltUseCache;
  g_WBagItemImages.Initialize;

  g_WStateItemImages.DxDraw   := DDxDraw;
  g_WStateItemImages.DDraw    := DDxDraw.DDraw;
  g_WStateItemImages.FileName := STATEITEMIMAGESFILE;
  g_WStateItemImages.LibType  := ltUseCache;
  g_WStateItemImages.Initialize;

  g_WDnItemImages.DxDraw:=DDxDraw;
  g_WDnItemImages.DDraw:=DDxDraw.DDraw;
  g_WDnItemImages.FileName:=DNITEMIMAGESFILE;
  g_WDnItemImages.LibType:=ltUseCache;
  g_WDnItemImages.Initialize;

  g_WHumImgImages.DxDraw:=DDxDraw;
  g_WHumImgImages.DDraw:=DDxDraw.DDraw;
  g_WHumImgImages.FileName:=HUMIMGIMAGESFILE;
  g_WHumImgImages.LibType:=ltUseCache;
  g_WHumImgImages.Initialize;

  g_WHairImgImages.DxDraw:=DDxDraw;
  g_WHairImgImages.DDraw:=DDxDraw.DDraw;
  g_WHairImgImages.FileName:=HAIRIMGIMAGESFILE;
  g_WHairImgImages.LibType:=ltUseCache;
  g_WHairImgImages.Initialize;

  g_WWeaponImages.DxDraw:=DDxDraw;
  g_WWeaponImages.DDraw:=DDxDraw.DDraw;
  g_WWeaponImages.FileName:=WEAPONIMAGESFILE;
  g_WWeaponImages.LibType:=ltUseCache;
  g_WWeaponImages.Initialize;

  g_WMagIconImages.DxDraw:=DDxDraw;
  g_WMagIconImages.DDraw:=DDxDraw.DDraw;
  g_WMagIconImages.FileName:=MAGICONIMAGESFILE;
  g_WMagIconImages.LibType:=ltUseCache;
  g_WMagIconImages.Initialize;

  g_WNpcImgImages.DxDraw:=DDxDraw;
  g_WNpcImgImages.DDraw:=DDxDraw.DDraw;
  g_WNpcImgImages.FileName:=NPCIMAGESFILE;
  g_WNpcImgImages.LibType:=ltUseCache;
  g_WNpcImgImages.Initialize;

  g_WMagicImages.DxDraw:=DDxDraw;
  g_WMagicImages.DDraw:=DDxDraw.DDraw;
  g_WMagicImages.FileName:=MAGICIMAGESFILE;
  g_WMagicImages.LibType:=ltUseCache;
  g_WMagicImages.Initialize;

  g_WMagic2Images.DxDraw:=DDxDraw;
  g_WMagic2Images.DDraw:=DDxDraw.DDraw;
  g_WMagic2Images.FileName:=MAGIC2IMAGESFILE;
  g_WMagic2Images.LibType:=ltUseCache;
  g_WMagic2Images.Initialize;
{$IF CUSTOMLIBFILE = 1}
  g_WEventEffectImages.DxDraw:=DDxDraw;
  g_WEventEffectImages.DDraw:=DDxDraw.DDraw;
  g_WEventEffectImages.FileName:=EVENTEFFECTIMAGESFILE;
  g_WEventEffectImages.LibType:=ltUseCache;
  g_WEventEffectImages.Initialize;
{$IFEND}


end;
procedure UnLoadWMImagesLib();
var
  I:Integer;
begin
  for I := Low(g_WObjectArr) to High(g_WObjectArr) do begin
    if g_WObjectArr[I] <> nil then begin
      g_WObjectArr[I].Finalize;
      g_WObjectArr[I].Free;
    end;
  end;
  for I := Low(g_WMonImagesArr) to High(g_WMonImagesArr) do begin
    if g_WMonImagesArr[I] <> nil then begin
      g_WMonImagesArr[I].Finalize;
      g_WMonImagesArr[I].Free;
    end;
  end;

  g_WMainImages.Finalize;
  g_WMainImages.Free;

  g_WMain2Images.Finalize;
  g_WMain2Images.Free;

  g_WMain3Images.Finalize;
  g_WMain3Images.Free;
  
  g_WChrSelImages.Finalize;
  g_WChrSelImages.Free;

  g_WMMapImages.Finalize;
  g_WMMapImages.Free;

⌨️ 快捷键说明

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