📄 objbase.pas
字号:
unit ObjBase;
// If you get an error on the next line, you need to reextract SourceFiles.rar
{$I defines.inc}
interface
uses
svn, nixtime, Windows, Classes, SysUtils, DateUtils, Forms, StrUtils, Math, SDK, Grobal2, Envir,
ItmUnit, MD5Unit, ADODB;
type
TClientAction = (cHit,cMagHit,cRun,cWalk,cDigUp,cTurn);
const
gMan = 0;
gWoMan = 1;
type
TBaseObject = class;
pTStartPoint=^TStartPoint;
TStartPoint=record
sMapName:String[MapNameLen];
nX:Integer;
nY:Integer;
btJob:Byte;
Envir:TEnvirnoment;
dwWhisperTick:LongWord;
end;
pTSendMessage=^TSendMessage;
TSendMessage=record
wIdent:word;
wParam:word;
nParam1:integer;
nParam2:integer;
nParam3:integer;
dwDeliveryTime:dword;
BaseObject:TBaseObject;
boLateDelivery:Boolean;
Buff:pointer;
end;
pTVisibleBaseObject=^TVisibleBaseObject;
TVisibleBaseObject=record
BaseObject:TBaseObject;
nVisibleFlag:Integer;
end;
pTVisibleMapItem=^TVisibleMapItem;
TVisibleMapItem=record
nX,nY:integer;
MapItem:pTMapItem;
sName:String;
wLooks:word;
nVisibleFlag:integer;
end;
TBaseObject = class
m_sMapName :String[MapNameLen]; //0x04
m_sCharName :String[ActorNameLen]; //0x15
m_nCurrX :Integer; //0x24
m_nCurrY :Integer; //0x28
m_btDirection :Byte; //0x2C
m_btGender :Byte; //0x2D
m_btHair :Byte; //0x2E
m_btJob :Byte; //0x2F
m_nGold :Integer; //0x30
m_Abil :TAbility; //TAbility; //0x34 -> 0x5B
m_nCharStatus :Integer; //0x5C
m_sHomeMap :String[MapNameLen]; //0x78
m_nHomeX :Integer; //0x8C
m_nHomeY :Integer; //0x90
bo94 :Boolean; //0x94
m_boOnHorse :Boolean; //0x95
m_btHorseType :Byte;
m_btDressEffType :Byte;
m_btHelmetEffType :Byte;
n98 :Integer; //0x98
n9C :Integer; //0x9C
nA0 :Integer; //0xA0
nA4 :Integer; //0xA4
nA8 :Integer; //0xA8
m_nPkPoint :Integer; //0xAC
m_boAllowGroup :Boolean; //0xB0
m_boAllowGuild :Boolean; //0xB1
btB2 :Byte; //0xB2
btB3 :Byte; //0xB3
m_nIncHealth :Integer; //0x0B4
m_nIncSpell :Integer; //0x0B8
m_nIncHealing :Integer; //0x0BC
m_nFightZoneDieCount :Integer; //0x0C0
nC4 :Integer;
btC8 :Byte; //0xC8
btC9 :Byte; //0xC9
m_BonusAbil :TNakedAbility; //0x0CA TNakedAbility
m_CurBonusAbil :TNakedAbility; //0x0DE
m_nBonusPoint :Integer; //0x0F4
m_nHungerStatus :Integer; //0x0F8
m_boAllowGuildReCall :Boolean; //0xFC
// btFC :Byte;
m_btFD :Byte;
m_btFE :Byte;
m_btFF :Byte;
m_dBodyLuck :Double; //0x100
m_nBodyLuckLevel :Integer; //0x108
m_wGroupRcallTime :Word; //0x10C
m_boAllowGroupReCall :Boolean; //0x10E
m_QuestUnitOpen :TQuestUnit; //0x10F
m_QuestUnit :TQuestUnit; //0x11C
m_QuestFlag :TQuestFlag; //0x128 129
m_nCharStatusEx :Integer;
m_dwFightExp :LongWord; //0x194
m_WAbil :TAbility; //0x198
m_AddAbil :TAddAbility; //0x1C0
m_nViewRange :Integer; //0x1E4
m_wStatusTimeArr :TStatusTime; //0x60
m_dwStatusArrTick :array [0..MAX_STATUS_ATTRIBUTE -1] of LongWord; //0x1E8
m_wStatusArrValue :array [0..6] of Word; //0x218
m_dwStatusArrTimeOutTick :array [0..6] of LongWord; // :Tarry220; //0x220
m_wAppr :Word; //0x238
m_btRaceServer :Byte; //0x23A
m_btRaceImg :Byte; //0x23B
m_btHitPoint :Byte; //0x23C
m_nHitPlus :ShortInt; //0x23D
m_nHitDouble :ShortInt; //0x23E
m_dwGroupRcallTick :LongWord; //0x240
m_boRecallSuite :Boolean; //0x244
bo245 :Boolean; //0x245
m_boTestGa :Boolean; //0x246
m_boGsa :Boolean; //0x247
m_nHealthRecover :ShortInt; //0x248
m_nSpellRecover :ShortInt; //0x249
m_btAntiPoison :Byte; //0x24A
m_nPoisonRecover :ShortInt; //0x24B
m_nAntiMagic :ShortInt; //0x24C
m_nLuck :Integer; //0x250
m_nPoisonIncrease :Integer;
m_nFreezingIncrease :Integer;
m_nPerHealth :Integer; //0x254
m_nPerHealing :Integer; //0x258
m_nPerSpell :Integer; //0x25C
m_dwIncHealthSpellTick :LongWord; //0x260
m_btGreenPoisoningPoint :Byte; //0x264
m_nGoldMax :Integer; //0x268
m_btSpeedPoint :Byte; //0x26C
m_btPermission :Byte; //0x26D
m_nHitSpeed :ShortInt; //0x26E //1-18
m_btLifeAttrib :Byte; //0x26F
m_btCoolEye :Byte; //0x270
m_GroupOwner :TBaseObject; //0x274
m_GroupMembers :TStringList; //0x278
m_boHearWhisper :Boolean; //0x27C
m_boBanShout :Boolean; //0x27D
m_boBanGuildChat :Boolean; //0x27E
m_boAllowDeal :Boolean; //0x27F
m_BlockWhisperList :TStringList; //0x280
m_dwShoutMsgTick :LongWord; //0x284
m_Master :TBaseObject; //0x288
m_dwMasterRoyaltyTick :LongWord; //0x28C
m_dwMasterTick :LongWord; //0x290
n294 :Integer; //0x294
m_btSlaveExpLevel :Byte; //0x298 1-7
m_btSlaveMakeLevel :Byte; //0x299
m_SlaveList :TList; //0x29C
bt2A0 :Byte; //0x2A0
m_boSlaveRelax :Boolean; //0x2A0
m_btAttatckMode :Byte; //0x2A1 攻击模式
m_btNameColor :Byte; //0x2A2
m_nLight :Integer; //0x2A4
m_boGuildWarArea :Boolean; //0x2A8
m_Castle :TObject; //0x2AC
bo2B0 :Boolean; //0x2B0
m_dw2B4Tick :LongWord; //0x2B4
m_boSuperMan :Boolean; //0x2B8
bo2B9 :Boolean; //0x2B9
bo2BA :Boolean; //0x2BA
m_boAnimal :Boolean; //0x2BB
m_boNoItem :Boolean; //0x2BC
m_boFixedHideMode :Boolean; //0x2BD
m_boStickMode :Boolean; //0x2BE
bo2BF :Boolean; //0x2BF
m_boNoAttackMode :Boolean; //0x2C0
m_boNoTame :Boolean; //0x2C1
m_boSkeleton :Boolean; //0x2C2
m_nMeatQuality :Integer; //0x2C4
m_nBodyLeathery :Integer; //0x2C8
m_boHolySeize :Boolean; //0x2CC
m_dwHolySeizeTick :LongWord; //0x2D0
m_dwHolySeizeInterval :LongWord; //0x2D4
m_boCrazyMode :Boolean; //0x2D8
m_dwCrazyModeTick :LongWord; //0x2DC
m_dwCrazyModeInterval :LongWord; //0x2E0
m_boHallucMode :Boolean; //Hallucination
m_dwHallucModeTick :LongWord;
m_dwHallucModeInterval :LongWord;
m_boShowHP :Boolean; //0x2E4
// nC2E6 :Integer; //0x2E6
m_dwShowHPTick :LongWord; //0x2E8
m_dwShowHPInterval :LongWord; //0x2EC
bo2F0 :Boolean; //0x2F0
m_dwDupObjTick :LongWord; //0x2F4
m_PEnvir :TEnvirnoment; //0x2F8
m_boGhost :Boolean; //0x2FC
m_dwGhostTick :LongWord; //0x300
m_boDeath :Boolean; //0x304
m_dwDeathTick :LongWord; //0x308
m_btMonsterWeapon :Byte; //0x30C
m_dwStruckTick :LongWord; //0x310
m_boWantRefMsg :Boolean; //0x314
m_boAddtoMapSuccess :Boolean; //0x315
m_bo316 :Boolean; //0x316
m_boDealing :Boolean; //0x317
m_DealLastTick :LongWord; //0x318
m_DealCreat :TBaseObject; //0x31C
m_boRefineing :Boolean;
m_RefineLastTick :LongWord;
m_RefineCreat :TBaseObject; //0x31C
m_boDealGT :Boolean;
m_MyGuild :TOBject; //0x320
m_nGuildRankNo :Integer; //0x324
m_sGuildRankName :String; //0x328
m_sScriptLable :String; //0x32C
m_btAttackSkillCount :Byte; //0x330
bt331 :Byte;
bt332 :Byte;
bt333 :Byte;
m_btAttackSkillPointCount :Byte; //0x334
bo335 :Boolean; //0x335
bo336 :Boolean; //0x336
bo337 :Boolean; //0x337
m_boMission :Boolean; //0x338
m_nMissionX :Integer; //0x33C
m_nMissionY :Integer; //0x340
m_boHideMode :Boolean; //0x344
m_boTDBeffect :Boolean;
m_boStoneMode :Boolean; //0x345
m_boCoolEye :Boolean; //0x346
m_boUserUnLockDurg :Boolean; //0x347
m_boTransparent :Boolean; //0x348
m_boAdminMode :Boolean; //0x349
m_boObMode :Boolean; //0x34A
m_boTeleport :Boolean; //0x34B
m_boParalysis :Boolean; //0x34C
m_boUnParalysis :Boolean;
m_boRevival :Boolean; //0x34D
m_boUnRevival :Boolean;
bo34E :boolean;
bo34F :Boolean;
m_dwRevivalTick :LongWord; //0x350
m_boFlameRing :Boolean; //0x354
m_boRecoveryRing :Boolean; //0x355
m_boAngryRing :Boolean; //0x356
m_boMagicShield :Boolean; //0x357
m_boUnMagicShield :Boolean;
m_boMuscleRing :Boolean; //0x358
m_boFastTrain :Boolean; //0x359
m_boProbeNecklace :Boolean; //0x35A
m_boGuildMove :Boolean;
m_boSupermanItem :Boolean;
m_bopirit :Boolean;
m_boNoDropItem :Boolean;
m_boNoDropUseItem :Boolean;
m_boExpItem :Boolean;
m_boPowerItem :Boolean;
m_rExpItem :Real;
m_rPowerItem :Real;
m_dwPKDieLostExp :LongWord; //PK
m_nPKDieLostLevel :Integer; //PK
m_boAbilSeeHealGauge :Boolean; //0x35B
m_boAbilMagBubbleDefence :Boolean; //0x35C
m_boAbilCelestialDefence :Boolean; //0x35C
m_btMagBubbleDefenceLevel :Byte; //0x35D
m_dwSearchTime :LongWord; //0x360
m_dwSearchTick :LongWord; //0x364
m_dwRunTick :LongWord; //0x368
m_nRunTime :Integer; //0x36C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -