修改时间容器前
This commit is contained in:
@@ -868,13 +868,16 @@ int squirrel::New_STL(uint32_t v)
|
||||
|
||||
//时间 STL
|
||||
#if defined TIME_STL
|
||||
extern std::map<wchar_t*, TimeSTLStruct>Time_STL;
|
||||
//时间容器线程
|
||||
void TimeSTL(LPVOID lpParam)
|
||||
{
|
||||
TimeSTLStruct *pack = (TimeSTLStruct*)lpParam;//得到传递的包
|
||||
std::wcout << "线程启动:" << pack->Name << std::endl;
|
||||
Time_STL[pack->Name].Static_Time = (int)GetTickCount64();//设置时间容器的基准时间
|
||||
while (true)//线程循环
|
||||
{
|
||||
Sleep(10);
|
||||
int N_Time = (int)GetTickCount64() - Time_STL[pack->Name].Static_Time;//得到现在的时间
|
||||
if (N_Time < Time_STL[pack->Name].Max_Time)//如果还没到 设定新的now时间
|
||||
{
|
||||
@@ -905,7 +908,7 @@ int squirrel::Timer_STL(uint32_t v)
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case 0: {//设置时间容器
|
||||
case 0: //设置时间容器
|
||||
if (Time_STL.count(Name) != 0)//如果这个标识容器存在 就返回 否则创建
|
||||
{
|
||||
SQPushBool(v, false);
|
||||
@@ -918,24 +921,25 @@ int squirrel::Timer_STL(uint32_t v)
|
||||
pack.Static_Time = 0;//设置 基础时间(用于运算)
|
||||
pack.Thand = NULL;//设置句柄为空
|
||||
Time_STL[Name] = pack;//设置包给标识时间容器
|
||||
break; }
|
||||
case 1: {//启动时间容器
|
||||
break;
|
||||
case 1: //启动时间容器
|
||||
if (Time_STL[Name].Thand == NULL)//只有句柄为空的时候new线程
|
||||
{
|
||||
DWORD threadID;//线程ID
|
||||
Time_STL[Name].Now_Time = 0;//设置当前容器时间
|
||||
Time_STL[Name].Thand = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)TimeSTL, &Time_STL[Name], 0, &threadID);//创建一个新线程 开始计算时间 并把线程赋予给容器
|
||||
}
|
||||
break; }
|
||||
break;
|
||||
case 2://获取时间容器
|
||||
SQPushInt(v, Time_STL[Name].Now_Time);//返回当前容器时间
|
||||
return 1;
|
||||
break;
|
||||
case 3://重置时间容器
|
||||
SuspendThread(Time_STL[Name].Thand);//挂起线程
|
||||
//SuspendThread(Time_STL[Name].Thand);//挂起线程
|
||||
CloseHandle(Time_STL[Name].Thand);//销毁线程
|
||||
Time_STL[Name].Static_Time = 0;//基准时间设置为0
|
||||
Time_STL[Name].Thand = NULL;
|
||||
ResumeThread(Time_STL[Name].Thand);//启动线程
|
||||
//ResumeThread(Time_STL[Name].Thand);//启动线程
|
||||
break;
|
||||
case 4://暂停时间容器
|
||||
SuspendThread(Time_STL[Name].Thand);//挂起线程
|
||||
@@ -1284,6 +1288,34 @@ int squirrel::Jsoner_STL(uint32_t v)
|
||||
Json_STL[Name] = jsonBuffer.GetString();
|
||||
SQPushBool(v, true);
|
||||
}
|
||||
else if (ParameterNum == 5)
|
||||
{
|
||||
//获取容器名字
|
||||
SQGetString(v, 2, &WName);
|
||||
char* CName = DNFTOOL::wchar_tTochar(WName);
|
||||
std::string Name = CName;
|
||||
|
||||
//获取Str 的内容
|
||||
wchar_t* str;
|
||||
SQGetString(v, 3, &str);
|
||||
//转化为可用内容
|
||||
char* Jso = DNFTOOL::wchar_tTochar(str);
|
||||
|
||||
//获取类型
|
||||
int Type;
|
||||
SQGetInt(v, 4, &Type);
|
||||
switch (Type)
|
||||
{
|
||||
case 0:
|
||||
Json_STL[Name] = Jso;
|
||||
break;
|
||||
case 1:
|
||||
if(Json_STL[Name].empty())Json_STL[Name] = Jso;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SQPushBool(v, false);
|
||||
|
||||
Reference in New Issue
Block a user