Jump to content
  • 0

Masini personale dealership


kiLLersx

Question

Problema intalnita (descriere):Deci am un sistem de personale dealership cu textdraw . merge perfect dar cand cumpar o masina se incurca id-urile si incepe de la id 1 , nu de la carsonserver .
Ero(area / rile) / warning-(ul / urile): nu primesc erori
Liniile de cod / sursa / script-ul(obligatoriu): 

enum E_CACHE
{
   E_KEY[INI_MAX_KEY],
   E_VALUE[INI_MAX_VALUE]
}

enum E_FILE
{
   E_FILENAME[INI_MAX_FILENAME],
   bool: E_OPEN
}

static gCache[INI_MAX_LINES][E_CACHE];
static gEmptyCache[E_CACHE];
static gFile[E_FILE];
static gNoFile[E_FILE];

stock GetCreatorID(vehicleid)
{
return IDIS[vehicleid];
}

#define INI_Exist fexist


stock INI_Open(const filename[])
{
   if (!filename[0]) return false;
   if (gFile[E_OPEN])
   {
      if (!strcmp(gFile[E_FILENAME], filename, true)) return true;
      //return false;
      INI_Close();
   }
   new File: h;
   h = fopen(filename, io_readwrite);
   if (h)
   {
      INI_strcpy(gFile[E_FILENAME], filename, INI_MAX_FILENAME, INI_MAX_FILENAME);
      new line[INI_MAX_LINE];
      new ln = -1;
      new separator;
      while (((ln + 1) < INI_MAX_LINES) && (fread(h, line)))
      {
         ln ++;
         INI_StripLine(line);
         separator = strfind(line, "=", false);
         if ((line[0] == ';') || (line[0] == '=') || (separator == -1) || (separator > INI_MAX_KEY))
         {
            if (line[0] == ';')
            {
               INI_strcpy(gCache[ln][E_VALUE], line, INI_MAX_VALUE, INI_MAX_VALUE);
            }
            else
            {
               INI_strcpy(gCache[ln][E_VALUE][1], line, INI_MAX_VALUE - 1, INI_MAX_VALUE - 1);
               gCache[ln][E_VALUE][0] = ';';
            }
            continue;
         }
         INI_strcpy(gCache[ln][E_KEY], line, separator, INI_MAX_KEY);
         INI_strcpy(gCache[ln][E_VALUE], line[separator + 1], INI_MAX_VALUE, INI_MAX_VALUE);
         if (!gCache[ln][E_VALUE][0]) gCache[ln][E_VALUE][0] = ' ';
      }
      fclose(h);
      gFile[E_OPEN] = true;
      return 1;
   }
   return 0;
}


stock INI_Save()
{
   if (!gFile[E_OPEN]) return false;
   new File: h;
   h = fopen(gFile[E_FILENAME], io_write);
   if (h)
   {
      new line[INI_MAX_LINE];
      new ln = -1;
      while (((ln + 1) < INI_MAX_LINES) && (gCache[ln + 1][E_VALUE][0]))
      {
         ln ++;
         if (gCache[ln][E_VALUE][0] == ';')
         {
            if (gCache[ln][E_VALUE][1])
            {
               format(line, sizeof(line), "%s\r\n", gCache[ln][E_VALUE]);
               fwrite(h, line);
               continue;
            }
            fwrite(h, "\r\n");
            continue;
         }
         format(line, sizeof(line), "%s=%s\r\n", gCache[ln][E_KEY], gCache[ln][E_VALUE]);
         fwrite(h, line);
      }
      fclose(h);
      return true;
   }
   return false;
}


stock INI_Close()
{
   if (!gFile[E_OPEN]) return false;
   for (new ln; ln < INI_MAX_LINES; ln++) gCache[ln] = gEmptyCache;
   gFile = gNoFile;
   return true;
}


stock INI_ReadString(dest[], const key[], maxlength = sizeof(dest))
{
   if ((!gFile[E_OPEN]) || (!key[0])) return false;
   new ln = -1;
   while (((ln + 1) < INI_MAX_LINES) && (gCache[ln + 1][E_VALUE][0]))
   {
      ln ++;
      if (gCache[ln][E_VALUE][0] == ';') continue;
      if (!strcmp(gCache[ln][E_KEY], key, false))
      {
         INI_strcpy(dest, gCache[ln][E_VALUE], INI_MAX_VALUE, maxlength);
         return true;
      }
   }
   return false;
}


stock INI_ReadInt(const key[])
{
   new dest[12];
   if (INI_ReadString(dest, key)) return strval(dest);
   return false;
}


stock Float: INI_ReadFloat(const key[])
{
   new dest[12];
   if (INI_ReadString(dest, key)) return floatstr(dest);
   return 0.0;
}


stock INI_WriteString(const key[], const value[])
{
   if ((!gFile[E_OPEN]) || (!key[0]) || (key[0] == ';') || (strfind(key, "=", false) != -1)) return false;
   new ln = -1;
   while (((ln + 1) < INI_MAX_LINES) && (gCache[ln + 1][E_VALUE][0]))
   {
      ln ++;
      if (gCache[ln][E_VALUE][0] == ';') continue;
      if (!strcmp(gCache[ln][E_KEY], key, false))
      {
         INI_strcpy(gCache[ln][E_VALUE], value, INI_MAX_VALUE, INI_MAX_VALUE);
         return true;
      }
   }
   ln ++;
   if (ln < INI_MAX_LINES)
   {
      INI_strcpy(gCache[ln][E_KEY], key, INI_MAX_KEY, INI_MAX_KEY);
      INI_strcpy(gCache[ln][E_VALUE], value, INI_MAX_VALUE, INI_MAX_VALUE);
      return true;
   }
   return false;
}


stock INI_WriteInt(const key[], value)
{
   new dest[12];
   format(dest, sizeof(dest), "%i", value);
   return INI_WriteString(key, dest);
}


stock INI_WriteFloat(const key[], Float: value)
{
   new dest[12];
   format(dest, sizeof(dest), "%0.4f", value);
   return INI_WriteString(key, dest);
}


stock INI_RemoveEntry(const key[])
{
   if ((!gFile[E_OPEN]) || (!key[0]) || (strfind(key, "=", false) != -1)) return false;
   new ln = -1;
   while (((ln + 1) < INI_MAX_LINES) && (gCache[ln + 1][E_VALUE][0]))
   {
      ln ++;
      if (gCache[ln][E_VALUE][0] == ';') continue;
      if (!strcmp(gCache[ln][E_KEY], key, false))
      {
         for (; ln < (INI_MAX_LINES - 1); ln ++)
         {
            INI_strcpy(gCache[ln][E_KEY], gCache[ln + 1][E_KEY], INI_MAX_KEY, INI_MAX_KEY);
            INI_strcpy(gCache[ln][E_VALUE], gCache[ln + 1][E_VALUE], INI_MAX_VALUE, INI_MAX_VALUE);
         }
         return true;
      }
   }
   return false;
}


stock INI_Remove(const filename[])
{
   if (!filename[0]) return false;
   if ((gFile[E_OPEN]) && (!strcmp(gFile[E_FILENAME], filename, true))) gFile = gNoFile;
   return fremove(filename);
}


stock INI_strcpy(dest[], const source[], numcells = sizeof(source), maxlength = sizeof(dest))
{
   new i;
   while ((source[i]) && (i < numcells) && (i < maxlength))
   {
      dest[i] = source[i];
      i ++;
   }
   dest[(i == maxlength) ? (i - 1) : (i)] = '\0';
}


stock INI_StripLine(string[])
{
   new l;
   l = strlen(string);
   if (string[l - 2] == '\r') string[l - 2] = '\0';
   if (string[l - 1] == '\n') string[l - 1] = '\0';
}


stock SaveVehModels()
{
   new iStr[20];
   format(iStr, sizeof(iStr), "Masini/Sloturi.ini");
   if(INI_Open(iStr))
   {
       INI_WriteInt("410", vehSlots[410]);
       INI_WriteInt("436", vehSlots[436]);
       INI_WriteInt("496", vehSlots[496]);
       INI_WriteInt("439", vehSlots[439]);
       INI_WriteInt("517", vehSlots[517]);
       INI_WriteInt("526", vehSlots[526]);
       INI_WriteInt("589", vehSlots[589]);
       INI_WriteInt("602", vehSlots[602]);
       INI_WriteInt("566", vehSlots[566]);
       INI_WriteInt("405", vehSlots[405]);
       INI_WriteInt("426", vehSlots[426]);
       INI_WriteInt("579", vehSlots[579]);
       INI_WriteInt("475", vehSlots[475]);
       INI_WriteInt("401", vehSlots[401]);
       INI_WriteInt("546", vehSlots[546]);
       INI_WriteInt("529", vehSlots[529]);
       INI_WriteInt("550", vehSlots[550]);
       INI_WriteInt("540", vehSlots[540]);
       INI_WriteInt("467", vehSlots[467]);
       INI_WriteInt("466", vehSlots[466]);
       INI_WriteInt("492", vehSlots[492]);
       INI_WriteInt("419", vehSlots[419]);
       INI_WriteInt("495", vehSlots[495]);
       INI_WriteInt("541", vehSlots[541]);
       INI_WriteInt("411", vehSlots[411]);
       INI_WriteInt("451", vehSlots[451]);
       INI_WriteInt("415", vehSlots[415]);
       INI_WriteInt("560", vehSlots[560]);
       INI_WriteInt("559", vehSlots[559]);
       INI_WriteInt("562", vehSlots[562]);
       INI_WriteInt("480", vehSlots[480]);
       INI_WriteInt("565", vehSlots[565]);
       INI_WriteInt("506", vehSlots[506]);
       INI_WriteInt("477", vehSlots[477]);
       INI_WriteInt("603", vehSlots[603]);
       INI_WriteInt("558", vehSlots[558]);
       INI_WriteInt("461", vehSlots[461]);
       INI_WriteInt("462", vehSlots[462]);
       INI_WriteInt("468", vehSlots[468]);
       INI_WriteInt("481", vehSlots[481]);
       INI_WriteInt("510", vehSlots[510]);
       INI_WriteInt("521", vehSlots[521]);
       INI_WriteInt("581", vehSlots[581]);
       INI_WriteInt("586", vehSlots[586]);
       INI_WriteInt("461", vehSlots[461]);
       INI_WriteInt("522", vehSlots[522]);
       INI_WriteInt("494", vehSlots[494]);
       INI_WriteInt("429", vehSlots[429]);
       INI_WriteInt("444", vehSlots[444]);
       INI_WriteInt("469", vehSlots[469]);
       INI_WriteInt("487", vehSlots[487]);
      INI_Save();
       INI_Close();
   }
   return 1;
}

stock LoadVehModels()
{
   new iStr[20];
   format(iStr, sizeof(iStr), "Masini/Sloturi.ini");
   if(INI_Exist(iStr))
   {
       INI_Open(iStr);

       vehSlots[410] = INI_ReadInt("410");
       vehSlots[436] = INI_ReadInt("436");
       vehSlots[496] = INI_ReadInt("496");
       vehSlots[439] = INI_ReadInt("439");
       vehSlots[517] = INI_ReadInt("517");
        vehSlots[526] = INI_ReadInt("526");
        vehSlots[589] = INI_ReadInt("589");
        vehSlots[602] = INI_ReadInt("602");
        vehSlots[566] = INI_ReadInt("566");
        vehSlots[405] = INI_ReadInt("405");
        vehSlots[426] = INI_ReadInt("426");
        vehSlots[579] = INI_ReadInt("579");
        vehSlots[475] = INI_ReadInt("475");
        vehSlots[401] = INI_ReadInt("401");
        vehSlots[546] = INI_ReadInt("546");
        vehSlots[529] = INI_ReadInt("529");
        vehSlots[550] = INI_ReadInt("550");
        vehSlots[540] = INI_ReadInt("540");
        vehSlots[467] = INI_ReadInt("467");
        vehSlots[466] = INI_ReadInt("466");
        vehSlots[492] = INI_ReadInt("492");
        vehSlots[419] = INI_ReadInt("419");
        vehSlots[495] = INI_ReadInt("495");
        vehSlots[541] = INI_ReadInt("541");
        vehSlots[411] = INI_ReadInt("411");
        vehSlots[451] = INI_ReadInt("451");
        vehSlots[415] = INI_ReadInt("415");
        vehSlots[560] = INI_ReadInt("560");
        vehSlots[559] = INI_ReadInt("559");
        vehSlots[562] = INI_ReadInt("562");
        vehSlots[480] = INI_ReadInt("480");
        vehSlots[565] = INI_ReadInt("565");
        vehSlots[506] = INI_ReadInt("506");
        vehSlots[477] = INI_ReadInt("477");
        vehSlots[603] = INI_ReadInt("603");
        vehSlots[558] = INI_ReadInt("558");
        vehSlots[461] = INI_ReadInt("461");
        vehSlots[462] = INI_ReadInt("462");
        vehSlots[468] = INI_ReadInt("468");
        vehSlots[481] = INI_ReadInt("481");
        vehSlots[510] = INI_ReadInt("510");
        vehSlots[521] = INI_ReadInt("521");
        vehSlots[581] = INI_ReadInt("581");
        vehSlots[586] = INI_ReadInt("586");
        vehSlots[461] = INI_ReadInt("461");
        vehSlots[522] = INI_ReadInt("522");
        vehSlots[494] = INI_ReadInt("494");
        vehSlots[429] = INI_ReadInt("429");
        vehSlots[444] = INI_ReadInt("444");
        vehSlots[469] = INI_ReadInt("469");
        vehSlots[487] = INI_ReadInt("487");
       INI_Close();
   }
   return 1;
}

stock ini_GetKey( line[] )
{
   new keyRes[256];
   keyRes[0] = 0;
    if ( strfind( line , "=" , true ) == -1 ) return keyRes;
    strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
    return keyRes;
}

stock ini_GetValue( line[] )
{
   new valRes[256];
   valRes[0]=0;
   if ( strfind( line , "=" , true ) == -1 ) return valRes;
   strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
   return valRes;
}


Imagini / Video (optional):
Ati incercat sa rezolvati singur?: am incercat sa bag cand se incarca masinile sa porneasca de la carsonserver dar nu imi mai salveaza si incarca deloc masinile

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Pentru ca ai carsonserver in gamemode, dar il ai degeaba, nu-l apelezi nicaieri, de la altceva nu are ce sa fie ... pune ca atunci cand esti creata o masina sa se apeleze functia carsonserver . De exemplu, inainte de CreateVechile(date); poti adauga :

 

for(new h; h <= carsonserver; h++)
{
    CreateVehicle(h, coordonate)
    return 1;
}

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.