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