1. Šis tinklalapis naudoja slapukus. Tęsdami būvimą šiame tinklalapyje, jūs patvirtinate, jog sutinkate priimti slapukus. Sužinoti daugiau.

[ Pamoka by Sneroq ] Pickup kūrimas

Diskusija 'Serverio kūrimo pamokos' skyriuje nuo sneroq, Sausis 26, 2014.

  1. sneroq

    sneroq Aktyvus narys

    Užsiregistravęs:
    Gruodis 13, 2011
    Pranešimai:
    214
    Taškai už trofėjus:
    178
    Lytis:
    Vyras
    Įvertinimai:
    +27 / 0 / -0
    Skype:
    • 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):
      Kodas (pawn):

      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ą:
      Kodas (pawn):

      enum _pickup {
          Pickupas
      };
      new Pickup[ MAX_PICKUPS ][ _pickup ];
       
      Ir pati pickupo funkcija:
      Kodas (pawn):
      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):
      Kodas (pawn):
      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ą
      Kodas (pawn):

      public OnPlayerPickUpPickup(playerid, pickupid)
      {
          return 1;
      }
       
      Kai jau susiradote šį callback'ą, galime dirbti toliau. Taigi rodau kodą:
      Kodas (pawn):

      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:
      Kodas (pawn):

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


      Pamokos autorius: Sneroq
      Kopijuoti galite tik prirašę šias eilutes!
     
    • Mėgstu Mėgstu x 2
  2. Ernis_U

    Ernis_U Naujas narys

    Užsiregistravęs:
    Rugpjūtis 31, 2013
    Pranešimai:
    12
    Taškai už trofėjus:
    13
    Lytis:
    Vyras
    Įvertinimai:
    +1 / 0 / -0
    Gera pamoka. :)
     
  3. audrys2

    audrys2 Naujas narys

    Užsiregistravęs:
    Sausis 25, 2014
    Pranešimai:
    6
    Taškai už trofėjus:
    1
    Lytis:
    Vyras
    Įvertinimai:
    +0 / 0 / -0
    naujokams pawno pasaulyje pamoka pravers :)
    --- Sujungta: Sausis 28, 2014, 20:24 ---
    naujokams pawno pasaulyje pamoka pravers :)
     
  4. Emigrantas

    Emigrantas Naujas narys

    Užsiregistravęs:
    Spalis 7, 2014
    Pranešimai:
    4
    Taškai už trofėjus:
    11
    Lytis:
    Vyras
    Įvertinimai:
    +0 / 0 / -0
    Ačiū padėjai.
     

Dalintis šiuo puslapiu

Kraunama...