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

[INCLUDE] Soygun_Aktor.inc [Aktörlü Soygun Sistemi Yapmak İsteyenler Buraya]

Başlatan Codes., 21 Aralık 2019, 15:02:38

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Codes.

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]





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.
Son düzenlenme: 25 Aralık 2019, 20:53:27 TAKTAK26 Sebep: Güncellendi.


Excision


Vengeance

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.


Codes.

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.


Codes.


Excision


Zeynel

Avrupa HP Hırsız Polis

Çikolatalı Kek


maXpoWer

Serhan Buz (maXpoWer)
Since 2009

Gorkemslx

2014 - 2024

TuraL.

Aktorlu soygunu çoğu adam istiyor ama yapa bilmeyenler'de var onun için Filterscripts yapıp paylaşsaydın iyi olurdu.


_Toretto