GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Maverick - 25 Mart 2021, 19:57:20

Başlık: [Anlatım] Pet Sistemi
Gönderen: Maverick - 25 Mart 2021, 19:57:20
Sistemin açıklaması aşağıdaki kod satırlarında, keyifli kullanmalar.
//Bu anlatımda sadece pet sisteminin iskeletini anlatıyorum, iskeleti siz geliştirebilirsiniz. :=)
//CreateActor SAMP'ın fonksiyonu olduğundan MAX_ACTORS(1000) adet aktör oluşturabilirsiniz.
//Bunu streamer eklentisini kullanarak arttırabilirsiniz. Bknz: https://github.com/samp-incognito/samp-streamer-plugin/wiki
//Ek olarak aktörün/petin Z kordinatını bulmamız lazım bunun için MapAndreas veya ColAndreas eklentilerini kullanabilirsiniz.
//https://github.com/Southclaws/samp-plugin-mapandreas / https://github.com/Pottus/ColAndreas/wiki

//örnek olarak bir tane pet modeli veriyorum isterseniz indirip kullanabilirsiniz.
//models klasörünün içindeki artconfig.txt ye AddCharModel(305, 29989, "blackpitbull.dff", "blackpitbull.txd"); ekleyin.
// https://download.erenumutozdemir.com/blackpitbull.dff
// https://download.erenumutozdemir.com/blackpitbull.txd

// 2018 yılında yaptığım sistemin videosunu aşağıya ekledim, bakabilirsiniz.


// konunun altına düşüncelerenizi belirtirseniz sevinirim.

new PET[MAX_PLAYERS], PET_Timer[MAX_PLAYERS]; // pet değişkenleri

PET[playerid] = CreateActor(29989, ...); // aktörü/peti oluşturuyorsunuz fonksiyonun tamamı için wikiye bakın.
DestroyActor(PET[playerid]); // aktörü kaldırabilirsiniz.

PET_Timer[playerid] = SetTimerEx("ChangeActorPos", 10, true, "ii", playerid, PET[playerid]); // aktörü/peti haraket ettirmek için timer oluşturabilirsiniz. parametreler için wikiye bakın.
KillTimer(PET_Timer[playerid]); //aktörü/peti durdurmak için kullanabilirsiniz.


forward ChangeActorPos(playerid, actorid);
public ChangeActorPos(playerid, actorid)
{
if(IsValidActor(actorid))
  {
    new Float:aPos[5], Float:pPos[3];
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[3]);
  GetActorPos(actorid, aPos[0], aPos[1], aPos[2]);
if((pPos[0] >= aPos[0] -1.8 && pPos[0] <= aPos[0] + 1.8) && (pPos[1] >= aPos[1] - 1.8 && pPos[1] <= aPos[1] + 1.8)) {
ClearActorAnimations(PET[playerid]); // aktörün/petin oyuncuya yakın olup olmadığını kontrol ediyorsunuz yakınsa haraket etmeyi bırakıyor.
ApplyActorAnimation(PET[playerid], "OTB", "wtchrace_win", 4.0, 1, 0, 0, 0, 0);
continue;
}
else {
// aktör/pet haraket ediyor.
GetActorFacingAngle(actorid, aPos[3]);
ApplyActorAnimation(PET[playerid], "ped", "run_player", 4.1, 1, 1, 1, 0, 0);
aPos[0] += 0.062 * floatsin(-aPos[3], degrees);
aPos[1] += 0.062 * floatcos(-aPos[3], degrees);
MapAndreas_FindZ_For2DCoord(aPos[0], aPos[1], aPos[4]); //MapAndreas eklentisininin fonksiyonu
//CA_FindZ_For2DCoord(aPos[0], aPos[1], aPos[4]); //ColAndreas eklentisininin fonksiyonu
ChangeActorLookAt(actorid, pPos[0], pPos[1], aPos[0], aPos[1], aPos[3]);
SetActorPos(actorid, aPos[0], aPos[1], aPos[4] + 1);
}
}
return 1;
}

stock ChangeActorLookAt(actorid, Float:X, Float:Y, Float:Ax, Float:Ay, Float:Aa)
{
Aa = floatabs(atan((Y - Ay) / (X - Ax)));
if (X <= Ax && Y >= Ay) Aa = floatsub(180, Aa);
else if (X < Ax && Y < Ay) Aa = floatadd(Aa, 180);
else if (X >= Ax && Y <= Ay) Aa = floatsub(360.0, Aa);
Aa = floatsub(Aa, 90.0);
if (Aa >= 360.0) Aa = floatsub(Aa, 360.0);
SetActorFacingAngle(actorid, Aa);
return 1;
}
Bknz: [Anlatım] Gelişmiş Anti Hile Eklentisi & Dahası - Trafik Polisi Pawn.RakNet (https://www.gtamulti.com/forum/anlatimlar/(anlatim)-gelismis-anti-hile-eklentisi-dahasi-trafik-polisi-pawn-raknet/)
Maverick ;)  (https://erenumutozdemir.com/)
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: merddz - 25 Mart 2021, 20:35:01
Gayet güzel gözüküyor, başarılar elinize sağlık.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 25 Mart 2021, 20:53:47
Alıntı yapılan: merddz - 25 Mart 2021, 20:35:01
Gayet güzel gözüküyor, başarılar elinize sağlık.
Teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Rodeiun - 25 Mart 2021, 20:59:41
elinize sağlık baya iyi
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Amper - 25 Mart 2021, 21:38:58
Bu yöntemle muhtemelen köprü altı gibi yerlerde problem çıkacaktır. Aktörler köprü altından üstüne ışınlanır veya yeni eklenen objeleri algılayamaz.

Çözüm: ColAndreas kullanarak RayCastLine fonksiyonu yardımıyla oyuncunun altını gerçek zamanlı taratarak bulmanız.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 25 Mart 2021, 22:00:56
Alıntı yapılan: Amper - 25 Mart 2021, 21:38:58
Bu yöntemle muhtemelen köprü altı gibi yerlerde problem çıkacaktır. Aktörler köprü altından üstüne ışınlanır veya yeni eklenen objeleri algılayamaz.

Çözüm: ColAndreas kullanarak RayCastLine fonksiyonu yardımıyla oyuncunun altını gerçek zamanlı taratarak bulmanız.

Açıklama satırına zaten ColAndreas wiki bıraktım gerisi geliştiriciye kaldı, yorum için teşekkürler. @Amper
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Belkide Gameover - 25 Mart 2021, 22:22:35
Eline sağlık kolay gelsin :)
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Efsun - 26 Mart 2021, 09:25:40
Alıntı yapılan: Belkide Gameover - 25 Mart 2021, 22:22:35
Eline sağlık kolay gelsin :)
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 26 Mart 2021, 12:29:38
Alıntı yapılan: Belkide Gameover - 25 Mart 2021, 22:22:35
Eline sağlık kolay gelsin :)
Alıntı yapılan: Efsun - 26 Mart 2021, 09:25:40
Alıntı yapılan: Belkide Gameover - 25 Mart 2021, 22:22:35
Eline sağlık kolay gelsin :)

Yorum için teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: sharax - 30 Ağustos 2021, 18:54:55
eline sağlık
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 05 Eylül 2021, 17:49:38
Alıntı yapılan: sharax - 30 Ağustos 2021, 18:54:55
eline sağlık
Teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Feick - 05 Eylül 2021, 18:39:18
Eline sağlık, gayet başarılı bir sistem.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Gladiator - 06 Eylül 2021, 10:39:14
Anlatım için teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Impeccable - 06 Eylül 2021, 22:42:35
Anlatım için teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 07 Eylül 2021, 17:14:57
Alıntı yapılan: Feick - 05 Eylül 2021, 18:39:18
Eline sağlık, gayet başarılı bir sistem.
Alıntı yapılan: Gladiator - 06 Eylül 2021, 10:39:14
Anlatım için teşekkürler.
Alıntı yapılan: Impeccable - 06 Eylül 2021, 22:42:35
Anlatım için teşekkürler.
Teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Animex - 10 Aralık 2021, 19:23:25
Gayet güzel anlatım teşekkürler
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Maverick - 30 Aralık 2021, 02:34:33
Alıntı yapılan: Lendora - 10 Aralık 2021, 19:23:25
Gayet güzel anlatım teşekkürler

Teşekkürler.
Başlık: Ynt: [Anlatım] Pet Sistemi
Gönderen: Noren - 11 Şubat 2022, 17:40:26
Alıntı yapılan: Maverick - 05 Eylül 2021, 17:49:38
Teşekkürler.

Eline sağlık yararlı.