humaninfo.pas

来自「FIR引擎最新源码+注册」· PAS 代码 · 共 594 行 · 第 1/2 页

PAS
594
字号

  CheckBoxGameMaster.Checked := PlayObject.m_boAdminMode;
  CheckBoxSuperMan.Checked := PlayObject.m_boSuperMan;
  CheckBoxObserver.Checked := PlayObject.m_boObMode;

  if PlayObject.m_boDeath then begin
    EditHumanStatus.Text := '死亡';
  end else
    if PlayObject.m_boGhost then begin
    EditHumanStatus.Text := '下线';
    PlayObject := nil;
  end else EditHumanStatus.Text := '在线';
  for I := Low(PlayObject.m_UseItems) to High(PlayObject.m_UseItems) do begin
    UserItem := @PlayObject.m_UseItems[I];
    StdItem := UserEngine.GetStdItem(UserItem.wIndex);
    if StdItem = nil then begin
      GridUserItem.Cells[1, I + 1] := '';
      GridUserItem.Cells[2, I + 1] := '';
      GridUserItem.Cells[3, I + 1] := '';
      GridUserItem.Cells[4, I + 1] := '';
      GridUserItem.Cells[5, I + 1] := '';
      GridUserItem.Cells[6, I + 1] := '';
      GridUserItem.Cells[7, I + 1] := '';
      GridUserItem.Cells[8, I + 1] := '';
      GridUserItem.Cells[9, I + 1] := '';
      Continue;
    end;
    Item := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, Item);

    GridUserItem.Cells[1, I + 1] := Item.Name;
    GridUserItem.Cells[2, I + 1] := IntToStr(UserItem.MakeIndex);
    GridUserItem.Cells[3, I + 1] := Format('%d/%d', [UserItem.Dura, UserItem.DuraMax]);
    GridUserItem.Cells[4, I + 1] := Format('%d/%d', [LoWord(Item.DC), HiWord(Item.DC)]);
    GridUserItem.Cells[5, I + 1] := Format('%d/%d', [LoWord(Item.MC), HiWord(Item.MC)]);
    GridUserItem.Cells[6, I + 1] := Format('%d/%d', [LoWord(Item.SC), HiWord(Item.SC)]);
    GridUserItem.Cells[7, I + 1] := Format('%d/%d', [LoWord(Item.AC), HiWord(Item.AC)]);
    GridUserItem.Cells[8, I + 1] := Format('%d/%d', [LoWord(Item.MAC), HiWord(Item.MAC)]);
    GridUserItem.Cells[9, I + 1] := Format('%d/%d/%d/%d/%d/%d/%d', [UserItem.btValue[0],
      UserItem.btValue[1],
        UserItem.btValue[2],
        UserItem.btValue[3],
        UserItem.btValue[4],
        UserItem.btValue[5],
        UserItem.btValue[6]]);
  end;

  if PlayObject.m_ItemList.Count <= 0 then GridBagItem.RowCount := 2
  else GridBagItem.RowCount := PlayObject.m_ItemList.Count + 1;

  for I := 0 to PlayObject.m_ItemList.Count - 1 do begin
    UserItem := PlayObject.m_ItemList.Items[I];
    StdItem := UserEngine.GetStdItem(UserItem.wIndex);
    if StdItem = nil then begin
      GridBagItem.Cells[1, I + 1] := '';
      GridBagItem.Cells[2, I + 1] := '';
      GridBagItem.Cells[3, I + 1] := '';
      GridBagItem.Cells[4, I + 1] := '';
      GridBagItem.Cells[5, I + 1] := '';
      GridBagItem.Cells[6, I + 1] := '';
      GridBagItem.Cells[7, I + 1] := '';
      GridBagItem.Cells[8, I + 1] := '';
      GridBagItem.Cells[9, I + 1] := '';
      Continue;
    end;
    Item := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, Item);
    GridBagItem.Cells[0, I + 1] := IntToStr(I);
    GridBagItem.Cells[1, I + 1] := Item.Name;
    GridBagItem.Cells[2, I + 1] := IntToStr(UserItem.MakeIndex);
    GridBagItem.Cells[3, I + 1] := Format('%d/%d', [UserItem.Dura, UserItem.DuraMax]);
    GridBagItem.Cells[4, I + 1] := Format('%d/%d', [LoWord(Item.DC), HiWord(Item.DC)]);
    GridBagItem.Cells[5, I + 1] := Format('%d/%d', [LoWord(Item.MC), HiWord(Item.MC)]);
    GridBagItem.Cells[6, I + 1] := Format('%d/%d', [LoWord(Item.SC), HiWord(Item.SC)]);
    GridBagItem.Cells[7, I + 1] := Format('%d/%d', [LoWord(Item.AC), HiWord(Item.AC)]);
    GridBagItem.Cells[8, I + 1] := Format('%d/%d', [LoWord(Item.MAC), HiWord(Item.MAC)]);
    GridBagItem.Cells[9, I + 1] := Format('%d/%d/%d/%d/%d/%d/%d', [UserItem.btValue[0],
      UserItem.btValue[1],
        UserItem.btValue[2],
        UserItem.btValue[3],
        UserItem.btValue[4],
        UserItem.btValue[5],
        UserItem.btValue[6]]);
  end;

  if PlayObject.m_StorageItemList.Count <= 0 then GridStorageItem.RowCount := 2
  else GridStorageItem.RowCount := PlayObject.m_StorageItemList.Count + 1;

  for I := 0 to PlayObject.m_StorageItemList.Count - 1 do begin
    UserItem := PlayObject.m_StorageItemList.Items[I];
    StdItem := UserEngine.GetStdItem(UserItem.wIndex);
    if StdItem = nil then begin
      GridStorageItem.Cells[1, I + 1] := '';
      GridStorageItem.Cells[2, I + 1] := '';
      GridStorageItem.Cells[3, I + 1] := '';
      GridStorageItem.Cells[4, I + 1] := '';
      GridStorageItem.Cells[5, I + 1] := '';
      GridStorageItem.Cells[6, I + 1] := '';
      GridStorageItem.Cells[7, I + 1] := '';
      GridStorageItem.Cells[8, I + 1] := '';
      GridStorageItem.Cells[9, I + 1] := '';
      Continue;
    end;
    Item := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, Item);

    GridStorageItem.Cells[0, I + 1] := IntToStr(I);
    GridStorageItem.Cells[1, I + 1] := Item.Name;
    GridStorageItem.Cells[2, I + 1] := IntToStr(UserItem.MakeIndex);
    GridStorageItem.Cells[3, I + 1] := Format('%d/%d', [UserItem.Dura, UserItem.DuraMax]);
    GridStorageItem.Cells[4, I + 1] := Format('%d/%d', [LoWord(Item.DC), HiWord(Item.DC)]);
    GridStorageItem.Cells[5, I + 1] := Format('%d/%d', [LoWord(Item.MC), HiWord(Item.MC)]);
    GridStorageItem.Cells[6, I + 1] := Format('%d/%d', [LoWord(Item.SC), HiWord(Item.SC)]);
    GridStorageItem.Cells[7, I + 1] := Format('%d/%d', [LoWord(Item.AC), HiWord(Item.AC)]);
    GridStorageItem.Cells[8, I + 1] := Format('%d/%d', [LoWord(Item.MAC), HiWord(Item.MAC)]);
    GridStorageItem.Cells[9, I + 1] := Format('%d/%d/%d/%d/%d/%d/%d', [UserItem.btValue[0],
      UserItem.btValue[1],
        UserItem.btValue[2],
        UserItem.btValue[3],
        UserItem.btValue[4],
        UserItem.btValue[5],
        UserItem.btValue[6]]);
  end;

{$IF HEROVERSION = 1}
  if PlayObject.m_MyHero = nil then Exit;

  EditHeroName.Text := PlayObject.m_MyHero.m_sCharName;
  EditHeroMap.Text := PlayObject.m_MyHero.m_sMapName + '(' + PlayObject.m_PEnvir.sMapDesc + ')';
  EditHeroXY.Text := IntToStr(PlayObject.m_MyHero.m_nCurrX) + ':' + IntToStr(PlayObject.m_MyHero.m_nCurrY);

  EditHeroLevel.Value := PlayObject.m_MyHero.m_Abil.Level;
  EditHeroPKPoint.Value := PlayObject.m_MyHero.m_nPkPoint;
  EditHeroExp.Value := PlayObject.m_MyHero.m_Abil.Exp;
  EditHeroMaxExp.Value := PlayObject.m_MyHero.m_Abil.MaxExp;

  for I := Low(PlayObject.m_MyHero.m_UseItems) to High(PlayObject.m_MyHero.m_UseItems) do begin
    UserItem := @PlayObject.m_MyHero.m_UseItems[I];
    StdItem := UserEngine.GetStdItem(UserItem.wIndex);
    if StdItem = nil then begin
      GridHeroUserItem.Cells[1, I + 1] := '';
      GridHeroUserItem.Cells[2, I + 1] := '';
      GridHeroUserItem.Cells[3, I + 1] := '';
      GridHeroUserItem.Cells[4, I + 1] := '';
      GridHeroUserItem.Cells[5, I + 1] := '';
      GridHeroUserItem.Cells[6, I + 1] := '';
      GridHeroUserItem.Cells[7, I + 1] := '';
      GridHeroUserItem.Cells[8, I + 1] := '';
      GridHeroUserItem.Cells[9, I + 1] := '';
      Continue;
    end;
    Item := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, Item);

    GridHeroUserItem.Cells[1, I + 1] := Item.Name;
    GridHeroUserItem.Cells[2, I + 1] := IntToStr(UserItem.MakeIndex);
    GridHeroUserItem.Cells[3, I + 1] := Format('%d/%d', [UserItem.Dura, UserItem.DuraMax]);
    GridHeroUserItem.Cells[4, I + 1] := Format('%d/%d', [LoWord(Item.DC), HiWord(Item.DC)]);
    GridHeroUserItem.Cells[5, I + 1] := Format('%d/%d', [LoWord(Item.MC), HiWord(Item.MC)]);
    GridHeroUserItem.Cells[6, I + 1] := Format('%d/%d', [LoWord(Item.SC), HiWord(Item.SC)]);
    GridHeroUserItem.Cells[7, I + 1] := Format('%d/%d', [LoWord(Item.AC), HiWord(Item.AC)]);
    GridHeroUserItem.Cells[8, I + 1] := Format('%d/%d', [LoWord(Item.MAC), HiWord(Item.MAC)]);
    GridHeroUserItem.Cells[9, I + 1] := Format('%d/%d/%d/%d/%d/%d/%d', [UserItem.btValue[0],
      UserItem.btValue[1],
        UserItem.btValue[2],
        UserItem.btValue[3],
        UserItem.btValue[4],
        UserItem.btValue[5],
        UserItem.btValue[6]]);
  end;

  if PlayObject.m_MyHero.m_ItemList.Count <= 0 then GridBagItem.RowCount := 2
  else GridBagItem.RowCount := PlayObject.m_MyHero.m_ItemList.Count + 1;

  for I := 0 to PlayObject.m_MyHero.m_ItemList.Count - 1 do begin
    UserItem := PlayObject.m_MyHero.m_ItemList.Items[I];
    StdItem := UserEngine.GetStdItem(UserItem.wIndex);
    if StdItem = nil then begin
      GridHeroBagItem.Cells[1, I + 1] := '';
      GridHeroBagItem.Cells[2, I + 1] := '';
      GridHeroBagItem.Cells[3, I + 1] := '';
      GridHeroBagItem.Cells[4, I + 1] := '';
      GridHeroBagItem.Cells[5, I + 1] := '';
      GridHeroBagItem.Cells[6, I + 1] := '';
      GridHeroBagItem.Cells[7, I + 1] := '';
      GridHeroBagItem.Cells[8, I + 1] := '';
      GridHeroBagItem.Cells[9, I + 1] := '';
      Continue;
    end;
    Item := StdItem^;
    ItemUnit.GetItemAddValue(UserItem, Item);
    GridHeroBagItem.Cells[0, I + 1] := IntToStr(I);
    GridHeroBagItem.Cells[1, I + 1] := Item.Name;
    GridHeroBagItem.Cells[2, I + 1] := IntToStr(UserItem.MakeIndex);
    GridHeroBagItem.Cells[3, I + 1] := Format('%d/%d', [UserItem.Dura, UserItem.DuraMax]);
    GridHeroBagItem.Cells[4, I + 1] := Format('%d/%d', [LoWord(Item.DC), HiWord(Item.DC)]);
    GridHeroBagItem.Cells[5, I + 1] := Format('%d/%d', [LoWord(Item.MC), HiWord(Item.MC)]);
    GridHeroBagItem.Cells[6, I + 1] := Format('%d/%d', [LoWord(Item.SC), HiWord(Item.SC)]);
    GridHeroBagItem.Cells[7, I + 1] := Format('%d/%d', [LoWord(Item.AC), HiWord(Item.AC)]);
    GridHeroBagItem.Cells[8, I + 1] := Format('%d/%d', [LoWord(Item.MAC), HiWord(Item.MAC)]);
    GridHeroBagItem.Cells[9, I + 1] := Format('%d/%d/%d/%d/%d/%d/%d', [UserItem.btValue[0],
      UserItem.btValue[1],
        UserItem.btValue[2],
        UserItem.btValue[3],
        UserItem.btValue[4],
        UserItem.btValue[5],
        UserItem.btValue[6]]);
  end;
{$IFEND}
end;

procedure TfrmHumanInfo.TimerTimer(Sender: TObject);
begin
  if PlayObject = nil then Exit;
  if PlayObject.m_boGhost then begin
    EditHumanStatus.Text := '下线';
    PlayObject := nil;
    Exit;
  end;
  if boRefHuman then RefHumanInfo();
end;

procedure TfrmHumanInfo.CheckBoxMonitorClick(Sender: TObject);
begin
  boRefHuman := CheckBoxMonitor.Checked;
  ButtonSave.Enabled := not boRefHuman;
end;

procedure TfrmHumanInfo.ButtonKickClick(Sender: TObject);
begin
  if PlayObject = nil then Exit;
  PlayObject.m_boEmergencyClose := True;
  PlayObject.m_boNotOnlineAddExp := False;
  PlayObject.m_boPlayOffLine := False;
  ButtonKick.Enabled := False;
end;

procedure TfrmHumanInfo.ButtonSaveClick(Sender: TObject);
var
  nLevel: Integer;
  nGold: Integer;
  nPKPOINT: Integer;
  nGameGold: Integer;
  nGamePoint: Integer;
  nCreditPoint: Integer;
  nBonusPoint: Integer;
  boGameMaster: Boolean;
  boObServer: Boolean;
  boSuperman: Boolean;
  sAutoSendMsg: string;
begin
  if PlayObject = nil then Exit;
  sAutoSendMsg := Trim(EditSayMsg.Text);
  nLevel := EditLevel.Value;
  nGold := EditGold.Value;
  nPKPOINT := EditPKPoint.Value;
  nGameGold := EditGameGold.Value;
  nGamePoint := EditGamePoint.Value;
  nCreditPoint := EditCreditPoint.Value;
  nBonusPoint := EditBonusPoint.Value;
  boGameMaster := CheckBoxGameMaster.Checked;
  boObServer := CheckBoxObserver.Checked;
  boSuperman := CheckBoxSuperMan.Checked;
  if (nLevel < 0) or (nLevel > High(Word)) or (nGold < 0) or (nGold > 200000000) or (nPKPOINT < 0) or
    (nPKPOINT > 2000000) or (nCreditPoint < 0) or (nCreditPoint > High(Byte)) or (nBonusPoint < 0) or (nBonusPoint > 20000000) then begin
    MessageBox(Handle, '输入数据不正确!!!', '错误信息', MB_OK);
    Exit;
  end;
  PlayObject.m_sAutoSendMsg := sAutoSendMsg;
  PlayObject.m_Abil.Level := nLevel;
  PlayObject.m_nGold := nGold;
  PlayObject.m_nPkPoint := nPKPOINT;
  PlayObject.m_nGameGold := nGameGold;
  PlayObject.m_nGamePoint := nGamePoint;
  PlayObject.m_btCreditPoint := nCreditPoint;
  PlayObject.m_nBonusPoint := nBonusPoint;
  PlayObject.m_boAdminMode := boGameMaster;
  PlayObject.m_boObMode := boObServer;
  PlayObject.m_boSuperMan := boSuperman;
  PlayObject.RecalcAbilitys;
  PlayObject.GoldChanged;
{$IF HEROVERSION = 1}
  if PlayObject.m_MyHero <> nil then begin
    nLevel := EditHeroLevel.Value;
    nPKPOINT := EditHeroPKPoint.Value;
    PlayObject.m_MyHero.m_Abil.Level := nLevel;
    PlayObject.m_MyHero.m_nPkPoint := nPKPOINT;
    PlayObject.m_MyHero.RecalcAbilitys;
    PlayObject.m_MyHero.HasLevelUp(0);
  end;
{$IFEND}
  MessageBox(Handle, '人物数据已保存。', '提示信息', MB_OK);
end;

end.

⌨️ 快捷键说明

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