SA:MP döneminde birçok farklı oyun modu denendi. Rol yapma sunucuları uzun süre popülerliğini korusa da hırsız polis gibi daha hızlı ve rekabetçi modlar da oyuncuların ilgisini çekti. Çünkü bu tarz modlarda amaç oldukça netti: Bir taraf kaçmaya çalışırken diğer taraf yakalamaya çalışıyordu. Peki, SA:MP hırsız polis modu nasıl yapılır?
Ben uzun süre SA:MP oynayan biri olarak bu tarz modların neden sevildiğini çok iyi hatırlıyorum. Oyuncuyu uzun sistemlerle boğmadan direkt aksiyona sokan yapılar her zaman daha fazla ilgi görüyordu. Hırsız polis modu da aslında birkaç temel sistemin birleşiminden oluşuyor. Takım seçimi, oyuncu rolleri, yakalama sistemi ve ödül mekanikleri doğru kurulduğunda ortaya keyifli bir deneyim çıkıyor.
SA:MP Hırsız Polis Modunun Temeli Nasıl Kurulur?
Bu modun ilk adımı oyuncuları iki farklı takıma ayırmak. Bir tarafta hırsızlar, diğer tarafta polisler bulunuyor. Pawn tarafında bunu yapmak için oyuncuya özel değişkenler kullanılır.
Öncelikle oyuncunun hangi takımda olduğunu takip etmek gerekir. Çünkü oyundaki bütün kararlar bu bilgiye göre verilir.
new Takim[MAX_PLAYERS];
#define TAKIM_HIRSIZ 1
#define TAKIM_POLIS 2
Oyuncu hırsız olduğunda değişken şu şekilde ayarlanabilir:
Takim[playerid] = TAKIM_HIRSIZ;
Polis takımı için ise:
Takim[playerid] = TAKIM_POLIS;
Bu temel sistem kurulduktan sonra oyuncunun hangi özelliklere sahip olacağı kolayca kontrol edilebilir.
SA:MP Hırsız Polis Takım Sistemi Nasıl Yapılır?
İyi bir hırsız polis modunda iki tarafın da kendine ait özellikleri olması gerekir. Sadece oyuncuları ikiye ayırmak tek başına yeterli olmaz.
Polis tarafına takip avantajları, özel araçlar veya ekipmanlar verilebilir. Hırsız tarafına ise kaçış noktaları ve gizlenme imkanları eklenebilir.
GivePlayerWeapon(playerid, 24, 100);
Hırsız tarafında ise farklı bir başlangıç hazırlanabilir.
SetPlayerSkin(playerid, 29);
Buradaki amaç oyuncuya sadece farklı bir görünüm vermek değil, iki tarafın da farklı bir oyun deneyimi yaşamasını sağlamaktır.
Hırsız Yakalama Sistemi Nasıl Yapılır?
Modun en önemli noktası yakalama sistemidir. Çünkü polis oyuncularının amacı hırsızları bulup yakalamaktır.
Bunun için oyuncular arasındaki mesafe kontrol edilebilir. Polis oyuncusu yakındaki oyuncuları kontrol eder ve karşı tarafın hırsız olup olmadığına bakar.
if(Takim[playerid] == TAKIM_POLIS)
{
if(Takim[hedefid] == TAKIM_HIRSIZ)
{
// yakalama işlemi
}
}
Yakalama gerçekleştiğinde hırsız oyuncu başlangıç noktasına gönderilebilir, polis oyuncusuna ödül verilebilir veya yeni tur başlatılabilir.
Burada en önemli konu dengeyi korumaktır. Polis tarafı fazla güçlü olursa hırsızlar oyundan kopabilir. Hırsızlar çok rahat kaçarsa polis tarafı anlamsız hale gelir.
SA:MP Hırsız Polis Moduna Kaçış Sistemi Nasıl Eklenir?
Hırsız polis modunu daha eğlenceli yapan detaylardan biri kaçış sistemidir. Hırsızların sadece saklanması yerine belirli hedeflere ulaşması oyunu daha hareketli hale getirir.
Haritaya belirli kaçış bölgeleri eklenebilir. Oyuncu bu bölgeye ulaştığında başarılı sayılabilir.
if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
{
// kaçış başarılı
}
Bu sistem sayesinde her tur aynı şekilde ilerlemek yerine oyuncular farklı yollar deneyebilir.
SA:MP Hırsız Polis Moduna Eklenebilecek Gelişmiş Sistemler
Temel hırsız polis modu kurulduktan sonra asıl farkı oluşturan şey eklenen sistemler oluyor. Çünkü sadece bir takımın kaçtığı, diğer takımın kovaladığı basit bir yapı bir süre sonra tekrar etmeye başlıyor. Oyuncuların her tur farklı kararlar vermesini sağlayacak mekanikler eklemek gerekiyor.
Ben SA:MP döneminden baktığımda iyi modların sadece fazla kod içeren modlar olmadığını düşünüyorum. Asıl önemli olan, oyuncuya sürekli yeni bir amaç verebilmek. Özel araçlar, telsiz sistemi, gizli bölgeler, seviye yapısı ve yetenekler de tam olarak burada devreye giriyor.
Özel Kaçış Araçları Nasıl Yapılır?
Hırsız polis modlarında araçlar sadece ulaşım aracı olarak kullanılmamalı. Çünkü bu modun temelinde kaçış fikri bulunuyor. Bu yüzden araç sistemi ne kadar iyi hazırlanırsa oyuncunun yaşadığı deneyim de o kadar değişir.
Basit bir sistemde haritanın belirli noktalarına kaçış araçları yerleştirilir. Ancak daha gelişmiş bir yapıda her aracın farklı özellikleri olabilir. Örneğin hızlı bir spor araç hırsızın kaçmasını kolaylaştırırken dayanıklı bir araç polis saldırılarına karşı avantaj sağlayabilir.
Bunun için öncelikle araçların kayıt altında tutulması gerekir. Hangi aracın kaçış aracı olduğu, hangi takımın kullanabileceği ve aracın aktif olup olmadığı gibi bilgiler saklanmalıdır.
new KacakArac[MAX_VEHICLES];
new KacakAracAktif[MAX_VEHICLES];
Oyuncu araca bindiğinde sistem önce aracın kimliğini kontrol eder. Eğer araç özel kaçış aracıysa ve oyuncu hırsız takımındaysa kullanım izni verilir.
if(GetPlayerVehicleID(playerid) == KacakAracID)
{
if(Takim[playerid] == TAKIM_HIRSIZ)
{
SendClientMessage(playerid,-1,"Kaçış aracını kullanabilirsin.");
}
}
Bu sistem daha da geliştirilebilir. Örneğin polisler kaçış aracının konumunu telsizden öğrenebilir veya araç belirli süre sonra kullanılabilir hale gelebilir.
Burada dikkat edilmesi gereken nokta denge. Çok hızlı araçlar eklemek hırsızları sürekli kazanan tarafa dönüştürebilir. Araçlar avantaj sağlamalı ancak oyunun sonucunu tek başına belirlememeli.
Polis Telsiz Sistemi Nasıl Yapılır?
Polis tarafının en büyük ihtiyacı koordinasyondur. Tek başına hareket eden polis oyuncusu, haritanın büyük olduğu durumlarda hırsızları yakalamakta zorlanabilir. Bu nedenle telsiz sistemi oyuna gerçek bir ekip hissi kazandırır.
Telsiz sisteminin temel mantığı aslında basittir. Normal sohbet mesajından farklı olarak sadece polis takımındaki oyuncuların görebildiği özel bir iletişim kanalı oluşturulur.
Örneğin bir polis oyuncusu hırsızı gördüğünde şu tarz bir mesaj gönderebilir:
- Hırsız görüldü.
- Konum bildirildi.
- Kaçış aracı bulundu.
- Destek gerekiyor.
Bunun için öncelikle komut kontrolü yapılır. Oyuncunun polis olup olmadığı kontrol edilir.
CMD:telsiz(playerid, params[])
{
if(Takim[playerid] != TAKIM_POLIS)
{
return SendClientMessage(playerid,-1,"Bu komutu sadece polisler kullanabilir.");
}
// Polis mesaj sistemi
}
Daha gelişmiş bir telsiz sisteminde oyuncunun konumu da gönderilebilir. Böylece polis ekipleri harita üzerinde daha koordineli hareket eder.
GetPlayerPos(playerid,x,y,z);
Bu sistem hırsız tarafına da dolaylı olarak etki eder. Çünkü polislerin daha organize hareket ettiğini gören hırsız oyuncular daha dikkatli kaçış planları yapmak zorunda kalır.
Gizli Bölgeler Nasıl Eklenir?
Gizli bölgeler hırsız polis modunun stratejik tarafını güçlendiren sistemlerden biridir. Çünkü sadece hız avantajıyla kaçmaya çalışan bir hırsız kısa sürede yakalanabilir.
Gizli bölge mantığında haritada belirli alanlar oluşturulur. Bu alanlar hırsızlara saklanma, görev tamamlama veya yeni kaçış seçenekleri sunabilir.
Örneğin:
- Terk edilmiş depo.
- Yer altı geçidi.
- Eski bina.
- Gizli araç garajı.
Pawn tarafında bu bölgeler genellikle koordinat kontrolüyle yapılır.
if(IsPlayerInRangeOfPoint(playerid,15.0,x,y,z))
{
GizliBolge[playerid] = 1;
}
Ancak iyi bir gizli bölge sistemi sadece “buraya girince saklan” mantığında olmamalıdır. Örneğin polisler bu bölgeleri zamanla keşfedebilir veya hırsızların bölgeyi kullanması için görev tamamlaması gerekebilir.
Bu tarz detaylar oyuncuya sadece kaçma değil, plan yapma hissi verir.
Takım Skor Sistemi Nasıl Yapılır?
Skor sistemi oyuncuların yaptıkları şeylerin karşılığını görmesini sağlar. Hırsız polis modunda sadece kazanan takım değil, oyuncunun bireysel performansı da önemlidir.
Örneğin polis tarafında:
- Hırsız yakalama.
- Kaçış aracını durdurma.
- Görev engelleme.
Hırsız tarafında ise:
- Başarılı kaçış.
- Görev tamamlama.
- Polisten kurtulma.
gibi hareketler puan kazandırabilir.
PolisSkor[playerid]++;
HirsizSkor[playerid]++;
Bu skorlar sadece ekranda gösterilmek zorunda değil. İlerleyen sistemlerde oyuncunun seviyesini belirlemek veya ödüller açmak için de kullanılabilir.
Seviye Sistemi Nasıl Yapılır?
Seviye sistemi oyuncuya uzun vadeli hedef verir. Çünkü oyuncu sadece bir tur kazanmak yerine hesabını geliştirmek ister.
Örneğin polis tarafında seviyeler şöyle olabilir:
- Çaylak Polis.
- Devriye Polisi.
- Özel Tim.
- Baş Komiser.
Hırsız tarafında ise:
- Acemi Hırsız.
- Profesyonel Kaçak.
- Usta Soyguncu.
- Gölgelerin Efendisi.
gibi ilerleyen bir yapı kurulabilir.
Seviye sistemi için oyuncunun deneyim puanı tutulmalıdır.
OyuncuXP[playerid]++;
Belirli XP seviyesine ulaşan oyuncunun seviyesi artırılır.
if(OyuncuXP[playerid] >= 100)
{
OyuncuSeviye[playerid]++;
}
Burada önemli olan seviyelerin sadece isim değişikliği olmaması. Oyuncu gerçekten ilerleme hissetmeli.
Özel Yetenekler Nasıl Eklenir?
Özel yetenekler hırsız polis moduna en fazla çeşitlilik katan sistemlerden biridir. Çünkü aynı takım içinde bile farklı oyun tarzları oluşturabilir.
Örneğin hırsız tarafında:
- Kısa süreli hız artışı.
- Ayak izi gizleme.
- Araç kilidi açma.
- Mini haritada görünmeme.
Polis tarafında ise:
- Geçici radar kullanımı.
- Destek çağırma.
- Hızlı araç desteği.
- Takip cihazı kullanma.
gibi özellikler hazırlanabilir.
YetenekAktif[playerid] = true;
YetenekSuresi[playerid] = 30;
Ancak yetenek sistemlerinde en önemli konu bekleme süresi yani cooldown mekanizmasıdır. Oyuncu yeteneği sürekli kullanabiliyorsa oyun dengesi bozulur.
Örneğin hırsız sürekli hızlanabiliyorsa polislerin hiçbir şansı kalmaz. Polis sürekli radar kullanabiliyorsa hırsızların kaçış planı anlamsızlaşır.
Bu yüzden iyi hazırlanmış bir hırsız polis modu, güçlü özelliklerden çok dengeli özelliklerle başarılı olur. Oyuncuya seçenek sunmalı ancak sonucu tamamen tek bir sisteme bağlamamalıdır.
