⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uusersub.pas

📁 千年源代码,只缺少控件,可以做二次开发用,好不容易得来的
💻 PAS
📖 第 1 页 / 共 5 页
字号:
   Result := AttribData.cAge;
end;

function  TAttribClass.GetCurHeadLife: integer;
begin
   Result := CurAttribData.CurHeadSeak;
end;

function  TAttribClass.GetCurArmLife: integer;
begin
   Result := CurAttribData.CurArmSeak;
end;

function  TAttribClass.GetCurLegLife: integer;
begin
   Result := CurAttribData.CurLegSeak;
end;

function  TAttribClass.GetCurLife : integer;
begin
   Result := CurAttribData.CurLife;
end;

function  TAttribClass.GetCurMagic : integer;
begin
   Result := CurAttribData.CurMagic;
end;

function  TAttribClass.GetCurOutPower : integer;
begin
   Result := CurAttribData.CurOutPower;
end;

function  TAttribClass.GetCurInPower : integer;
begin
   Result := CurAttribData.CurInPower;
end;

function  TAttribClass.GetMaxLife: integer;
begin
   Result := AttribData.cLife;
end;

procedure TAttribClass.SetCurHeadLife (value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurHeadSeak = Value then exit;
   CurAttribData.CurHeadSeak := Value;
   if CurAttribData.CurHeadSeak > AttribData.cHeadSeak then CurAttribData.CurHeadSeak := AttribData.cHeadSeak;
   boSendValues := TRUE;
end;

procedure TAttribClass.SetCurArmLife (value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurArmSeak = Value then exit;
   CurAttribData.CurArmSeak := Value;
   if CurAttribData.CurArmSeak > AttribData.cArmSeak then CurAttribData.CurArmSeak := AttribData.cArmSeak;
   boSendValues := TRUE;
end;

procedure TAttribClass.SetCurLegLife (value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurLegSeak = Value then exit;
   CurAttribData.CurLegSeak := Value;
   if CurAttribData.CurLegSeak > AttribData.cLegSeak then CurAttribData.CurLegSeak := AttribData.cLegSeak;
   boSendValues := TRUE;
end;

procedure TAttribClass.SetCurLife (Value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurLife = Value then exit;
   CurAttribData.CurLife := Value;
   if CurAttribData.CurLife > AttribData.cLife then CurAttribData.CurLife := AttribData.cLife;
   boSendBase := TRUE;
end;

procedure TAttribClass.SetCurMagic (Value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurMagic = Value then exit;
   CurAttribData.CurMagic := Value;
   if CurAttribData.CurMagic > AttribData.cMagic then CurAttribData.CurMagic := AttribData.cMagic;
   boSendBase := TRUE;
end;

procedure TAttribClass.SetCurInPower (Value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurInPower = Value then exit;
   CurAttribData.CurInPower := Value;
   if CurAttribData.CurInPower > AttribData.cInPower then CurAttribData.CurInPower := AttribData.cInPower;
   boSendBase := TRUE;
end;

procedure TAttribClass.SetCurOutPower (Value: integer);
begin
   if Value < 0 then Value := 0;
   if CurAttribData.CurOutPower = Value then exit;
   CurAttribData.CurOutPower := Value;
   if CurAttribData.CurOutPower > AttribData.cOutPower then CurAttribData.CurOutPower := AttribData.cOutPower;
   boSendBase := TRUE;
end;

procedure TAttribClass.AddAdaptive (aexp: integer);
var oldslevel : integer;
begin
   if boAddExp = false then exit;
   oldslevel := AttribData.cAdaptive;
   if AddPermitExp (AttribData.cAdaptive, AttribData.Adaptive, DEFAULTEXP) <> 0 then
      FSendClass.SendEventString ('郴己');
   if oldslevel <> AttribData.cAdaptive then boSendValues := TRUE;
end;

function  TAttribClass.CheckRevival: Boolean;
var
   oldslevel : integer;
begin
   Result := FALSE;

   if boAddExp = false then exit;

   if boRevivalFlag then begin
      if CurAttribData.CurLife <= 0 then begin
         oldslevel := AttribData.cRevival;
         if AddPermitExp (AttribData.cRevival, AttribData.Revival, DEFAULTEXP) <> 0 then
            FSendClass.SendEventString ('犁积');
         if oldslevel <> AttribData.cRevival then boSendValues := TRUE;

         boRevivalFlag := FALSE;
         boEnergyFlag := FALSE;
         boInPowerFlag := FALSE;
         boOutPowerFlag := FALSE;
         boMagicFlag := FALSE;

         Result := TRUE;
      end;
      exit;
   end;
   if (AttribData.cLife - AttribData.cLife div 10) < CurAttribData.CurLife then boRevivalFlag := TRUE;
end;

function  TAttribClass.CheckEnegy: Boolean;
var curslevel, oldslevel : integer;
begin
   Result := FALSE;

   if boAddExp = false then exit;

   if boEnergyFlag then begin
      if (AttribData.cEnergy - AttribData.cEnergy div 10) < CurAttribData.CurEnergy then begin
         curslevel := GetLevel (AttribData.Energy);
         oldslevel := curslevel;
         if AddPermitExp (curslevel, AttribData.Energy, DEFAULTEXP) <> 0 then
            FSendClass.SendEventString ('盔扁');
         if oldslevel <> curslevel then boSendBase := TRUE;
         boEnergyFlag := FALSE;
         Result := TRUE;
      end;
      exit;
   end;
   if (AttribData.cEnergy div 10) > CurAttribData.CurEnergy then boEnergyFlag := TRUE;
end;

function  TAttribClass.CheckInPower: Boolean;
var curslevel, oldslevel : integer;
begin
   Result := FALSE;

   if boAddExp = false then exit;

   if boInPowerFlag then begin
      if (AttribData.cInPower - AttribData.cInPower div 10) < CurAttribData.CurInPower then begin
         curslevel := GetLevel (AttribData.InPower);
         oldslevel := curslevel;
         if AddPermitExp (curslevel, AttribData.InPower, DEFAULTEXP) <> 0 then
            FSendClass.SendEventString ('郴傍');
         if oldslevel <> curslevel then boSendBase := TRUE;
         boInPowerFlag := FALSE;
         Result := TRUE;
      end;
      exit;
   end;
   if (AttribData.cInPower div 10) > CurAttribData.CurInPower then boInPowerFlag := TRUE;
end;

function  TAttribClass.CheckOutPower: Boolean;
var curslevel, oldslevel : integer;
begin
   Result := FALSE;

   if boAddExp = false then exit;

   if boOutPowerFlag then begin
      if (AttribData.cOutPower - AttribData.cOutPower div 10) < CurAttribData.CurOutPower then begin
         curslevel := GetLevel (AttribData.OutPower);
         oldslevel := curslevel;
         if AddPermitExp (curslevel, AttribData.OutPower, DEFAULTEXP) <> 0 then
            FSendClass.SendEventString ('寇傍');
         if oldslevel <> curslevel then boSendBase := TRUE;
         boOutPowerFlag := FALSE;
         Result := TRUE;
      end;
      exit;
   end;
   if (AttribData.cOutPower div 10) > CurAttribData.CurOutPower then boOutPowerFlag := TRUE;
end;

function  TAttribClass.CheckMagic: Boolean;
var curslevel, oldslevel : integer;
begin
   Result := FALSE;

   if boAddExp = false then exit;

   if boMagicFlag then begin
      if (AttribData.cMagic - AttribData.cMagic div 10) < CurAttribData.CurMagic then begin
         curslevel := GetLevel (AttribData.Magic);
         oldslevel := curslevel;
         if AddPermitExp (curslevel, AttribData.Magic, DEFAULTEXP) <> 0 then
            FSendClass.SendEventString ('公傍');
         if oldslevel <> curslevel then boSendBase := TRUE;
         boMagicFlag := FALSE;
         Result := TRUE;
      end;
      exit;
   end;
   if (AttribData.cMagic div 10) > CurAttribData.CurMagic then boMagicFlag := TRUE;
end;

procedure TAttribClass.LoadFromSdb (aCharData : PTDBRecord);
begin
   ReQuestPlaySoundNumber := 0;
   StartTick := mmAnsTick;
   FFeatureState := wfs_normal;

   boRevivalFlag := FALSE;
   boEnergyFlag := FALSE;
   boInPowerFlag := FALSE;
   boOutPowerFlag := FALSE;
   boMagicFlag := FALSE;

   FillChar (AttribData, sizeof(AttribData), 0);
   FillChar (CurAttribData, sizeof(CurAttribData), 0);
   FillChar (ItemDrugArr, sizeof(ItemDrugArr), 0);

   CheckIncreaseTick := StartTick;
   CheckDrugTick := StartTick;

   boMan := FALSE;

   boMan := false;
   if StrPas (@aCharData^.Sex) = '巢' then boMan := true;
   //
   AttribData.Light    := aCharData^.Light;
   AttribData.Dark     := aCharData^.Dark;
   AttribData.Age      := AttribData.Light + AttribData.Dark;
   AttribData.Energy   := aCharData^.Energy;
   AttribData.InPower  := aCharData^.InPower;
   AttribData.OutPower := aCharData^.OutPower;
   AttribData.Magic    := aCharData^.Magic;
   AttribData.Life     := aCharData^.Life;

   with AttribData do begin
      Talent := aCharData^.Talent;
      GoodChar := aCharData^.GoodChar;
      BadChar := aCharData^.BadChar;
{
      str := UserData.GetFieldValueString (aName, '父电朝磊');
      if str <> '' then begin
         try
            lucky := Round (Date - StrToDate (str)) mod 50 + 50;
         except
            lucky := 50;
         end;
      end else begin
         lucky := 50;
      end;
}
      lucky := 50;
      lucky := lucky * 100;
      adaptive := aCharData^.Adaptive;
      revival := aCharData^.Revival;
      immunity := aCharData^.Immunity;
      virtue := aCharData^.Virtue;
   end;

   CurAttribData.CurEnergy    := aCharData^.CurEnergy;
   CurAttribData.CurInPower   := aCharData^.CurInPower;
   CurAttribData.CurOutPower  := aCharData^.CurOutPower;
   CurAttribData.CurMagic     := aCharData^.CurMagic;
   CurAttribData.CurLife      := aCharData^.CurLife;
   CurAttribData.Curhealth    := aCharData^.CurHealth;
   CurAttribData.Cursatiety   := aCharData^.CurSatiety;
   CurAttribData.Curpoisoning := aCharData^.CurPoisoning;
   CurAttribData.CurHeadSeak  := aCharData^.CurHeadSeek;
   CurAttribData.CurArmSeak   := aCharData^.CurArmSeek;
   CurAttribData.CurLegSeak   := aCharData^.CurLegSeek;

   Calculate;

   FSendClass.SendAttribBase (AttribData, CurAttribData);
   FSendClass.SendAttribValues (AttribData, CurAttribData);
   boSendBase := FALSE;
   boSendValues := FALSE;
end;

procedure TAttribClass.SaveToSdb (aCharData : PTDBRecord);
var n : integer;
begin
   if GrobalLightDark = gld_light then begin
      n := aCharData^.Light;
      n := n + (mmAnsTick - StartTick) div 100;
      aCharData^.Light := n;
   end else begin
      n := aCharData^.Dark;
      n := n + (mmAnsTick - StartTick) div 100;
      aCharData^.Dark := n; 
   end;

   aCharData^.CurEnergy := CurAttribData.CurEnergy;
   aCharData^.CurInPower := CurAttribData.CurInPower;
   aCharData^.CurOutPower := CurAttribData.CurOutPower;
   aCharData^.CurMagic := CurAttribData.CurMagic;
   aCharData^.CurLife := CurAttribData.CurLife;
   aCharData^.CurHealth := CurAttribData.Curhealth;
   aCharData^.CurSatiety := CurAttribData.Cursatiety;
   aCharData^.CurPoisoning := CurAttribData.Curpoisoning;
   aCharData^.CurHeadSeek := CurAttribData.CurHeadSeak;
   aCharData^.CurArmSeek := CurAttribData.CurArmSeak;
   aCharData^.CurLegSeek := CurAttribData.CurLegSeak;

   aCharData^.Energy := AttribData.Energy;
   aCharData^.InPower := AttribData.InPower;
   aCharData^.OutPower := AttribData.OutPower;
   aCharData^.Magic := AttribData.Magic;
   aCharData^.Life := AttribData.Life;

   with AttribData do begin
      aCharData^.Talent := Talent;
      aCharData^.GoodChar := GoodChar;
      aCharData^.BadChar := BadChar;
      aCharData^.Adaptive := adaptive;
      aCharData^.Revival := revival;
      aCharData^.Immunity := immunity;
      aCharData^.Virtue := virtue;
   end;

   StartTick := mmAnsTick;

   AttribData.Light    := aCharData^.Light;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -