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

📄 objbase.pas

📁 传奇源代码的delphi版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit ObjBase;
// If you get an error on the next line, you need to reextract SourceFiles.rar
{$I defines.inc}
interface
uses
  svn, nixtime, Windows, Classes, SysUtils, DateUtils, Forms, StrUtils, Math, SDK, Grobal2, Envir,
  ItmUnit, MD5Unit, ADODB;

type
  TClientAction = (cHit,cMagHit,cRun,cWalk,cDigUp,cTurn);
const
  gMan          = 0;
  gWoMan        = 1;

type
  TBaseObject = class;

  pTStartPoint=^TStartPoint;
  TStartPoint=record
    sMapName:String[MapNameLen];
    nX:Integer;
    nY:Integer;
    btJob:Byte;
    Envir:TEnvirnoment;
    dwWhisperTick:LongWord;
  end;

  pTSendMessage=^TSendMessage;
  TSendMessage=record
     wIdent:word;
     wParam:word;
     nParam1:integer;
     nParam2:integer;
     nParam3:integer;
     dwDeliveryTime:dword;
     BaseObject:TBaseObject;
     boLateDelivery:Boolean;
     Buff:pointer;
  end;

  pTVisibleBaseObject=^TVisibleBaseObject;
  TVisibleBaseObject=record
    BaseObject:TBaseObject;
    nVisibleFlag:Integer;
  end;

  pTVisibleMapItem=^TVisibleMapItem;
  TVisibleMapItem=record
     nX,nY:integer;
     MapItem:pTMapItem;
     sName:String;
     wLooks:word;
     nVisibleFlag:integer;
  end;

  TBaseObject = class
    m_sMapName                :String[MapNameLen]; //0x04
    m_sCharName               :String[ActorNameLen]; //0x15
    m_nCurrX                  :Integer;    //0x24
    m_nCurrY                  :Integer;    //0x28
    m_btDirection             :Byte;       //0x2C
    m_btGender                :Byte;       //0x2D
    m_btHair                  :Byte;       //0x2E
    m_btJob                   :Byte;       //0x2F
    m_nGold                   :Integer;    //0x30
    m_Abil                    :TAbility; //TAbility;   //0x34 -> 0x5B
    m_nCharStatus             :Integer;    //0x5C
    m_sHomeMap                :String[MapNameLen]; //0x78
    m_nHomeX                  :Integer;    //0x8C
    m_nHomeY                  :Integer;    //0x90
      bo94                    :Boolean;    //0x94
    m_boOnHorse               :Boolean;    //0x95
    m_btHorseType             :Byte;
    m_btDressEffType          :Byte;
    m_btHelmetEffType         :Byte;
      n98                     :Integer;    //0x98
      n9C                     :Integer;    //0x9C
      nA0                     :Integer;    //0xA0
      nA4                     :Integer;    //0xA4
      nA8                     :Integer;    //0xA8
    m_nPkPoint                :Integer;    //0xAC
    m_boAllowGroup            :Boolean;    //0xB0
    m_boAllowGuild            :Boolean;    //0xB1
      btB2                    :Byte;       //0xB2
      btB3                    :Byte;       //0xB3
    m_nIncHealth              :Integer;    //0x0B4
    m_nIncSpell               :Integer;    //0x0B8
    m_nIncHealing             :Integer;    //0x0BC
    m_nFightZoneDieCount      :Integer;    //0x0C0
      nC4                     :Integer;
      btC8                    :Byte;     //0xC8
      btC9                    :Byte;     //0xC9
    m_BonusAbil               :TNakedAbility; //0x0CA TNakedAbility
    m_CurBonusAbil            :TNakedAbility; //0x0DE
    m_nBonusPoint             :Integer;        //0x0F4
    m_nHungerStatus           :Integer;        //0x0F8
    m_boAllowGuildReCall      :Boolean;        //0xFC
//      btFC               :Byte;
    m_btFD                    :Byte;
    m_btFE                    :Byte;
    m_btFF                    :Byte;
    m_dBodyLuck               :Double;        //0x100
    m_nBodyLuckLevel          :Integer;       //0x108
    m_wGroupRcallTime         :Word;          //0x10C
    m_boAllowGroupReCall      :Boolean;       //0x10E
    m_QuestUnitOpen           :TQuestUnit;    //0x10F
    m_QuestUnit               :TQuestUnit;    //0x11C
    m_QuestFlag               :TQuestFlag;    //0x128 129
    m_nCharStatusEx           :Integer;
    m_dwFightExp              :LongWord;      //0x194
    m_WAbil                   :TAbility;      //0x198
    m_AddAbil                 :TAddAbility;   //0x1C0
    m_nViewRange              :Integer;       //0x1E4
    m_wStatusTimeArr          :TStatusTime;   //0x60
    m_dwStatusArrTick         :array [0..MAX_STATUS_ATTRIBUTE -1] of LongWord; //0x1E8
    m_wStatusArrValue         :array [0..6] of Word; //0x218
    m_dwStatusArrTimeOutTick  :array [0..6] of LongWord; // :Tarry220;           //0x220
    m_wAppr                   :Word;         //0x238
    m_btRaceServer            :Byte;         //0x23A
    m_btRaceImg               :Byte;         //0x23B
    m_btHitPoint              :Byte;         //0x23C
    m_nHitPlus                :ShortInt;      //0x23D
    m_nHitDouble              :ShortInt;      //0x23E
    m_dwGroupRcallTick        :LongWord;     //0x240
    m_boRecallSuite           :Boolean;      //0x244
      bo245                   :Boolean;      //0x245
    m_boTestGa                :Boolean;      //0x246
    m_boGsa                   :Boolean;      //0x247
    m_nHealthRecover          :ShortInt;      //0x248
    m_nSpellRecover           :ShortInt;      //0x249
    m_btAntiPoison            :Byte;         //0x24A
    m_nPoisonRecover          :ShortInt;     //0x24B
    m_nAntiMagic              :ShortInt;     //0x24C
    m_nLuck                   :Integer;      //0x250
    m_nPoisonIncrease         :Integer;
    m_nFreezingIncrease       :Integer;
    m_nPerHealth              :Integer;      //0x254
    m_nPerHealing             :Integer;      //0x258
    m_nPerSpell               :Integer;      //0x25C
    m_dwIncHealthSpellTick    :LongWord;     //0x260
    m_btGreenPoisoningPoint   :Byte;         //0x264
    m_nGoldMax                :Integer;      //0x268
    m_btSpeedPoint            :Byte;         //0x26C
    m_btPermission            :Byte;         //0x26D
    m_nHitSpeed               :ShortInt;     //0x26E  //1-18
    m_btLifeAttrib            :Byte;         //0x26F
    m_btCoolEye               :Byte;         //0x270
    m_GroupOwner              :TBaseObject;    //0x274
    m_GroupMembers            :TStringList;  //0x278
    m_boHearWhisper           :Boolean;      //0x27C
    m_boBanShout              :Boolean;      //0x27D
    m_boBanGuildChat          :Boolean;      //0x27E
    m_boAllowDeal             :Boolean;      //0x27F
    m_BlockWhisperList        :TStringList;  //0x280
    m_dwShoutMsgTick          :LongWord;     //0x284
    m_Master                  :TBaseObject;    //0x288
    m_dwMasterRoyaltyTick     :LongWord;     //0x28C
    m_dwMasterTick            :LongWord;      //0x290
      n294                    :Integer;      //0x294
    m_btSlaveExpLevel         :Byte;         //0x298   1-7
    m_btSlaveMakeLevel        :Byte;         //0x299
    m_SlaveList               :TList;        //0x29C
      bt2A0                   :Byte;         //0x2A0
    m_boSlaveRelax            :Boolean;      //0x2A0
    m_btAttatckMode           :Byte;         //0x2A1   攻击模式
    m_btNameColor             :Byte;       //0x2A2
    m_nLight                  :Integer;    //0x2A4
    m_boGuildWarArea          :Boolean;    //0x2A8
    m_Castle                  :TObject;    //0x2AC
      bo2B0                   :Boolean;    //0x2B0
    m_dw2B4Tick               :LongWord;   //0x2B4
    m_boSuperMan              :Boolean;    //0x2B8
      bo2B9                   :Boolean;    //0x2B9
      bo2BA                   :Boolean;    //0x2BA
    m_boAnimal                :Boolean;    //0x2BB
    m_boNoItem                :Boolean;    //0x2BC
    m_boFixedHideMode         :Boolean;    //0x2BD
    m_boStickMode             :Boolean;    //0x2BE
      bo2BF                   :Boolean;    //0x2BF
    m_boNoAttackMode          :Boolean;    //0x2C0
    m_boNoTame                :Boolean;    //0x2C1
    m_boSkeleton              :Boolean;    //0x2C2
    m_nMeatQuality            :Integer;    //0x2C4
    m_nBodyLeathery           :Integer;    //0x2C8
    m_boHolySeize             :Boolean;    //0x2CC
    m_dwHolySeizeTick         :LongWord;     //0x2D0
    m_dwHolySeizeInterval     :LongWord;     //0x2D4
    m_boCrazyMode             :Boolean;      //0x2D8
    m_dwCrazyModeTick         :LongWord;     //0x2DC
    m_dwCrazyModeInterval     :LongWord;     //0x2E0
    m_boHallucMode            :Boolean;      //Hallucination
    m_dwHallucModeTick        :LongWord;
    m_dwHallucModeInterval    :LongWord;
    
    m_boShowHP                :Boolean;      //0x2E4
//      nC2E6                   :Integer;      //0x2E6
    m_dwShowHPTick            :LongWord;     //0x2E8
    m_dwShowHPInterval        :LongWord;     //0x2EC
      bo2F0                   :Boolean;      //0x2F0
    m_dwDupObjTick            :LongWord;     //0x2F4
    m_PEnvir                  :TEnvirnoment; //0x2F8
    m_boGhost                 :Boolean;    //0x2FC
    m_dwGhostTick             :LongWord;   //0x300
    m_boDeath                 :Boolean;    //0x304
    m_dwDeathTick             :LongWord;   //0x308
    m_btMonsterWeapon         :Byte;       //0x30C
    m_dwStruckTick            :LongWord;   //0x310
    m_boWantRefMsg            :Boolean;    //0x314
    m_boAddtoMapSuccess       :Boolean;    //0x315
    m_bo316                   :Boolean;    //0x316
    m_boDealing               :Boolean;    //0x317
    m_DealLastTick            :LongWord;   //0x318
    m_DealCreat               :TBaseObject;  //0x31C
    m_boRefineing             :Boolean;
    m_RefineLastTick          :LongWord;
    m_RefineCreat             :TBaseObject;  //0x31C
    m_boDealGT                :Boolean;
    m_MyGuild                 :TOBject;    //0x320
    m_nGuildRankNo            :Integer;    //0x324
    m_sGuildRankName          :String;     //0x328
    m_sScriptLable            :String;     //0x32C
    m_btAttackSkillCount      :Byte;       //0x330
      bt331                   :Byte;
      bt332                   :Byte;
      bt333                   :Byte;
    m_btAttackSkillPointCount :Byte;       //0x334
      bo335                   :Boolean;    //0x335
      bo336                   :Boolean;    //0x336
      bo337                   :Boolean;    //0x337
    m_boMission               :Boolean;    //0x338
    m_nMissionX               :Integer;    //0x33C
    m_nMissionY               :Integer;    //0x340
    m_boHideMode              :Boolean;    //0x344
    m_boTDBeffect             :Boolean;
    m_boStoneMode             :Boolean;    //0x345
    m_boCoolEye               :Boolean;    //0x346
    m_boUserUnLockDurg        :Boolean;    //0x347
    m_boTransparent           :Boolean;    //0x348
    m_boAdminMode             :Boolean;    //0x349
    m_boObMode                :Boolean;    //0x34A
    m_boTeleport              :Boolean;    //0x34B
    m_boParalysis             :Boolean;    //0x34C
    m_boUnParalysis           :Boolean;
    m_boRevival               :Boolean;    //0x34D
    m_boUnRevival             :Boolean;
      bo34E                   :boolean;
      bo34F                   :Boolean;
    m_dwRevivalTick           :LongWord;   //0x350
    m_boFlameRing             :Boolean;    //0x354
    m_boRecoveryRing          :Boolean;    //0x355
    m_boAngryRing             :Boolean;    //0x356
    m_boMagicShield           :Boolean;    //0x357
    m_boUnMagicShield         :Boolean;
    m_boMuscleRing            :Boolean;    //0x358
    m_boFastTrain             :Boolean;    //0x359
    m_boProbeNecklace         :Boolean;    //0x35A
    m_boGuildMove             :Boolean;
    m_boSupermanItem          :Boolean;
    m_bopirit                 :Boolean;

    m_boNoDropItem            :Boolean;
    m_boNoDropUseItem         :Boolean;
    m_boExpItem               :Boolean;
    m_boPowerItem             :Boolean;

    m_rExpItem                :Real;
    m_rPowerItem              :Real;
    m_dwPKDieLostExp          :LongWord;   //PK 
    m_nPKDieLostLevel         :Integer;    //PK

    m_boAbilSeeHealGauge      :Boolean;    //0x35B
    m_boAbilMagBubbleDefence  :Boolean;    //0x35C
    m_boAbilCelestialDefence  :Boolean;    //0x35C
    m_btMagBubbleDefenceLevel :Byte;       //0x35D
    m_dwSearchTime            :LongWord;   //0x360
    m_dwSearchTick            :LongWord;   //0x364
    m_dwRunTick               :LongWord;   //0x368
    m_nRunTime                :Integer;    //0x36C

⌨️ 快捷键说明

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