📄 objbase.pas
字号:
m_nPoisonRecover : ShortInt; //0x24B
m_nAntiMagic : ShortInt; //0x24C
m_nHitSpeed : ShortInt; //0x26E //1-18 更改数据类型
m_nProcessRunCount : ShortInt;
m_dBodyLuck : Double; //0x100
m_db3B0 : Double; //0x3B0
m_rExpItem : real;
m_rPowerItem : real;
m_rAcItem : real;
m_rMacItem : real;
m_QuestUnitOpen : TQuestUnit; //0x10F
m_QuestUnit : TQuestUnit; //0x11C
m_QuestFlag : TQuestFlag; //0x128 129
m_WAbil : TAbility; //0x198
m_AddAbil : TAddAbility; //0x1C0
m_wStatusTimeArr : TStatusTime; //0x60
m_dwStatusArrTick : array[0..MAX_STATUS_ATTRIBUTE - 1] of LongWord; //0x1E8
m_wStatusArrValue : array[0..5] of Word; //0x218
m_dwStatusArrTimeOutTick: array[0..5] of LongWord;
//各种倍率 2005-09-16
m_wPowerRate : array[0..6] of Word; //0x218
m_wPowerRateTick : array[0..6] of LongWord;
// :Tarry220; //0x220
m_GroupMembers : TStringList; //0x278 组成员
m_BlockWhisperList : TStringList; //0x280 禁止私聊人员列表
m_Master : TBaseObject; //0x288 是否被召唤(主人)
m_MyGuild : TObject; //0x320
m_Castle : TObject; //0x2AC //所属城堡
m_PEnvir : TEnvirnoment; //0x2F8
m_DealCreat : TBaseObject; //0x31C
m_TargetCret : TBaseObject; //0x378
m_GroupOwner : TBaseObject; //0x274
m_LastHiter : TBaseObject; //0x380 人物被对方杀害时对方指针(Dword)
m_ExpHitter : TBaseObject; //0x388
m_SlaveList : TMyList; //0x29C 下属列表
m_MsgList : TMyList; //0x3D4
m_VisibleHumanList : TMyList; //0x3D8
m_VisibleItems : TMyList; //0x3DC
m_VisibleEvents : TMyList; //0x3E0
m_VisibleActors : TMyList; //0x408
m_ItemList : TMyList; //0x40C 人物背包(Dword)数量
m_DealItemList : TMyList; //0x410
m_MagicList : TMyList; //0x41C 技能表
m_SayMsgList : TMyList;
m_StorageItemList : TMyList; //0x4F8
m_MagicOneSwordSkill : pTUserMagic; //0x518
m_MagicPowerHitSkill : pTUserMagic; //0x51C
m_MagicErgumSkill : pTUserMagic; //0x520 刺杀剑法
m_MagicBanwolSkill : pTUserMagic; //0x524 半月弯刀
m_MagicFireSwordSkill: pTUserMagic; //0x528
m_MagicCrsSkill : pTUserMagic; //0x528
m_Magic41Skill : pTUserMagic; //0x528
m_Magic42Skill : pTUserMagic; //0x528
m_Magic43Skill : pTUserMagic; //0x528
m_BonusAbil : TNakedAbility; //0x0CA TNakedAbility
m_CurBonusAbil : TNakedAbility; //0x0DE
m_UseItems : THumanUseItems; //0x420 + D8 -> 4F8
m_sHomeMap : string[16]; //0x78 //回城地图
m_sMapFileName : string[16];
m_sMapName : string[16]; //0x04
m_sCharName : string[14]; //0x15
m_sStatuName : String;
m_sGuildRankName : string; //0x328
m_sScriptLable : string; //0x32C
m_boHasCharm : Boolean;
private
function GetLevelExp(nLevel: Integer): LongWord;
function InSafeArea: Boolean;
function Walk(nIdent: Integer): Boolean;
function AddToMap(): Boolean;
procedure UseLamp();
procedure CheckPKStatus();
procedure UpdateVisibleItem(wX, wY: Integer; MapItem: PTMapItem);
procedure UpdateVisibleEvent(wX, wY: Integer; MapEvent: TObject);
procedure GetAccessory(item: TUserItem; var AddAbility: TAddAbility);
function RecalcBagWeight(): Integer;
procedure RecalcHitSpeed();
procedure AddItemSkill(nIndex: Integer);
procedure DelItemSkill(nIndex: Integer);
procedure DecPKPoint(nPoint: Integer);
function GetCharColor(BaseObject: TBaseObject): Byte;
function GetNamecolor: Byte;
procedure SendUpdateDelayMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
lParam1, lParam2, lParam3: Integer; sMsg: string; dwDelay: LongWord);
procedure LeaveGroup();
procedure DelMember(BaseObject: TBaseObject);
procedure HearMsg(sMsg: string);
procedure AttackDir(TargeTBaseObject: TBaseObject; wHitMode: Word; nDir:
Integer); virtual;
procedure DamageSpell(nSpellPoint: Integer);
procedure DoDamageWeapon(nWeaponDamage: Integer);
function GetFeatureEx: Word;
public
constructor Create(); virtual;
destructor Destroy; override;
procedure SendGroupText(sMsg: string);
procedure SendMsg(BaseObject: TBaseObject; wIdent, wParam: Word; nParam1,
nParam2, nParam3: Integer; sMsg: string);
procedure SendFirstMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
lParam1, lParam2, lParam3: Integer; sMsg: string);
procedure SendDelayMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
lParam1, lParam2, lParam3: Integer; sMsg: string; dwDelay: LongWord);
procedure SendRefMsg(wIdent, wParam: Word; nParam1, nParam2, nParam3:
Integer; sMsg: string);
procedure SendUpdateMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
lParam1, lParam2, lParam3: Integer; sMsg: string);
procedure SendActionMsg(BaseObject: TBaseObject; wIdent, wParam: Word;
lParam1, lParam2, lParam3: Integer; sMsg: string);
procedure SendAttackMsg(wIdent: Word; btDir: Byte; nX, nY: Integer);
procedure SysMsg(sMsg: string; MsgColor: TMsgColor; MsgType: TMsgType);
procedure MonsterSayMsg(AttackBaseObject: TBaseObject; MonStatus:
TMonStatus);
procedure UpdateVisibleGay(BaseObject: TBaseObject); virtual;
function IsVisibleHuman(): Boolean;
procedure RecalcLevelAbilitys;
function PKLevel(): Integer;
function InSafeZone(): Boolean; overload;
function InSafeZone(Envir: TEnvirnoment; nX, nY: Integer): Boolean;
overload;
procedure OpenHolySeizeMode(dwInterval: LongWord);
procedure BreakHolySeizeMode;
procedure OpenCrazyMode(nTime: Integer);
procedure BreakCrazyMode();
procedure HealthSpellChanged();
function _Attack(var wHitMode: Word; AttackTarget: TBaseObject): Boolean;
function GetHitStruckDamage(Target: TBaseObject; nDamage: Integer): Integer;
procedure HasLevelUp(nLevel: Integer);
procedure GoldChanged();
procedure GameGoldChanged;
function GetGuildRelation(cert1: TBaseObject; cert2: TBaseObject): Integer;
function IsGoodKilling(Cert: TBaseObject): Boolean;
procedure IncPkPoint(nPoint: Integer);
procedure AddBodyLuck(dLuck: Double);
procedure MakeWeaponUnlock();
procedure ScatterGolds(GoldOfCreat: TBaseObject);
function DropGoldDown(nGold: Integer; boFalg: Boolean; GoldOfCreat,
DropGoldCreat: TBaseObject): Boolean;
function DropItemDown(UserItem: pTUserItem; nScatterRange: Integer;
boDieDrop: Boolean; ItemOfCreat, DropCreat: TBaseObject): Boolean;
procedure DamageHealth(nDamage: Integer);
function GetDamageWithItem(nDamage: Integer;btwhere:Byte):Integer;
function GetAttackPower(nBasePower, nPower: Integer): Integer; virtual;
function CharPushed(nDir, nPushCount: Integer): Integer;
function GetDropPosition(nOrgX, nOrgY, nRange: Integer; var nDX: Integer; var
nDY: Integer): Boolean;
function GetBackDir(nDir: Integer): Integer;
function GetMapBaseObjects(tEnvir: TEnvirnoment; nX, nY: Integer; nRage:
Integer; rList: TmyList): Boolean;
function MagPassThroughMagic(sX, sY, tx, ty, nDir, magpwr: Integer;
undeadattack: Boolean): Integer;
procedure KickException;
function GetMagStruckDamage(BaseObject: TBaseObject; nDamage: Integer):
Integer;
procedure DamageBubbleDefence(nInt: Integer);
procedure BreakOpenHealth;
function GetCharStatus: Integer;
procedure MakeOpenHealth;
procedure IncHealthSpell(nHP, nMP: Integer);
procedure ItemDamageRevivalRing;
function CalcGetExp(nLevel: Integer; nExp: Integer): Integer;
procedure GainSlaveExp(nLevel: Integer);
procedure MapRandomMove(sMapName: string; nInt: Integer);
procedure TurnTo(nDir: Integer);
procedure FeatureChanged();
function GetFeatureToLong(): Integer;
function GetPoseCreate(): TBaseObject;
function GetFeature(BaseObject: TBaseObject): Integer;
function IsGroupMember(Target: TBaseObject): Boolean;
procedure AbilCopyToWAbil();
procedure ChangePKStatus(boWarFlag: Boolean);
procedure StruckDamage(nDamage: Integer);
function sub_4C4CD4(sItemName: string; var nCount: Integer): pTUserItem;
procedure StatusChanged;
function GeTBaseObjectInfo(): string;
procedure TrainSkill(UserMagic: pTUserMagic; nTranPoint: Integer);
function CheckMagicLevelup(UserMagic: pTUserMagic): Boolean;
function MagCanHitTarget(nX, nY: Integer; TargeTBaseObject: TBaseObject):
Boolean;
procedure sub_4C713C(Magic: pTUserMagic);
function MagBubbleDefenceUp(nLevel, nSec: Integer): Boolean;
function MagMakeScPowerUp(nSec: Integer): Boolean;
procedure ApplyMeatQuality();
function ButchMonBagItems(BaseObject: TBaseObject): Boolean;
function AddItemToBag(UserItem: pTUserItem): Boolean;
function DelBagItem(nIndex: Integer): Boolean; overload;
function DelBagItem(nItemIndex: Integer; sItemName: string): Boolean;
overload;
procedure WeightChanged();
function IsTrainingSkill(nIndex: Integer): Boolean;
procedure SetQuestFlagStatus(nFlag: Integer; nValue: Integer);
function GetQuestFalgStatus(nFlag: Integer): Integer;
procedure SetQuestUnitOpenStatus(nFlag: Integer; nValue: Integer);
function GetQuestUnitOpenStatus(nFlag: Integer): Integer;
procedure SetQuestUnitStatus(nFlag: Integer; nValue: Integer);
function GetQuestUnitStatus(nFlag: Integer): Integer;
function GetAttackDir(BaseObject: TBaseObject; var btDir: Byte): Boolean;
function TargetInSpitRange(BaseObject: TBaseObject; var btDir: Byte):
Boolean;
procedure MonsterRecalcAbilitys();
procedure RefNameColor;
procedure SetPKFlag(BaseObject: TBaseObject);
procedure SetLastHiter(BaseObject: TBaseObject);
function EnterAnotherMap(Envir: TEnvirnoment; nDMapX, nDMapY: Integer):
Boolean;
function sub_4DD704(): Boolean;
function DefenceUp(nSec: Integer): Boolean;
function MagDefenceUp(nSec: Integer): Boolean;
procedure RefShowName;
function MakeSlave(sMonName: string; nMakeLevel, nExpLevel, nMaxMob:
Integer; dwRoyaltySec: LongWord;followMaster:Boolean=True; NameColor: Integer = 255; BodyColorIndex:
Integer = -1): TBaseObject;
function MakePosion(nType, nTime, nPoint: Integer): Boolean;
function GetFrontPosition(var nX: Integer; var nY: Integer): Boolean;
function GetBackPosition(var nX: Integer; var nY: Integer): Boolean;
function WalkTo(btDir: Byte; boFlag: Boolean): Boolean;
procedure SpaceMove(sMAP: string; nX, nY: Integer; nInt: Integer);
function GetRecallXY(nX, nY: Integer; nRange: Integer; var nDX, nDY:
Integer): Boolean;
function CheckItems(sItemName: string): pTUserItem;
function MagMakeDefenceArea(nX, nY, nRange, nSec: Integer; btState: Byte):
Integer;
function CanWalkRage(): Integer;
function IsGuildMaster(): Boolean;
procedure LoadSayMsg();
procedure DisappearA();
function GetShowName(): string; virtual;
procedure DropUseItems(BaseObject: TBaseObject); virtual;
procedure ScatterBagItems(ItemOfCreat: TBaseObject); virtual;
function GetMessage( Msg: pTProcessMessage): Boolean; virtual; //FFFF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -