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

📄 objbase.pas

📁 传奇源代码的delphi版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    m_nHealthTick             :Integer;    //0x370
    m_nSpellTick              :Integer;    //0x374
    m_TargetCret              :TBaseObject;  //0x378
    m_dwTargetFocusTick       :LongWord;   //0x37C
    m_LastHiter               :TBaseObject;  //0x380
    m_LastHiterTick           :LongWord;   //0x384
    m_ExpHitter               :TBaseObject;  //0x388
    m_ExpHitterTick           :LongWord;   //0x38C
    m_dwTeleportTick          :LongWord;   //0x390
    m_dwProbeTick             :LongWord;   //0x394
    m_dwMapMoveTick           :LongWord;   //0x398
    m_boPKFlag                :Boolean;    //0x39C
    m_dwPKTick                :LongWord;   //0x3A0
    m_nMoXieSuite             :Integer;    //0x3A4
    m_nHongMoSuite            :Integer;    //0x3A8
    m_n3AC                    :Integer;    //0x3AC
    m_db3B0                   :Double;     //0x3B0
    m_dwPoisoningTick         :LongWord;   //0x3B8
    m_dwDecPkPointTick        :LongWord;   //0x3BC
    m_DecLightItemDrugTick    :LongWord;   //0x3C0
    m_dwVerifyTick            :LongWord;   //0x3C4
    m_dwCheckRoyaltyTick      :LongWord;   //0x3C8
    m_dwDecHungerPointTick    :LongWord;   //0x3CC
    m_dwHPMPTick              :LongWord;   //0x3D0
    m_MsgList                 :TList;      //0x3D4
    m_VisibleHumanList        :TList;      //0x3D8
    m_VisibleItems            :TList;      //0x3DC
    m_VisibleEvents           :TList;      //0x3E0
    m_SendRefMsgTick          :LongWord;   //0x3E4
    m_boInFreePKArea          :Boolean;    //0x3E8
      LIst_3EC                :TList;      //0x3EC
      dwTick3F0               :LongWord;   //0x3F0
      dwTick3F4               :LongWord;   //0x3F4
    m_dwHitTick               :Integer;   //0x3F8
    m_dwWalkTick              :Integer;   //0x3FC
    m_dwSearchEnemyTick       :LongWord;   //0x400
    m_boNameColorChanged      :Boolean;    //0x404
    m_boIsVisibleActive       :Boolean;
    m_nProcessRunCount        :ShortInt;
    m_VisibleActors           :TList;      //0x408
    m_ItemList                :TList;      //0x40C
    m_DealItemList            :TList;      //0x410
    m_RefineItemList          :TList;      //0x410
    m_boRefineOK              :Boolean;
    m_nDealGolds              :Integer;    //0x414
    m_boDealOK                :Boolean;    //0x418
    m_MagicList               :TList;      //0x41C
    m_UseItems                :THumanUseItems;  //0x420  + D8 -> 4F8
    m_SayMsgList              :TList;
    m_StorageItemList         :TList;      //0x4F8
    m_nWalkSpeed              :Integer;   //0x4FC
    m_nWalkStep               :Integer;    //0x500
    m_nWalkCount              :Integer;    //0x504
    m_dwWalkWait              :LongWord;   //0x508
    m_dwWalkWaitTick          :LongWord;   //0x50C
    m_boWalkWaitLocked        :Boolean;    //0x510
    m_nNextHitTime            :Integer;    //0x514
    m_MagicOneSwordSkill      :pTUserMagic;    //0x518
    m_MagicPowerHitSkill      :pTUserMagic;    //0x51C
    m_MagicErgumSkill         :pTUserMagic;    //0x520
    m_MagicBanwolSkill        :pTUserMagic;    //0x524
    m_MagicRedBanwolSkill     :pTUserMagic;
    m_MagicFireSwordSkill     :pTUserMagic;    //0x528
    m_MagicCrsSkill           :pTUserMagic;    //0x750
    m_MagicTwnHitSkill        :pTUserMagic;    //0x528
    m_boPowerHit              :Boolean;     //0x52C
    m_boUseThrusting          :Boolean;     //0x52D
    m_boUseHalfMoon           :Boolean;     //0x52E
    m_boRedUseHalfMoon        :Boolean;
    m_boFireHitSkill          :Boolean;     //0x52F
    m_boCrsHitkill            :Boolean;
    m_bo41kill                :Boolean;
    m_boTwinHitSkill          :Boolean;
    m_boTwinHitSkillPhase     :Boolean;
    m_bo43kill                :Boolean;
    m_dwLatestFireHitTick     :LongWord;    //0x530
    m_dwDoMotaeboTick         :LongWord;    //0x534
    m_dwLatestTwinHitTick     :LongWord;
    m_boDenyRefStatus         :Boolean;
    m_boAddToMaped            :Boolean;
    m_boDelFormMaped          :Boolean;
    m_boAutoChangeColor       :Boolean;
    m_dwAutoChangeColorTick   :LongWord;
    m_nAutoChangeIdx          :Integer;

    m_boFixColor              :Boolean;
    m_nFixColorIdx            :Integer;
    m_nFixStatus              :Integer;
    m_boFastParalysis         :Boolean;

    m_boNastyMode             :Boolean;
//    m_FriendList              :TList;
    
    m_nnonfrzWalkSpeed        :Integer;
    m_nnonfrzNextHitTime      :Integer;

    m_boCanLooseDura          :Boolean;
  private
    function  GetLevelExp(nLevel: Integer): LongWord;
    function  InSafeArea: Boolean;
    procedure UpdateVisibleGay(BaseObject:TBaseObject);virtual;
    function  Walk(nIdent:Integer): Boolean;
    function  AddToMap():Boolean;
    procedure UseLamp();
    procedure CheckPKStatus();
    procedure UpdateVisibleItem(wX,wY:Integer;MapItem:PTMapItem);
    procedure UpdateVisibleEvent(wX,wY:Integer;MapEvent:TObject);
    procedure GetAccessory(UserItem:TUserItem;var AddAbility:TAddAbility);
    function  RecalcBagWeight():Integer;
    procedure RecalcHitSpeed();
    procedure DecPKPoint(nPoint:Integer);
    function  GetCharColor(BaseObject:TBaseObject):Byte;
    function  GetNamecolor: Byte;
    procedure SendUpdateDelayMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
      lParam1, lParam2, lParam3: Integer; sMsg: String; dwDelay: LongWord);
    procedure LeaveGroup();
    procedure DelMember(BaseObject:TBaseObject);
    procedure HearMsg(sMsg:String);    
    procedure AttackDir(TargeTBaseObject:TBaseObject;wHitMode:Word;nDir:Integer);virtual;

    procedure DoDamageWeapon(nWeaponDamage:Integer);
    function GetFeatureEx: Word;
  public
    constructor Create();virtual;
    destructor Destroy; override;
    procedure SendMsg(BaseObject:TBaseObject;wIdent,wParam:Word;nParam1,nParam2,nParam3:Integer;sMsg:String);
    procedure SendFirstMsg(BaseObject:TBaseObject;wIdent,wParam:Word;lParam1,lParam2,lParam3:Integer;sMsg:String);
    procedure SendDelayMsg(BaseObject:TBaseObject;wIdent,wParam:Word;lParam1,lParam2,lParam3:Integer;sMsg:String;dwDelay:LongWord);
    procedure SendRefMsg(wIdent,wParam:Word;nParam1,nParam2,nParam3:Integer;sMsg:String);
    procedure SendUpdateMsg(BaseObject: TBaseObject; wIdent, wParam: Word; lParam1,lParam2, lParam3: Integer; sMsg: String);
    procedure SendActionMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
      lParam1, lParam2, lParam3: Integer; sMsg: String);
    procedure SendAttackMsg(wIdent:Word;btDir:Byte;nX,nY:Integer);
    procedure SysMsg(sMsg:String;MsgColor:TMsgColor;MsgType:TMsgType);
    procedure SendGroupText(sMsg:String);
    procedure MonsterSayMsg(AttackBaseObject:TBaseObject;MonStatus:TMonStatus);
    function  IsVisibleHuman():Boolean;
    procedure RecalcLevelAbilitys;
    function  PKLevel():Integer;
    function  InSafeZone():Boolean;OverLoad;
    function  InSafeZone(Envir:TEnvirnoment;nX,nY:Integer):Boolean;OverLoad;
    procedure OpenHolySeizeMode(dwInterval:LongWord);
    procedure BreakHolySeizeMode;
    procedure OpenCrazyMode(nTime:Integer);
    procedure BreakCrazyMode();
    procedure OpenHallucMode(nTime:Integer);
    procedure BreakHallucMode();
    procedure HealthSpellChanged();
    procedure SendGroupRev();
    function  _Attack(var wHitMode:Word;AttackTarget:TBaseObject):Boolean;
    function  GetHitStruckDamage(Target:TBaseObject;nDamage:integer):Integer;
    procedure HasLevelUp(nLevel: Integer);
    procedure sub_4BC87C();
    procedure GoldChanged();
    procedure BankGoldChanged();
    procedure GameGoldChanged;
    procedure BoxMsg(Cret:TBaseObject; sMsg:String);
    function  CanMove: Boolean; //0051633C
    function  GetHitSpeed: Integer;
    function  GetWalkSpeed: Integer;

    procedure DamageSpell(nSpellPoint:Integer);

      function  IncreaseItem(sName:String):Boolean;
      function  GetGuildRelation (cert1:TBaseObject; cert2:TBaseObject):Integer;
      function  IsGoodKilling(cert:TBaseObject):Boolean;
      procedure IncPkPoint(nPoint:Integer);
      procedure AddBodyLuck(dLuck:Double);
      procedure MakeWeaponUnlock();
      procedure ScatterGolds(GoldOfCreat:TBaseObject);
      function  DropGoldDown (nGold:Integer;boFalg:Boolean;GoldOfCreat,DropGoldCreat:TBaseObject):Boolean;
      function  DropItemDown(UserItem: pTUserItem; nScatterRange:Integer;boDieDrop:Boolean;ItemOfCreat,DropCreat:TBaseObject): Boolean;virtual;
      procedure DamageHealth(nDamage:Integer);
      function  GetAttackPower(nBasePower, nPower: Integer): Integer;
      function  CharPushed(nDir,nPushCount:Integer): Integer;
      function  GetDropPosition (nOrgX,nOrgY,nRange:Integer;var nDX:Integer;var nDY:Integer):Boolean;
      function  GetBackDir(nDir: integer): Integer;
      function  GetMapBaseObjects (tEnvir:TEnvirnoment;nX,nY:Integer;nRage:Integer;rList:TList):Boolean;
      function  MagPassThroughMagic(sx, sy, tx, ty, ndir, magpwr: integer;
        undeadattack: Boolean): integer;
//      function  WindStained(sx, sy, tx, ty, ndir, magpwr: integer;
//        undeadattack: Boolean): integer;
      procedure KickException;
      function  GetMagStruckDamage(BaseObject:TBaseObject;nDamage:Integer):Integer;virtual;
      procedure DamageBubbleDefence(nInt:Integer);
      procedure BreakOpenHealth;
      function  GetCharStatus: UINT;
      procedure MakeOpenHealth;
      procedure IncHealthSpell(nHP, nMP: Integer);
      procedure ItemDamageRevivalRing;
      function  CalcGetExp(nLevel: Integer;nExp:Integer): Integer;
      procedure GainSlaveExp(nLevel: Integer);
      procedure MapRandomMove(sMapName:String;nInt:Integer);
      procedure TurnTo(nDir:integer);
      procedure FeatureChanged();
      function  GetFeatureToLong():Integer;
      function  GetPoseCreate():TBaseObject;
      function  GetFeature(BaseObject: TBaseObject):Integer;
      function  IsGroupMember(target: TBaseObject): Boolean;
      procedure AbilCopyToWAbil();
    procedure ChangePKStatus(boWarFlag: Boolean);
    procedure StruckDamage(nDamage:integer);virtual;
    function  sub_4C4CD4(sItemName:String;var nCount:Integer):pTUserItem;
    procedure StatusChanged;
    function  GeTBaseObjectInfo():String;
    procedure TrainSkill(UserMagic:pTUserMagic;nTranPoint:Integer);
    function  CheckMagicLevelup(UserMagic:pTUserMagic):Boolean;
    function  MagCanHitTarget(nX,nY:Integer;TargeTBaseObject:TBaseObject):Boolean;virtual;
    procedure CheckMagicSpecialAbility(Magic: pTUserMagic);
    function  MagBubbleDefenceUp(nLevel,nSec:Integer):Boolean;
    function  CelestialDefenceUp(nLevel, nSec: Integer): Boolean;
    procedure ApplyMeatQuality();
    function  TakeBagItems(BaseObject:TBaseObject):Boolean;
    function  AddItemToBag(UserItem: PTUserItem): Boolean;
    function  DelBagItem(nIndex:Integer):Boolean;overload;
    function  DelBagItem(nItemIndex:Integer;sItemName:String):Boolean;overload;
    procedure WeightChanged();
    function  IsTrainingSkill(nIndex:Integer):Boolean;
    procedure SetQuestFlagStatus(nFlag:Integer;nValue:Integer);
    function  GetQuestFalgStatus(nFlag:integer):Integer;
    procedure SetQuestUnitOpenStatus(nFlag:Integer;nValue:Integer);
    function  GetQuestUnitOpenStatus(nFlag:integer):Integer;
    procedure SetQuestUnitStatus(nFlag:Integer;nValue:Integer);
    function  GetQuestUnitStatus(nFlag:integer):Integer;
    function  GetAttackDir(BaseObject:TBaseObject;var btDir:Byte):Boolean;
    function  TargetInSpitRange(BaseObject:TBaseObject;var btDir:Byte):Boolean;
    procedure MonsterRecalcAbilitys();
    procedure RefNameColor;
    procedure SetPKFlag(BaseObject:TBaseObject);
    procedure SetLastHiter(BaseObject:TBaseObject);
    function  EnterAnotherMap(Envir:TEnvirnoment;nDMapX,nDMapY:Integer):Boolean;
    function  sub_4DD704():Boolean;
    function  DefenceUp(nSec:Integer):Boolean;
    function  MagDefenceUp(nSec:Integer):Boolean;
    function  AttPowerUp(nPower, nTime: Integer): Boolean;
    function  AttPowerDown(nPower, nTime: Integer): Boolean;
    function  SCPowerUp(nSec:Integer):Boolean;
    procedure RefShowName;
    function  MakeSlave(sMonName:String;nMakeLevel,nExpLevel,nMaxMob:Integer;dwRoyaltySec:LongWord):TBaseObject;
    function  MakePosion(nType,nTime,nPoint:Integer):Boolean;
    function  GetFrontPosition(var nX: Integer; var nY: Integer):Boolean;virtual;
    function  GetBackPosition(var nX:Integer;var nY:Integer):Boolean;
    function  WalkTo(btDir: Byte;boFlag:boolean): Boolean;
    procedure SpaceMove(sMap: String; nX, nY: Integer; nInt:Integer);
    procedure SpaceMoveEX(sMap: String; nX, nY: Integer; nInt,GTNumber:Integer);//gt spacemoves
    function  sub_4C5370(nX, nY:Integer;nRange: Integer;var nDX, nDY:Integer):Boolean;
    function  CheckItems(sItemName:String):pTUserItem;
    function  MagMakeDefenceArea(nX,nY,nRange,nSec:Integer;btState:Byte):Integer;
    function  MagMakeCurseArea(nX,nY,nRange,nSec, nPow:Integer):Integer;
    function  sub_4C3538():Integer;
    function  IsGuildMaster():Boolean;
    procedure LoadSayMsg();
    procedure DisappearA();
    function  GetShowName():String;virtual;
    procedure DropUseItems(BaseObject:TBaseObject); virtual;
    procedure ScatterBagItems(ItemOfCreat:TBaseObject); virtual;
    function  GetMessage(Msg:pTProcessMessage):Boolean;virtual; //FFFF
    procedure Initialize();virtual;//FFFE
    procedure Disappear();virtual;//FFFD
    function  Operate(ProcessMsg:pTProcessMessage):Boolean;virtual;//FFFC
    procedure SearchViewRange();virtual;//dynamic;
    procedure Run();virtual;//dynamic;//FFFB
    procedure ProcessSayMsg(sMsg:String); virtual;//FFFA
    procedure MakeGhost;virtual;
    procedure Die();virtual;//FFF9;
    procedure ReAlive();virtual;//FFF8;
    procedure RecalcAbilitys();virtual; //FFF7
    function  IsProtectTarget(BaseObject:TBaseObject):Boolean; virtual; //FFF6
    function  IsAttackTarget(BaseObject:TBaseObject):Boolean; virtual; //FFF5
    function  IsProperTarget(BaseObject:TBaseObject):Boolean; virtual; //FFF4
    function  IsProperFriend(BaseObject:TBaseObject):Boolean; virtual; //FFF3
    function  IsReincarnation(BaseObject: TBaseObject): Boolean; virtual;
    procedure SetTargetCreat(BaseObject:TBaseObject); virtual; //FFF2
    procedure DelTargetCreat(); virtual; //FFF1
    function  MakeClone(sMonName:String;nMakeLevel,nExpLevel:Integer;dwRoyaltySec:LongWord;nMpLoss:Integer):TBaseObject;
    procedure RecallSlave(sSlaveName:String);
    function  SlaveCount(sSlaveName:String):Integer;
    procedure KillClone(sCloneName:String;nSpellPoint:Integer);

⌨️ 快捷键说明

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