Skip to content

Commit

Permalink
Merge pull request #187 from Evgencheg/master
Browse files Browse the repository at this point in the history
срочно
  • Loading branch information
Evgencheg authored Sep 23, 2024
2 parents 8ec031e + 5790143 commit 0f721cb
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 64 deletions.
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
- [ ] Я запускал локальный сервер со своими изменениями и всё протестировал.
- [ ] Я добавил скриншот/видео демонстрации PR в игре, **или** этот PR этого не требует.
- [ ] Я не добавлял контент нарушающий чужие авторские права.
- [ ] Я добавил свой контент только в папку _LostParadise(только если вы не меняете оригинальный код).
- [ ] Я не добавлял переводы в прототипы, а сделал их в файле locale.

**Изменения**
<!--
Expand Down
63 changes: 22 additions & 41 deletions Content.Server/Database/ServerDbBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,50 +86,31 @@ public async Task SaveCharacterSlotAsync(NetUserId userId, ICharacterProfile? pr
throw new NotImplementedException();
}

using (var transaction = await db.DbContext.Database.BeginTransactionAsync())
{
var oldProfile = db.DbContext.Profile
.Include(p => p.Preference)
.Where(p => p.Preference.UserId == userId.UserId)
.Include(p => p.Jobs)
.Include(p => p.Antags)
.Include(p => p.Traits)
var oldProfile = db.DbContext.Profile
.Include(p => p.Preference)
.Where(p => p.Preference.UserId == userId.UserId)
.Include(p => p.Jobs)
.Include(p => p.Antags)
.Include(p => p.Traits)
#if LPP_Sponsors
.Include(p => p.Donate) // Lost Paradise Donate Preferences
.Include(p => p.Donate) // Lost Paradise Donate Preferences
#endif
.Include(p => p.Loadouts)
.AsSplitQuery()
.SingleOrDefault(h => h.Slot == slot);
try
{
if (oldProfile is not null)
{
oldProfile.Jobs.Clear();
oldProfile.Antags.Clear();
oldProfile.Traits.Clear();
await db.DbContext.SaveChangesAsync(); // отдельно удаляем данные из ролей, антагов и traits, чем бы оно ни было.
// Можно дальше убрать эти операции из ConvertProfiles, ибо они уже исполнены.
}

var newProfile = ConvertProfiles(humanoid, slot, oldProfile);
if (oldProfile == null)
{
var prefs = await db.DbContext
.Preference
.Include(p => p.Profiles)
.SingleAsync(p => p.UserId == userId.UserId);

prefs.Profiles.Add(newProfile);
}

await db.DbContext.SaveChangesAsync(); // Сохраняем добавление данных.
}
catch (Exception ex)
{
await transaction.RollbackAsync(); // при ошибке вернём всё обратно
throw ex;
}
.Include(p => p.Loadouts)
.AsSplitQuery()
.SingleOrDefault(h => h.Slot == slot);

var newProfile = ConvertProfiles(humanoid, slot, oldProfile);
if (oldProfile == null)
{
var prefs = await db.DbContext
.Preference
.Include(p => p.Profiles)
.SingleAsync(p => p.UserId == userId.UserId);

prefs.Profiles.Add(newProfile);
}

await db.DbContext.SaveChangesAsync();
}

private static async Task DeleteCharacterSlot(ServerDbContext db, NetUserId userId, int slot)
Expand Down
2 changes: 1 addition & 1 deletion Resources/Locale/ru-RU/_LostParadise/revolvers.ftl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ent-WeaponRevolverColtpeacemaker = кольт миротворец
.desc = Легендарный револвьер из дикого запада. Использует патроны .45 калибра
ent-LPPWeaponRevolverPeacemaker = "Миротворец"
ent-LPPWeaponRevolverPeacemaker = Миротворец
.desc = Оружие, которое носит детектив Артемон Веалис. Использует патроны .45 калибра. На рукоятке выгвированы его инициалы "AV".
ent-LPPWeaponRevolverColtspecial = кольт спешл
.desc = Гравированный кольт. Гравировка, конечно, не даёт никакого тактического преимцущества. Использует патроны .45 калибра
Expand Down
2 changes: 1 addition & 1 deletion Resources/Locale/ru-RU/chat/managers/chat-manager.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ chat-speech-verb-canine-2 = лает
chat-speech-verb-canine-3 = воет
chat-speech-verb-name-oni = Они
chat-speech-verb-oni-1 = ворчит
chat-speech-verb-oni-2 = мех
chat-speech-verb-oni-2 = мьехает
chat-speech-verb-oni-3 = ревет
chat-speech-verb-oni-4 = грохочет
chat-speech-verb-name-vox = Вокс
Expand Down
2 changes: 1 addition & 1 deletion Resources/Locale/ru-RU/nuke/nuke-component.ftl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
nuke-component-cant-anchor-floor = Крепёжным болтам не удаётся закрепиться в полу!
nuke-component-announcement-sender = Ядерная боеголовка
nuke-component-announcement-armed = Внимание! Механизм самоуничтожения станции был активирован { $location }. До детонации { $time } секунд.
nuke-component-announcement-armed = Внимание! Механизм самоуничтожения станции был активирован { $position }. До детонации {$time} секунд.
nuke-component-announcement-unarmed = Механизм самоуничтожение станции деактивирован! Хорошего дня!
nuke-component-announcement-send-codes = Внимание! Запрошенные коды самоуничтожения были отправлены на факс капитана.
nuke-component-doafter-warning = Вы начинаете перебирать провода и кнопки, в попытке обезвредить ядерную бомбу. Это может занять некоторое время.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@


ent-ClothingHeadHelmetHardsuitERTChaplain = ERT chaplain hardsuit helmet
.desc = A special hardsuit helmet worn by members of an emergency response team.
ent-ClothingHeadHelmetHardsuitERTChaplain = шлем скафандра ОБР священника
.desc = Защитный костюм, который носят капитаны груп быстрого реагирования на чрезвычайные ситуации.
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@


ent-ClothingOuterHardsuitERTChaplain = ERT chaplain's hardsuit
.desc = A protective hardsuit worn by the chaplains of an Emergency Response Team.
ent-ClothingOuterHardsuitERTChaplain = скафандр ОБР священника
.desc = Защитный костюм, который носят капитаны груп быстрого реагирования на чрезвычайные ситуации.
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
ent-MarkerRadiation1 = Marker Radiation
.suffix = intensity 1
ent-MarkerRadiation1 = Маркер уровня радиации
.suffix = интенсивность 1
.desc = { ent-MarkerBase.desc }
ent-MarkerRadiation2 = { ent-MarkerRadiation1 }
.suffix = intensity 2
.suffix = интенсивность 2
.desc = { ent-MarkerRadiation1.desc }
ent-MarkerRadiation3 = { ent-MarkerRadiation1 }
.suffix = intensity 3
.suffix = интенсивность 3
.desc = { ent-MarkerRadiation1.desc }
ent-MarkerRadiation4 = { ent-MarkerRadiation1 }
.suffix = intensity 4
.suffix = интенсивность 4
.desc = { ent-MarkerRadiation1.desc }
ent-MarkerRadiation5 = { ent-MarkerRadiation1 }
.suffix = intensity 5
.suffix = интенсивность 5
.desc = { ent-MarkerRadiation1.desc }
ent-MarkerRadiation10 = { ent-MarkerRadiation1 }
.suffix = intensity 10
.suffix = интенсивность 10
.desc = { ent-MarkerRadiation1.desc }
ent-MarkerBlocker = Marker Blocker
.suffix = invisible wall
ent-MarkerBlocker = маркер "Стена"
.suffix = невидимая стена
.desc = { ent-MarkerBase.desc }
ent-MarkerWeatherblocker = Marker Weather Blocker
ent-MarkerWeatherblocker = маркер блокирования погодных условий
.desc = { ent-MarkerBase.desc }

0 comments on commit 0f721cb

Please sign in to comment.