📄 px_ls_module_work.c
字号:
free_module_rs_resource();
ls_uninit_subproc();
uninit_winsock2();
set_ls_state(STATE_MAIN_NO_INIT);
return;
}
//handle rs
if (valid_module_rs_state(STATE_MODULE_RUN)) {
handle_module_rs_recv_buf();
}else if (valid_module_rs_state(STATE_MODULE_INIT_DONE)) {
SetEvent(h_event_routing);
}else if (valid_module_rs_state(STATE_MODULE_NO_INIT)) {
init_module_rs();
}else if (valid_module_rs_state(STATE_MODULE_INACTIVE)) {
abort_all_client_trade();
abort_all_client_lottery();
abort_all_client_roup();
abort_all_client_chat_radio();
abort_all_client_chat_video();
abort_all_client_marriage();
abort_all_client_pk_pvp();
abort_all_client_pk_tvt();
abort_all_client_pk_wvw();
abort_all_client_battle_guid();
abort_all_client_war_guid();
abort_all_client_team();
abort_all_client_master_prentice();
abort_all_client_discharge_skill();
abort_all_client_passive_effect();
save_all_client_data();
close_all_client();
if (g_time_service->curr_frame_theory - g_state->frame_module_rs > 5*g_performance->ls_default_frame) {
close_module_rs();
free_module_rs_resource();
set_module_rs_state(STATE_MODULE_NO_INIT);
}
}else if (valid_module_rs_state(STATE_MODULE_ERROR_FOUND)) {
abort_all_client_trade();
abort_all_client_lottery();
abort_all_client_roup();
abort_all_client_chat_radio();
abort_all_client_chat_video();
abort_all_client_marriage();
abort_all_client_pk_pvp();
abort_all_client_pk_tvt();
abort_all_client_pk_wvw();
abort_all_client_battle_guid();
abort_all_client_war_guid();
abort_all_client_team();
abort_all_client_master_prentice();
abort_all_client_discharge_skill();
abort_all_client_passive_effect();
save_all_client_data();
close_all_client();
close_module_rs();
free_module_rs_resource();
set_module_rs_state(STATE_MODULE_NO_INIT);
}
handle_all_client_preserve_messagecode();
handle_all_client_discharge_skill();
handle_all_client_passive_effect();
handle_all_npc_staff();
handle_all_monster_staff();
handle_all_client_staff();
handle_all_npc_ai();
handle_all_monster_ai();
handle_all_trap_ai();
refresh_trap();
refresh_monster();
refresh_npc();
handle_all_client_data_save();
handle_all_client_heartbreak();
handle_all_client_data_send();
handle_time_service_end();
return;
}
void ls_do_state_request_close(){
handle_time_service_start();
calculate_ls_performance();
//handle dbes
if (valid_module_dbes_state(STATE_MODULE_RUN)) {
handle_module_dbes_recv_buf();
}else if (valid_module_dbes_state(STATE_MODULE_INIT_DONE)) {
//
}else {
tell_module_rs_close_all_client();
tell_module_rs_ls_need_close();
Sleep(1000);
close_module_dbes();
close_module_rs();
free_module_dbes_resource();
free_module_rs_resource();
ls_uninit_subproc();
uninit_winsock2();
set_ls_state(STATE_MAIN_NO_INIT);
return;
}
//handle rs
if (valid_module_rs_state(STATE_MODULE_RUN)) {
handle_module_rs_recv_buf();
}else if (valid_module_rs_state(STATE_MODULE_INIT_DONE)) {
SetEvent(h_event_routing);
}else if (valid_module_rs_state(STATE_MODULE_NO_INIT)) {
//
}else if (valid_module_rs_state(STATE_MODULE_INACTIVE)) {
abort_all_client_trade();
abort_all_client_lottery();
abort_all_client_roup();
abort_all_client_chat_radio();
abort_all_client_chat_video();
abort_all_client_marriage();
abort_all_client_pk_pvp();
abort_all_client_pk_tvt();
abort_all_client_pk_wvw();
abort_all_client_battle_guid();
abort_all_client_war_guid();
abort_all_client_team();
abort_all_client_master_prentice();
abort_all_client_discharge_skill();
abort_all_client_passive_effect();
save_all_client_data();
close_all_client();
if (g_time_service->curr_frame_theory - g_state->frame_module_rs > 5*g_performance->ls_default_frame) {
close_module_rs();
free_module_rs_resource();
set_module_rs_state(STATE_MODULE_NO_INIT);
}
}else if (valid_module_rs_state(STATE_MODULE_ERROR_FOUND)) {
abort_all_client_trade();
abort_all_client_lottery();
abort_all_client_roup();
abort_all_client_chat_radio();
abort_all_client_chat_video();
abort_all_client_marriage();
abort_all_client_pk_pvp();
abort_all_client_pk_tvt();
abort_all_client_pk_wvw();
abort_all_client_battle_guid();
abort_all_client_war_guid();
abort_all_client_team();
abort_all_client_master_prentice();
abort_all_client_discharge_skill();
abort_all_client_passive_effect();
save_all_client_data();
close_all_client();
close_module_rs();
free_module_rs_resource();
set_module_rs_state(STATE_MODULE_NO_INIT);
}
handle_all_client_preserve_messagecode();
handle_all_client_discharge_skill();
handle_all_client_passive_effect();
handle_all_npc_staff();
handle_all_monster_staff();
handle_all_client_staff();
handle_all_npc_ai();
handle_all_monster_ai();
handle_all_trap_ai();
handle_all_client_data_save();
handle_all_client_heartbreak();
handle_all_client_data_send();
tell_module_rs_ls_need_close();
handle_time_service_end();
return;
}
void ls_do_state_closing(){
tell_module_rs_close_all_client();
tell_module_dbes_close_all_client();
Sleep(500);
close_module_rs();
close_module_dbes();
Sleep(1000);
return;
}
void ls_do_state_free_resource(){
free_module_rs_resource();
free_module_dbes_resource();
ls_uninit_subproc();
uninit_winsock2();
set_ls_state(STATE_MAIN_NO_INIT);
return;
}
void ls_do_state_error_found(){
close_module_rs();
close_module_dbes();
free_module_rs_resource();
free_module_dbes_resource();
ls_uninit_subproc();
uninit_winsock2();
set_ls_state(STATE_MAIN_NO_INIT);
return;
}
DWORD WINAPI ls_work_thread(PVOID paparm){
while (bln_run_workthread) {
EnterCriticalSection(g_state->cts_state);
switch(g_state->curr_state) {
case STATE_MAIN_NO_INIT:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_no_init();
break;
case STATE_MAIN_REQUEST_INIT:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_request_init();
break;
case STATE_MAIN_INIT_DONE:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_init_done();
break;
case STATE_MAIN_RUN:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_run();
break;
case STATE_MAIN_REQUEST_CLOSE:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_request_close();
break;
case STATE_MAIN_CLOSING:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_closing();
break;
case STATE_MAIN_FREE_RESOURCE:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_free_resource();
break;
case STATE_MAIN_ERROR_FOUND:
LeaveCriticalSection(g_state->curr_state);
ls_do_state_error_found();
break;
default:
LeaveCriticalSection(g_state->curr_state);
break;
}
}
return 0;
}
void init_winsock2(){
return;
}
void uninit_winsock2(){
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -