Advertisement
Guest User

Untitled

a guest
Aug 15th, 2014
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.59 KB | None | 0 0
  1. Sveiki.
  2. Taigi, vėl kažką nuveikiau naudingo, kaip man, tokiam tinginiui tai labai gerai. Šį kart padariau "Ginklų prekeivius", tai ne darbas, apie sistemą - padarytas 3D Label'is ir pickup'as, ant pickup'o užlipus išmes GUI lentelę ir duos rintkis - šaltieji ginklai, automatai, pistoliai ir kiti, paspaudus vėl numes į GUI lentelę ir bus surašyti ginklai tos skilties, kurį norėsit ant to 2x paspausit ir bus nupirktas, surašyta taip: ginklas(kainas: ***). Skriptas labai paprastas, tik sekit veiksmus iš eilės.
  3.  
  4. PICKUP KŪRIMAS
  5.  
  6. Nueikite į betkokį serverį ir susiradę norimą vietą kur bus jūsų pirkimo pickup'as (tik ne pastate) rašykite /save ginklai. Paskui, kai po pamokos galėsite apmappint.
  7.  
  8. Nueikite į Documents->GTA San Andreas User File->SAMP->savedpositions tada turite rasti kažką taip: AddPlayerClass(248,2443.8748,-1973.5944,13.5469,87.9748,0,0,0,0,0,0); // ginklai nukopijuokite x, y ir z kordinates, t.y. AddPlayerClass(248,2443.8748,-1973.5944,13.5469,87.9748,0,0,0,0,0,0); // ginklai (pažymėta raudonai) ir eikite į pawno, ir atverkite savo *.pwn, prie visų kintamųjų(new) prirašykite new ginklai;. Tada susiraskite callback'ą OnGameModeInit ir po juo rašykite:
  9. [code]gshop = CreatePickup(1318,248,2443.8748,-1973.5944,13.5469);[/code]
  10. Kas yra žaliai pažymėti skaičiai? Tai yra pickup'o ID'as, PICKUP ID'ai čia.
  11. Viskas, PICKUP sukurtas.
  12.  
  13. DIALOG'ų KŪRIMAS IR PICKUP'o VEIKIMO PRINCIPAS
  14.  
  15. Kai sukurtas PICKUP'as reikia, kad jis kažką darytų, nes dabar jis nieko nedaro, tik stovi ir nedingsta, kai stovi. Susiraskite callback'ą OnPlayerPickUpPickup ir po juo rašykite:
  16. [code]if(pickupid == ginklai)
  17. {
  18. ShowPlayerDialog(playerid, 67, DIALOG_STYLE_LIST, "Ginklų Parduotuvė", "Šaltieji ginklai\nPistoletai\nAutomatai\nKiti", "Pirkti", "Atšaukti");
  19. SetTimerEx("WantPickup",10000,0,"i",playerid);
  20. DestroyPickup(ginklai);
  21. }[/code]
  22. Dabar kyla klausimas ką daro tos eilutės? if(pickupid == ginklai) - nurodo pickup'ą; ShowPlayerDialog.. - kurią dialog'ą; SetTimerEx("WantPickup",10000,0,"i",playerid); - padaro, kad kai užlipi ant pickup'o jis dingtų 10sekundžių, tai padaryta, nes jis nedingdavo ir kai tik pereidavai į kitą dialog'ą iškart mesdavo atgal; DestroyPickup(ginklai); - ši eilutė pradangina pickup'ą, kas nesuprato ankstesnė eilutė tik nurodo laiką kiek laiko jis dingsta;.
  23.  
  24. Tęsiame. Dabar kai dialog'as sukurtas reikia, kad jis kažkur mus nuvestų, taigi ieškome callback'o OnDialogResponse ir po dedame šitą skriptą.
  25. Aiškinu ką dabar mes padarėme. Po OnPlayerPickUpPickup mes nurodėme 67 dialog'o ID, tad po OnDialogResponse nurodėme 67 ID'ą ir sukūrėme dialog'ą, kad kažką rašytų užlipus ant pickup, tad padarėm kelias eilutes, jūs id eina iš eilės, tad toliau bus 68, 69, 70 ir 71 ID'ai, kad paspaudus ant pasirinktos eilutės duotų rinktis ir pirkti ginklą. Tada padarėme visu likusius dialog'us su tikrinimas, ginklų davimais ir kainomis.
  26.  
  27. Kaip pasikeisti ginklų davimą, kulkų skaičių ir kainą?
  28.  
  29. Tai labai paprasta, 68-71 - dabar žiūrėkite į vieną iš šių ID'ų, kaip pasikeist ginklų davimą, jų skaičių ir kainą - kiekvieno ginklo pirkimo skripte yra ta eilutė, pirkimo skriptas:
  30. [code]if(listitem == 0)
  31. {
  32. if(GetPlayerMoney(playerid) < 750) return SendClientMessage(playerid, 0x0000FFAA, "{6699ff}Tu neturi pinigų, kad nusipirktum šį ginklą.");
  33. GivePlayerMoney(playerid, -750);
  34. GivePlayerWeapon(playerid, 23, 100);
  35. SendClientMessage(playerid, 0x0000FFAA, "{6699ff}Nusipirkai Silenced 9mm.");
  36. }[/code]
  37. (čia tik pavyzdys)
  38. GivePlayerWeapon(playerid, 23, 100); eilutėje, 23 yra ginklo ID'as, 100 kulkų skaičius, if(GetPlayerMoney(playerid) < 750).. ir GivePlayerMoney(playerid, -750); - pirmojoj paminėtoj eilutėj (ne apie ginklus) tikrina ar turi tiek pinigų, tad galite pakeisti pinigų tikrinimą, jei norime pakeisti kainą į 1000LT, kad duotų kitą ginklą ir 900 kulkų reikia daryti taip:
  39. [code]if(listitem == 0)
  40. {
  41. if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0x0000FFAA, "{6699ff}Tu neturi pinigų, kad nusipirktum šį ginklą.");
  42. GivePlayerMoney(playerid, -1000);
  43. GivePlayerWeapon(playerid, 31, 900);
  44. SendClientMessage(playerid, 0x0000FFAA, "{6699ff}Nusipirkai Silenced 9mm.");
  45. }[/code]
  46. Tereikia skaityti kas parašyta, tik GivePlayerMoney(playerid, -1000); eilutėje nenuimkite minuso ženklo, nes nenuims pinigus o pridės.
  47.  
  48. -------------------------------------------------------------------------------------
  49.  
  50. Viskas kurta mano - Cameron'Jenkins
  51.  
  52. Gerbkite mane ir kitus forumo lankytojus, be mano žinios neplatinkite, dėkui.
  53.  
  54. Gero naudojimo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement