Zapadni Balkan SA-MP

PAWN | SKRIPTANJE => Filterscipts | Includes | Plugins => Topic started by: .dough on November 23, 2024, 02:27:45 PM

Title: Winter Update
Post by: .dough on November 23, 2024, 02:27:45 PM
Ime :Dough
Tip (FS, INC, PLUGIN) :FS
Slike / Video : brate snijeg po putu,jelke,kape i to nemam sta slikat :D
Izradio :Ja i Dolcce
Download Link :https://pastebin.com/UTkAWa8p
Title: Re: Winter Update
Post by: _slyz422 on November 23, 2024, 02:47:27 PM
Noice
Title: Re: Winter Update
Post by: Vostic on November 23, 2024, 02:52:12 PM
Okej je, moze to puno bolje.
Za pocetak da poradimo na imenovanju i koriscenju ternarnih operatora.

Code: You are not allowed to view links. Register or Login
YCMD:kapa( playerid, params[], help ) {
if( WinterCap[ playerid ] == 0 ) {

Nemas potrebe to tako pisati, mislim radice al prosto ne moramo vise pisati kao pre.
Umesto toga mozes pisati:

Code: You are not allowed to view links. Register or Login
WinterCap[ playerid ] ili if(!WinterCap[ playerid ])Uzvicnik jelte za negaciju tj ako je false.

Code: You are not allowed to view links. Register or Login
YCMD:sneg( playerid, params[], help ) {
if( IsPlayerConnected( playerid )) {

Takodje po meni nepotreban deo al dobro. Sve u svemu okej za pocetnike al moze to dosta bolje i citljivije da se pise.
Srecno u daljem radu ;D
Title: Re: Winter Update
Post by: .dough on November 23, 2024, 03:02:00 PM
You are not allowed to view links. Register or Login
Okej je, moze to puno bolje.
Za pocetak da poradimo na imenovanju i koriscenju ternarnih operatora.

Code: You are not allowed to view links. Register or Login
YCMD:kapa( playerid, params[], help ) {
if( WinterCap[ playerid ] == 0 ) {

Nemas potrebe to tako pisati, mislim radice al prosto ne moramo vise pisati kao pre.
Umesto toga mozes pisati:

Code: You are not allowed to view links. Register or Login
WinterCap[ playerid ] ili if(!WinterCap[ playerid ])Uzvicnik jelte za negaciju tj ako je false.

Code: You are not allowed to view links. Register or Login
YCMD:sneg( playerid, params[], help ) {
if( IsPlayerConnected( playerid )) {

Takodje po meni nepotreban deo al dobro. Sve u svemu okej za pocetnike al moze to dosta bolje i citljivije da se pise.
Srecno u daljem radu ;D
hvala brate na prijedlozima,pokusacu kad budem radio nesto tako sledeci put,!
Title: Re: Winter Update
Post by: .dough on November 23, 2024, 03:02:39 PM
You are not allowed to view links. Register or Login
Noice
hvala  8)
Title: Re: Winter Update
Post by: midori1 on November 23, 2024, 08:51:21 PM
Winter mi nikada ne dosadi, keep it up!
Title: Re: Winter Update
Post by: Vostic on November 23, 2024, 08:53:25 PM
Svi volimo winter :D
Title: Re: Winter Update
Post by: .dough on November 24, 2024, 01:07:26 PM
You are not allowed to view links. Register or Login
Winter mi nikada ne dosadi, keep it up!
8)
Title: Re: Winter Update
Post by: .dough on November 24, 2024, 01:07:43 PM
You are not allowed to view links. Register or Login
Svi volimo winter :D
drkamo na njeg haha
Title: Re: Winter Update
Post by: Zlaja on November 26, 2024, 12:26:02 AM
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Svi volimo winter :D
drkamo na njeg haha

Bilo bi lijepo da si postavio sličicu da to profesionalnije izgleda. Winter volimo svi slažem se ^^

Pravila foruma pročitaj ovaj ću progledat kroz prsti za riječnik i molim te bez ovakvih ispada.
Title: Re: Winter Update
Post by: teynr on November 26, 2024, 01:11:43 PM
Code: You are not allowed to view links. Register or Login
task dah_system[2500]() {
    for( new i = 0; i < MAX_PLAYERS; i++ ) {
        if( IsPlayerConnected( i )) {
            if( GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
                RemovePlayerAttachedObject( i, OBJECT_SLOT_FREE );
                PlayerEffect[ i ] = SetPlayerAttachedObject( i, OBJECT_SLOT_FREE, 18696, 2,0.0,0.1,-0.2,-25.5000,0.0,0.0,0.10,0.3,0.15);
}
}
}
return 1;
}

 :-\  :-X :-[
Title: Re: Winter Update
Post by: V01D on November 26, 2024, 07:55:17 PM
Okej par stvari koje mi nemaju smisla :

Promenljive za Jelke :

Code: You are not allowed to view links. Register or Login
Text3D:label[sizeof(JelkaInfo)], NapravljenaJelka;
Nemaju potrebu da postoje xD

Label nigde konkretno ne koristis, ne brises, ne pomeras tako da nema neke potrebe da ga cuvas u promenljivu

Sto se objekta tice, imalo bi smisla da si koristi NapravljenaJelka[MAX_JELKI], tako da taj kreirani objekat cuvas u promenljivu, posto je globalna promenljiva, gubice staru vrednost i ostace samo ona koja je zadnja ucitana ili kreirana. U prevodu jedini nacin da obrises objekat je da obrises fajl. Pritom ovako kako je napravljeno ne mozes da napravis da funkcionise brisanje preko komande kako treba, zato sto gubis vrednost objekta.

Cuvanje je takodje problem, zato sto ce dobiti ID objekta koji si kreirao.

Pravilnije bi bilo da se odradi ovako :

Code: You are not allowed to view links. Register or Login
stock getNextTreeID(const len) { //uzima prvi slobodan ID za kreiranje jelke
    new id = (-1);
    for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
       provjera = ( loop+1 );
       format( Data_, ( sizeof Data_ ), JelkeFile, provjera );
       if(!fexist(Data_)) {
          id = ( provjera );
          break; } }
    return ( id );
}

YCMD:kreirajjelku( playerid, params[], help ) {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage( playerid, -1, "{0070D0}VaporG - {FFFFFF}Morate biti ulogovani na rcon." ); {
        new Float:X,Float:Y,Float:Z,Float:A;
        GetPlayerPos(playerid, X,Y,Z);
        GetPlayerFacingAngle(playerid, A);

        new id = getNextTreeID(MAX_JELKI); //uzimamo id
        if(id == -1) return SendClientMessage(playerid, -1, "Imas max broj kreiranih jelki!"); //ukoliko vrati -1 znaci da je svaki fajl zauzet

        NapravljenaJelka[id] = CreateObject(19076, X-1,Y,Z-1.5, 0.0, 0.0, A, 300.0); //kreiramo objekat ali stavljamo da bude array(niz), tako da mozemo objekat da koristimo
        label[id] = Create3DTextLabel("{0070D0}[ VaporG JELKA ]\n{0070D0}- {FFFFFF}SRECNA NOVA 2019. GODINA {0070D0}-", 0xFFFFFFFF, X,Y,Z+1, 10.0, 0, 0); //kreiramo label na osnovu ID-a
        JelkaInfo[ id ][ jX ] = X; //postavljamo promenljive
        JelkaInfo[ id ][ jY ] = Y;
        JelkaInfo[ id ][ jZ ] = Z-1.5;
        JelkaInfo[ id ][ jA ] = A;
        save_xmastree( id ); //cuvamo drvo u prvi slobodan ID
    }
    return 1;
}

Uglavnom, cuvamo ID kako treba, tako da ce krenuti od 1 pa nadalje, takodje stavljamo NapravljenaJelka da bude niz, koji je vezan za ID drveta ( fajl )

Sada ce ti cuvati jelka_1.ini pa jelka_2.ini pa jelka_3.ini itd do 500...

Sada mozes da radis i brisanje kako treba, ucitavanje itd...

Dalje...

Ovo :

Code: You are not allowed to view links. Register or Login
task dah_system[2500]() {
    for( new i = 0; i < MAX_PLAYERS; i++ ) {
        if( IsPlayerConnected( i )) {
            if( GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
                RemovePlayerAttachedObject( i, OBJECT_SLOT_FREE );
                PlayerEffect[ i ] = SetPlayerAttachedObject( i, OBJECT_SLOT_FREE, 18696, 2,0.0,0.1,-0.2,-25.5000,0.0,0.0,0.10,0.3,0.15);
}
}
}
return 1;
}

Tutnuti u :

Code: You are not allowed to view links. Register or Login
ptask dah_system[2500](i) {
   
    if( IsPlayerConnected( i )) {
        if( GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
            RemovePlayerAttachedObject( i, OBJECT_SLOT_FREE );
            PlayerEffect[ i ] = SetPlayerAttachedObject( i, OBJECT_SLOT_FREE, 18696, 2,0.0,0.1,-0.2,-25.5000,0.0,0.0,0.10,0.3,0.15);
}
}
return 1;
}

Kada vec postoji xDD

Za jelke umesto CreateObject koristiti dinamicne objekta, takodje bilo bi dobro dodati EditObject ( da ga moze pomeriti pri kreiranju )

Ovo :

Code: You are not allowed to view links. Register or Login
public OnPlayerUpdate( playerid ) {
    if( Snow[ playerid ] ) {
  if( GetPlayerInterior( playerid ) == 0 && GetPlayerVirtualWorld( playerid ) == 0 ) {
new Float:Pos[ 3 ];
        GetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
        MovePlayerObject( playerid, SnowObject[ playerid ], Pos[ 0 ], Pos[ 1 ], Pos[ 2 ]-2.5, 4000.0 );
  }
}
return true;
}

Takodje moze u ptask mada manje vise isti kurac, nece napraviti neku DRASTICNU razliku

Uglavnom ima par stvari koje treba doraditi, ali ako si ti sve pravio, nije lose. Poraditi na ucitavanju i cuvanju ovih jelki. Ne znam da li si testao da ucitas u nekom malo vecem modu ovu FS? Po ovome kako jeste jelke ne bi trebalo da ucitavanju kako treba

Sve u svemu, pohvale za trud
Title: Re: Winter Update
Post by: teynr on November 26, 2024, 09:05:29 PM
You are not allowed to view links. Register or Login
Okej par stvari koje mi nemaju smisla :

Promenljive za Jelke :

Code: You are not allowed to view links. Register or Login
Text3D:label[sizeof(JelkaInfo)], NapravljenaJelka;
Nemaju potrebu da postoje xD

Label nigde konkretno ne koristis, ne brises, ne pomeras tako da nema neke potrebe da ga cuvas u promenljivu

Sto se objekta tice, imalo bi smisla da si koristi NapravljenaJelka[MAX_JELKI], tako da taj kreirani objekat cuvas u promenljivu, posto je globalna promenljiva, gubice staru vrednost i ostace samo ona koja je zadnja ucitana ili kreirana. U prevodu jedini nacin da obrises objekat je da obrises fajl. Pritom ovako kako je napravljeno ne mozes da napravis da funkcionise brisanje preko komande kako treba, zato sto gubis vrednost objekta.

Cuvanje je takodje problem, zato sto ce dobiti ID objekta koji si kreirao.

Pravilnije bi bilo da se odradi ovako :

Code: You are not allowed to view links. Register or Login
stock getNextTreeID(const len) { //uzima prvi slobodan ID za kreiranje jelke
    new id = (-1);
    for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
       provjera = ( loop+1 );
       format( Data_, ( sizeof Data_ ), JelkeFile, provjera );
       if(!fexist(Data_)) {
          id = ( provjera );
          break; } }
    return ( id );
}

YCMD:kreirajjelku( playerid, params[], help ) {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage( playerid, -1, "{0070D0}VaporG - {FFFFFF}Morate biti ulogovani na rcon." ); {
        new Float:X,Float:Y,Float:Z,Float:A;
        GetPlayerPos(playerid, X,Y,Z);
        GetPlayerFacingAngle(playerid, A);

        new id = getNextTreeID(MAX_JELKI); //uzimamo id
        if(id == -1) return SendClientMessage(playerid, -1, "Imas max broj kreiranih jelki!"); //ukoliko vrati -1 znaci da je svaki fajl zauzet

        NapravljenaJelka[id] = CreateObject(19076, X-1,Y,Z-1.5, 0.0, 0.0, A, 300.0); //kreiramo objekat ali stavljamo da bude array(niz), tako da mozemo objekat da koristimo
        label[id] = Create3DTextLabel("{0070D0}[ VaporG JELKA ]\n{0070D0}- {FFFFFF}SRECNA NOVA 2019. GODINA {0070D0}-", 0xFFFFFFFF, X,Y,Z+1, 10.0, 0, 0); //kreiramo label na osnovu ID-a
        JelkaInfo[ id ][ jX ] = X; //postavljamo promenljive
        JelkaInfo[ id ][ jY ] = Y;
        JelkaInfo[ id ][ jZ ] = Z-1.5;
        JelkaInfo[ id ][ jA ] = A;
        save_xmastree( id ); //cuvamo drvo u prvi slobodan ID
    }
    return 1;
}

Uglavnom, cuvamo ID kako treba, tako da ce krenuti od 1 pa nadalje, takodje stavljamo NapravljenaJelka da bude niz, koji je vezan za ID drveta ( fajl )

Sada ce ti cuvati jelka_1.ini pa jelka_2.ini pa jelka_3.ini itd do 500...

Sada mozes da radis i brisanje kako treba, ucitavanje itd...

Dalje...

Ovo :

Code: You are not allowed to view links. Register or Login
task dah_system[2500]() {
    for( new i = 0; i < MAX_PLAYERS; i++ ) {
        if( IsPlayerConnected( i )) {
            if( GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
                RemovePlayerAttachedObject( i, OBJECT_SLOT_FREE );
                PlayerEffect[ i ] = SetPlayerAttachedObject( i, OBJECT_SLOT_FREE, 18696, 2,0.0,0.1,-0.2,-25.5000,0.0,0.0,0.10,0.3,0.15);
}
}
}
return 1;
}

Tutnuti u :

Code: You are not allowed to view links. Register or Login
ptask dah_system[2500](i) {
   
    if( IsPlayerConnected( i )) {
        if( GetPlayerInterior( i ) == 0 && GetPlayerVirtualWorld( i ) == 0 ) {
            RemovePlayerAttachedObject( i, OBJECT_SLOT_FREE );
            PlayerEffect[ i ] = SetPlayerAttachedObject( i, OBJECT_SLOT_FREE, 18696, 2,0.0,0.1,-0.2,-25.5000,0.0,0.0,0.10,0.3,0.15);
}
}
return 1;
}

Kada vec postoji xDD

Za jelke umesto CreateObject koristiti dinamicne objekta, takodje bilo bi dobro dodati EditObject ( da ga moze pomeriti pri kreiranju )

Ovo :

Code: You are not allowed to view links. Register or Login
public OnPlayerUpdate( playerid ) {
    if( Snow[ playerid ] ) {
  if( GetPlayerInterior( playerid ) == 0 && GetPlayerVirtualWorld( playerid ) == 0 ) {
new Float:Pos[ 3 ];
        GetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
        MovePlayerObject( playerid, SnowObject[ playerid ], Pos[ 0 ], Pos[ 1 ], Pos[ 2 ]-2.5, 4000.0 );
  }
}
return true;
}

Takodje moze u ptask mada manje vise isti kurac, nece napraviti neku DRASTICNU razliku

Uglavnom ima par stvari koje treba doraditi, ali ako si ti sve pravio, nije lose. Poraditi na ucitavanju i cuvanju ovih jelki. Ne znam da li si testao da ucitas u nekom malo vecem modu ovu FS? Po ovome kako jeste jelke ne bi trebalo da ucitavanju kako treba

Sve u svemu, pohvale za trud

Ovo :

Code: You are not allowed to view links. Register or Login
public OnPlayerUpdate( playerid ) {
    if( Snow[ playerid ] ) {
  if( GetPlayerInterior( playerid ) == 0 && GetPlayerVirtualWorld( playerid ) == 0 ) {
new Float:Pos[ 3 ];
        GetPlayerCameraPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
        MovePlayerObject( playerid, SnowObject[ playerid ], Pos[ 0 ], Pos[ 1 ], Pos[ 2 ]-2.5, 4000.0 );
  }
}
return true;
}


"nece napraviti neku DRASTICNU razliku", U PRAVU SI


OnPlayerUpdate

This callback is called, on average, 30 times per second, per player; only use it when you know what it's meant for (or more importantly what it's NOT meant for). The frequency with which this callback is called for each player varies, depending on what the player is doing. Driving or shooting will trigger a lot more updates than idling.
Title: Re: Winter Update
Post by: V01D on November 26, 2024, 09:08:15 PM
You are not allowed to view links. Register or Login
"nece napraviti neku DRASTICNU razliku", U PRAVU SI


OnPlayerUpdate

This callback is called, on average, 30 times per second, per player; only use it when you know what it's meant for (or more importantly what it's NOT meant for). The frequency with which this callback is called for each player varies, depending on what the player is doing. Driving or shooting will trigger a lot more updates than idling.


Da, nece napraviti bog zna koliko drasticnu razliku, radite SAMP server, ne pravite sistem za NASU....
Title: Re: Winter Update
Post by: teynr on November 26, 2024, 09:21:06 PM
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
"nece napraviti neku DRASTICNU razliku", U PRAVU SI


OnPlayerUpdate

This callback is called, on average, 30 times per second, per player; only use it when you know what it's meant for (or more importantly what it's NOT meant for). The frequency with which this callback is called for each player varies, depending on what the player is doing. Driving or shooting will trigger a lot more updates than idling.


Da, nece napraviti bog zna koliko drasticnu razliku, radite SAMP server, ne pravite sistem za NASU....
Nece, nece, u pravu si
Title: Re: Winter Update
Post by: Casey on November 27, 2024, 08:00:39 PM
ajmo nesto unikatnijee ovo svi i napamet znamo vec  ;D ;D
Title: Re: Winter Update
Post by: teynr on November 28, 2024, 02:56:47 PM
You are not allowed to view links. Register or Login
ajmo nesto unikatnijee ovo svi i napamet znamo vec  ;D ;D
Da bar ovo znamo...
SimplePortal 2.3.7 © 2008-2026, SimplePortal