Ejemplo n.º 1
0
void GScr_SpawnHelicopter()
{
  const char *type;
  const char *model;
  gentity_t *newent;
  gentity_t *ownerent;
  vec3_t rotation;
  vec3_t position;

  ownerent = Scr_GetEntity(0);

  if ( !ownerent->client )
  {
    Scr_ParamError(0, "Owner entity is not a player");
  }
  Scr_GetVector(1, position);
  Scr_GetVector(2, rotation);
  type = Scr_GetString(3);
  model = Scr_GetString(4);

  newent = G_Spawn();

  Scr_SetString((unsigned short*)&newent->classname, (unsigned short)stringIndex.script_vehicle);

  newent->r.currentOrigin[0] = position[0];
  newent->r.currentOrigin[1] = position[1];
  newent->r.currentOrigin[2] = position[2];
  newent->r.currentAngles[0] = rotation[0];
  newent->r.currentAngles[1] = rotation[1];
  newent->r.currentAngles[2] = rotation[2];

  G_SpawnHelicopter(newent, ownerent, type, model);

  Scr_AddEntity(newent);
}
Ejemplo n.º 2
0
void GScr_FS_FOpen(){

    fileHandle_t fh = 0;

    if(Scr_GetNumParam() != 2)
        Scr_Error("Usage: FS_FOpen(<filename>, <mode>)\n");

    char* filename = Scr_GetString(0);
    char* mode = Scr_GetString(1);


    if(!Q_stricmp(mode, "read")){
        fh = Scr_OpenScriptFile( filename, SCR_FH_FILE, FS_READ);
    }else if(!Q_stricmp(mode, "write")){
        fh = Scr_OpenScriptFile( filename, SCR_FH_FILE, FS_WRITE);
    }else if(!Q_stricmp(mode, "append")){
        fh = Scr_OpenScriptFile( filename, SCR_FH_FILE, FS_APPEND);
    }else{
        Scr_Error("FS_FOpen(): invalid mode. Valid modes are: read, write, append\n");
    }

    if(!fh){
            Com_DPrintf("Scr_FS_FOpen() failed\n");
    }
    Scr_AddInt(fh);
}
Ejemplo n.º 3
0
void GScr_SetCvar()
{
  const char *newstringval;
  const char *var_name;
  char buffer[8192];
  mvabuf;


  var_name = Scr_GetString(0);
  if ( Scr_GetType(1) == 3 )
  {
    Scr_ConstructMessageString(1, Scr_GetNumParam() - 1, "Dvar Value", buffer, 0x400u);
    newstringval = buffer;
  }
  else
  {
    newstringval = Scr_GetString(1);
  }
  if (Cvar_ValidateString(var_name) )
  {
    Cvar_SetAllowCheatOnly(var_name, newstringval);
    if ( Scr_GetNumParam() > 2 && Scr_GetInt(2) )
    {
      Cvar_AddFlagsByName(var_name, 0x400u);
    }
  }
  else
  {
    Scr_Error(va("Cvar %s has an invalid cvar name", var_name));
  }
}
Ejemplo n.º 4
0
void __cdecl G_VehSpawner(gentity_t *ent)
{
    const char* value;
    char vehTypeStr[MAX_QPATH];

    if(level.spawnVars.isGameLoadingSpawn)
    {
        G_LevelSpawnString("vehicletype", 0, &value);

    }else{

        if(Scr_GetNumParam() == 3)
        {
            //Scr_Error("Usage: spawn(\"script_vehicle\", <origin>, <spawnflags>, <vehicletype>)");
            Q_strncpyz(vehTypeStr, "defaultvehicle_mp", sizeof(vehTypeStr));

        }else{

            Q_strncpyz(vehTypeStr, Scr_GetString(3), sizeof(vehTypeStr));

            if(Scr_GetNumParam() == 5)
            {
                G_SetModel(ent, Scr_GetString(4));
            }

        }
        value = vehTypeStr;
    }

    SpawnVehicle( ent, value );
}
void PHandler_MetFncExecute()
{
    Com_DPrintf("Attempting to execute a plugin script command '%s'.\n",Scr_GetString(0));
    if(!pluginFunctions.enabled){
        Com_DPrintf("Error! Tried executing a plugin command with plugins being disabled! Command name: '%s'.\n",Scr_GetString(1));
        return;
    }
    char name[128];
    int i,j;
    void (*func)();
    strcpy(name,Scr_GetString(0));
    for(i=0;i<MAX_PLUGINS;i++){
        if(pluginFunctions.plugins[i].loaded && pluginFunctions.plugins[i].enabled){
            for(j=0;j<pluginFunctions.plugins[i].cmds;j++)
                if(strcmp(name,pluginFunctions.plugins[i].scr_methods[j].name)==0){
                    Com_DPrintf("Executing plugin command '%s' for plugin '%s', plugin ID: %d.\n",name,pluginFunctions.plugins[i].name,i);
                    func = (void (*)())(pluginFunctions.plugins[i].scr_methods[j].xcommand);
		    pluginFunctions.hasControl = i;
                    func();
                    pluginFunctions.hasControl = PLUGIN_UNKNOWN;
                    return;
                    }
        }
    }
}
Ejemplo n.º 6
0
void GScr_fopen(int entityIndex) {
    char* name = Scr_GetString(0);
    char* mode = Scr_GetString(1);
    FILE* f = fopen(name, mode);
    if(f)
        Scr_AddInt((int)(f));
    else
        Scr_AddInt(-1);
}
Ejemplo n.º 7
0
void GScr_mysql_real_connect(int entityIndex) {
    MYSQL *m = (MYSQL*)Scr_GetInt(0);
    char* hostname = Scr_GetString(1);
    char* username = Scr_GetString(2);
    char* password = Scr_GetString(3);
    char* database = Scr_GetString(4);
    int port = Scr_GetInt(5);
    if(m != NULL) {
        MYSQL *c = mysql_real_connect(m, hostname, username, password, database, port, NULL, 0);
        Scr_AddInt((int)c);
    } else {
        Scr_AddUndefined();
    }
}
Ejemplo n.º 8
0
void PlayerCmd_GetUserinfo(scr_entref_t arg){

    gentity_t* gentity;
    int entityNum = 0;
    client_t *cl;
	mvabuf;


    if(HIWORD(arg)){

        Scr_ObjectError("Not an entity");

    }else{

        entityNum = LOWORD(arg);
        gentity = &g_entities[entityNum];

        if(!gentity->client){
            Scr_ObjectError(va("Entity: %i is not a player", entityNum));
        }
    }
    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: self getUserinfo( <string> )\n");
    }

    char* u_key = Scr_GetString(0);

    cl = &svs.clients[entityNum];

    char* value = Info_ValueForKey(cl->userinfo, u_key);

    Scr_AddString(value);
}
void GScr_CbufAddTextEx(){

    char string[1024];
    char outputbuf[1024];

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: execex(<string>)\n");
    }
    Com_sprintf(string, sizeof(string), "%s\n",Scr_GetString(0));

    cmd_exec_redirect_buf[0] = '\0';

    if(!Q_stricmpn(string, "map", 3) || !Q_stricmpn(string, "fast_restart", 12))
    {

        Cbuf_AddText( string );

    }else{

        Com_BeginRedirect(outputbuf, sizeof(outputbuf), GScr_CbufExecRedirect);
        Cmd_ExecuteSingleCommand(0,0, string);
        Com_EndRedirect();
        cmd_exec_redirect_buf[sizeof(cmd_exec_redirect_buf) -1] = '\0';

    }

    Scr_AddString( cmd_exec_redirect_buf );
}
Ejemplo n.º 10
0
void GScr_CopyString(){

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: CopyStr(<string>)\n");
    }
    Scr_AddString(Scr_GetString(0));
}
Ejemplo n.º 11
0
void GScr_mysql_real_escape_string(int entityIndex) {
    MYSQL *m = (MYSQL*)Scr_GetInt(0);
    char* escape = Scr_GetString(1);
    char* str = new char[strlen(escape) * 2 + 1];
    mysql_real_escape_string(m, str, escape, strlen(escape));
    Scr_AddString(str);
    delete[] str;
}
Ejemplo n.º 12
0
void GScr_mysql_real_escape_string(int entityIndex) {
    MYSQL *m = (MYSQL*)Scr_GetInt(0);
    char* escape = Scr_GetString(1);
    char* str = (char*)malloc(strlen(escape) * 2 + 1);
    mysql_real_escape_string(m, str, escape, strlen(escape));
    Scr_AddString(str);
    free(str);
}
Ejemplo n.º 13
0
void GScr_StrRepl(){

    char buffer[2048];

    if(Scr_GetNumParam() != 3){
        Scr_Error("Usage: StrReplace(<string>, <string>, <string>)\n");
    }

    char* string = Scr_GetString(0);
    char* find = Scr_GetString(1);
    char* replacement = Scr_GetString(2);

    Q_strnrepl(buffer, sizeof(buffer), string, find, replacement);
    buffer[sizeof(buffer) -1] = 0;

    Scr_AddString(buffer);
}
Ejemplo n.º 14
0
void GScr_fexists(int entityIndex) {
    char* name = Scr_GetString(0);
    if(FILE *f = fopen(name, "r")) {
        fclose(f);
        Scr_AddBool(true);
    } else {
        Scr_AddBool(false);
    }
}
Ejemplo n.º 15
0
void GScr_CbufAddText(){

    char string[1024];

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: exec(<string>)\n");
    }
    Com_sprintf(string, sizeof(string), "%s\n",Scr_GetString(0));
    Cbuf_AddText( string);
}
Ejemplo n.º 16
0
void GScr_fwrite(int entityIndex) {
    char* text = Scr_GetString(0);
    FILE *f = (FILE*)(Scr_GetInt(1));
    if(f == NULL) {
        Scr_AddBool(false);
    } else {
        Scr_AddBool(true);
        fprintf(f, text);
    }
}
Ejemplo n.º 17
0
void  GScr_GetCvarInt()
{
  const char *stringval;
  
  if(Scr_GetNumParam() != 1)
  {
	Scr_Error("Usage: getcvarint <cvarname>");
  }
  stringval = Cvar_GetVariantString(Scr_GetString(0));
  Scr_AddInt(atoi(stringval));
}
Ejemplo n.º 18
0
void GScr_FS_TestFile(){

    int fileExists;

    if(Scr_GetNumParam() != 1)
        Scr_Error("Usage: FS_TestFile(<filename>)\n");

    char* filename = Scr_GetString(0);
    fileExists = Scr_FileExists( filename );

    Scr_AddBool(fileExists);
}
Ejemplo n.º 19
0
void GScr_SHA256(){
    const char *hash;

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: sha256(<input text>)\n");
    }

    char* input = Scr_GetString(0);

    hash = Com_SHA256(input);

    Scr_AddString(hash);
}
Ejemplo n.º 20
0
void GScr_fsize(int entityIndex) {
    char* name = Scr_GetString(0);
    FILE *f = fopen(name, "r");
    size_t len;
    if(f) {
        fseek(f, 0, SEEK_END);
        len = ftell(f);
        rewind(f);
        Scr_AddInt((int)len);
    } else {
        Scr_AddInt(-1);
    }
}
Ejemplo n.º 21
0
void GScr_SpawnVehicle()
{

	int spawnflags;
	gentity_t *gentity;
	vec3_t origin;
	char vehTypeStr[MAX_QPATH];
	char vehModel[MAX_QPATH];

	Scr_GetVector(0, origin);

	if ( Scr_GetNumParam() != 4 )
	{
		Scr_Error("Usage: spawnvehicle <origin>, <spawnflags>, <vehicletype>, <xmodel>");
		return;
	}

	spawnflags = Scr_GetInt(1);

	gentity = G_Spawn();

	Scr_SetString((unsigned short*)&gentity->constClassname, (unsigned short)stringIndex.script_vehicle);

	gentity->r.currentOrigin[0] = origin[0];
	gentity->r.currentOrigin[1] = origin[1];
	gentity->r.currentOrigin[2] = origin[2];

	gentity->spawnflags = spawnflags;

        Q_strncpyz(vehTypeStr, Scr_GetString(2), sizeof(vehTypeStr));
        Q_strncpyz(vehModel, Scr_GetString(3), sizeof(vehModel));

        G_SetModel(gentity, vehModel);

	SpawnVehicle( gentity, vehTypeStr );
	G_VehCollmapSpawner( gentity );
	Scr_AddEntity( gentity );
}
Ejemplo n.º 22
0
void GScr_MakeCvarServerInfo(void)
{
	const char *var_name;
	cvar_t *var;
	const char *newstringval;
	signed int i;
	int num_args;
	char buffer_out[1024];
	char buffer[1024];

	var_name = Scr_GetString(0);
	var = Cvar_FindVar(var_name);
	if ( var )
	{
		Cvar_AddFlags(var, 0x100u);
		return;
	}

    if ( Scr_GetType(1) == 3 )
    {
		num_args = Scr_GetNumParam();
		Scr_ConstructMessageString(1, num_args - 1, "Dvar Value", buffer, sizeof(buffer));
		newstringval = buffer;
    }
    else
    {
		newstringval = Scr_GetString(1);
    }
	for(i = 0; i < sizeof(buffer) -1 && newstringval[i]; i++)
    {
		buffer_out[i] = I_CleanChar(newstringval[i]);
		if ( buffer_out[i] == '\"' )
			buffer_out[i] = '\'';
    }
    buffer_out[i] = 0;
    Cvar_RegisterString(var_name, newstringval, 0x4100u, "Script defined user info cvar");
}
void GScr_AddScriptCommand()
{

    if(Scr_GetNumParam() != 2)
    {
        Scr_Error("Usage: addScriptCommand <commandname> <default powerpoints is number between 1 and 100>");
        return;
    }
    const char* command = Scr_GetString(0);
    int defaultpower = Scr_GetInt(1);

    if(command[0] == '\0')
    {
        Scr_Error("addScriptCommand: empty command");
        return;
    }

    Cmd_AddCommandGeneric(command, NULL, GScr_ScriptCommandCB, qfalse, defaultpower);

}
void GScr_SHA256(){

    char hash[129];
    unsigned long size;

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: sha256(<input text>)\n");
    }

    char* input = Scr_GetString(0);

    size = sizeof(hash);

    if(!Sec_HashMemory(SEC_HASH_SHA256, input, strlen(input), hash, &size, qfalse))
    {
        hash[0] = '\0';
    }
    Scr_AddString(hash);

}
Ejemplo n.º 25
0
void GScr_StrColorStrip(){

    char buffer[2048];

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: StrColorStrip(<string>)\n");
    }

    char* string = Scr_GetString(0);

    int i;

    Q_strncpyz(buffer, string, sizeof(buffer));

    for(i=0; buffer[i]; i++){
        if(buffer[i] == '^' && buffer[i+1] >= '0' && buffer[i+1] <= '9'){
            buffer[i+1] = '7';
        }
    }
    Scr_AddString(buffer);
}
Ejemplo n.º 26
0
int closer()
{

	int a = Scr_GetInt(0);
	int b = Scr_GetInt(1);
	char* c = Scr_GetString(2);

	switch (a)
	{
		case 1: //getGuidNew
			Scr_AddInt(1);
			break;

		case 2: //login User
			Scr_AddInt(6666);
			break;

		case 3: //MySQL Query SELECT
		{
			MYSQL_RES *res = mySqlCon.gsc_mysql_query(c);
			MYSQL_ROW row = mySqlCon.gsc_mysql_fetch_row(res);
			Scr_AddString(row[0]);
			break;
		}
		case 4: //MySQL Query
		{
			if (!mySqlCon.gsc_mysql_query(c))
				Scr_AddInt(1);
			else
				Scr_AddInt(0);
			break;
		}

		default:
			Com_Printf("Unkown closer() command: %d\n", a);
	}

	return 1;
}
Ejemplo n.º 27
0
void GScr_FS_WriteLine(){
    int ret;
    char buffer[2048];

    if(Scr_GetNumParam() != 2)
        Scr_Error("Usage: FS_WriteLine(<filehandle>, <data>)\n");

    fileHandle_t fh = Scr_GetInt(0);
    char* data = Scr_GetString(1);

    Com_sprintf(buffer, sizeof(buffer), "%s\n", data);

    ret = Scr_FS_Write(buffer, strlen(buffer), fh);

    if(!ret)
    {
        Com_DPrintf("^2Scr_FS_WriteLine() failed\n");
        Scr_AddBool(qfalse);
    }else{
        Scr_AddBool(qtrue);
    }
}
void GScr_FS_Remove(){

    if(Scr_GetNumParam() != 1)
        Scr_Error("Usage: FS_Delete(<filename>)\n");

    char* qpath = Scr_GetString(0);

    if(!Scr_FS_AlreadyOpened(qpath))
    {
            Scr_Error("FS_Remove: Tried to delete an opened file!\n");
            Scr_AddBool(qfalse);
            return;
    }

    if(FS_HomeRemove(qpath))
    {
        Scr_AddBool(qtrue);

    }else{

        Scr_AddBool(qfalse);
    }
}
Ejemplo n.º 29
0
void GScr_TimeToString(){
    char timestring[128];
    char* format;
    struct tm *time_s;
    int zone;

    if(Scr_GetNumParam() != 3){
        Scr_Error("Usage: TimeToString(<realtime>, <UTC/Local>, <format>)\n");
    }

    time_t time = Scr_GetInt(0) + 1325376000;
    zone = Scr_GetInt(1);
    format = Scr_GetString(2);

    if(zone)
        time_s = gmtime( &time );
    else
        time_s = localtime( &time );

    strftime( timestring, sizeof(timestring), format, time_s );

    Scr_AddString(timestring);
}
Ejemplo n.º 30
0
void GScr_StrPixLen(){

    if(Scr_GetNumParam() != 1){
        Scr_Error("Usage: StrPixLen(<string>)");
    }
    char* string = Scr_GetString(0);

    int halfPixelCounter = 0;

    while( *string ){
        switch(*string){

        case '\'':
            halfPixelCounter += 2;
        break;

        case 'i':
        case 'j':
        case 'l':
        case '.':
        case ',':
        case ':':
        case ';':
        case '_':
        case '%':
            halfPixelCounter += 4;
        break;

        case 'f':
        case 'I':
        case '-':
        case '|':
            halfPixelCounter += 5;
        break;

        case 't':
        case 'r':
        case '!':
        case '/':
        case '\\':
        case '"':
            halfPixelCounter += 6;
        break;

        case '(':
        case ')':
        case '[':
        case ']':
            halfPixelCounter += 7;
        break;

        case 'T':
        case '{':
        case '}':
        case '*':
            halfPixelCounter += 8;
        break;

        case 'a':
        case 'c':
        case 'g':
        case 'k':
        case 's':
        case 'v':
        case 'x':
        case 'z':
        case 'F':
        case 'J':
        case 'L':
        case 'Y':
        case 'Z':
            halfPixelCounter += 9;
        break;

        case ' ': /*Save the positions of the last recent wordspacer*/
        case 'd':
        case 'h':
        case 'n':
        case 'A':
        case 'P':
        case 'S':
        case 'V':
        case 'X':
        case '?':
            halfPixelCounter += 10;
        break;

        case 'B':
        case 'D':
        case 'G':
        case 'K':
        case 'O':
        case 'Q':
        case 'R':
        case 'U':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case '$':
        case '<':
        case '>':
        case '=':
        case '+':
        case '^':
        case '~':
            halfPixelCounter += 11;
        break;

        case 'H':
        case 'N':
        case '#':
            halfPixelCounter += 12;
        break;

        case 'w':
        case '&':
            halfPixelCounter += 13;
        break;

        case 'W':
        case 'M':
        case '@':
            halfPixelCounter += 14;
        break;

        case 'm':
            halfPixelCounter += 15;

        default:
            halfPixelCounter += 12;
        }
        string++;

    }
    float result = (float)halfPixelCounter / 2.0;

    Scr_AddFloat(result);
}