Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[ Pamoka by Sneroq ] Pickup kūrimas


Sneroq

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3097 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Naujokams gal ir pravers, bet parašyk kad tas pickups gali būti ir pačiame .pwn faile ne visuose modifikacijose yra tas data :)

O kur aš rašiau apie data? Tik buvau pamiršęs parašyt kokiam callback'e rašosi CreatePickup funkcija, tad papildžiau.

Nuoroda į komentarą
Dalintis per kitą puslapį

Nu buna ir data failuose ir .pwn faile.

data failo pavadinimą galim pasikeist ir į kitą. Šiaip pamoka yra kaip apskritai susikurt pickupą, galim ta patį daryt ir kituose failuose, tik aišku jau reikės stock kurtis, kad tuos visus pickup galėtum į OnGameModeInit callback'ą integruot.

Nuoroda į komentarą
Dalintis per kitą puslapį

data failo pavadinimą galim pasikeist ir į kitą. Šiaip pamoka yra kaip apskritai susikurt pickupą, galim ta patį daryt ir kituose failuose, tik aišku jau reikės stock kurtis, kad tuos visus pickup galėtum į OnGameModeInit callback'ą integruot.

Nu aš žinau kad yra dar daugiau tų varijantu pagal kuriuos galima kurti pickups

Nuoroda į komentarą
Dalintis per kitą puslapį

 

  • Pickup kūrimas

    Sveiki! Šioje pamokoje parodysiu kaip sukurti pickup ir kaip padaryti, kad ant jo užlipus jis suveiktu ir vykdytu kažkokį kodą.

     

  • Išgauname koordinates

    Dabar turime gauti koordinates, pagal kurias nurodysime pickup stovėjimo vietą.

    Taigi prisijunkite į serverį, atsistokite į vietą, kurioje norite, kad stovėtu jūsų pickup ir rašykite tokią komandą: /rs [bet koks tekstas/žodis]

    Dabar einame: Start → Documents → GTA San Andreas User Files → SAMP → rawpositions.txt

    Atsidariusiame tekstiniame dokumente turite matyti savo vietos koordinates, kurias išsaugojote, pvz.: 2302.6101,-7.1328,26.4844,274.2610 ; pavadinimas

    Ten matome X,Y,Z,Angle koordinates, o mums reikės tik X,Y,Z, tad imkite tas koordinates, kur pažymėjau raudonai.

     

  • Enum'as

    Koordinates jau turime, tad dabar susikuriam pickup'ų enum. Aišku galime naudoti ir paprastą new pickup; , na bet pagal mane enum patogesnis ir geresnis, tad rodau kodą(rašome viršuje prie po visais include):

    enum _pickup {
    
    };
    new Pickup[ MAX_PICKUPS ][ _pickup ];
    
  •  

    Kuriame pickup

    Na pagrinde kaip ir viską susikūrėme, liko sukurti tik pickup, tik prieš tai mūsų sukurtame enum'e prirašome pickupo pavadinimą:

    enum _pickup {
        Pickupas
    };
    new Pickup[ MAX_PICKUPS ][ _pickup ];
    

    Ir pati pickupo funkcija:

    Pickup[ 0 ][ Pickupas ] = CreatePickup(model,type, Float:X,Float:Y,Float:Z, virtualworld);
    

    Pickupo parametrai:

    model - Pickupo modelis(tai gali būti iš čia ar objekto ID);

    type - pickupo spawn tipas(juos galite rasti čia);

    Float:X - Pozicijos X koordinatė;

    Float:Y - Pozicijos Y koordinatė;

    Float:Z - Pozicijos Z koordinatė;

    virtualworld - Virtualus pasaulis, kuriame rodys pickupą(Jei norita, kad rodytu visuose virtualiuose pasauliuose rašykite -1).

    Taigi pilnai pasirašome CreatePickup funkciją(Funkciją rašome OnGameModeInit callback'e):

    Pickup[ 0 ][ Pickupas ] = CreatePickup(1239,2, 2302.6101,-7.1328,26.4844, 0);
    
  • Vykdome kažką užlipę ant pickup

    Pickup'ą jau kaip ir susikūrėme, tik užlipę ant jo šiuo metu jokio veiksmo negausite. Tam, kad kažką atlikti turite susirasti savo modifikacijos .pwn faile šį callbacką

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
         return 1;
    }

    Kai jau susiradote šį callback'ą, galime dirbti toliau. Taigi rodau kodą:

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
         if(pickupid == Pickup[ 0 ][ Pickupas ])
         {
              // Jūsų kodas...
              return 1;
         }
         return 1;
    }

    OnPlayerPickUpPickup callback'e tikriname, ar pickupid yra lygus pickupui, ant kurio užlipote. Jeigu lygus, tad vykdome kažkokį kodą toje vietoje kur parašyta „Jūsų kodas“. Ten galite rašyti savo kodą.

     

  • Pabaigai

    Jeigu norite kurti daugiau pickupų, turite enume prisirašyti daugiau pavadinimų. Aišku jie turi būti skirtingi ir atskirti kableliu (paskutinėje enum eilutėje neturi būti kablelio).

    Pavyzdys:

    enum _pickup {
        Pickupas,
        Pickupas2
    };
    new Pickup[ MAX_PICKUPS ][ _pickup ];
    

    Pamokos autorius: Sneroq

    Kopijuoti galite tik prirašę šias eilutes!

 

Mldc :)

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 2 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3097 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

Skelbimai


×
×
  • Sukurti naują...