📄 objbase.pas
字号:
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 + -