GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Mod Galerisi => Konuyu başlatan: Codes. - 21 Aralık 2019, 15:02:38

Başlık: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Codes. - 21 Aralık 2019, 15:02:38
Merhabalar,
zamanında aktörlü soygun includesi geliştirmiştim tabi ben yapmadım ama çok emeğim oldu bu aktörlü soygun sisteminde türkçeleştirme vs. neredeyse ve bir çok şeyide düzenlemiştim zamanında türkçeleştirme yaptım, açıkları kapatma, buglar fixleme derken böyle bir şey çıktı ortaya kendini geliştirmek isteyenler için lazım olacaktır diye paylaşma gereği duydum. :)

[Resimler]

(https://i.hizliresim.com/AOp8Vq.png)

(https://i.hizliresim.com/JVv89n.png)

İndirme Linki

https://www.mediafire.com/file/tv5btacep14d28i/Soygun_Aktor.inc/file

Virüs Total https://www.virustotal.com/gui/file/34391f2d609d5e01de4b23191b145070925b17cfa8fa82906015314ad5afd4e1/detection

Kaynak Kodu(Source Code)

PAWN Kodu: Seç
/*
[TAKTAK26]
[SOYGUN_AKTOR KITAPLIGI]
<!> Pawno'da compile etmeyiniz yoksa bozulabilir.
*/


#if !defined _samp_included
#error Lütfen include a_samp önce includesini pawn dosyaniza ekleyiniz ondan sonra Soygun_Aktor includesini ekleyiniz. // #include <a_samp> olmazsa bu hatayý verir.
#endif

#if !defined KEY_AIM
#define KEY_AIM  128
#endif

#if !defined PreloadAnimLib
#define PreloadAnimLib(%1,%2) ApplyAnimation(%1,%2,"null",0.0,0,0,0,0,0)
#endif

#define MAX_SOYGUN_AKTOR (50) // Dükkan sayisina göre yapilmistir kendinize göre ayarlarsiniz.

#define BASARILI_SOYGUN        (0)
#define BASARISIZ_SOYGUN      (1)
#define SOYGUN_BITIRILMEDI    (2)

#define MIN_PARA      1000
#define MAX_PARA      20000
#define SOYGUN_GERI_SAYIM  (5)



enum AKTOR_SOYGUN
{
actor_skin,
Float:actor_x,
Float:actor_y,
Float:actor_z,
Float:actor_ang,
actor_vw,
money_min,
money_max,

bool:actor_created,
actor_robbedRecently
}
static
soygun_data[MAX_SOYGUN_AKTOR][AKTOR_SOYGUN],
i_actor = 0; // i degeri

forward AktorAnimasyon(playerid, actorid, animation_pattern);
forward SoygunBaslangic(playerid, actorid, robbed_recently);
forward SoygunBitis(playerid, actorid, robbedmoney, type);


/*
Function:
AktorOlustur
Bilgi:
Belirlenen konuma göre aktörünüzü olusturur.
Daha Fazlasi:
* skinid -> Aktör Skinidir kendinize göre degistirebilirsiniz.
* Float:x -> Soygun Aktörünün (X) Koordinatı.
* Float:y -> " " (Y) Koordinatı
* Float:z -> " " (Z) Koordinatı
* Float:ang -> Soygun Aktörünün bakis açisi.
* actor_vwid -> Soygun aktörünün sanal idsi yani interior gibi düsünebilirsiniz interior'dan çikarsaniz soygun iptal olur gibi.
* r_moneymin -> Minimum Soygun.
* r_moneymax -> Maksimun Soygun.
*/


stock AktorOlustur(skinid, Float:x, Float:y, Float:z, Float:ang, actor_vwid = 0, r_moneymin = MIN_PARA, r_moneymax = MAX_PARA)
{

new actorid = SoygunAktorID();

if(actorid == -1)
{
print("ERROR: MAX_SOYGUN_AKTOR reached, increase the limit size.");
return -1;
}

CreateActor(skinid, x, y, z, ang);
SetActorVirtualWorld(actorid, actor_vwid);

soygun_data[actorid][actor_created] = true;
soygun_data[actorid][actor_skin] = skinid;
soygun_data[actorid][actor_x] = x;
soygun_data[actorid][actor_y] = y;
soygun_data[actorid][actor_z] = z;
soygun_data[actorid][actor_ang] = ang;
soygun_data[actorid][actor_vw] = actor_vwid;
soygun_data[actorid][money_min] = r_moneymin;
soygun_data[actorid][money_max] = r_moneymax;

return (++ i_actor - 1);
}

/*
Function:
AktorSoygunVeri
Bilgi:
Aktörün soygun verilerini alir, olusturur.
Daha Fazlasi:
* actorid -> Aktörün ID'sidir.
* &skinid -> Aktör Skin ID'sidir.
* &Float:x -> (X) Koordinatı.
* &Float:y -> (Y) Koordinatı.
* &Float:z -> (Z) Koordinatı.
* &Float:ang -> Soygun Aktörünün bakis açisi.
* &actor_vwid -> Sanal idsi yani interiordan çiktiginizda iptal olmasi gibi.
* &r_moneymin -> Minimun soygun ayarları.
* &r_moneymax -> Maksimun soygun ayarları.
*/


stock AktorSoygunVeri(actorid, &skinid, &Float:x, &Float:y, &Float:z, &Float:ang, &actor_vwid, &r_moneymin, &r_moneymax)
{
if(actorid == INVALID_ACTOR_ID)
return 1;

skinid = soygun_data[actorid][actor_skin];
x = soygun_data[actorid][actor_x];
y = soygun_data[actorid][actor_y];
z = soygun_data[actorid][actor_z] ;
ang = soygun_data[actorid][actor_ang] ;
actor_vwid = soygun_data[actorid][actor_vw];
r_moneymin = soygun_data[actorid][money_min];
r_moneymax = soygun_data[actorid][money_max];
return 1;
}

/*
Function:
SoygunAktorID
Bilgi:
Bir Aktörün Soygun(ID)'sidir.
Daha Fazlasi:
Fazla Söze Gerek yok çünkü "()" içine bir sey eklenmediginden :D
*/


static SoygunAktorID()
{
for(new i = 0; i < MAX_SOYGUN_AKTOR; i++)
{
if(!soygun_data[i][actor_created]) return i;
}
return -1; // buraya kesinlikle ellemeyin textdrawli yapacaksaniz "-1" ama textdrawsiz ise "+1" seklinde yapiniz.
}

/*
Soygun Animasyon.
*/


public AktorAnimasyon(playerid, actorid, animation_pattern)
{
switch(animation_pattern)
{
case 0:
{
ClearActorAnimations(actorid);
ApplyActorAnimation(actorid, "SHOP", "SHP_Rob_HandsUp", 4.1, 0, 1, 1, 1, 0);

SetTimerEx("AktorAnimasyon", 1000 * SOYGUN_GERI_SAYIM, false, "iii", playerid, actorid, 1);

new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);

for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
{
if(!IsPlayerConnected(i)) { continue; }
PlayerPlaySound(i, 3401, x, y, z);
}
}
case 1:
{
if(!IsPlayerInRangeOfPoint(playerid, 10.0, soygun_data[actorid][actor_x], soygun_data[actorid][actor_y], soygun_data[actorid][actor_z]))
{
SoygunBitis(playerid, actorid, 0, SOYGUN_BITIRILMEDI);
}
else
{
ClearActorAnimations(actorid);
ApplyActorAnimation(actorid, "SHOP", "SHP_Rob_GiveCash", 4.1, 0, 1, 1, 1, 0);

SetTimerEx("AktorAnimasyon", 1000 * SOYGUN_GERI_SAYIM, false, "iii", playerid, actorid, 2);
}
}
case 2:
{
ClearActorAnimations(actorid);
ApplyActorAnimation(actorid, "PED", "DUCK_cower", 4.1, 1, 1, 1, 1, 1);

SetTimerEx("AktorAnimasyon", 1000 * 60 * SOYGUN_GERI_SAYIM, false, "iii", playerid, actorid, 3);

new
robberyChance = random(100);
if(robberyChance > 40)
{
SoygunBitis(playerid, actorid, (random(soygun_data[actorid][money_max] - soygun_data[actorid][money_min]) + soygun_data[actorid][money_min]), BASARILI_SOYGUN);
}
else SoygunBitis(playerid, actorid, 0, BASARISIZ_SOYGUN);
}
case 3:
{
ClearActorAnimations(actorid);
PlayerPlaySound(playerid, 0, 0.0, 0.0, 0.0);
}

}
return 1;
}

public OnPlayerConnect(playerid)
{
EnablePlayerCameraTarget(playerid, 1);

PreloadAnimLib(playerid, "PED");
PreloadAnimLib(playerid, "SHOP");

#if defined actorrob_OnPlayerConnect
    actorrob_OnPlayerConnect(playerid);
#endif
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_AIM) == KEY_AIM && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
switch(GetPlayerWeapon(playerid))
{
case 22 .. 33:
{
new actorid = GetPlayerCameraTargetActor(playerid);

if(actorid == INVALID_ACTOR_ID)
return 1;

if(gettime() - soygun_data[actorid][actor_robbedRecently] < 60 * SOYGUN_GERI_SAYIM)
return SoygunBaslangic(playerid, actorid, 1);

soygun_data[actorid][actor_robbedRecently] = gettime();
AktorAnimasyon(playerid, actorid, 0);
}
}
}
  #if defined actorrob_OnPlayerKeyStateChange
        actorrob_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    #else
  return 1;
