Mavrodi
Псевдо Хакер
- Сообщения
- 72
- Реакции
- 27
копался в ассемблере сервера игры и нашел такую функцию
и в этой функции я увидел вывод хп игроков "100f"
и так как инфа о состоянии здоровья передаётся только админам(проверка сервера на auth level), можно попробывать передавать серверу auth level 2 как раньше кодер aidsware делал
или же попробывать найти другой способ, если тут будут такие люди, они поймут как это реализорвать
C#:
public override void Save(global::BaseNetworkable.SaveInfo info)
{
base.Save(info);
bool flag = this.net != null && this.net.connection == info.forConnection;
bool flag2;
if (!info.forDisk && info.forConnection.player != null)
{
global::BasePlayer basePlayer = info.forConnection.player as global::BasePlayer;
if (basePlayer != null)
{
flag2 = basePlayer.IsAdmin;
goto IL_5E;
}
}
flag2 = false;
IL_5E:
bool flag3 = flag2;
info.msg.basePlayer = Pool.Get<ProtoBuf.BasePlayer>();
info.msg.basePlayer.userid = this.userID;
info.msg.basePlayer.name = this.displayName;
info.msg.basePlayer.playerFlags = (int)this.playerFlags;
info.msg.basePlayer.currentTeam = this.currentTeam;
info.msg.basePlayer.heldEntity = this.svActiveItemID;
info.msg.basePlayer.reputation = this.reputation;
if (!info.forDisk && this.currentGesture != null && this.currentGesture.animationType == global::GestureConfig.AnimationType.Loop)
{
info.msg.basePlayer.loopingGesture = this.currentGesture.gestureId;
}
if (this.IsConnected && (this.IsAdmin || this.IsDeveloper))
{
info.msg.basePlayer.skinCol = this.net.connection.info.GetFloat("global.skincol", -1f);
info.msg.basePlayer.skinTex = this.net.connection.info.GetFloat("global.skintex", -1f);
info.msg.basePlayer.skinMesh = this.net.connection.info.GetFloat("global.skinmesh", -1f);
}
else
{
info.msg.basePlayer.skinCol = -1f;
info.msg.basePlayer.skinTex = -1f;
info.msg.basePlayer.skinMesh = -1f;
}
info.msg.basePlayer.underwear = this.GetUnderwearSkin();
if (info.forDisk || flag)
{
info.msg.basePlayer.metabolism = this.metabolism.Save();
info.msg.basePlayer.modifiers = null;
if (this.modifiers != null)
{
info.msg.basePlayer.modifiers = this.modifiers.Save();
}
}
if (!info.forDisk && !flag)
{
info.msg.basePlayer.playerFlags &= -5;
info.msg.basePlayer.playerFlags &= -129;
if (info.msg.baseCombat != null && !flag3)
{
info.msg.baseCombat.health = 100f;
}
}
info.msg.basePlayer.inventory = this.inventory.Save(info.forDisk || flag);
this.modelState.sleeping = this.IsSleeping();
this.modelState.relaxed = this.IsRelaxed();
this.modelState.crawling = this.IsCrawling();
this.modelState.loading = this.IsLoadingAfterTransfer();
info.msg.basePlayer.modelState = this.modelState.Copy();
if (info.forDisk)
{
global::BaseEntity baseEntity = this.mounted.Get(base.isServer);
if (baseEntity.IsValid())
{
if (baseEntity.enableSaving)
{
info.msg.basePlayer.mounted = this.mounted.uid;
}
else
{
global::BaseVehicle mountedVehicle = this.GetMountedVehicle();
if (mountedVehicle.IsValid() && mountedVehicle.enableSaving)
{
info.msg.basePlayer.mounted = mountedVehicle.net.ID;
}
}
}
info.msg.basePlayer.respawnId = this.respawnId;
}
else
{
info.msg.basePlayer.mounted = this.mounted.uid;
}
if (flag)
{
info.msg.basePlayer.persistantData = this.PersistantPlayerInfo.Copy();
if (!info.forDisk && this.State.missions != null)
{
info.msg.basePlayer.missions = this.State.missions.Copy();
}
info.msg.basePlayer.bagCount = global::SleepingBag.GetSleepingBagCount(this.userID);
info.msg.basePlayer.shelterCount = global::LegacyShelter.GetShelterCount(this.userID);
}
if (info.forDisk)
{
info.msg.basePlayer.loadingTimeout = this.timeUntilLoadingExpires;
info.msg.basePlayer.currentLife = this.lifeStory;
info.msg.basePlayer.previousLife = this.previousLifeStory;
}
if (!info.forDisk)
{
info.msg.basePlayer.clanId = this.clanId;
}
if (info.forDisk)
{
info.msg.basePlayer.itemCrafter = this.inventory.crafting.Save();
}
if (info.forDisk)
{
this.SavePlayerState();
}
}
и в этой функции я увидел вывод хп игроков "100f"
C#:
if (!info.forDisk && !flag)
{
info.msg.basePlayer.playerFlags &= -5;
info.msg.basePlayer.playerFlags &= -129;
if (info.msg.baseCombat != null && !flag3)
{
info.msg.baseCombat.health = 100f;
}
}
и так как инфа о состоянии здоровья передаётся только админам(проверка сервера на auth level), можно попробывать передавать серверу auth level 2 как раньше кодер aidsware делал
или же попробывать найти другой способ, если тут будут такие люди, они поймут как это реализорвать
Последнее редактирование: