vendredi 15 juillet 2016

GL_common error.

Code:

//----------------------------------------------------------
//
// GRAND LARCENY common functions include.
//
//----------------------------------------------------------

stock LoadStaticVehiclesFromFile(const filename[])
{
        new File:file_ptr;
        new line[256];
        new var_from_line[64];
        new vehicletype;
        new Float:SpawnX;
        new Float:SpawnY;
        new Float:SpawnZ;
        new Float:SpawnRot;
    new Color1, Color2;
        new index;
        new vehicles_loaded;

        file_ptr = fopen(filename,filemode:io_read);
        if(!file_ptr) return 0;

        vehicles_loaded = 0;

        while(fread(file_ptr,line,256) > 0)
        {
            index = 0;

            // Read type
                index = token_by_delim(line,var_from_line,',',index);
                if(index == (-1)) continue;
                vehicletype = strval(var_from_line);
                if(vehicletype < 400 || vehicletype > 611) continue;

                // Read X, Y, Z, Rotation
                index = token_by_delim(line,var_from_line,',',index+1);
                if(index == (-1)) continue;
                SpawnX = floatstr(var_from_line);

                index = token_by_delim(line,var_from_line,',',index+1);
                if(index == (-1)) continue;
                SpawnY = floatstr(var_from_line);

                index = token_by_delim(line,var_from_line,',',index+1);
                if(index == (-1)) continue;
                SpawnZ = floatstr(var_from_line);

                index = token_by_delim(line,var_from_line,',',index+1);
                if(index == (-1)) continue;
                SpawnRot = floatstr(var_from_line);

                // Read Color1, Color2
                index = token_by_delim(line,var_from_line,',',index+1);
                if(index == (-1)) continue;
                Color1 = strval(var_from_line);

                index = token_by_delim(line,var_from_line,';',index+1);
                Color2 = strval(var_from_line);
                
                //printf("%d,%.2f,%.2f,%.2f,%.4f,%d,%d",vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);

                AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,(30*60)); // respawn 30 minutes
                
                /*new numplate_test[32+1];
                format(numplate_test,32,"GRLC{44AA33}%d",vid);
                SetVehicleNumberPlate(vid, numplate_test);*/
                
                vehicles_loaded++;
        }

        fclose(file_ptr);
        printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
        return vehicles_loaded;
}

//----------------------------------------------------------

stock strtok(const string[], &index)
{
        new length = strlen(string);
        while ((index < length) && (string[index] <= ' '))
        {
                index++;
        }

        new offset = index;
        new result[20];
        while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
        {
                result[index - offset] = string[index];
                index++;
        }
        result[index - offset] = EOS;
        return result;
}

//------------------------------------------------

stock strrest(const string[], &index)
{
        new length = strlen(string);
        while ((index < length) && (string[index] <= ' '))
        {
                index++;
        }
        new offset = index;
        new result[128];
        while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
        {
                result[index - offset] = string[index];
                index++;
        }
        result[index - offset] = EOS;
        return result;
}

//----------------------------------------------------------
// Tokenise by a delimiter
// Return string and index of the end determined by the
// provided delimiter in delim

stock token_by_delim(const string[], return_str[], delim, start_index)
{
        new x=0;
        while(string[start_index] != EOS && string[start_index] != delim) {
            return_str[x] = string[start_index];
            x++;
            start_index++;
        }
        return_str[x] = EOS;
        if(string[start_index] == EOS) start_index = (-1);
        return start_index;
}

//----------------------------------------------------------

stock isNumeric(const string[])
{
  new length=strlen(string);
  if (length==0) return false;
  for (new i = 0; i < length; i++)
    {
      if (
            (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
             || (string[i]=='-' && i!=0)                                             // A '-' but not at first.
             || (string[i]=='+' && i!=0)                                             // A '+' but not at first.
         ) return false;
    }
  if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  return true;
}

//----------------------------------------------------------

stock IsKeyJustDown(key, newkeys, oldkeys)
{
        if((newkeys & key) && !(oldkeys & key)) return 1;
        return 0;
}

//----------------------------------------------------------

stock PlaySoundForAll(soundid, Float:x, Float:y, Float:z)
{
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                    PlayerPlaySound(i, soundid, x, y, z);
            }
        }
}

//----------------------------------------------------------

stock PlaySoundForPlayersInRange(soundid, Float:range, Float:x, Float:y, Float:z)
{
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i,range,x,y,z))
            {
                    PlayerPlaySound(i, soundid, x, y, z);
            }
        }
}

//----------------------------------------------------------

#define RETURN_USER_FAILURE -1
#define RETURN_USER_MULTIPLE -2

stock ReturnUser(text[])
{
        new pos = 0;
        new userid = RETURN_USER_FAILURE;
                
        while(text[pos] < 0x21) { // Strip out leading spaces
                if(text[pos] == 0) return RETURN_USER_FAILURE; // No passed text
                pos++;
        }
                
        if(isNumeric(text[pos])) { // Check whole passed string
                userid = strval(text[pos]);
                if(userid >=0 && userid < MAX_PLAYERS)
                {
                        if(IsPlayerConnected(userid)) return userid;
                        return RETURN_USER_FAILURE;
                }
        }
        
        // They entered [part of] a name or the id search failed (check names just incase)
        new len = strlen(text[pos]);
        new count = 0;
        new name[MAX_PLAYER_NAME+1];
        
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                        GetPlayerName(i, name, sizeof(name));
                        if(strcmp(name, text[pos], true, len) == 0) // Check segment of name
                        {
                                if(len == strlen(name)) { // Exact match
                                        return i;
                                }
                                else { // Partial match
                                        count++;
                                        userid = i;
                                }
                        }
                }
        }
        
        if(!count) return RETURN_USER_FAILURE;
        if(count > 1) return RETURN_USER_MULTIPLE;
        
        return userid;
}

//----------------------------------------------------------

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Recommended article from FiveFilters.org: Most Labour MPs in the UK Are Revolting.



GL_common error.

Aucun commentaire:

Enregistrer un commentaire