[Pomoc] Cuvanje


Započeo vlada966, Jun 04, 2012, 15:27:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:TechLand Xperia
Detaljan opis problema:Imam FS za tablice,ali kako da napravim da trajno cuva broj ili slova na tablicama,na primer kada izadjem iz servera pa opet udjem pisu oni isti znakovi sto sam ja stavio
Dio skripte:
    #include a_samp
    #include zcmd
    #include sscanf2
     
    /* ==== */
    /* FS:Plate is a filterscript made by Marricio. */
    /* ==== */
     
    new v_Plate[MAX_VEHICLES][32];
     
    CMD:plate( playerid, params[] )
    {
            if( isnull( params ) )
                return SendClientMessage( playerid, -1, "Kucaj: /plate [plate(1-32 letters)]" );
     
            if( strlen( params ) > 32 )
                return SendClientMessage( playerid, -1, "Kucaj: /plate [plate(1-32 letters)]" );
     
            if( !IsPlayerInAnyVehicle( playerid ) )
                return SendClientMessage( playerid, -1, "Greska: Morate biti u autu." );
     
     
            new szString[128], pVeh, Float:vPos[4];
            pVeh = GetPlayerVehicleID( playerid );
     
            format( v_Plate[pVeh], 32, "%s", params );
            SetVehicleNumberPlate( pVeh, params );
     
            GetPlayerPos( playerid, vPos[0], vPos[1], vPos[2] );
            GetVehicleZAngle( pVeh, vPos[3] );
            SetVehicleToRespawn( pVeh );
            SetVehiclePos( pVeh, vPos[0], vPos[1], vPos[2] );
            SetVehicleZAngle( pVeh, vPos[3] );
            PutPlayerInVehicle( playerid, pVeh, 0 );
     
            format( szString, 128, "Tablice vaseg vozila su uspesno promenjene u %s.", params );
            SendClientMessage( playerid, -1, szString );
     
            return 1;
    }
     
    CMD:setplate( playerid, params[] )
    {
            new iVictim, szPlate[32];
            if( sscanf( params, "us[32]", iVictim, szPlate ) )
                return SendClientMessage( playerid, -1, "Kucaj: /plate [playerid][plate(1-32 letters)]" );
     
            if( strlen( szPlate ) > 32 )
                return SendClientMessage( playerid, -1, "Kucaj: /plate [playerid][plate(1-32 letters)]" );
     
            if( !IsPlayerAdmin( playerid ) )
                return SendClientMessage( playerid, -1, "Greska: Ti nis admin." );
     
            if( !IsPlayerConnected( iVictim ) )
                return SendClientMessage( playerid, -1, "Greska: Taj igrac nije na serveru." );
     
            if( !IsPlayerInAnyVehicle( iVictim ) )
                return SendClientMessage( playerid, -1, "Greska:Taj igrac nije u vozilu." );
     
            new szString[128], pVeh, Float:vPos[4];
            pVeh = GetPlayerVehicleID( iVictim );
     
            format( v_Plate[pVeh], 32, "%s", szPlate );
            SetVehicleNumberPlate( pVeh, szPlate );
     
            GetPlayerPos( iVictim, vPos[0], vPos[1], vPos[2] );
            GetVehicleZAngle( pVeh, vPos[3] );
            SetVehicleToRespawn( pVeh );
            SetVehiclePos( pVeh, vPos[0], vPos[1], vPos[2] );
            SetVehicleZAngle( pVeh, vPos[3] );
            PutPlayerInVehicle( iVictim, pVeh, 0 );
     
            format( szString, 128, "Admin ti je podesio tablice na %s.", szPlate );
            SendClientMessage( playerid, -1, szString );
     
            return 1;
    }
     
    CMD:getplate( playerid, params[] )
    {
            if( isnull( params ) )
                    return SendClientMessage( playerid, -1, "Kucaj: /getplate [ID vozila]" );
     
            new szString[128];
            format( szString, 128, "[ VEHICLE ID: %d | PLATE: %s ]", strval( params ), v_Plate[strval( params )] );
            SendClientMessage( playerid, -1, szString );
     
            return 1;
    }

ovo je cela FS .
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
POMOC !!!!


vlado_plavsic

Mozda ako napravis enum za tablice i sa tim enumom napravis da mu cuva podatke u ini fajl ? Ako me ne bude mrzelo ovih dana cu napraviti takav sistem :)

Joj majko zar opet ove tablice...

Komanda :

CMD:regv(playerid, params[])
{
	new tablica[8];
	if(sscanf(params, "s[8]", tablica))	return SendClientMessage(playerid,COLOR_GRAD1,"[ Komanda ]: /registracija ( TEXT - NAJVISE 8 ZNAKOVA / SLOVA )");
    if(!IsPlayerInAnyVehicle(playerid))	return SendClientMessage(playerid,COLOR_GRAD1,"[ GRESKA ]: Moras biti u vozilu .");
	if(IsPlayerInRangeOfPoint(playerid,5,-1990.6874,137.4902,27.5391))
	{
	    new vozilo, Float:vP[4];
        vozilo = GetPlayerVehicleID( playerid );

	    SetVehicleNumberPlate(vozilo, tablica );
	    new string[40];
	    format(string, 40, "Vozilo: %d\nText tablice: %s", vozilo, tablica);
	    SacuvajTablicu(string);

	    GetPlayerPos(playerid, vP[0], vP[1], vP[2] );
	    GetVehicleZAngle(vozilo, vP[3] );
	    SetVehicleToRespawn(vozilo);
	    SetVehiclePos(vozilo, vP[0], vP[1], vP[2] );
	    SetVehicleZAngle(vozilo, vP[3] );
	    PutPlayerInVehicle(playerid, vozilo, 0);
	}
    return 1;
}


Negde na dno moda dodaj :

stock SacuvajTablicu(string[])
{
	new entry[40];
	format(entry, sizeof(entry), "%s\r\n",string);
	new File:hFile;
	hFile = fopen("Vozila/tablice.ini", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}

stock UcitajTablice()
{
    new arrCoords[20][64];
    new strFromFile2[256];
    new cplate[512];
    new cid[512];
    new File:file = fopen("Vozila/tablice.ini", io_read);
    if (file)
    {
        new idx;
        while (idx < 256)
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            strmid(cid[idx], arrCoords[0], 0, strlen(arrCoords[0]),255);
            strmid(cplate[idx], arrCoords[1], 0, strlen(arrCoords[1]),255);
            SetVehicleNumberPlate(cid[idx],cplate[idx]);
            idx++;
        }
        fclose(file);
    }
    return 1;
}

stock split(const strsrc[], strdest[][], delimiter)
{
	new i, li;
	new aNum;
	new len;
	while(i <= strlen(strsrc)){
	    if(strsrc[i]==delimiter || i==strlen(strsrc)){
	        len = strmid(strdest[aNum], strsrc, li, i, 128);
	        strdest[aNum][len] = 0;
	        li = i+1;
	        aNum++;
		}
		i++;
	}
	return 1;
}


i pod OnGameModeInit :
UcitajTablice();


I sad u Scriptfiles napravi folder Vozila ,udji u njega i napravi fajl tablice.ini
Izvinjavam se na svim glupostima i ako sam nekome napisao nesto lose, neko drugi je koristio moj profil!
__________________________________________
https://bk.gta.world - GTA World Balkan - RAGEMP

Citat: ''KopriVa' poslato Jun 05, 2012, 16:39:59 POSLE PODNE
Joj majko zar opet ove tablice...

Komanda :

CMD:regv(playerid, params[])
{
	new tablica[8];
	if(sscanf(params, "s[8]", tablica))	return SendClientMessage(playerid,COLOR_GRAD1,"[ Komanda ]: /registracija ( TEXT - NAJVISE 8 ZNAKOVA / SLOVA )");
    if(!IsPlayerInAnyVehicle(playerid))	return SendClientMessage(playerid,COLOR_GRAD1,"[ GRESKA ]: Moras biti u vozilu .");
	if(IsPlayerInRangeOfPoint(playerid,5,-1990.6874,137.4902,27.5391))
	{
	    new vozilo, Float:vP[4];
        vozilo = GetPlayerVehicleID( playerid );

	    SetVehicleNumberPlate(vozilo, tablica );
	    new string[40];
	    format(string, 40, "Vozilo: %d\nText tablice: %s", vozilo, tablica);
	    SacuvajTablicu(string);

	    GetPlayerPos(playerid, vP[0], vP[1], vP[2] );
	    GetVehicleZAngle(vozilo, vP[3] );
	    SetVehicleToRespawn(vozilo);
	    SetVehiclePos(vozilo, vP[0], vP[1], vP[2] );
	    SetVehicleZAngle(vozilo, vP[3] );
	    PutPlayerInVehicle(playerid, vozilo, 0);
	}
    return 1;
}


Negde na dno moda dodaj :

stock SacuvajTablicu(string[])
{
	new entry[40];
	format(entry, sizeof(entry), "%s\r\n",string);
	new File:hFile;
	hFile = fopen("Vozila/tablice.ini", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}

stock UcitajTablice()
{
    new arrCoords[20][64];
    new strFromFile2[256];
    new cplate[512];
    new cid[512];
    new File:file = fopen("Vozila/tablice.ini", io_read);
    if (file)
    {
        new idx;
        while (idx < 256)
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            strmid(cid[idx], arrCoords[0], 0, strlen(arrCoords[0]),255);
            strmid(cplate[idx], arrCoords[1], 0, strlen(arrCoords[1]),255);
            SetVehicleNumberPlate(cid[idx],cplate[idx]);
            idx++;
        }
        fclose(file);
    }
    return 1;
}

stock split(const strsrc[], strdest[][], delimiter)
{
	new i, li;
	new aNum;
	new len;
	while(i <= strlen(strsrc)){
	    if(strsrc[i]==delimiter || i==strlen(strsrc)){
	        len = strmid(strdest[aNum], strsrc, li, i, 128);
	        strdest[aNum][len] = 0;
	        li = i+1;
	        aNum++;
		}
		i++;
	}
	return 1;
}


i pod OnGameModeInit :
UcitajTablice();


I sad u Scriptfiles napravi folder Vozila ,udji u njega i napravi fajl tablice.ini
KopriVa brate ono sve sacuva i kada restartujes server nece da ucita tablice ??? STO TO ???

vlado_plavsic

Jesi li napravio folder "Vozila" u scriptfiles? Ako nisi napravi ili jednostavno stavi da cuva odmah u scriptfiles :

stock SacuvajTablicu(string[])
{
	new entry[40];
	format(entry, sizeof(entry), "%s\r\n",string);
	new File:hFile;
	hFile = fopen("tablice.ini", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}

stock UcitajTablice()
{
    new arrCoords[20][64];
    new strFromFile2[256];
    new cplate[512];
    new cid[512];
    new File:file = fopen("tablice.ini", io_read);
    if (file)
    {
        new idx;
        while (idx < 256)
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            strmid(cid[idx], arrCoords[0], 0, strlen(arrCoords[0]),255);
            strmid(cplate[idx], arrCoords[1], 0, strlen(arrCoords[1]),255);
            SetVehicleNumberPlate(cid[idx],cplate[idx]);
            idx++;
        }
        fclose(file);
    }
    return 1;
}

@Vladimire napravio sam sve i sve uradio kako je on rekao i sacuva ono u tablice.ini ali kad ponovo pokrenem server nece da ucita ... Da li me razumes ?

vlado_plavsic

Jesi li stavio pod OnGameModeInit da cita iz tog fajla? Poslacu ti na PM sta da ubacis.Pozdrav

Citat: Ð'ладимир Плавшић aka PlavÅ¡a poslato Jun 05, 2012, 20:44:25 POSLE PODNE
Jesi li stavio pod OnGameModeInit da cita iz tog fajla? Poslacu ti na PM sta da ubacis.Pozdrav
Ubacio sam pod OnGameModeInit UcitajTablice(); kao sto je KopriVa rekao ali nece


vlado_plavsic

Ne radi DP,rekao sam ti sta da uradis. I ne spamaj.

Vladimire nisam te uopste razumeo sta ti je to loop (petlja)   ???

ovo ti je loop(petlja)

for(new i = 0; i < MAX_PLAYERS; i++)

ili
foreach(Player, i)


to ti je loop za sve igrace

nz kakav tebi loop treba!

Poslednja Izmena: Jun 06, 2012, 09:13:45 PRE PODNE od [E:RP] Danijel96.pwn
Respect: Gagi, Maki187, Phillips, TerminuS, Neno, Lepotic, [AL] K4[Я]!K3â,,¢, Gotti747