public Int32 ScriptMain([In] object[] ScriptParameters, [In] Int32 DefaultReturnCode) { Int32 ReturnCode; int RequestType = (int)ScriptParameters[0]; int P0 = (int)ScriptParameters[1]; int P2 = (int)ScriptParameters[2]; string P3 = (string)ScriptParameters[3]; string P4 = (string)ScriptParameters[4]; string P5 = (string)ScriptParameters[5]; uint P6 = (uint)ScriptParameters[6]; switch ((REQUEST_TYPE)RequestType) { case REQUEST_TYPE.EXECUTE_UPDATER_SCRIPT: { ReturnCode = ExecuteUpdaterScript() ? TRUE : FALSE; } break; case REQUEST_TYPE.CREATE_AREA_INSTANCE: { uint ReturnArea = CreateAreaInstance(P6); if (ReturnArea == OBJECT_INVALID) { ReturnCode = FALSE; } else { ReturnCode = TRUE; SetLocalObject(GetModule(), "ACR_SERVER_MISC_RETURN_OBJECT", ReturnArea); } } break; case REQUEST_TYPE.RELEASE_AREA_INSTANCE: { ReleaseInstancedArea(P6); ReturnCode = TRUE; } break; case REQUEST_TYPE.SET_DICTIONARY_VALUE: { DictionarySetString(P3, P4, P5); ReturnCode = TRUE; } break; case REQUEST_TYPE.GET_DICTIONARY_VALUE: { string ReturnValue; bool CompletedOk = DictionaryGetString(P3, P4, out ReturnValue); if (!CompletedOk) { ReturnCode = FALSE; } else { SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", ReturnValue); ReturnCode = TRUE; } } break; case REQUEST_TYPE.FIRST_ITERATE_DICTIONARY: { string ReturnKey; bool CompletedOk = DictionaryIterateFirst(P3, out ReturnKey); if (!CompletedOk) { ReturnCode = FALSE; } else { SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", ReturnKey); ReturnCode = TRUE; } } break; case REQUEST_TYPE.NEXT_ITERATE_DICTIONARY: { string ReturnKey; bool CompletedOk = DictionaryIterateNext(P3, out ReturnKey); if (!CompletedOk) { ReturnCode = FALSE; } else { SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", ReturnKey); ReturnCode = TRUE; } } break; case REQUEST_TYPE.DELETE_DICTIONARY_KEY: { DictionaryDeleteKey(P3, P4); ReturnCode = TRUE; } break; case REQUEST_TYPE.CLEAR_DICTIONARY: { DictionaryClear(P3); ReturnCode = TRUE; } break; case REQUEST_TYPE.RUN_POWERSHELL_SCRIPTLET: { ReturnCode = RunPowerShellScriptlet(P3, P6) ? TRUE : FALSE; } break; case REQUEST_TYPE.CREATE_DATABASE_CONNECTION: { ReturnCode = ScriptDatabaseConnection.CreateScriptDatabaseConnection(P3, (ScriptDatabaseConnectionFlags)P0); } break; case REQUEST_TYPE.DESTROY_DATABASE_CONNECTION: { ReturnCode = ScriptDatabaseConnection.DestroyDatabaseConnection(P0) ? TRUE : FALSE; } break; case REQUEST_TYPE.QUERY_DATABASE_CONNECTION: { ReturnCode = ScriptDatabaseConnection.QueryDatabaseConnection(P0, P3, this) ? TRUE : FALSE; } break; case REQUEST_TYPE.FETCH_DATABASE_CONNECTION: { ReturnCode = ScriptDatabaseConnection.FetchDatabaseConnection(P0, this) ? TRUE : FALSE; } break; case REQUEST_TYPE.GET_COLUMN_DATABASE_CONNECTION: { string Data = ScriptDatabaseConnection.GetColumnDatabaseConnection(P0, P2, this); if (Data == null) { ReturnCode = FALSE; } else { SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", Data); ReturnCode = TRUE; } } break; case REQUEST_TYPE.GET_AFFECTED_ROW_COUNT_DATABASE_CONNECTION: { ReturnCode = ScriptDatabaseConnection.GetAffectedRowCountDatabaseConnection(P0, this); } break; case REQUEST_TYPE.ESCAPE_STRING_DATABASE_CONNECTION: { string Data = ScriptDatabaseConnection.EscapeStringDatabaseConnection(P0, P3, this); if (Data == null) { ReturnCode = FALSE; } else { SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", Data); ReturnCode = TRUE; } } break; case REQUEST_TYPE.GET_STACK_TRACE: { StackTrace Trace = new StackTrace(true); SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", Trace.ToString()); ReturnCode = TRUE; } break; case REQUEST_TYPE.GET_SALTED_MD5: { string SaltedMD5 = GetSaltedMD5(P3); SetLocalString(GetModule(), "ACR_SERVER_MISC_RETURN_STRING", SaltedMD5); ReturnCode = TRUE; } break; case REQUEST_TYPE.GET_HAS_DATABASE_STORE: { string Campaign = P3; ReturnCode = CampaignObjectFileStore.GetHasDatabaseStore(Campaign) ? TRUE : FALSE; } break; case REQUEST_TYPE.DELETE_DATABASE_STORE: { string Campaign = P3; ReturnCode = CampaignObjectFileStore.DeleteDatabaseStore(Campaign) ? TRUE : FALSE; } break; case REQUEST_TYPE.DELETE_DATABASE_STORE_AT_INDEX: { string Campaign = P3; int Index = P0; ReturnCode = CampaignObjectFileStore.DeleteDatabaseStoreAtIndex(Campaign, Index) ? TRUE : FALSE; } break; case REQUEST_TYPE.SHOW_COMPILER_LOG: { string FileName = String.Format("{0}{1}ALFAModuleRecompile.log", Path.GetTempPath(), Path.DirectorySeparatorChar); SendMessageToPC(OBJECT_SELF, "Last module recompilation log:"); try { SendMessageToPC(OBJECT_SELF, File.ReadAllText(FileName)); } catch (Exception) { SendMessageToPC(OBJECT_SELF, "<no log file exists>"); } ReturnCode = TRUE; } break; case REQUEST_TYPE.RESTART_SERVER: { ALFA.SystemInfo.ShutdownGameServer(this); ReturnCode = TRUE; } break; default: throw new ApplicationException("Invalid server misc command " + RequestType.ToString()); } return(ReturnCode); }