GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Yere obje atma sistemi yapmak!

Başlatan Dyternal, 10 Aralık 2017, 19:42:56

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Dyternal

Merhaba arkadaşlar,
Bugün sizlere bizim herhangi bir objeyi yere atmamızı ve o objenin yere fiziğine uygun bir şekilde düşmesini anlatmaya çalışacağım.
Kolay gelsin.





Gerçek fiziğe göre yapmak için 'physics' include'sini kullanacağız. pawno/include yoluna physics adında bir include dosyası açalım. İçine bunları yapıştıralım.



Includemizi oluşturduktan sonra .pwn uzantılı dosyamızın en başına şunu ekliyoruz.
#include <physics>

Burada oluşturduğumuz includemizi .pwn uzantılı dosyamıza geçirdik.

Şimdi komutumuzu ekleyelim. Ben elimizdeki elimize deagle gelmesini ve onun yere atılmasını sağlayacağım. Bu kodları OnPlayerCommandText publicine ekleyin.



if(strcmp("/yereat", cmdtext, true, 10) == 0)
{
#define HIZ (10.0) // HIZ
#define Z_HIZ (4.0) // Z konumu HIZ
#define YERCEKIMI (13.0) // Yer Çekimi
new modelid = 348; // Deagle Model ID
new Float:x, Float:y, Float:z, Float:ang; // Değişkenleri oluşturduk.
GetPlayerPos(playerid, x, y, z); // Oyuncunun Posunu çektik.
GetPlayerFacingAngle(playerid, ang); // Oyuncunun yönünü çektik.
new obj = CreateObject(modelid, x, y - 0.5 * floatcos(-(ang + 90.0), degrees), z, 93.7, 120.0, ang + 60.0); // Objemizi oluşturduk karakterin elinde.
PHY_InitObject(obj); // Objemize Fizik kurallarının ekledik
PHY_SetObjectVelocity(obj, HIZ * floatsin(-ang, degrees), HIZ * floatcos(-ang, degrees), Z_HIZ); // Hareket ettirdik.
PHY_SetObjectFriction(obj, 100); // Sürtünmeyi ayarladık.
PHY_SetObjectGravity(obj, YERCEKIMI); // Yerçekimini Ayarladık.
PHY_SetObjectZBound(obj, z - 1.0, _, 0.0); // Objenin Boundunu ayarladık.
ApplyAnimation(playerid,"GRENADE","WEAPON_throwu",3.0,0,0,0,0,0); // Animasyon verdik.
return 1; // return ile döndürdük
}


#define'ler sayesinde değişkkenleri tanımladık.
new'ler sayesinde değişkenlerimizi oluşturduk.
GetPlayerPos sayesinde oyuncunun pozisyonunu çektik.
GetPlayerFacingAngle sayesinde oyuncunun rotasyonunu çektik. Yani dönmüş olduğu noktayı.
CreateObject sayesinde karakterin eline obje oluşturduk.
PHY_InitObject sayesinde objemize fizik kurallarını ekledik.
PHY_SetObjectVelocity sayesinde hareket ettirdik.
PHY_SetObjectFriction sayesinde sürtünmeyi ayarladık.
PHY_SetObjectGravity sayesinde yerçekimini ayarladık.
PHY_SetObjectZBound sayesinde objenin boundunu ayarladık.
ApplyAnimation sayesinde karakterimizin animasyon oynatmasını sağladık.


Bu include sayesinde bu ve daha fazlası(futbol, basketbol, bilardo vb.) sistemleri yapabilirsiniz. Umarım anlamışsınızdır iyi akşamlar.


pag

Hep çalışma mantığını merak ettiğim fakat hiç araştırmadığım bir konuydu,teşekkürler  :helal:


TRSinan28

Eline koluna sağlık :) Güzel anlatım  :helal:


Matite

güzel anlatım için teşekkürler.

https://sampmobile.com
179.61.147.180:7777

Dyternal

Alıntı yapılan: ReDDooM - 10 Aralık 2017, 19:52:58

Hep çalışma mantığını merak ettiğim fakat hiç araştırmadığım bir konuydu,teşekkürler  :helal:

Yardımcı olduysam ne mutlu bana.
[quote author=
Sinan28 link=topic=2544.msg21777#msg21777 date=1512927948]
Eline koluna sağlık :) Güzel anlatım  :helal:
[/quote]
Teşekkürler :helal:.
Alıntı yapılan: Matite - 10 Aralık 2017, 22:38:37

güzel anlatım için teşekkürler.

Teşekkürler :helal:.


Lé Spîke

         

Jizzy

Eline Sağlık güzel anlatım. :kahkaha:


FelleR