📄 objbase.pas
字号:
m_wGroupRcallTime := 0;
m_dwGroupRcallTick := GetTickCount();
m_boRecallSuite := False;
bo245 := False;
m_boTestGa := False;
m_boGsa := False;
bo2BA := False;
m_boAbilSeeHealGauge := False;
m_boPowerHit := False;
m_boUseThrusting := False;
m_boUseHalfMoon := False;
m_boFireHitSkill := False;
m_btHitPoint := 5;
m_btSpeedPoint := 15;
m_nHitSpeed := 0;
m_btLifeAttrib := 0;
m_btAntiPoison := 0;
m_nPoisonRecover := 0;
m_nHealthRecover := 0;
m_nSpellRecover := 0;
m_nAntiMagic := 0;
m_nLuck := 0;
m_nIncSpell := 0;
m_nIncHealth := 0;
m_nIncHealing := 0;
m_nPerHealth := 5;
m_nPerHealing := 5;
m_nPerSpell := 5;
m_dwIncHealthSpellTick := GetTickCount();
m_btGreenPoisoningPoint := 0;
m_nFightZoneDieCount := 0;
// m_nGoldMax := 5000000;
m_nGoldMax := g_Config.nHumanMaxGold;
m_nCharStatus := 0;
m_nCharStatusEx := 0;
FillChar(m_wStatusTimeArr, SizeOf(TStatusTime), #0); //004B7A83
FillChar(m_BonusAbil, SizeOf(TNakedAbility), #0);
FillChar(m_CurBonusAbil, SizeOf(TNakedAbility), #0);
FillChar(m_wStatusArrValue, SizeOf(m_wStatusArrValue), 0);
FillChar(m_dwStatusArrTimeOutTick, SizeOf(m_dwStatusArrTimeOutTick), #0);
m_boAllowGroup := False;
m_boAllowGuild := False;
btB2 := 0;
m_btAttatckMode := 0;
m_boInFreePKArea := False;
m_boGuildWarArea := False;
bo2B0 := False;
m_boSuperMan := False;
m_boSkeleton := False;
bo2BF := False;
m_boHolySeize := False;
m_boCrazyMode := False;
m_boShowHP := False;
bo2F0 := False;
m_boAnimal := False;
m_boNoItem := False;
m_nBodyLeathery := 50;
m_boFixedHideMode := False;
m_boStickMode := False;
m_boNoAttackMode := False;
bo2C1 := False;
m_boPKFlag := False;
m_nMoXieSuite := 0;
m_nHongMoSuite := 0;
m_db3B0 := 0;
FillChar(m_AddAbil, SizeOf(TAddAbility), #0);
m_MsgList := TList.Create;
m_VisibleHumanList := TList.Create;
LIst_3EC := TList.Create;
m_VisibleActors := TList.Create;
m_VisibleItems := TList.Create;
m_VisibleEvents := TList.Create;
m_ItemList := TList.Create;
m_DealItemList := TList.Create;
m_boIsVisibleActive := False;
m_nProcessRunCount := 0;
m_nDealGolds := 0;
m_MagicList := TList.Create;
m_StorageItemList := TList.Create;
FillChar(m_UseItems, SizeOf(THumanUseItems), 0);
m_MagicOneSwordSkill := nil;
m_MagicPowerHitSkill := nil;
m_MagicErgumSkill := nil;
m_MagicBanwolSkill := nil;
m_MagicFireSwordSkill := nil;
m_MagicCrsSkill := nil;
m_Magic41Skill := nil;
m_Magic42Skill := nil;
m_Magic43Skill := nil;
m_GroupOwner := nil;
m_Castle := nil;
m_Master := nil;
n294 := 0;
m_btSlaveExpLevel := 0;
bt2A0 := 0;
m_GroupMembers := TStringList.Create;
m_boHearWhisper := True;
m_boBanShout := True;
m_boBanGuildChat := True;
m_boAllowDeal := True;
m_boAllowGroupReCall := False;
m_BlockWhisperList := TStringList.Create;
m_SlaveList := TList.Create;
FillChar(m_WAbil, SizeOf(TAbility), #0);
FillChar(m_QuestUnitOpen, SizeOf(TQuestUnit), #0);
FillChar(m_QuestUnit, SizeOf(TQuestUnit), #0);
m_Abil.Level := 1;
m_Abil.AC := 0;
m_Abil.MAC := 0;
m_Abil.DC := MakeLong(1, 4);
m_Abil.MC := MakeLong(1, 2);
m_Abil.SC := MakeLong(1, 2);
m_Abil.HP := 15;
m_Abil.MP := 15;
m_Abil.MaxHP := 15;
m_Abil.MaxMP := 15;
m_Abil.Exp := 0;
m_Abil.MaxExp := 50;
m_Abil.Weight := 0;
m_Abil.MaxWeight := 100;
m_boWantRefMsg := False;
m_boDealing := False;
m_DealCreat := nil;
m_MyGuild := nil;
m_nGuildRankNo := 0;
m_sGuildRankName := '';
m_sScriptLable := '';
m_boMission := False;
m_boHideMode := False;
m_boStoneMode := False;
m_boCoolEye := False;
m_boUserUnLockDurg := False;
m_boTransparent := False;
m_boAdminMode := False;
m_boObMode := False;
m_dwRunTick := GetTickCount + LongWord(Random(1500));
m_nRunTime := 250;
m_dwSearchTime := Random(2000) + 2000;
m_dwSearchTick := GetTickCount;
m_dwDecPkPointTick := GetTickCount;
m_DecLightItemDrugTick := GetTickCount();
m_dwPoisoningTick := GetTickCount;
m_dwVerifyTick := GetTickCount();
m_dwCheckRoyaltyTick := GetTickCount();
m_dwDecHungerPointTick := GetTickCount();
m_dwHPMPTick := GetTickCount();
m_dwShoutMsgTick := 0;
m_dwTeleportTick := 0;
m_dwProbeTick := 0;
m_dwMapMoveTick := GetTickCount();
m_dwMasterTick := 0;
m_nWalkSpeed := 1400;
m_nNextHitTime := 2000;
m_nWalkCount := 0;
m_dwWalkWaitTick := GetTickCount();
m_boWalkWaitLocked := False;
m_nHealthTick := 0;
m_nSpellTick := 0;
m_TargetCret := nil;
m_LastHiter := nil;
m_ExpHitter := nil;
m_SayMsgList := nil;
m_boDenyRefStatus := False;
m_btHorseType := 0;
m_btDressEffType := 0;
m_dwPKDieLostExp := 0;
m_nPKDieLostLevel := 0;
m_boAddToMaped := True;
m_boAutoChangeColor := False;
m_dwAutoChangeColorTick := GetTickCount();
m_nAutoChangeIdx := 0;
m_boFixColor := False;
m_nFixColorIdx := 0;
m_nFixStatus := -1;
m_boFastParalysis := False;
m_boAC := True;
m_boMAC := True;
m_boDC := True;
m_boMC := True;
m_boSC := True;
m_boHitSpeed := True;
m_boMaxHP := True;
m_boMaxMP := True;
m_nCopyHumanLevel := 0; //复制人状态
m_boRobotObject := False;
m_dwSayMyInfoTick := GetTickCount;
m_dwStationTick := GetTickCount; //站的时间
end;
destructor TBaseObject.Destroy;
var
i: Integer;
SendMessage: pTSendMessage;
nCheckCode: Integer;
resourcestring
sExceptionMsg = '[Exception] TBaseObject::Destroy Code: %d';
begin
nCheckCode := 0;
try
nCheckCode := 1;
if m_MsgList <> nil then begin
if m_MsgList.Count > 0 then begin
for i := 0 to m_MsgList.Count - 1 do begin
nCheckCode := 2;
SendMessage := m_MsgList.Items[i];
if (SendMessage.wIdent = RM_SENDDELITEMLIST) and (SendMessage.nParam1 <> 0) then begin
nCheckCode := 3;
if TStringList(SendMessage.nParam1) <> nil then begin
TStringList(SendMessage.nParam1).Free;
nCheckCode := 4;
end;
end;
if (SendMessage.wIdent = RM_10401) and (SendMessage.nParam1 <> 0) then begin
nCheckCode := 5;
DisPose(pTSlaveInfo(SendMessage.nParam1));
end;
nCheckCode := 6;
if (SendMessage.Buff <> nil) then begin
nCheckCode := 7;
FreeMem(SendMessage.Buff);
end;
DisPose(SendMessage);
nCheckCode := 8;
end;
end;
nCheckCode := 9;
FreeAndNil(m_MsgList);
end;
nCheckCode := 10;
if m_VisibleHumanList <> nil then
FreeAndNil(m_VisibleHumanList);
nCheckCode := 11;
for i := 0 to LIst_3EC.Count - 1 do begin
end;
FreeAndNil(LIst_3EC);
nCheckCode := 12;
if m_VisibleActors <> nil then begin
if m_VisibleActors.Count > 0 then begin
for i := 0 to m_VisibleActors.Count - 1 do begin
if pTVisibleBaseObject(m_VisibleActors.Items[i]) <> nil then
DisPose(pTVisibleBaseObject(m_VisibleActors.Items[i]));
end;
end;
nCheckCode := 13;
FreeAndNil(m_VisibleActors);
end;
nCheckCode := 14;
if m_VisibleItems <> nil then begin
if m_VisibleItems.Count > 0 then begin
for i := 0 to m_VisibleItems.Count - 1 do begin
if pTVisibleMapItem(m_VisibleItems.Items[i]) <> nil then
DisPose(pTVisibleMapItem(m_VisibleItems.Items[i]));
end;
end;
nCheckCode := 15;
FreeAndNil(m_VisibleItems);
end;
nCheckCode := 16;
if m_VisibleEvents <> nil then
FreeAndNil(m_VisibleEvents);
nCheckCode := 17;
if m_ItemList <> nil then begin
if m_ItemList.Count > 0 then begin
for i := 0 to m_ItemList.Count - 1 do begin
if pTUserItem(m_ItemList.Items[i]) <> nil then
DisPose(pTUserItem(m_ItemList.Items[i]));
end;
end;
nCheckCode := 18;
FreeAndNil(m_ItemList);
end;
nCheckCode := 19;
if m_DealItemList <> nil then begin
if m_DealItemList.Count > 0 then begin
for i := 0 to m_DealItemList.Count - 1 do begin
if pTUserItem(m_DealItemList.Items[i]) <> nil then
DisPose(pTUserItem(m_DealItemList.Items[i]));
end;
end;
FreeAndNil(m_DealItemList);
nCheckCode := 20;
end;
if m_MagicList <> nil then begin
if m_MagicList.Count > 0 then begin
for i := 0 to m_MagicList.Count - 1 do begin
if pTUserMagic(m_MagicList.Items[i]) <> nil then
DisPose(pTUserMagic(m_MagicList.Items[i]));
end;
end;
FreeAndNil(m_MagicList);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -