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

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5053 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

Sveiki.Po ilgos pertraukos,dar viena pamoka. ;)

1.Pirmiausia reikia sukurti kintamąjį būtent automobiliams serveryje, ji reiktu įdėti po #include, tiesiog parašykite new Kuras[MAX_VEHICLES]: http://www.flixya.com/photo/1277493/SA-MP-Fuel-Tutorial, arba tiesiog galite vietoj MAX_VEHICLES įstatyti skaičių kiek automobiliu bus serveryje. Toliau norime nustatyti, kad galu gale automobilis serveryje turėtu kuro. O kaip dabar padaryti, kad tas Kuras vis dėlto egzistuotu automobilyje? PAPRASTAI!

2.OnVehicleSpawn funkcijoje tiesiog įrašome Kuras[vehicleid] = 100;, dabar detaliau: kiek pamenate funkcija įsijungia kada atsiranda automobilis ar kokia transporto priemone serveryje, to transporto ID žymimas toje funkcijoje vehicleid, todėl tarp laužtiniu skliaustu įraše vehicleid, mes pririšame Kuras kintamaji prie būtent to ID. (Šita galime visaip modifikuoti, gal pavyzdžiui jums atsiranda automobilis kurio id visada priristas prie kintamojo "Manoauto" ar panašiai ir t.t. tai vietoj vehicleid, įrašome Manoauto (Kuras[Manoauto]) )

3.Sukure visa šita, padarykime trumpą patikrinimą funkcijoje OnPlayerEnterVehicle, nelabai logiška juk, kad be kuro masina judėtu ane? tai va, rašome toje funkcijoje if(Kuras[vehicleid] <= 0) TogglePlayerControllable(playerid,0); http://www.flixya.com/photo/1277510/SA-MP-Fuel-Tutorial (nepykit dėl klaidos su > fotografijoje, tiesiog taip įšėjo, nepastebėjau, turi but < kaip rašau čia) tokia eilute parašius, nebūtini net { }, sutaupo vietos ir laiko, bet per daug nepiktdžiugiaukit tuom, nes gali ir kilt problemų compailinant. Tesiam. Šita eilute ką daro? ji tiesiog patikrina žaidėjo automobili vos į jį įsėda, ar jame yra 0 kuro ar mažiau (nelogiška, bet ei..čia žaidimas!) jei mažiau arba 0 tai tiesiog surakina žaidėją ir jis negali jokiu funkcijų atlikti, nei kameros pasukti, nei paspaudes mygtukus kanors pasiekti, veikia tik funkcijos sukurtos OnPlayerCmdText (bet šito mes nenaudosime šiandiena.) Bet ką dabar daryti? Įsėdote į automobili ir jame nėra kuro, tai net klavišas su kurio įprastai išlipate iš automobilio neveikia! Nebėda.

4.Pamenate funkcija OnPlayerKeyStateChange, ji vistiek reaguos į jūsų paspaudimus, va tiesiog parašykite šitokia funkcija joje: http://www.flixya.com/photo/1277557/SA-MP-Fuel-Tutorial-part-5 Komentarai turėtu padėti suprasti, kas vyksta ir skriptas atrodo suspaustas, čia vien dėlto, kad išeitu mažesnis screenshotas, ir tilptu visi komentarai.

Tai ką, jau padarėme, kad kaskart atsiradęs automobilis turėtu 100 kuro vienetu, kad jei automobilis neturi kuro, jis net nepajudės iš vietos sava eiga, galime išlipti, nors ir būname užblokuoti nuo bet kokiu klavišų.

5.Toliau - Kuras yra, bet jis tiesiog ten bus, ir mašinos važinėsis nenaudodamos ne laso kuro! Dėl šito teks sukurti nauja Public funkcija ir nustatyti taimerį (laikmati) kuris atnaujins ta funkcija serveryje. Pradžiai sukurkime funkcija: Nauja Funkcija http://www.flixya.com/photo/1277622/SA-MP-Fuel-Tutorial-Part-6 va, dabar detaliau:

49 eilute: tiesiog sukuriamas naujas Public

51 eilute: mes sukuriame nauja kintamąjį kuri naudosime TIK šioje funkcijoje ( Sanaudos) ir tą kintamąjį priskiriame prie ID kuri vairuoja musu nurodytas žaidėjas ( playerid )

52-53 eilutes: tikrina ar žaidėjas yra transporto priemonėje ir jei jis yra, tai patikrina ar jis vairuotojas ( nes keleivis negali kuro naudoti!)

54 eilute: užklausa duoda ar tame automobilyje kuriame žaidėjas yra vairuotojas yra kuro, jei nėra, tai iškart naudojama return 1; kitaip sakant uždaroma funkcija ir ji nebeteisiama

55 eilute: jei vis dėlto kuro yra, tada iš to automobilio minusiojamas 1 kuro taškas, kitaip sakant iš 100, tampa 99, ar is 43 lieka 42, žiūrint kiek kuro yra. REIKIA NEPAMIRŠT - kadangi šita funkcija yra nauja, musu sukurta, reik prirašyt bet kurioje vietoje skripto, patogiausia tiesiai viena eilute žemiau musu new Kuras[MAX_VEHICLES] , rašome forward Sanaudos(playerid); Vat ir turime mes viska ko reikia kuro skriptui. beliko nustatyti taimerį!

6.OnPlayerConnect rašome šitaip: SetTimerEx("Sanaudos",5000,1,"i",playerid); Aiškiau SetTimerEx("funkcijos pavadinimas", laikas, kartosis ar ne, naudojami simboliai, kintamasis); Tai sukūrėme taimerį, kuris kas 5kias sekundes įjungs funkcija Sanaudos ir ja kas 5 sekundes kartos, i - integralas, ir tas integralas yra playerid. Tai kitaip sakant, kas 5kias sekundes serveris patikrins ar žaidėjas vairuoja, jei vairuoja, tai minusuos kurą, galima prirašyti į funkcija Sanaudos(playerid) kur yra 54 eilute, if(Kuras[vehicleid] <=0) TogglePlayerControllable(playerid, 0); return l; Šitaip jei jam vairuojant baigsis kuras, masina sustos ir bus užblokuotas, išlipti tai pat kaip ir paprastai tereiktu.

Na tuom ir baigiasi viskas, aišku galima labai dar daug ką prikurti iš šito skripto. Beje likusiose nepaliestuose musu funkcijose galima tiesiog įrašyt kad skriptas užkrautas ir panašiai, beje jei norėsite rodyti su textdraw ar žinutėm paprastom žaidime kiek kuro liko, tai tiesiog naudokite Kuras[vehicleid]. Tai tiek, tikiuosi padėjau!

Jei patiko,nepagailėk +r3p.

8edfbdf5e0dcb5ddb8765e5dbb3958e9810.gif

“I think everybody in this country should learn how to program a computer because it teaches you how to think.” — STEVE JOBS

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5053 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...