int gsc_mysql_real_connect() { int mysql; char *host; char *user; char *pass; char *db; int port; int helper = 0; helper += stackGetParamInt(1, &mysql); helper += stackGetParamString(2, &host); helper += stackGetParamString(3, &user); helper += stackGetParamString(4, &pass); helper += stackGetParamString(5, &db); helper += stackGetParamInt(6, &port); #if DEBUG_MYSQL printf_hide("gsc_mysql_real_connect(mysql=%d, host=\"%s\", user=\"%s\", pass=\"%s\", db=\"%s\", port=%d)\n", mysql, host, user, pass, db, port); #endif if (helper != 6) { printf_hide("scriptengine> wrongs args for mysql_real_connect(...);\n"); return stackPushUndefined(); } mysql = (int) mysql_real_connect((MYSQL *)mysql, host, user, pass, db, port, NULL, 0); return stackReturnInt(mysql); }
int gsc_mysql_real_escape_string() { int mysql; char *str; int helper = 0; helper += stackGetParamInt(1, &mysql); helper += stackGetParamString(2, &str); #if DEBUG_MYSQL printf_hide("gsc_mysql_real_escape_string(%d, \"%s\")\n", mysql, str); #endif if (helper != 2) { printf_hide("scriptengine> wrongs args for mysql_real_escape_string(...);\n"); return stackPushUndefined(); } char *to = (char *) malloc(strlen(str) * 2 + 1); int ret = mysql_real_escape_string((MYSQL *)mysql, to, str, strlen(str)); int retString = stackPushString(to); free(to); return retString; }
void gsc_free_slot() { int id = 0; if(!stackGetParamInt(0, &id)) { printf("Param 0 needs to be an int for free_slot\n"); stackPushUndefined(); return; } int entity = PLAYERBASE(id); *(int*)entity = 0; //CS_FREE stackPushUndefined(); }
int gsc_memory_int_set() { int memory; int value; int helper = 0; helper += stackGetParamInt(1, &memory); helper += stackGetParamInt(2, &value); #if DEBUG_MEMORY printf("gsc_memory_int_set(memory=%d, value=%d)\n", memory, value); #endif if (helper != 2) { printf_hide("scriptengine> wrongs args for gsc_memory_int_set(memory, value);\n"); return stackReturnInt(0); } *(int*)memory = value; return stackReturnInt(1); }
int gsc_mysql_stmt_bind_result() { int mysql_stmt; int result; int helper = 0; helper += stackGetParamInt(1, &mysql_stmt); helper += stackGetParamInt(2, &result); #if DEBUG_MYSQL printf_hide("gsc_mysql_stmt_bind_result(mysql_stmt=%d, result=%d)\n", mysql_stmt, result); #endif if (helper != 2) { printf_hide("scriptengine> wrongs args for gsc_mysql_stmt_bind_result(mysql_stmt, result);\n"); return stackReturnInt(0); } int ret = mysql_stmt_bind_result((MYSQL_STMT*)mysql_stmt, (MYSQL_BIND*)result); return stackReturnInt(ret); }
int gsc_mysql_field_seek() { int result; int offset; int helper = 0; helper += stackGetParamInt(1, &result); helper += stackGetParamInt(2, &offset); #if DEBUG_MYSQL printf_hide("gsc_mysql_field_seek(result=%d, offset=%d)\n", result, offset); #endif if (helper != 2) { printf_hide("scriptengine> wrongs args for mysql_field_seek(result, offset);\n"); return stackPushUndefined(); } int ret = mysql_field_seek((MYSQL_RES *)result, offset); return stackReturnInt(ret); }
int gsc_mysql_stmt_prepare() { int mysql_stmt; char *sql; int len; int helper = 0; helper += stackGetParamInt(1, &mysql_stmt); helper += stackGetParamString(2, &sql); helper += stackGetParamInt(3, &len); #if DEBUG_MYSQL printf_hide("gsc_mysql_stmt_prepare(mysql_stmt=%d, sql=%s)\n", mysql_stmt, sql); #endif if (helper != 3) { printf_hide("scriptengine> wrongs args for gsc_mysql_stmt_prepare(mysql_stmt);\n"); return stackReturnInt(0); } int ret = mysql_stmt_prepare((MYSQL_STMT*)mysql_stmt, sql, len); return stackReturnInt(ret); }
int gsc_memory_memset() { int memory; int value; int bytes; int helper = 0; helper += stackGetParamInt(1, &memory); helper += stackGetParamInt(2, &value); helper += stackGetParamInt(3, &bytes); #if DEBUG_MEMORY printf("gsc_memory_memset(memory=%d, value=%d, bytes=%d)\n", memory, value, bytes); #endif if (helper != 3) { printf_hide("scriptengine> wrongs args for gsc_memory_memset(memory, value, bytes);\n"); return stackReturnInt(0); } memset((void*)memory, value, bytes); return stackReturnInt(1); }
int gsc_mysql_fetch_row() { int result; int helper = 0; helper += stackGetParamInt(1, &result); #if DEBUG_MYSQL printf_hide("gsc_mysql_fetch_row(result=%d)\n", result); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_fetch_row(result);\n"); return stackPushUndefined(); } MYSQL_ROW row = mysql_fetch_row((MYSQL_RES *)result); if (!row) { #if DEBUG_MYSQL printf_hide("row == NULL\n"); #endif return stackPushUndefined(); } int ret = alloc_object_and_push_to_array(); int numfields = mysql_num_fields((MYSQL_RES *)result); for (int i=0; i<numfields; i++) { if (row[i] == NULL) stackPushUndefined(); else stackPushString(row[i]); #if DEBUG_MYSQL printf_hide("row == \"%s\"\n", row[i]); #endif push_previous_var_in_array_sub(); } return ret; }
int gsc_mysql_error() { int mysql; int helper = 0; helper += stackGetParamInt(1, &mysql); #if DEBUG_MYSQL printf_hide("gsc_mysql_error(%d)\n", mysql); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_close(mysql);\n"); return stackPushUndefined(); } char *ret = (char *)mysql_error((MYSQL *)mysql); return stackPushString(ret); }
int gsc_mysql_affected_rows() { int mysql; int helper = 0; helper += stackGetParamInt(1, &mysql); #if DEBUG_MYSQL printf_hide("gsc_mysql_affected_rows(%d)\n", mysql); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_affected_rows(mysql);\n"); return stackPushUndefined(); } int ret = mysql_affected_rows((MYSQL *)mysql); return stackReturnInt(ret); }
int gsc_mysql_stmt_get_field_count() { int mysql_stmt; int helper = 0; helper += stackGetParamInt(1, &mysql_stmt); #if DEBUG_MYSQL printf_hide("gsc_mysql_stmt_get_field_count(mysql_stmt=%d)\n", mysql_stmt); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for gsc_mysql_stmt_get_field_count(mysql_stmt);\n"); return stackReturnInt(0); } int ret = ((MYSQL_STMT*)mysql_stmt)->field_count; return stackReturnInt(ret); }
int gsc_mysql_free_result() { int result; int helper = 0; helper += stackGetParamInt(1, &result); #if DEBUG_MYSQL printf_hide("gsc_mysql_free_result(result=%d)\n", result); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_free_result(result);\n"); return stackPushUndefined(); } mysql_free_result((MYSQL_RES *)result); return stackPushUndefined(); }
int gsc_memory_int_get() { int memory; int helper = 0; helper += stackGetParamInt(1, &memory); #if DEBUG_MEMORY printf("gsc_memory_int_get(memory=%d)\n", memory); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for gsc_memory_int_get(memory);\n"); return stackReturnInt(0); } int ret = *(int*)memory; return stackReturnInt(ret); }
int gsc_mysql_query() { int mysql; char *sql; int helper = 0; helper += stackGetParamInt(1, &mysql); helper += stackGetParamString(2, &sql); #if DEBUG_MYSQL printf_hide("gsc_mysql_query(%d, \"%s\")\n", mysql, sql); #endif if (helper != 2) { printf_hide("scriptengine> wrongs args for mysql_query(...);\n"); return stackPushUndefined(); } int ret = mysql_query((MYSQL *)mysql, sql); return stackReturnInt(ret); }
int gsc_memory_malloc() { int bytes; int helper = 0; helper += stackGetParamInt(1, &bytes); printf_hide("GANZ NORMALES ASD"); #if DEBUG_MEMORY printf("gsc_memory_malloc(bytes=%d)\n", bytes); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for gsc_memory_malloc(bytes);\n"); return stackReturnInt(0); } int ret = (int) malloc(bytes); return stackReturnInt(ret); }
int gsc_mysql_stmt_init() { int mysql; int helper = 0; helper += stackGetParamInt(1, &mysql); #if DEBUG_MYSQL printf_hide("gsc_mysql_stmt_init(mysql=%d)\n", mysql); // print as %d, cause i cant print it with hex in .gsc #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for gsc_mysql_stmt_init(mysql);\n"); return stackReturnInt(0); } MYSQL_STMT *stmt; stmt = mysql_stmt_init((MYSQL*)mysql); int ret = (int) stmt; return stackReturnInt(ret); }
int gsc_mysql_store_result() { int mysql; int helper = 0; helper += stackGetParamInt(1, &mysql); #if DEBUG_MYSQL printf_hide("gsc_mysql_store_result(%d)\n", mysql); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_store_result(mysql);\n"); return stackPushUndefined(); } MYSQL_RES *result; result = mysql_store_result((MYSQL *)mysql); int ret = (int) result; return stackReturnInt(ret); }
int gsc_mysql_fetch_field() { int result; int helper = 0; helper += stackGetParamInt(1, &result); #if DEBUG_MYSQL printf_hide("gsc_mysql_fetch_field(result=%d)\n", result); #endif if (helper != 1) { printf_hide("scriptengine> wrongs args for mysql_fetch_field(result);\n"); return stackPushUndefined(); } MYSQL_FIELD *field = mysql_fetch_field((MYSQL_RES *)result); if (field == NULL) return stackPushUndefined(); char *ret = field->name; return stackPushString(ret); }
void gsc_exec_async_create_nosave() { char *command; int callback; if (!stackGetParamString(0, &command)) { stackError("gsc_exec_async_create_nosave() argument is undefined or has wrong type"); stackPushUndefined(); return; } Com_DPrintf("gsc_exec_async_create_nosave() executing: %s\n", command); exec_async_task *current = first_exec_async_task; while (current != NULL && current->next != NULL) current = current->next; exec_async_task *newtask = new exec_async_task; strncpy(newtask->command, command, COD2_MAX_STRINGLENGTH - 1); newtask->command[COD2_MAX_STRINGLENGTH - 1] = '\0'; newtask->output = NULL; newtask->prev = current; newtask->next = NULL; if (!stackGetParamFunction(1, &callback)) newtask->callback = 0; else newtask->callback = callback; newtask->done = false; newtask->save = false; newtask->error = false; newtask->levelId = scrVarPub.levelId; newtask->hasargument = true; int valueInt; float valueFloat; char *valueString; vec3_t valueVector; unsigned int valueObject; if (stackGetParamInt(2, &valueInt)) { newtask->valueType = INT_VALUE; newtask->intValue = valueInt; } else if (stackGetParamFloat(2, &valueFloat)) { newtask->valueType = FLOAT_VALUE; newtask->floatValue = valueFloat; } else if (stackGetParamString(2, &valueString)) { newtask->valueType = STRING_VALUE; strcpy(newtask->stringValue, valueString); } else if (stackGetParamVector(2, valueVector)) { newtask->valueType = VECTOR_VALUE; newtask->vectorValue[0] = valueVector[0]; newtask->vectorValue[1] = valueVector[1]; newtask->vectorValue[2] = valueVector[2]; } else if (stackGetParamObject(2, &valueObject)) { newtask->valueType = OBJECT_VALUE; newtask->objectValue = valueObject; } else newtask->hasargument = false; if (current != NULL) current->next = newtask; else first_exec_async_task = newtask; pthread_t exec_doer; if (pthread_create(&exec_doer, NULL, exec_async, newtask) != 0) { stackError("gsc_exec_async_create_nosave() error creating exec async handler thread!"); stackPushUndefined(); return; } if (pthread_detach(exec_doer) != 0) { stackError("gsc_exec_async_create_nosave() error detaching exec async handler thread!"); stackPushUndefined(); return; } stackPushInt(1); }