Page 1 of 1

Cum adaugam masinile din scriptfiles pe server

Posted: Mon Oct 24, 2011 5:39 am
by RoberTo
Deci banuiesc ca multi dintre voi ati intrat in ,,scriptfiles'' si acolo atzi gasit un folder de genu' ,,vehiclelists'' .Daca ati intrat in acele fisiere notepad de ex: ,,red_county.txt'' ati gasit niste coordonate fara ,,AddStaticVehicle'' inclus sau altceva
Acele coordonate sunt ale masinilor din jok puse intr-o ordine (ca la SinglePlayer)
Pt a pune acele vehicule pe server fara a mai adauga ,,AddStaticVehicle'' sau altceva faceti urmatoarele:
1. Deschideti GM vostru
2. Cautati

Code: Select all

public OnGameModeInit() 
Si adaugati acolo :

Code: Select all

new total_vehicles_from_files=0;

total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/red_county.txt");
total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/lv_gen.txt");
Aici puteti adauga mai multe vehicule din folder-ul vehiclelists , eu am adaugat doar 2 exemple .Deci pt
a baga si altele cu ar fi ,, whetstone.txt '' schimbati de ex:

Code: Select all

red_county.txt
din cod-ul de mai sus cu

Code: Select all

whetstone.txt
si va iesi asa:

Code: Select all

total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/whetstone.txt");
Iar dupa aceia punem dupa

Code: Select all

public OnGameModeExit()
{
   	return 1;
}
Asta:

Code: Select all

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 tip
          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|%f|%f|%f|%f|%d|%d",vehicletype,
              //SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);

        AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,-1);

        vehicles_loaded++;
    }

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

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;
}
 
Si teoretic va trebui sa va apara masinile joc .

Mai complet ar trebui sa a iasa asa:

Code: Select all

public OnGameModeInit()
{
//NewCars
    new total_vehicles_from_files=0;
    
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/lv_gen.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/bone.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehiclelists/sf_airport.txt");
}
public OnGameModeExit()
{
       return 1;
}
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|%f|%f|%f|%f|%d|%d",vehicletype,
              //SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2);

        AddStaticVehicleEx(vehicletype,SpawnX,SpawnY,SpawnZ,SpawnRot,Color1,Color2,-1);

        vehicles_loaded++;
    }

    fclose(file_ptr);
    printf("Loaded %d vehicles from: %s",vehicles_loaded,filename);
    return vehicles_loaded;
}
//-------------------------------------------------------------------------------------
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;
} 
La mn a functionat ,orasul Lv era gol si dupa ce am pus asta in acel Gm au aparut masinile ,deci nu vad dc nu ar merge si la voi.