Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Markinjoâ„¢ poslato Jun 03, 2012, 01:51:58 PRE PODNE

Naslov: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 03, 2012, 01:51:58 PRE PODNE
Skripta koju koristim:Zabranjena je na ovom forumu
Detaljan opis problema:Ne mogu napraviti kada igrac registruje vozilo da mu se sacuva ...
Dio skripte:Evo ta komanda za registraciju
CMD:regv(playerid, params[])
{
new tablica[8];
if(sscanf(params, "s[8]", tablica)) return SendClientMessage(playerid, -1, "Korištenje: /registracijav [text - maximalno 8 znakova]");
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, "Morate biti u vozilu" );
if(IsPlayerInRangeOfPoint(playerid,5,x,y,z))
{
    new vozilo, Float:vP[4];
        vozilo = GetPlayerVehicleID( playerid );

    SetVehicleNumberPlate(vozilo, tablica );

    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;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 03, 2012, 11:59:04 PRE PODNE
BUMP ! Zna li neko   ???
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Kopra poslato Jun 03, 2012, 12:05:24 POSLE PODNE
Sta hoces tacno da ti cuva ,samo broj tablica ili i ime,id vozila...??
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 03, 2012, 12:08:38 POSLE PODNE
Citat: ''KopriVa' poslato Jun 03, 2012, 12:05:24 POSLE PODNE
Sta hoces tacno da ti cuva ,samo broj tablica ili i ime,id vozila...??
Znaci hocu da mi sacuvaju samo tablice ali da budu na tom autu npr. dodjem sa infernusom i registrujem udjem posle 2 sata tablice stoje na sultanu....I ako ti nije frka da li mozes da napravis da kada neko ukuca /regv na odredjenoj lokaciji prvo da proveri da li je on vlasnik ? ;)
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Kopra poslato Jun 03, 2012, 12:09:27 POSLE PODNE
Citat: markinjo.amx poslato Jun 03, 2012, 12:08:38 POSLE PODNE
Citat: ''KopriVa' poslato Jun 03, 2012, 12:05:24 POSLE PODNE
Sta hoces tacno da ti cuva ,samo broj tablica ili i ime,id vozila...??
Znaci hocu da mi sacuvaju samo tablice ali da budu na tom autu npr. dodjem sa infernusom i registrujem udjem posle 2 sata tablice stoje na sultanu....I ako ti nije frka da li mozes da napravis da kada neko ukuca /regv na odredjenoj lokaciji prvo da proveri da li je on vlasnik ? ;)

Daj mi 20 min da ubacim komandu u svoj mod i napravim cuvanje i ucitavanje :)
EDIT : Saljem ti na PM
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 03, 2012, 13:59:20 POSLE PODNE
Ljudi nek neko pomogne posto kopriva nije  :(
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Kopra poslato Jun 03, 2012, 15:59:39 POSLE PODNE
Citat: markinjo.amx poslato Jun 03, 2012, 13:59:20 POSLE PODNE
Ljudi nek neko pomogne posto kopriva nije  :(

Nisam ti pomogao zato sto koristis GG mod koj nema COS,a i necu da ti pomognem zato sto koristis mod KOJI JE UKRADEN !!
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Nenad poslato Jun 03, 2012, 21:48:23 POSLE PODNE

public OnVehicleSpawn(vehicleid)
{
    UcitajTablice();
return 1;
}

CMD:regv(playerid, params[])
{
new tablica[8];
if(sscanf(params, "s[8]", tablica)) return SendClientMessage(playerid, -1, "Korištenje: /regv [text - maximalno 8 znakova]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, "Morate biti u vozilu" );
if(IsPlayerInRangeOfPoint(playerid,5,x,y,z)) //ovdje idu tvoje koordinate
{
    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;
}

stock SacuvajTablicu(string[])
{
new entry[40];
format(entry, sizeof(entry), "%s\r\n",string);
new File:hFile;
hFile = fopen("tablica.dat", 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("tablica.dat", 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;
}


Malo sebi optimiziraj i prebaci na drugi sistem cuvanja podataka na pimjer Y_INI...
Takodje, mozda ces morati malo da sredis jer sam ovo napravio bez testiranja...
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Kopra poslato Jun 03, 2012, 21:59:04 POSLE PODNE
Citat: Nenad poslato Jun 03, 2012, 21:48:23 POSLE PODNE

public OnVehicleSpawn(vehicleid)
{
    UcitajTablice();
return 1;
}

CMD:regv(playerid, params[])
{
new tablica[8];
if(sscanf(params, "s[8]", tablica)) return SendClientMessage(playerid, -1, "Korištenje: /regv [text - maximalno 8 znakova]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, "Morate biti u vozilu" );
if(IsPlayerInRangeOfPoint(playerid,5,x,y,z)) //ovdje idu tvoje koordinate
{
    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;
}

stock SacuvajTablicu(string[])
{
new entry[40];
format(entry, sizeof(entry), "%s\r\n",string);
new File:hFile;
hFile = fopen("tablica.dat", 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("tablica.dat", 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;
}


Malo sebi optimiziraj i prebaci na drugi sistem cuvanja podataka na pimjer Y_INI...
Takodje, mozda ces morati malo da sredis jer sam ovo napravio bez testiranja...

Takodje si napravio za 0.3c :)

ovo UcitajTablice(); stavi pod OnGameModeInit .
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Nenad poslato Jun 03, 2012, 22:05:53 POSLE PODNE
Citat: ''KopriVa' poslato Jun 03, 2012, 21:59:04 POSLE PODNE
Takodje si napravio za 0.3c :)

ovo UcitajTablice(); stavi pod OnGameModeInit .

Po cemu ti je ovo za 0.3c, sto lupas gluposti ;)

A zaboravio sam napisati da stavi i pod OnGameModeInit za ucitavanje...
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 04, 2012, 01:04:02 PRE PODNE
Citat: Nenad poslato Jun 03, 2012, 21:48:23 POSLE PODNE

public OnVehicleSpawn(vehicleid)
{
    UcitajTablice();
return 1;
}

CMD:regv(playerid, params[])
{
new tablica[8];
if(sscanf(params, "s[8]", tablica)) return SendClientMessage(playerid, -1, "Korištenje: /regv [text - maximalno 8 znakova]");
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage( playerid, -1, "Morate biti u vozilu" );
if(IsPlayerInRangeOfPoint(playerid,5,x,y,z)) //ovdje idu tvoje koordinate
{
    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;
}

stock SacuvajTablicu(string[])
{
new entry[40];
format(entry, sizeof(entry), "%s\r\n",string);
new File:hFile;
hFile = fopen("tablica.dat", 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("tablica.dat", 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;
}


Malo sebi optimiziraj i prebaci na drugi sistem cuvanja podataka na pimjer Y_INI...
Takodje, mozda ces morati malo da sredis jer sam ovo napravio bez testiranja...
Brate ono sacuva tamo gde smo napravili da cuva ali nakon restarta ne ostane
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Kopra poslato Jun 04, 2012, 12:43:30 POSLE PODNE
Citat: Nenad poslato Jun 03, 2012, 22:05:53 POSLE PODNE
Citat: ''KopriVa' poslato Jun 03, 2012, 21:59:04 POSLE PODNE
Takodje si napravio za 0.3c :)

ovo UcitajTablice(); stavi pod OnGameModeInit .

Po cemu ti je ovo za 0.3c, sto lupas [cenzura]osti ;)

A zaboravio sam napisati da stavi i pod OnGameModeInit za ucitavanje...

Od 0.3d nema publica OnVehicleSpawn (tj ima ali se ne koristi) nego je to "sjedinjeno" sa OnGameModeInit
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 04, 2012, 14:30:15 POSLE PODNE
Ljudi je l' zna neko ? ;)
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 05, 2012, 15:06:31 POSLE PODNE
BUMP ! Zna li neko ???
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: SonY_ poslato Jun 05, 2012, 15:28:17 POSLE PODNE
pod OnGameModeExit stavi

SacuvajTablicu();
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: Markinjoâ„¢ poslato Jun 05, 2012, 18:42:28 POSLE PODNE
Citat: SonY_ poslato Jun 05, 2012, 15:28:17 POSLE PODNE
pod OnGameModeExit stavi

SacuvajTablicu();
Stavim ja sve to ali nece da ucita kad kasnije pokrenem server sve se sacuva lepo !
Naslov: Odg: [Pomoc]Cuvanje
Poruka od: vlado_plavsic poslato Jun 05, 2012, 19:39:13 POSLE PODNE
http://balkan-samp.com/forum/index.php?topic=45327.msg336147#msg336147

Pogledaj odgovor na ovu temu,mozda pronadjes odgovor...

Pozdrav