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

📄 objbase.pas

📁 翎风世界..传奇服务端..DELPHI源代码 包括DBServer,LogDataServer,LoginGate,LoginSrv,M2Server等..内容齐全.
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    function  GetMagicInfo(nMagicID:Integer):pTUserMagic;
    procedure AddItemSkill(nIndex:Integer);
    procedure DelItemSkill(nIndex:Integer);
  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    人物IP地址
    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  战领沙城时间(Dword)
    m_boReadyRun              :Boolean;    //0x5BC  //是否进入游戏完成
    m_nSessionID              :Integer;    //0x5C0
    m_nPayMent                :Integer;    //0x5C4  人物当前模式(测试/付费模式)(Dword)
    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  魔法攻击时间(Dword)
    m_dwMagicAttackInterval   :LongWord;   //0x604  魔法攻击间隔时间(Dword)
    m_dwAttackTick            :LongWord;   //0x608  攻击时间(Dword)
    m_dwMoveTick              :LongWord;   //0x60C  人物跑动时间(Dword)
    m_dwAttackCount           :LongWord;   //0x610  人物攻击计数(Dword)
    m_dwAttackCountA          :LongWord;   //0x614  人物攻击计数(Dword)
    m_dwMagicAttackCount      :LongWord;   //0x618  魔法攻击计数(Dword)
    m_dwMoveCount             :LongWord;   //0x61C  人物跑计数(Dword)
    m_dwMoveCountA            :LongWord;   //0x620  人物跑计数(Dword)
    m_nOverSpeedCount         :Integer;   //0x624  超速计数(Dword)
    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; //用于处理 @back 脚本命令
    m_sScriptGoBackLable      :String; //用于处理 @back 脚本命令
    m_dwTurnTick              :LongWord;
    m_wOldIdent               :Word;
    m_btOldDir                :Byte;

    m_boFirstAction           :Boolean;  //第一个操作
    m_dwActionTick            :LongWord; //二次操作之间间隔时间
    m_sDearName               :String[ActorNameLen];   //配偶名称
    m_DearHuman               :TPlayObject;
    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;  //杀怪经验倍数(此数除以 100 为真正倍数)
    m_nPowerRate              :Integer;  //人物攻击力倍数(此数除以 100 为真正倍数)
    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_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_boClientFlag            :Boolean;
    m_nStep                   :Byte;
    m_nClientFlagMode         :Integer;
    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;
  private
    function  ClientDropGold(nGold:Integer):Boolean;
    procedure ClientQueryBagItems();
    procedure ClientQueryUserState(PlayObject:TPlayObject;nX,nY:Integer);
    procedure ClientQueryUserSet(ProcessMsg: pTProcessMessage);
    function  ClientDropItem(sItemName:String;nItemIdx: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;

⌨️ 快捷键说明

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