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

📄 objbase.pas

📁 传奇源代码的delphi版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    function copyuseritem(UserItem:pTUserItem):pTUserItem;

    function  GetMagicInfo(nMagicID:Integer):pTUserMagic;
    procedure AddItemSkill(nIndex:Integer);
    procedure DelItemSkill(nIndex:Integer);
    procedure reloadmonitem();

  end;
  TAnimalObject =class(TBaseObject)
    m_nNotProcessCount            :Integer;    //未被处理次数,用于怪物处理循环
    m_nTargetX                    :Integer;    //0x538
    m_nTargetY                    :Integer;    //0x53C
    m_boRunAwayMode               :Boolean;    //0x540
    m_dwRunAwayStart              :LongWord;   //0x544
    m_dwRunAwayTime               :LongWord;    //0x548
  private

  public
    constructor Create();override;
    procedure SearchTarget();
    procedure sub_4C959C;
    function  Operate(ProcessMsg:pTProcessMessage):Boolean;override; //FFFC
    procedure Run;override;  //FFFB
    procedure DelTargetCreat();override;//FFF1
    procedure SetTargetXY(nX,nY:Integer);virtual; //FFF0
    procedure GotoTargetXY(); virtual; //0FFEF
    procedure Wondering(); virtual; //0FFEE
    procedure Attack(TargeTBaseObject: TBaseObject; nDir: Integer);virtual; //0FFED
    procedure Struck(Hiter: TBaseObject);virtual; //FFEC

    procedure HitMagAttackTarget(TargeTBaseObject: TBaseObject; nHitPower: Integer;nMagPower:integer;boFlag:Boolean);
  end;
  TPlayObject = class(TAnimalObject)
    m_DefMsg                  :TDefaultMessage;  //0x550
      TList55C                :TList;      //0x55C
    m_sOldSayMsg              :String;     //0x560
    m_nSayMsgCount            :Integer;    //0x560
    m_dwSayMsgTick            :LongWord;   //0x568
    m_boDisableSayMsg         :Boolean;    //0x56C
    m_dwDisableSayMsgTick     :LongWord;   //0x570
    m_dwCheckDupObjTick       :LongWord;   //0x574
      dwTick578               :LongWord;   //0x578
      dwTick57C               :LongWord;   //0x57C
    m_boInSafeArea            :Boolean;    //0x580
      n584                    :Integer;    //0x584
      n588                    :Integer;    //0x584
    m_sUserID                 :string[11]; //0x58C
    m_sIPaddr                 :string;     //0x598
    m_sIPLocal                :String;
    m_nSocket                 :Integer;    //0x59C nSocket
    m_nGSocketIdx             :Integer;    //0x5A0 wGateIndex SOCKET ID
    m_nGateIdx                :Integer;    //0x5A8 nGateIdx
    m_nSoftVersionDate        :Integer;    //0x5AC
    m_dLogonTime              :TDateTime;  //0x5B0
    m_dwLogonTick             :LongWord;   //0x5B8
    m_boReadyRun              :Boolean;    //0x5BC
    m_nSessionID              :Integer;    //0x5C0
    m_nPayMent                :Integer;    //0x5C4
    m_nPayMode                :Integer;    //0x5C8
    m_SessInfo                :pTSessInfo;
    m_dwLoadTick              :LongWord;   //0x5CC
    m_nServerIndex            :Integer;    //0x5D0
    m_boEmergencyClose        :Boolean;    //0x5D4
    m_boSoftClose             :Boolean;    //0x5D5
    m_boKickFlag              :Boolean;    //0x5D6  (Byte)(@kick )
    m_boReconnection          :Boolean;    //0x5D7
    m_boRcdSaved              :Boolean;    //0x5D8
    m_boSwitchData            :Boolean;    //0x5D9
    m_nWriteChgDataErrCount   :Integer;    //0x5DC
    m_sSwitchMapName          :String;     //0x5E0
    m_nSwitchMapX             :Integer;    //0x5E4
    m_nSwitchMapY             :Integer;    //0x5E8
    m_boSwitchDataSended      :Boolean;    //0x5EC
    m_dwChgDataWritedTick     :LongWord;   //0x5F0
      m_dw5D4                 :LongWord;   //0x5F4
      n5F8                    :Integer;    //0x5F8
      n5FC                    :Integer;    //0x5FC
    m_dwHitIntervalTime       :LongWord;
    m_dwMagicHitIntervalTime  :LongWord;
    m_dwRunIntervalTime       :LongWord;
    m_dwWalkIntervalTime      :LongWord;
    m_dwTurnIntervalTime      :LongWord;
    m_dwActionIntervalTime    :LongWord;
    m_dwRunLongHitIntervalTime:LongWord;
    m_dwRunHitIntervalTime    :LongWord;
    m_dwWalkHitIntervalTime   :LongWord;
    m_dwRunMagicIntervalTime  :LongWord;


    m_dwMagicAttackTick       :LongWord;   //0x600
    m_dwMagicAttackInterval   :LongWord;   //0x604
    m_dwAttackTick            :LongWord;   //0x608
    m_dwMoveTick              :LongWord;   //0x60C
    m_dwAttackCount           :LongWord;   //0x610
    m_dwAttackCountA          :LongWord;   //0x614
    m_dwMagicAttackCount      :LongWord;   //0x618
    m_dwMoveCount             :LongWord;   //0x61C
    m_dwMoveCountA            :LongWord;   //0x620
    m_nOverSpeedCount         :Integer;   //0x624
    m_boDieInFight3Zone       :Boolean;    //0x628
    m_Script                  :pTScript;    //0x62C
    m_NPC                     :TBaseObject;   //0x630
    m_nVal                    :array[0..9] of Integer;     //0x634 - 658
    m_nMval                   :array[0..99] of Integer;
    m_DyVal                   :array[0..9] of Integer; //0x65C - 680
    m_sPlayDiceLabel          :String;
    m_boTimeRecall            :Boolean;   //0x684
    m_dwTimeRecallTick        :LongWord;  //0x688
    m_sMoveMap                :String;    //0x68C
    m_nMoveX                  :Integer;   //0x690
    m_nMoveY                  :Integer;   //0x694
      bo698                   :Boolean;   //0x698
      n69C                    :Integer;   //0x69C
    m_dwSaveRcdTick           :LongWord;  //0x6A0
    m_btBright                :Byte;
    m_boNewHuman              :Boolean;   //0x6A8
    m_boSendNotice            :Boolean;   //0x6A9
    m_dwWaitLoginNoticeOKTick :LongWord;
    m_boLoginNoticeOK         :Boolean;   //0x6AA
      bo6AB                   :Boolean;   //0x6AB
    m_boExpire                :Boolean;   //0x6AC
    m_dwShowLineNoticeTick    :LongWord;  //0x6B0
    m_nShowLineNoticeIdx      :Integer;   //0x6B4

    //m_AddUseItems             :array[9..12] of TUserItem;
    m_nSoftVersionDateEx      :Integer;
    m_CanJmpScriptLableList   :TStringList;
    m_nScriptGotoCount        :Integer;
    m_sScriptCurrLable        :String;
    m_sScriptGoBackLable      :String;
    m_dwTurnTick              :LongWord;
    m_wOldIdent               :Word;
    m_btOldDir                :Byte;

    m_boFirstAction           :Boolean;
    m_dwActionTick            :LongWord;
    m_sDearName               :String[ActorNameLen];
    m_DearHuman               :TPlayObject;

    m_xLoveInfo               :TLover;

    m_boCanDearRecall         :Boolean;
    m_boCanMasterRecall       :Boolean;
    m_dwDearRecallTick        :LongWord;
    m_dwMasterRecallTick      :LongWord;
    m_sMasterName             :String[ActorNameLen];
    m_MasterHuman             :TPlayObject;
    m_MasterList              :TList;
    m_boMaster                :Boolean;
    m_btCreditPoint           :Byte;
    m_btMarryCount            :Byte;
    m_btReLevel               :Byte;
    m_btReColorIdx            :Byte;
    m_dwReColorTick           :LongWord;
    m_nKillMonExpMultiple     :Integer;
    m_dwGetMsgTick            :LongWord;

    m_boSetStoragePwd         :Boolean;
    m_boReConfigPwd           :Boolean;
    m_boCheckOldPwd           :Boolean;
    m_boUnLockPwd             :Boolean;
    m_boUnLockStoragePwd      :Boolean;
    m_boPasswordLocked        :Boolean;
    m_btPwdFailCount          :Byte;
    m_boLockLogon             :Boolean;
    m_boLockLogoned           :Boolean;
    m_sTempPwd                :String[7];
    m_sStoragePwd             :String[7];
    m_PoseBaseObject          :TBaseObject;
    m_boStartMarry            :Boolean;
    m_boStartMaster           :Boolean;    
    m_boStartUnMarry          :Boolean;
    m_boStartUnMaster         :Boolean;    
    m_boFilterSendMsg         :Boolean;
    m_nKillMonExpRate         :Integer;
    m_nPowerRate              :Integer;
    m_dwKillMonExpRateTime    :LongWord;
    m_dwPowerRateTime         :LongWord;
    m_dwRateTick              :LongWord;


    m_boCanUseItem            :Boolean;
    m_boCanDeal               :Boolean;
    m_boCanDrop               :Boolean;
    m_boCanGetBackItem        :Boolean;
    m_boCanWalk               :Boolean;
    m_boCanRun                :Boolean;
    m_boCanHit                :Boolean;
    m_boCanSpell              :Boolean;
    m_boCanSendMsg            :Boolean;

    m_nMemberType             :Integer;
    m_nMemberLevel            :Integer;
    m_boSendMsgFlag           :Boolean;
    m_boChangeItemNameFlag    :Boolean;

    m_nGameGold               :Integer;
    m_nBankGold               :Integer;
    m_boDecGameGold           :Boolean;
    m_dwDecGameGoldTime       :LongWord;
    m_dwDecGameGoldTick       :LongWord;
    m_nDecGameGold            :Integer;

    m_boIncGameGold           :Boolean;
    m_dwIncGameGoldTime       :LongWord;
    m_dwIncGameGoldTick       :LongWord;
    m_nIncGameGold            :Integer;

    m_nGamePoint              :Integer;
    m_dwIncGamePointTick      :LongWord;
    
    m_nPayMentPoint           :Integer;
    m_dwPayMentPointTick      :LongWord;

    m_dwDecHPTick             :LongWord;
    m_dwIncHPTick             :LongWord;

    m_GetWhisperHuman         :TPlayObject;
    m_dwClearObjTick          :LongWord;
    m_wContribution           :Word;
    m_sRankLevelName          :String;
    m_boFilterAction          :Boolean;
    m_dwAutoGetExpTick        :LongWord;
    m_nAutoGetExpTime         :Integer;
    m_nAutoGetExpPoint        :Integer;
    m_AutoGetExpEnvir         :TEnvirnoment;
    m_boAutoGetExpInSafeZone  :Boolean;
    m_DynamicVarList          :TList;
    m_dwClientTick            :LongWord;
    m_boTestSpeedMode         :Boolean; 

      {
      LatestRevivalTime       :LongWord;
      wObjectType  :Word;
      Feature      :TObjectFeature;
      boOpenHealth :Boolean;
      dwOpenHealthStart :LongWord;
      dwOpenHealthTime  :LongWord;
      dwMapMoveTime    :LongWord;

      dwTargetFocusTime:LongWord;

      dwWalkTime  :LongWord;
      AntiMagic     :Integer;
      BoAbilSeeHealGauge :Boolean;
      dwStruckTime :LongWord;
      nMeatQuality :Integer;
      nHitTime     :Integer;
      bofirst      :Boolean;
      nSlaveMakeLevel :Integer;
      dwNextHitTime  :LongWord;
      dwNextWalkTime :LongWord;
      boUsePoison    :Boolean;
      }
    nRunCount:Integer;
    dwRunTimeCount:LongWord;
    m_dwDelayTime:LongWord;

    m_dwBBSDelayTime:LongWord;
    m_dwBBSPostDelay:LongWord;
  private
    function  ClientDropGold(nGold:Integer):Boolean;
    function  PlayGetPoseCreate: TPlayObject;
    procedure ClientQueryBagItems();
    procedure ClientQueryStorageItems();
    procedure ClientQueryUserState(PlayObject:TPlayObject;nX,nY:Integer);
    function  ClientDropItem(sItemName:String;nItemIdx:Integer;nAmount:Integer):Boolean;
    function  ClientPickUpItem: Boolean;
    procedure ClientOpenDoor(nX,nY:Integer);
    procedure ClientTakeOnItems(btWhere:Byte;nItemIdx:integer;sItemName:String);
    procedure ClientTakeOffItems(btWhere:Byte;nItemIdx:integer;sItemName:String);
    procedure ClientUseItems(nItemIdx:Integer;sItemName:String);
    function  UseStdmodeFunItem(StdItem:TItem):Boolean;
    function  ClientGetButchItem(BaseObject:TBaseObject;nX,nY:Integer;btDir:Byte;var dwDelayTime:LongWord):Boolean;
    procedure ClientChangeMagicKey(nSkillIdx,nKey:integer);
    procedure ClientClickNPC(NPC:Integer);
    procedure ClientMerchantDlgSelect(nParam1: Integer;sMsg: String);
    procedure GemInfo(nParam1: Integer;sMsg: String);

⌨️ 快捷键说明

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