JustV1Stalker
Сталкеры-
Публикаций
2 -
Зарегистрирован
-
Посещение
Репутация
3 НейтральнаяИнформация о JustV1Stalker
-
Звание
Новичок
Посетители профиля
Блок последних пользователей отключён и не показывается другим пользователям.
-
Написал небольшой скрипт для корректной смены ника в сейвах сервера для тех у кого нап пропал\не хочет продолжать, вы сервер и вам продолжать с нуля не хочется. vbscript rename_mate.vbs ' Скрипт для переименования напарника в сейвах игры Сталкер Беларусь (by V10) ' Настройки ' Папка с сейвами strSavesFolder = "_user_dedicated_\savedgames" ' =================================================================================== ' Код ' Предупреждение strWarning = "" _ & "Внимание! Это не официальный скрипт! На всякий случай скопируйте вашу папку user_dedicated куда нибудь для восстановления если понадобится!" & vbNewLine _ & "============================================" & vbNewLine _ & "Скрипт меняет имя игрока ТОЛЬКО в сейве сервера! Для возможности смены напарника на ходу." & vbNewLine _ & "Если вы хотите изменить свой собственный никнейм вам нужно дополнительно отредактировать файл " & CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\sblauncher.json" & vbNewLine _ & "============================================" & vbNewLine _ & vbNewLine _ & "Скрипт по очереди спросит про каждого игрока которого найдет на сервере." & vbNewLine _ & "Продолжить?" & vbNewLine If MsgBox(sc(strWarning), vbOKCancel or vbDefaultButton2, sc("Stalker Belarus Смена имени")) = vbCancel Then WScript.Quit ' Получаем список игроков Set oFSO = CreateObject("Scripting.FileSystemObject") For Each oFile in oFSO.GetFolder(strSavesFolder).Files If InStr(oFile.Name,"mp_actor_") > 0 and InStr(oFile.Name,"backup") = 0 and InStr(oFile.Name,".bak") = 0 Then ' Получаем имя игрока и предлагаем сменить ему никнейм strActorName = Replace(oFile.Name, "mp_actor_", "") If MsgBox(sc("Хотите переименовать игрока '") & strActorName & "' ?", vbYesNo or vbDefaultButton2, sc("Stalker Belarus Смена имени")) = vbYes Then strNewName = InputBox(sc("Введите новый никнейм"), sc("Stalker Belarus Смена имени"), strActorName) ' Если имя не ввели или оно не изменилось - завершаем скрипт If strNewName = "" or strNewName = strActorName Then Exit For ' Читаем сейв игрока With oFile.OpenAsTextStream() strBinary = .Read(oFile.Size) .Close End With ' Проверяем возможность записи в новый файл strOutFilename = oFile.ParentFolder & "\mp_actor_" & strNewName Set oOutFile = oFSO.createTextFile(strOutFilename) If Err.number <> 0 Then MsgBox(Err.message) : Exit For On Error GoTo 0 Set oOutFile = Nothing ' Формируем новый заголовок для сейва intOldLen = BinaryToDecimal(s2h(Left(strBinary, 2))) intNewLen = intOldLen - (Len(strActorName) - Len(strNewName)) strNewBinary = h2s(DecimalToBinary(intNewLen)) & Right(Left(strBinary,5), 3) & strNewName & Right(strBinary, Len(strBinary) - 5 - Len(strActorName)) ' Сохраняем новый сейв With oFSO.createTextFile(strOutFilename) .Write(strNewBinary) .Close End With ' Бекапим старый сейв oFSO.MoveFile oFile.Path, oFile.Path & ".bak" ' Завершаем скрипт Exit For End If End if Next ' Функция перекодировки текста из utf-8 (pastebin) в win1251 (windows) Function sc(s) adReadAll = -1 adTypeText = 2 Set objStream = CreateObject("ADODB.Stream") objStream.Open() objStream.Type = adTypeText objStream.Charset = "windows-1251" objStream.WriteText(s) objStream.Flush() objStream.Position = 0 objStream.Charset = "utf-8" sc = objStream.ReadText(adReadAll) objStream.Close() End Function ' Функции для работы с двоичными данными Function DecimalToBinary(Number) Do DecimalToBinary = Hex(Number Mod 16) & DecimalToBinary Number = Number \ 16 Loop Until Number = 0 DecimalToBinary = Right(DecimalToBinary, 2) & " " & Left(DecimalToBinary, 2) End Function Function BinaryToDecimal(S) BinaryToDecimal = CInt("&H" & Right(S, 2) & Left(S, 2)) End Function Function s2a(s) ReDim a(Len(s) - 1) Dim i For i = 0 To UBound(a) a(i) = Mid(s, i + 1, 1) Next s2a = a End Function Function s2h(s) Dim a : a = s2a(s) Dim i For i = 0 To UBound(a) a(i) = Right(00 & Hex(Asc(a(i))), 2) Next s2h = Join(a) End Function Function h2s(h) Dim a : a = Split(h) Dim i For i = 0 To UBound(a) a(i) = Chr("&H" & a(i)) Next h2s = Join(a, "") End Function Инструкция проста: Сохраняем скрипт под именем rename_mate.vbs в папку с игрой и запускаем. Он предложит сменить ник по очереди для каждого игрока. На нужном отвечаем Да и вводим ник нового напа. Сохраняться все шмотки и квесты.
-
Привет. Проблема с модом. Через примерно 40-60минут игры FPS падает в 3-4 раза. С 200, до стабильных не меняющихся 40-45, как будто лочится. По скрину видно что видеокарта вместо 80-95% нагрузки начинает работать на 20% и холодная. Проц тоже не задействован. После перезапуска FPS восстанавливается до 200, но опять на 40 минут. Win7 x64 \ Win10 x64 32Gb RAM (16Gb свободно когда 40fps) 1080ti 8Gb VRAM (4Gb свободно когда 40fps) CPU 7700k