Merge branch 'main' into beta-v1.10

This commit is contained in:
ZouJin 2024-02-22 22:06:21 +08:00
commit 7fdd54a437
191 changed files with 557 additions and 164 deletions

View File

@ -52,7 +52,7 @@ namespace VPet_Simulator.Core
public bool IsWorking { get; private set; } = false;
public SoundPlayer soundPlayer = new SoundPlayer();
public bool windowMediaPlayerAvailable = true;
public Main(GameCore core, bool loadtouchevent = true)
public Main(GameCore core, bool loadtouchevent = true, IGraph startUPGraph = null)
{
//Console.WriteLine(DateTime.Now.ToString("T:fff"));
InitializeComponent();
@ -74,7 +74,7 @@ namespace VPet_Simulator.Core
}
if (!core.Controller.EnableFunction)
Core.Save.Mode = NoFunctionMOD;
var ig = Core.Graph.FindGraph(Core.Graph.FindName(GraphType.StartUP), AnimatType.Single, core.Save.Mode);
IGraph ig = startUPGraph ?? Core.Graph.FindGraph(Core.Graph.FindName(GraphType.StartUP), AnimatType.Single, core.Save.Mode);
ig ??= Core.Graph.FindGraph(Core.Graph.FindName(GraphType.Default), AnimatType.Single, core.Save.Mode);
//var ig2 = Core.Graph.FindGraph(GraphType.Default, core.GameSave.Mode);
PetGrid2.Visibility = Visibility.Collapsed;
@ -84,17 +84,17 @@ namespace VPet_Simulator.Core
//{
// Thread.Sleep(100);
//}//新功能:等待所有图像加载完成再跑
foreach(var igs in Core.Graph.GraphsList.Values)
foreach (var igs in Core.Graph.GraphsList.Values)
{
foreach(var ig2 in igs.Values)
foreach (var ig2 in igs.Values)
{
foreach(var ig3 in ig2)
foreach (var ig3 in ig2)
{
while (!ig3.IsReady)
{
Thread.Sleep(100);
}
}
}
}
}
@ -381,7 +381,7 @@ namespace VPet_Simulator.Core
private DateTime wavespan;
private void MainGrid_MouseWave(object sender, MouseEventArgs e)
{
if(e.LeftButton == MouseButtonState.Pressed)
if (e.LeftButton == MouseButtonState.Pressed)
return;
isPress = false;
if (rasetype >= 0 || State != WorkingState.Nomal)

View File

@ -295,15 +295,24 @@ namespace VPet_Simulator.Core
{
var idelname = list[i];
var ig = Core.Graph.FindGraphs(idelname, AnimatType.A_Start, Core.Save.Mode);
if (ig != null)
if (ig != null && ig.Count != 0)
{
looptimes = 0;
CountNomal = 0;
DisplayBLoopingToNomal(idelname, Core.Graph.GraphConfig.GetDuration(idelname));
Display(ig[Function.Rnd.Next(ig.Count)], () =>
DisplayBLoopingToNomal(idelname, Core.Graph.GraphConfig.GetDuration(idelname)));
return true;
}
else
{
ig = Core.Graph.FindGraphs(idelname, AnimatType.Single, Core.Save.Mode);
if (ig != null && ig.Count != 0)
{
looptimes = 0;
CountNomal = 0;
Display(ig[Function.Rnd.Next(ig.Count)], DisplayToNomal);
return true;
}
list.RemoveAt(i);
}
}

View File

@ -26,7 +26,7 @@
<PackageReference Include="LinePutScript" Version="1.10.2" />
<PackageReference Include="LinePutScript.Localization.WPF" Version="1.0.6" />
<PackageReference Include="Panuon.WPF" Version="1.0.3" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.16.8" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.17.3" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">

View File

@ -52,6 +52,8 @@ namespace VPet_Simulator.Windows.Interface
/// <returns>是否超模</returns>
public static bool IsOverLoad(this Work work)
{//判断这个工作是否超模
if (work.LevelLimit > 1000)
return true;
if (work.FinishBonus < 0)
return true;
var spend = work.Spend();

View File

@ -10,7 +10,9 @@ using System.Security.Cryptography;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using VPet_Simulator.Core;
using static System.Net.Mime.MediaTypeNames;
namespace VPet_Simulator.Windows.Interface
{
@ -31,7 +33,7 @@ namespace VPet_Simulator.Windows.Interface
{
if (lps.FindLine("statistics") == null)
{//尝试从老存档加载
Statistics = oldStatistics;
Statistics = oldStatistics ?? new Statistics();
}
else
{
@ -46,8 +48,26 @@ namespace VPet_Simulator.Windows.Interface
hash = vpet.GetInt64("hash");
if (vpet.Remove("hash"))
{
HashCheck = vpet.GetLongHashCode() == hash;
nohashcheck = false;
try
{
using (MD5 md5 = MD5.Create())
{
long hs = BitConverter.ToInt64(md5.ComputeHash(Encoding.UTF8.GetBytes(vpet.Name)), 0)
* 2 + BitConverter.ToInt64(md5.ComputeHash(Encoding.UTF8.GetBytes(vpet.info)), 0)
* 3 + BitConverter.ToInt64(md5.ComputeHash(Encoding.UTF8.GetBytes(vpet.text)), 0) * 4;
foreach (ISub su in vpet.ToList())
{
hs += BitConverter.ToInt64(md5.ComputeHash(Encoding.UTF8.GetBytes(su.Name)), 0) * 2
+ BitConverter.ToInt64(md5.ComputeHash(Encoding.UTF8.GetBytes(su.Info)), 0) * 3;
}
HashCheck = hs == hash;
}
}
catch
{
nohashcheck = true;
}
}
}
else if (oldGameSave != null)

View File

@ -1,6 +1,7 @@
using LinePutScript;
using LinePutScript.Dictionary;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using VPet_Simulator.Core;
@ -146,7 +147,13 @@ namespace VPet_Simulator.Windows.Interface
/// 如果你的mod属于作弊mod/有作弊内容,请在作弊前调用这个方法
/// </summary>
void HashCheckOff();
/// <summary>
/// 游戏打开过的窗口, 会在退出时统一调用退出
/// </summary>
List<Window> Windows { get; set; }
/// <summary>
/// 游戏存档数据
/// </summary>
GameSave_v2 GameSavesData { get; }
}

View File

@ -145,7 +145,7 @@ namespace VPet_Simulator.Windows.Interface
/// </summary>
public int BackupSaveMaxNum
{
get => Math.Max(GetInt("bakupsave", 30), 1);
get => Math.Max(GetInt("bakupsave", 50), 1);
set => SetInt("bakupsave", value);
}
/// <summary>
@ -222,7 +222,7 @@ namespace VPet_Simulator.Windows.Interface
{
get
{
int list = GetInt("savetimes", 100000) + 1 ;
int list = GetInt("savetimes", 100000) + 1;
SetInt("savetimes", list);
return list;
}
@ -419,7 +419,7 @@ namespace VPet_Simulator.Windows.Interface
/// </summary>
public double MusicCatch
{
get => this["gameconfig"].GetDouble("musiccatch", 0.3);
get => Math.Max(this["gameconfig"].GetDouble("musiccatch", 0.3), 0.02);
set => this["gameconfig"].SetDouble("musiccatch", value);
}
/// <summary>
@ -427,7 +427,7 @@ namespace VPet_Simulator.Windows.Interface
/// </summary>
public double MusicMax
{
get => this["gameconfig"].GetDouble("musicmax", 0.70);
get => Math.Max(this["gameconfig"].GetDouble("musicmax", 0.70), 0.02);
set => this["gameconfig"].SetDouble("musicmax", value);
}
/// <summary>

View File

@ -19,6 +19,6 @@
<PackageReference Include="LinePutScript" Version="1.10.2" />
<PackageReference Include="LinePutScript.Localization.WPF" Version="1.0.6" />
<PackageReference Include="Panuon.WPF" Version="1.0.3" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.16.8" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.17.3" />
</ItemGroup>
</Project>

View File

@ -231,6 +231,17 @@ namespace VPet_Simulator.Windows
string authtype = "";
foreach (FileInfo tmpfi in di.EnumerateFiles("*.dll"))
{
#if X64
if (tmpfi.Name.Contains("x86"))
{
continue;
}
#else
if (tmpfi.Name.Contains("x64"))
{
continue;
}
#endif
try
{
var path = tmpfi.Name;

View File

@ -34,9 +34,9 @@ using Application = System.Windows.Application;
using Line = LinePutScript.Line;
using static VPet_Simulator.Windows.Interface.ExtensionFunction;
using Image = System.Windows.Controls.Image;
#if SteamOutput
using VPet.Solution;
#endif
namespace VPet_Simulator.Windows
{
public partial class MainWindow : IMainWindow
@ -335,9 +335,16 @@ namespace VPet_Simulator.Windows
startInfo.UseShellExecute = false;
Process.Start(startInfo);
}
catch (Exception e)
catch
{
MessageBoxX.Show("快捷键运行失败:无法运行指定内容".Translate() + '\n' + e.Message);
try
{
Process.Start(content);
}
catch (Exception e)
{
MessageBoxX.Show("快捷键运行失败:无法运行指定内容".Translate() + '\n' + e.Message);
}
}
}
else if (content.Contains("://"))
@ -380,7 +387,7 @@ namespace VPet_Simulator.Windows
{
if (Set.AutoBuy && Core.Save.Money >= 100)
{
var havemoney = Core.Save.Money * 1.2 - 120;
var havemoney = Core.Save.Money * 0.8;
List<Food> food = Foods.FindAll(x => x.Price >= 2 && x.Health >= 0 && x.Exp >= 0 && x.Likability >= 0 && x.Price < havemoney //桌宠不吃负面的食物
&& !x.IsOverLoad() // 不吃超模食物
);
@ -719,6 +726,18 @@ namespace VPet_Simulator.Windows
if (tmp.GameSave.Money == 0 && tmp.GameSave.Likability == 0 && tmp.GameSave.Exp == 0
&& tmp.GameSave.StrengthDrink == 0 && tmp.GameSave.StrengthFood == 0)//数据全是0,可能是bug
return false;
if (tmp.GameSave.Exp < -1000000000)
{
tmp.GameSave.Exp = 1000000;
tmp.Data[(gbol)"round"] = true;
Dispatcher.Invoke(() => MessageBoxX.Show("检测到经验值超过 9,223,372,036 导致算数溢出\n已经自动回正".Translate(), "数据溢出警告".Translate()));
}
if (tmp.GameSave.Money < -1000000000)
{
tmp.GameSave.Money = 100000;
Dispatcher.Invoke(() => MessageBoxX.Show("检测到金钱超过 9,223,372,036 导致算数溢出\n已经自动回正".Translate(), "数据溢出警告".Translate()));
}
GameSavesData = tmp;
Core.Save = tmp.GameSave;
HashCheck = HashCheck;
@ -899,8 +918,8 @@ namespace VPet_Simulator.Windows
CurrMusicType = null;
MusicTimer.Start();
Task.Run(() =>
{//等2秒看看识别结果
Thread.Sleep(2500);
{//等3秒看看识别结果
Thread.Sleep(3000);
if (CurrMusicType != null && Main.IsIdel)
{//识别通过,开始跑跳舞动画
@ -941,7 +960,7 @@ namespace VPet_Simulator.Windows
return;
catch_MusicVolSum += AudioPlayingVolume();
catch_MusicVolCount++;
if (catch_MusicVolCount >= 20)
if (catch_MusicVolCount >= 10)
{
double ans = catch_MusicVolSum / catch_MusicVolCount;
catch_MusicVolSum /= 4;
@ -1414,7 +1433,7 @@ namespace VPet_Simulator.Windows
}
//音乐识别timer加载
MusicTimer = new System.Timers.Timer(100)
MusicTimer = new System.Timers.Timer(200)
{
AutoReset = false
};
@ -1428,11 +1447,19 @@ namespace VPet_Simulator.Windows
LoadingText.Content = "尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待".Translate();
Core.Graph = petloader.Graph(Set.Resolution);
#if NewYear
//临时更新:新年进入动画,
if (DateTime.Now < new DateTime(2024, 2, 19))
{
Main = new Main(Core, startUPGraph: Core.Graph.FindGraph("newyear", AnimatType.Single, Core.Save.Mode));
}
else
#endif
Main = new Main(Core);
Main.NoFunctionMOD = Set.CalFunState;
LoadingText.Content = "正在加载游戏".Translate();
LoadingText.Content = "正在加载游戏\n该步骤可能会耗时比较长\n请耐心等待".Translate();
//加载数据合理化:工作
@ -1770,24 +1797,17 @@ namespace VPet_Simulator.Windows
Main.Say("哼哼~主人,我的考试成绩出炉了哦,快来和我一起看我的成绩单喵".Translate(), "shining");
});
}
#if DEMO
else
#if NewYear
//仅新年功能
if (DateTime.Now < new DateTime(2024, 2, 18))
{
notifyIcon.ShowBalloonTip(10, "正式版更新通知".Translate(), //本次更新内容
"虚拟桌宠模拟器 现已发布正式版, 赶快前往下载吧!", ToolTipIcon.Info);
Process.Start("https://store.steampowered.com/app/1920960/VPet/");
Main.TimeHandle += NewYearHandle;
Task.Run(() =>
{
Thread.Sleep(5000);
NewYearSay();
});
}
#else
//else if (Set["SingleTips"].GetDateTime("update") <= new DateTime(2023, 8, 11) && LocalizeCore.CurrentCulture.StartsWith("cn"))
//{
// if (Set["SingleTips"].GetDateTime("update") > new DateTime(2023, 8, 1)) // 上次更新日期时间
// notifyIcon.ShowBalloonTip(10, "更新通知 08/11", //本次更新内容
// "新增跳舞功能,桌宠会在播放音乐的时候跳舞\n新增不开心大部分系列动画\n更好买支持翻页", ToolTipIcon.Info);
// else// 累计更新内容
// notifyIcon.ShowBalloonTip(10, "更新通知 08/01",
// "更新了新的动画系统\n新增桌宠会在播放音乐的时候跳舞\n新增不开心大部分系列动画\n更好买支持翻页", ToolTipIcon.Info);
// Set["SingleTips"].SetDateTime("update", DateTime.Now);
//}
#endif
//MOD报错
foreach (CoreMOD cm in CoreMODs)
@ -1814,6 +1834,56 @@ namespace VPet_Simulator.Windows
//}
}
#if NewYear
int newyearsay = 0;
private void NewYearHandle(Main main)
{
if (DateTime.Now.Hour == 0 && newyearsay != DateTime.Now.Day)
{//跨时间
NewYearSay();
}
}
/// <summary>
/// 新年说
/// </summary>
private void NewYearSay()
{
newyearsay = DateTime.Now.Day;
string sayny;
switch (newyearsay)
{
default:
case 9:
sayny = "除夕除夕,燃炮祭祖,贴春联,换窗花,主人来一起吃年夜饭!一起包饺砸!{0}祝主人新年快乐!饺子饺子饺饺子!".Translate(GameSavesData.GameSave.Name);
break;
case 10:
sayny = "初一初一,开门炮仗,主人~恭喜发财,红包拿来~".Translate();
break;
case 11:
sayny = "初二初二,回娘家去,左手一只鸡,右手一只鸭,一起回家吧主人~".Translate();
break;
case 12:
sayny = "初三初三,晚起早睡,不待客,过年辛苦了主人,好好休息吧~".Translate();
break;
case 13:
sayny = "初四初四,接五路,迎灶神,吃折箩,恭迎灶神爷!绝对不是肚子饿了!".Translate();
break;
case 14:
sayny = "初五初五,赶五穷!拿扫帚把垃圾清扫出去!把脏东西都赶出去!今日宜,清屏工作。".Translate();
break;
case 15:
sayny = "初六初六,送穷鬼,辞旧迎新,送走旧日贫穷困苦,迎接新一年!诶诶,别赶我啊。".Translate();
break;
case 16:
sayny = "初七初七,登高出游,戴人胜,人胜是一种头饰,又叫彩胜,华胜,从晋朝开始有剪彩为花、剪彩戴在头发上哦。主人我好看吗~".Translate();
break;
case 17:
sayny = "初八初八,放生祈福,拜谷神,今天是假期最后一天了,和主人过年很开心哦,最后~主人~您还有许多事需要处理,现在还不能休息哦~".Translate();
break;
}
Main.SayRnd(sayny);
}
#endif
/// <summary>
/// 显示捏脸情况
/// </summary>

View File

@ -37,12 +37,12 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;X64</DefineConstants>
<DefineConstants>$(DefineConstants);X64</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE;X64</DefineConstants>
<DefineConstants>$(DefineConstants);X64</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<PlatformTarget>x86</PlatformTarget>
@ -125,11 +125,6 @@
<Resource Include="Res\remixicon.ttf" />
<Resource Include="vpeticon.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\VPet-Simulator.Core\VPet-Simulator.Core.csproj" />
<ProjectReference Include="..\VPet-Simulator.Windows.Interface\VPet-Simulator.Windows.Interface.csproj" />
<ProjectReference Include="..\VPet.Solution\VPet.Solution.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
@ -241,6 +236,10 @@
<PackageReference Include="LinePutScript.Localization.WPF" Version="1.0.6" />
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Panuon.WPF" Version="1.0.3" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.16.8" />
<PackageReference Include="Panuon.WPF.UI" Version="1.1.17.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\VPet-Simulator.Core\VPet-Simulator.Core.csproj" />
<ProjectReference Include="..\VPet-Simulator.Windows.Interface\VPet-Simulator.Windows.Interface.csproj" />
</ItemGroup>
</Project>

View File

@ -714,7 +714,7 @@
<TextBlock Grid.Row="0" VerticalAlignment="Center" Text="{ll:Str 触发音量}"
ToolTip="{ll:Str 当实时播放音量达到该值时运行音乐动作}" />
<Slider x:Name="VoiceCatchSilder" Grid.Column="2" VerticalAlignment="Center"
IsSnapToTickEnabled="True" LargeChange=".5" Maximum="1" Minimum="0"
IsSnapToTickEnabled="True" LargeChange=".5" Maximum="1" Minimum="0.02"
SmallChange=".02" Style="{DynamicResource StandardSliderStyle}" TickFrequency="0.01"
ToolTip="{ll:Str 当实时播放音量达到该值时运行音乐动作}" ValueChanged="VoiceCatchSilder_ValueChanged"
Value="0.3" />

View File

@ -1272,8 +1272,7 @@ namespace VPet_Simulator.Windows
{
try
{
var l = new LPS(File.ReadAllText(path));
GameSave_v2 gs = new GameSave_v2(l);
GameSave_v2 gs = new GameSave_v2(new LPS(File.ReadAllText(path)));
if (MessageBoxX.Show("存档名称:{0}\n存档等级:{1}\n存档金钱:{2}\nHashCheck:{3}\n是否加载该备份存档? 当前游戏数据会丢失"
.Translate(gs.GameSave.Name, gs.GameSave.Level, gs.GameSave.Money, gs.HashCheck), "是否加载该备份存档? 当前游戏数据会丢失".Translate(), MessageBoxButton.YesNo, MessageBoxIcon.Info) == MessageBoxResult.Yes)
{
@ -1284,7 +1283,7 @@ namespace VPet_Simulator.Windows
mw.Main.WorkTimer.Visibility = Visibility.Collapsed;
mw.Main.State = Main.WorkingState.Nomal;
}
if (!mw.SavesLoad(l))
if (!mw.SavesLoad(new LPS(File.ReadAllText(path))))
MessageBoxX.Show("存档损毁,无法加载该存档\n可能是上次储存出错或Steam云同步导致的\n请在设置中加载备份还原存档", "存档损毁".Translate());
}
catch (Exception ex)
@ -1441,7 +1440,7 @@ namespace VPet_Simulator.Windows
if (oldsave.HashCheck) // 对于重开无作弊的玩家保留统计
{
mw.GameSavesData.Statistics = oldsave.Statistics;
if(oldsave.GameSave.Money > 10000000 || oldsave.GameSave.Money < -1000000000 || oldsave.GameSave.Exp > 100000000 || oldsave.GameSave.Exp < -10000000000)
if (oldsave.GameSave.Money > 10000000 || oldsave.GameSave.Money < -1000000000 || oldsave.GameSave.Exp > 100000000 || oldsave.GameSave.Exp < -10000000000)
{
mw.Core.Save.Money = 10000;
mw.Core.Save.Exp = 10000;

View File

@ -5,6 +5,7 @@ mklink /d "%~dp0\bin\x64\Debug\net462\mod" "%~dp0\mod"
echo The following is the automatic link generation for other related MODs. If an error is prompted, it is a normal phenomenon and can be ignored
mklink /d "%~dp0\bin\x86\Debug\net462\mod" "%~dp0\mod"
mklink /d "%~dp0\bin\x64\Release\net462\mod" "%~dp0\mod"
mklink /d "%~dp0\..\VPet.Solution\bin\Debug\mod" "%~dp0\mod"

View File

@ -227,7 +227,7 @@ text#Text Set:|
直播中#Livestreaming:|
和桌宠说#Send message:|
按 Ctrl+Enter 发送#Press Ctrl+Enter to send:|
正在加载游戏#Loading game:|
正在加载游戏\n该步骤可能会耗时比较长\n请耐心等待#Loading the game\nThis step may take a long time\nPlease be patient:|
退出桌宠#Exit:|
开发控制台#Console:|
反馈中心#Feedback:|

View File

@ -1,3 +1,6 @@
由于操作系统的设计通过我们软件启动的程序可能会在任务管理器中归类为我们软件的子进程这可能导致CPU/内存占用显示较高#Due to the design of the operating system, programs launched by our software may be categorized as sub-processes of our software in the task manager, which may result in higher displayed CPU/memory usage.:|
关于CPU/内存占用显示较高的一次性提示#One-time Notice Regarding Higher Displayed CPU/Memory Usage:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#Attempting to load animations and generate cache\nThis step may take a while\nPlease be patient:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#Attempting to load animations and generate cache\nThis step may take a while\nPlease be patient:|
检测到经验值超过 9,223,372,036 导致算数溢出\n已经自动回正#Detected experience value exceeding 9,223,372,036 causing arithmetic overflow\nAutomatically corrected:|
检测到金钱超过 9,223,372,036 导致算数溢出\n已经自动回正#Detected money exceeding 9,223,372,036 causing arithmetic overflow\nAutomatically corrected:|
数据溢出警告#Data Overflow Warning:|

View File

@ -17,4 +17,13 @@
圣诞草莓奶茶#Christmas strawberry milk tea:|
圣诞草莓奶茶_giftintor#I don't know why it's Christmas cream tea and not Christmas cake, maybe the artist likes Christmas strawberry cream tea:|
萝莉丝姜饼人#Gingerbread Lolis:|
萝莉丝姜饼人_giftintor#Lolis made her own gingerbread man, and Lolis would get mad if she couldn't eat it because it was too cute!:|
萝莉丝姜饼人_giftintor#Lolis made her own gingerbread man, and Lolis would get mad if she couldn't eat it because it was too cute!:|
初三初三,晚起早睡,不待客,过年辛苦了主人,好好休息吧~#The third day of the first month, get up late and go to bed early, don't wait for guests, happy new year, master, have a good rest~:|
初二初二,回娘家去,左手一只鸡,右手一只鸭,一起回家吧主人~#The second day of the first month, go back to your mother's house, a chicken in your left hand, a duck in your right hand, let's go home together, master~:|
初一初一,开门炮仗,主人~恭喜发财,红包拿来~#The first day of the first month, open the door and set off firecrackers, master~ Congratulations on making a fortune, bring me a red envelope~:|
除夕除夕,燃炮祭祖,贴春联,换窗花,主人来一起吃年夜饭!一起包饺砸!{0}祝主人新年快乐!饺子饺子饺饺子!#New Year's Eve, set off firecrackers to worship ancestors, paste spring couplets, change window flowers, master, come and have a New Year's Eve dinner together! Let's make dumplings together! {0} wishes the master a happy new year! Dumplings dumplings dumplings!:|
初四初四,接五路,迎灶神,吃折箩,恭迎灶神爷!绝对不是肚子饿了!#The fourth day of the first month, meet the five roads, welcome the kitchen god, eat the zheluo, welcome the kitchen god! Absolutely not hungry!:|
初五初五,赶五穷!拿扫帚把垃圾清扫出去!把脏东西都赶出去!今日宜,清屏工作。#The fifth day of the first month, drive away the five poor! Use a broom to sweep away the garbage! Drive away the dirty things! Today is suitable for clearing the screen.:|
初六初六,送穷鬼,辞旧迎新,送走旧日贫穷困苦,迎接新一年!诶诶,别赶我啊。#The sixth day of the first month, send the poor ghost, bid farewell to the old and welcome the new, send away the old poverty and hardship, and welcome the new year! Hey hey, don't drive me away.:|
初七初七,登高出游,戴人胜,人胜是一种头饰,又叫彩胜,华胜,从晋朝开始有剪彩为花、剪彩戴在头发上哦。主人我好看吗~#The seventh day of the first month, go out to climb high, wear a human victory, human victory is a kind of headdress, also called colored victory, Hua victory, from the Jin Dynasty began to cut colored flowers, cut colored hair on the head oh. Master, do I look good~:|
初八初八,放生祈福,拜谷神,今天是假期最后一天了,和主人过年很开心哦,最后~主人~您还有许多事需要处理,现在还不能休息哦~#The eighth day of the first month, release life and pray for blessings, worship the god of grain, today is the last day of the holiday, and I am very happy to spend the New Year with the master, finally~ master~ you still have many things to deal with, you can't rest now~:|

View File

@ -227,7 +227,7 @@ text#文本集:|
直播中#直播中:|
和桌宠说#和桌宠说:|
按 Ctrl+Enter 发送#按 Ctrl+Enter 发送:|
正在加载游戏#正在加载游戏:|
正在加载游戏\n该步骤可能会耗时比较长\n请耐心等待#正在加载游戏\n该步骤可能会耗时比较长\n请耐心等待:|
退出桌宠#退出桌宠:|
开发控制台#开发控制台:|
反馈中心#反馈中心:|

View File

@ -1,3 +1,6 @@
由于操作系统的设计通过我们软件启动的程序可能会在任务管理器中归类为我们软件的子进程这可能导致CPU/内存占用显示较高#由于操作系统的设计通过我们软件启动的程序可能会在任务管理器中归类为我们软件的子进程这可能导致CPU/内存占用显示较高:|
关于CPU/内存占用显示较高的一次性提示#关于CPU/内存占用显示较高的一次性提示:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待:|
检测到经验值超过 9,223,372,036 导致算数溢出\n已经自动回正#检测到经验值超过 9,223,372,036 导致算数溢出\n已经自动回正:|
检测到金钱超过 9,223,372,036 导致算数溢出\n已经自动回正#检测到金钱超过 9,223,372,036 导致算数溢出\n已经自动回正:|
数据溢出警告#数据溢出警告:|

View File

@ -17,4 +17,13 @@
圣诞草莓奶茶#圣诞草莓奶茶:|
圣诞草莓奶茶_giftintor#我不知道为什么是圣诞奶茶而不是圣诞蛋糕,可能画师喜欢圣诞草莓奶茶吧:|
萝莉丝姜饼人#萝莉丝姜饼人:|
萝莉丝姜饼人_giftintor#萝莉丝做的自己样子的姜饼人,要是因为太可爱舍不得吃萝莉丝会生气的哦:|
萝莉丝姜饼人_giftintor#萝莉丝做的自己样子的姜饼人,要是因为太可爱舍不得吃萝莉丝会生气的哦:|
初三初三,晚起早睡,不待客,过年辛苦了主人,好好休息吧~#初三初三,晚起早睡,不待客,过年辛苦了主人,好好休息吧~:|
初二初二,回娘家去,左手一只鸡,右手一只鸭,一起回家吧主人~#初二初二,回娘家去,左手一只鸡,右手一只鸭,一起回家吧主人~:|
初一初一,开门炮仗,主人~恭喜发财,红包拿来~#初一初一,开门炮仗,主人~恭喜发财,红包拿来~:|
除夕除夕,燃炮祭祖,贴春联,换窗花,主人来一起吃年夜饭!一起包饺砸!{0}祝主人新年快乐!饺子饺子饺饺子!#除夕除夕,燃炮祭祖,贴春联,换窗花,主人来一起吃年夜饭!一起包饺砸!{0}祝主人新年快乐!饺子饺子饺饺子!:|
初四初四,接五路,迎灶神,吃折箩,恭迎灶神爷!绝对不是肚子饿了!#初四初四,接五路,迎灶神,吃折箩,恭迎灶神爷!绝对不是肚子饿了!:|
初五初五,赶五穷!拿扫帚把垃圾清扫出去!把脏东西都赶出去!今日宜,清屏工作。#初五初五,赶五穷!拿扫帚把垃圾清扫出去!把脏东西都赶出去!今日宜,清屏工作。:|
初六初六,送穷鬼,辞旧迎新,送走旧日贫穷困苦,迎接新一年!诶诶,别赶我啊。#初六初六,送穷鬼,辞旧迎新,送走旧日贫穷困苦,迎接新一年!诶诶,别赶我啊。:|
初七初七,登高出游,戴人胜,人胜是一种头饰,又叫彩胜,华胜,从晋朝开始有剪彩为花、剪彩戴在头发上哦。主人我好看吗~#初七初七,登高出游,戴人胜,人胜是一种头饰,又叫彩胜,华胜,从晋朝开始有剪彩为花、剪彩戴在头发上哦。主人我好看吗~:|
初八初八,放生祈福,拜谷神,今天是假期最后一天了,和主人过年很开心哦,最后~主人~您还有许多事需要处理,现在还不能休息哦~#初八初八,放生祈福,拜谷神,今天是假期最后一天了,和主人过年很开心哦,最后~主人~您还有许多事需要处理,现在还不能休息哦~:|

View File

@ -227,7 +227,7 @@ text#對話文字:|
直播中#實況中:|
和桌宠说#和桌寵說:|
按 Ctrl+Enter 发送#按Ctrl+Enter傳送:|
正在加载游戏#正在載入遊戲…:|
正在加载游戏\n该步骤可能会耗时比较长\n请耐心等待#正在載入遊戲\n該步驟可能會耗時比較長\n請耐心等待:|
退出桌宠#退出桌寵:|
开发控制台#開發控制台:|
反馈中心#意見回饋中心:|

View File

@ -1,3 +1,6 @@
由于操作系统的设计通过我们软件启动的程序可能会在任务管理器中归类为我们软件的子进程这可能导致CPU/内存占用显示较高#由於操作系統的設計透過我們軟體啟動的程序可能會在任務管理器中歸類為我們軟體的子進程這可能導致CPU/內存占用顯示較高:|
关于CPU/内存占用显示较高的一次性提示#關於CPU/內存占用顯示較高的一次性提示:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#嘗試加載動畫和生成緩存\n該步驟可能會耗時比較長\n請耐心等待:|
由于操作系统的设计通过我们软件启动的程序可能会在任务管理器中归类为我们软件的子进程这可能导致CPU/内存占用显示较高#因作業系統的設計透過本軟體啟動的程式可能會在工作管理員中被歸於本程式的子程序這可能使CPU記憶體使用率顯示成較平常高的數值:|
关于CPU/内存占用显示较高的一次性提示#關於CPU記憶體使用率顯示較高的一次性提示:|
尝试加载动画和生成缓存\n该步骤可能会耗时比较长\n请耐心等待#嘗試載入動畫並產生快取\n該步驟可能會耗時比較長\n請耐心等待:|
检测到经验值超过 9,223,372,036 导致算数溢出\n已经自动回正#偵測到經驗值超過 9,223,372,036 導致算術溢位\n已經自動修正:|
检测到金钱超过 9,223,372,036 导致算数溢出\n已经自动回正#偵測到金錢超過 9,223,372,036 導致算術溢位\n已經自動修正:|
数据溢出警告#數據溢出警告:|

View File

@ -7,7 +7,7 @@
主人sbeam秋季促销开始了哦还有游戏大奖赛快去给{name}去投一票吧。#主人sbeam秋季促銷開始了哦還有遊戲大獎賽快去給{name}去投一票吧。:|
主人主人,{name}参加了sbeam大奖赛哦给人家投一票喵#主人主人,{name}參加了sbeam大獎賽哦給人家投一票喵:|
那个。。主人。。\n人家参加了sbeam大奖赛哦。能不能。。给{name}投一票呢~#那個。。主人。。\n人家參加了sbeam大獎賽哦。能不能。。給{name}投一票呢~:|
电脑里有一款《虚拟桌宠模拟器》的游戏正在参加2023的sbeam大奖赛快来给桌宠投一票吧#電腦裡有一款《虛擬桌寵模擬器》的遊戲正在參加2023的sbeam大獎賽快來給桌寵投一票吧:|
电脑里有一款《虚拟桌宠模拟器》的游戏正在参加2023的sbeam大奖赛快来给桌宠投一票吧#電腦裡有一款《虛擬桌寵模擬器》的遊戲正在參加2023的sbeam大獎賽快來給桌寵投一票吧:|
圣诞帽#聖誕帽:|
圣诞帽_giftintor#一頂普通的帽子,但帶上它誰都可以成為聖誕老人:|
礼物盒子#禮物盒子:|
@ -17,4 +17,13 @@
圣诞草莓奶茶#聖誕草莓奶茶:|
圣诞草莓奶茶_giftintor#我不知道為什麼是聖誕奶茶而不是聖誕蛋糕,可能繪師喜歡聖誕草莓奶茶吧:|
萝莉丝姜饼人#蘿莉斯薑餅人:|
萝莉丝姜饼人_giftintor#蘿莉絲做的自己樣子的薑餅人,要是因為太可愛捨不得吃蘿莉絲會生氣的哦:|
萝莉丝姜饼人_giftintor#蘿莉斯做的自己樣子的薑餅人,要是因為太可愛而捨不得吃,蘿莉絲會生氣的哦:|
初三初三,晚起早睡,不待客,过年辛苦了主人,好好休息吧~#初一早,初二早,初三睡到飽。過年辛苦了主人,今天初三好好休息吧~:|
初二初二,回娘家去,左手一只鸡,右手一只鸭,一起回家吧主人~#初二回娘家,左手一隻雞,右手一隻鴨,一起回家吧主人~:|
初一初一,开门炮仗,主人~恭喜发财,红包拿来~#初一拜拜走春領紅包,主人~恭喜發財,紅包拿來~:|
除夕除夕,燃炮祭祖,贴春联,换窗花,主人来一起吃年夜饭!一起包饺砸!{0}祝主人新年快乐!饺子饺子饺饺子!#除夕祭祖守歲貼春聯,主人來一起吃年夜飯!一起包餃砸!{0}祝主人新年快樂!餃子餃子餃餃子!:|
初四初四,接五路,迎灶神,吃折箩,恭迎灶神爷!绝对不是肚子饿了!#初四接神日,迎灶神,安太歲,點光明燈。恭迎灶神爺!(絕對不是肚子餓了!):|
初五初五,赶五穷!拿扫帚把垃圾清扫出去!把脏东西都赶出去!今日宜,清屏工作。#初五隔開迎財神!把垃圾拿出去,從外往內掃地!把髒東西都趕出去,金銀財寶帶回家!今日宜,清理畫面。:|
初六初六,送穷鬼,辞旧迎新,送走旧日贫穷困苦,迎接新一年!诶诶,别赶我啊。#初六開工送窮神,辭舊迎新。送走舊日貧窮困苦,迎接新一年!欸欸,別趕我啊!:|
初七初七,登高出游,戴人胜,人胜是一种头饰,又叫彩胜,华胜,从晋朝开始有剪彩为花、剪彩戴在头发上哦。主人我好看吗~#初七人日,出遊登高,不可罵下屬或孩子。略略略~今天做什麼事情都不會被罵~:|
初八初八,放生祈福,拜谷神,今天是假期最后一天了,和主人过年很开心哦,最后~主人~您还有许多事需要处理,现在还不能休息哦~#初八榖日順星節,點金燈,祭八仙。雖然主人這時已在上班,但希望主人還是能開開心心的。:|

View File

@ -1,10 +1,10 @@
VPET 设置编辑器#VPET設定編輯器:|
打开文件#打開文件:|
从资源管理器打开文件#從資料總管打開文件:|
打开文件#打開檔案:|
从资源管理器打开文件#從檔案總管打開檔案:|
重置#重置:|
全部保存#全部存:|
Mod管理#Mod管理:|
保存为退出位置#存為退出位置:|
全部保存#全部存:|
Mod管理#模組管理:|
保存为退出位置#存為退出位置:|
设为当前位置#設為當前位置:|
设为当前窗口左上角顶点坐标的位置#設為當前視窗左上角頂點座標的位置:|
每次间隔#每次間隔:|
@ -14,10 +14,10 @@ Mod管理#Mod管理:|
启用桌宠状态#啟用桌寵狀態:|
分钟左右主动进行一次互动 (走路发呆爬墙等) #分鐘左右主動進行一次互動(走路發呆爬牆等):|
清空全部#清空全部:|
搜索名称#蒐索名稱:|
链接#鏈接:|
搜索名称#搜尋名稱:|
链接#連結:|
每周期一次#每週期一次:|
搜索模组#蒐索模組:|
搜索模组#搜尋模組:|
清除失效模组#清除失效模組:|
清除全部模组#清除全部模組:|
模组名称:#模組名稱::|
@ -28,13 +28,13 @@ Mod管理#Mod管理:|
启用模组#啟用模組:|
启用模组代码#啟用模組程式碼:|
打开所在文件夹#打開所在資料夾:|
打开创意工坊页面#打開創意工坊頁面:|
打开创意工坊页面#打開工坊頁面:|
VPET 存档查看器#VPET存檔檢視器:|
搜索存档#蒐索存檔:|
保存时间#存時間:|
游玩时长#遊時長:|
搜索存档#搜尋存檔:|
保存时间#存時間:|
游玩时长#遊時長:|
数据#數據:|
保存日期#存日期:|
保存日期#存日期:|
模式#模式:|
等级#等級:|
哈希检查#雜湊檢查:|
@ -45,4 +45,4 @@ VPET 问题解决工具#VPET問題解决工具:|
打开翻译文本#打開翻譯文字:|
全部重置#全部重置:|
哈希#雜湊:|
第一次启动桌宠打不开?#第一次啟動桌寵打不開?:|
第一次启动桌宠打不开?#第一次啟動,桌寵打不開?:|

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Some files were not shown because too many files have changed in this diff Show More