#endif

}

//OnPlayerKeyStateChange hook şeklinde yapınız.

#if defined _ALS_OnPlayerKeyStateChange
    #undef OnPlayerKeyStateChange
#else
    #define _ALS_OnPlayerKeyState
#endif

#define OnPlayerKeyStateChange actorrob_OnPlayerKeyStateChange

#if defined actorrob_OnPlayerKeyStateChange
    forward actorrob_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
#endif

//OnPlayerConnect Bölümü

#if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
#else
    #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect actorrob_OnPlayerConnect
#if defined actorrob_OnPlayerConnect
    forward actorrob_OnPlayerConnect(playerid);
#endif

Yakında source codeleri paylaşılacaktır aktörlü soygun sisteminin.
Başlık: Ynt: Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Codes. - 21 Aralık 2019, 15:03:08
Güncellendi. :)
Başlık: Ynt: Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Excision - 21 Aralık 2019, 16:38:33
şu source kodunu paylaşmayı öğrenin artık aw
Başlık: Ynt: Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Vengeance - 21 Aralık 2019, 16:40:28
Alıntı yapılan: Bölüm Kuralları
Paylaştığınız içerikte dosyaya ait hastebin veya pastebin linki ya da konu içinde PAWN bbcode'u ile kodların koyulması zorunludur.

24 saat içerisinde konuyu düzenleyin.
Başlık: Ynt: Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Codes. - 21 Aralık 2019, 17:30:34
Alıntı yapılan: Excision - 21 Aralık 2019, 16:38:33
şu source kodunu paylaşmayı öğrenin artık aw
Alıntı yapılan: Vengeance - 21 Aralık 2019, 16:40:28
Alıntı yapılan: Bölüm Kuralları
Paylaştığınız içerikte dosyaya ait hastebin veya pastebin linki ya da konu içinde PAWN bbcode'u ile kodların koyulması zorunludur.

24 saat içerisinde konuyu düzenleyin.

Unutmuşum, çok pardon hemen ekliyorum bekleyiniz.
Başlık: Ynt: Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Codes. - 21 Aralık 2019, 17:35:48
Konu güncellendi.
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Excision - 25 Aralık 2019, 20:41:37
yaptığın geliştirmeleri, fixleri söyler misin ?
https://www.diffchecker.com/KKI1I4vX
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Zeynel - 01 Mayıs 2020, 20:41:59
ekledim fakat hata alıyorum nasıl olucak bu
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Çikolatalı Kek - 05 Mayıs 2020, 18:21:20
Mükemmel olmuş, uzun süredir arıyordum.
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: maXpoWer - 11 Mayıs 2020, 14:58:09
Paylaşım için teşekkürler.
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: Gorkemslx - 01 Temmuz 2020, 09:32:39
.
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: TuraL. - 30 Ağustos 2020, 18:30:42
Aktorlu soygunu çoğu adam istiyor ama yapa bilmeyenler'de var onun için Filterscripts yapıp paylaşsaydın iyi olurdu.
Başlık: Ynt: [INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]
Gönderen: _Toretto - 30 Ağustos 2020, 19:13:29
Moda görede uyarlasınmı.  :kahkaha:  :kahkaha: