Skip to content

Commit

Permalink
asdad
Browse files Browse the repository at this point in the history
  • Loading branch information
WtzLAS committed Nov 7, 2023
1 parent 2633cc6 commit af83a7f
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 1 deletion.
3 changes: 2 additions & 1 deletion NorthstarDLL/NorthstarDLL.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>MinHook.x64.lib;zlibstatic.lib;kcp.lib;libcrypto_static.lib;libssl_static.lib;imgui.lib;libcurl\lib\libcurl_a.lib;dbghelp.lib;Wldap32.lib;Normaliz.lib;version.lib;crypt32.lib;imm32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>MinHook.x64.lib;zlibstatic.lib;kcp.lib;libcrypto_static.lib;libssl_static.lib;imgui.lib;libcurl\lib\libcurl_a.lib;dbghelp.lib;Wldap32.lib;Normaliz.lib;version.lib;crypt32.lib;imm32.lib;libsvm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ForceSymbolReferences>
</ForceSymbolReferences>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
Expand Down Expand Up @@ -231,6 +231,7 @@
<ClInclude Include="scripts\scriptjson.h" />
<ClInclude Include="scripts\scriptmasterservermessages.h" />
<ClInclude Include="scripts\scriptmatchmakingevents.h" />
<ClInclude Include="scripts\scriptsvm.h" />
<ClInclude Include="server\auth\bansystem.h" />
<ClInclude Include="server\auth\serverauthentication.h" />
<ClInclude Include="server\r2server.h" />
Expand Down
3 changes: 3 additions & 0 deletions NorthstarDLL/NorthstarDLL.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,9 @@
<ClInclude Include="scripts\scriptjson.h">
<Filter>Header Files\scripts</Filter>
</ClInclude>
<ClInclude Include="scripts\scriptsvm.h">
<Filter>Header Files\scripts</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="client\audio.cpp">
Expand Down
29 changes: 29 additions & 0 deletions NorthstarDLL/scripts/scriptsvm.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once

#include <svm.h>


// userdata NSSvmTrain(players origin)
SQRESULT NSSvmTrain(HSquirrelVM* sqvm)
{
//g_pSquirrel<ScriptContext::SERVER>->__sq_get
return SQRESULT_NOTNULL;
}

// integer NSSvmPredict(point origin)
SQRESULT NSSvmPredict(HSquirrelVM* sqvm)
{
Vector3 vec = g_pSquirrel<ScriptContext::CLIENT>->getvector(sqvm,-1);

// code

g_pSquirrel<ScriptContext::SERVER>->pushinteger(sqvm,1);
return SQRESULT_NOTNULL;
}


ON_DLL_LOAD_CLIENT_RELIESON("client.dll", ScriptPlayerInfo, ClientSquirrel, (CModule module))
{
g_pSquirrel<ScriptContext::SERVER>->AddFuncRegistration("userdata", "NSSvmTrain", "", "", NSSvmTrain);
g_pSquirrel<ScriptContext::SERVER>->AddFuncRegistration("int", "NSSvmPredict", "vector origin", "", NSSvmPredict);
}
Binary file modified include/imgui.lib
Binary file not shown.
Binary file modified include/kcp.lib
Binary file not shown.
Binary file added include/libsvm.lib
Binary file not shown.
104 changes: 104 additions & 0 deletions include/svm.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#ifndef _LIBSVM_H
#define _LIBSVM_H

#define LIBSVM_VERSION 325

#ifdef __cplusplus
extern "C" {
#endif

extern int libsvm_version;

struct svm_node
{
int index;
double value;
};

struct svm_problem
{
int l;
double *y;
struct svm_node **x;
};

enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */
enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */

struct svm_parameter
{
int svm_type;
int kernel_type;
int degree; /* for poly */
double gamma; /* for poly/rbf/sigmoid */
double coef0; /* for poly/sigmoid */

/* these are for training only */
double cache_size; /* in MB */
double eps; /* stopping criteria */
double C; /* for C_SVC, EPSILON_SVR and NU_SVR */
int nr_weight; /* for C_SVC */
int *weight_label; /* for C_SVC */
double* weight; /* for C_SVC */
double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */
double p; /* for EPSILON_SVR */
int shrinking; /* use the shrinking heuristics */
int probability; /* do probability estimates */
};

//
// svm_model
//
struct svm_model
{
struct svm_parameter param; /* parameter */
int nr_class; /* number of classes, = 2 in regression/one class svm */
int l; /* total #SV */
struct svm_node **SV; /* SVs (SV[l]) */
double **sv_coef; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */
double *rho; /* constants in decision functions (rho[k*(k-1)/2]) */
double *probA; /* pariwise probability information */
double *probB;
int *sv_indices; /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */

/* for classification only */

int *label; /* label of each class (label[k]) */
int *nSV; /* number of SVs for each class (nSV[k]) */
/* nSV[0] + nSV[1] + ... + nSV[k-1] = l */
/* XXX */
int free_sv; /* 1 if svm_model is created by svm_load_model*/
/* 0 if svm_model is created by svm_train */
};

struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);

int svm_save_model(const char *model_file_name, const struct svm_model *model);
struct svm_model *svm_load_model(const char *model_file_name);

int svm_get_svm_type(const struct svm_model *model);
int svm_get_nr_class(const struct svm_model *model);
void svm_get_labels(const struct svm_model *model, int *label);
void svm_get_sv_indices(const struct svm_model *model, int *sv_indices);
int svm_get_nr_sv(const struct svm_model *model);
double svm_get_svr_probability(const struct svm_model *model);

double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);
double svm_predict(const struct svm_model *model, const struct svm_node *x);
double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);

void svm_free_model_content(struct svm_model *model_ptr);
void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr);
void svm_destroy_param(struct svm_parameter *param);

const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);
int svm_check_probability_model(const struct svm_model *model);

void svm_set_print_string_function(void (*print_func)(const char *));

#ifdef __cplusplus
}
#endif

#endif /* _LIBSVM_H */

0 comments on commit af83a7f

Please sign in to comment.