# San Andreas Multiplayer
San Andreas Multiplayer, yüzlerce oyuncunun herhangi bir sunucudan, bağlanıp birlikte zaman geçirdikleri çok oyunculu bir "" eklentisidir. Burada, farklı modlar halinde birçok oyun sunucusu bulunmaktadır. "San Andreas Multiplayer", şu anda, 0.3DL sürümünde işlev görmektedir.
"San Andreas Multiplayer", 2005'in Aralık aylarında internette yayınlanmıştır.
SA:MP'nin baş geliştiricisi ve kurucusu olan Kalcor (diğer adıyla Kyeman), projenin vizyonunu şekillendiren en önemli figürdür. 2004 yılında Grand Theft Auto: San Andreas'ın PC versiyonunun piyasaya sürülmesinden hemen sonra projeye başlamıştır. Profesyonel bir yazılım geliştirici olan Kalcor, çok oyunculu modifikasyonlar konusunda geniş bir deneyime sahipti ve daha önce Vice City Multiplayer projelerinde de yer almıştı.
Kalcor'un programlama becerisi, özellikle RakNet ağ kütüphanesiyle çalışma konusundaki uzmanlığı, SA:MP'nin sağlam temellerini oluşturmasına olanak tanıdı. Proje başlangıcında, oyunun çok oyunculu özelliklerini sadece 6 kişilik kooperatif mod olarak sınırlandırmayı planlamıştı, ancak topluluk tepkisi üzerine bu fikirden vazgeçti.
Projenin ilk aşamalarında, bir anlaşmazlık sonucu Kalcor kısa bir süre projeden ayrılmış, ancak bir ay sonra geri dönmüştür. Bu dönüş, SA:MP'nin bugün bildiğimiz açık dünya çok oyunculu mod olarak gelişmesinde kritik bir dönüm noktası olmuştur.
Kalcor, SA:MP'nin sürüm numaralandırmasında kendine özgü bir sistem kullanmıştır. Kendi deyimiyle "kalver" olarak adlandırdığı bu sistemde, "R" harfi küçük değişiklikleri veya güvenlik yamalarını ifade ederken, ana sürüm numarasındaki değişiklikler (örneğin 0.2'den 0.3'e) büyük güncellemeleri göstermiştir. İlginç bir şekilde, 4 rakamını uğursuzluk sembolü olarak gördüğünden 0.4 sürümüne geçmekten kaçınmıştır.
18 Ekim 2019'da Kalcor, SA:MP'yi tamamen bıraktığını açıklamasına rağmen, Kasım 2022'de bir güvenlik yaması (0.3.7-R5) yayınlamıştır. Bu durum, projeye olan bağlılığını ve topluluğa karşı sorumluluğunu göstermektedir.
SA:MP'nin diğer kilit geliştiricisi olan Spooky, projenin başlangıcından itibaren Kalcor'un yanında çalışmıştır. Özellikle, Kalcor'un projeden kısa süreliğine ayrılması sırasında liderliği üstlenmiş ve bu dönemde projeyi GTA:Multiplayer olarak yeniden adlandırmıştır.
Spooky, SA:MP'nin script sisteminin geliştirilmesinde önemli rol oynamıştır. PAWN programlama dilinin SA:MP içinde kullanımının optimize edilmesi ve genişletilmesinde büyük katkıları olmuştur. Ayrıca, sunucu-istemci arasındaki iletişim protokollerinin tasarımı ve geliştirilmesinde uzmanlık göstermiştir.
Topluluk etkileşimi konusunda da aktif olan Spooky, SA:MP forumlarında ve IRC kanallarında geliştiricilere ve sunucu sahiplerine destek sağlamıştır. Onun teknik bilgisi ve ulaşılabilirliği, SA:MP'nin erken dönemlerinde geniş bir geliştirici ekosistemin oluşmasına katkıda bulunmuştur.
SA:MP, yalnızca Kalcor ve Spooky'nin çabaları ile değil, zaman içinde katkıda bulunan çeşitli geliştiricilerin ortak çalışması ile büyümüştür. Y_Less, Zeex, Incognito, SA-MP Team gibi isimler, eklentiler, kütüphaneler ve iyileştirmeler geliştirerek projeye değerli katkılarda bulunmuşlardır.
Y_Less, özellikle YSI (Y_Less's Script Includes) kütüphanesiyle tanınmaktadır. Bu kapsamlı script kütüphanesi, SA:MP geliştiricilerine karmaşık sistemler oluşturmak için güçlü araçlar sağlamıştır. Zeex'in JIT (Just-In-Time) derleyicisi, PAWN scriptlerinin performansını önemli ölçüde artırmıştır. Incognito'nun Streamer eklentisi, sunucuların oyun nesnelerini daha verimli bir şekilde yönetmesine olanak tanımıştır.


## PAWN.
PAWN, GTA San Andreas Multiplayer programlama dilidir. Aynı zamanda Half-Life, Counter-Strike online modlarının, C++ benzerliğiyle bilinmektedir. 
PAWN ile ilgili dosyalar sunucu dosyasında bulunmaktadır. Yapımcısı ITB CompuPhase firmasıdır.


## Genel bakış.
 - Versiyonlar
SA:MP v0.1a şeklinde versiyon grubu vardır. En son çıkan versiyonu ise 0.3.7-R4 olmaktadır.
= Mod ve Scriptler =
Mod (game mode) ve script (filter script) olarak ayrılabilir. Mod ve Scriptin kodlaması arasında sistemsel olarak fazla farkı yoktur fakat önemli detayları vardır. Oyuna girildiğinde önce mod ve ardından server.cfg'deki yan modlar sırayla açılır. Bir mod "gamemodes" klasörüne yüklendikten sonra server.cfg dosyasından gamemode0 modunadı(uzantıolmadan) şeklinde yazılır. Scriptler ise filterscripts base gl_actions satırından aralarında boşluk bırakılarak belirtilmiştir. Eğer gamemode0 yerine gamemode1 yazılırsa scriptler çalışmaz.
Scriptler
Script dosyaları modunuza eklemek yerine modun dışına eklediğiniz kod dosyalarıdır. Gerektiği durumlarda modu kapatmadan aktif-inaktif edilebilirler. Modun üzerindeki ağırlığı azaltmayı amaçlayan sistemlerdir. Eğer bir modun içerisine bütün script dosyaları eklenirse yüklenmeleri ve düzenlenmeleri zaman alacaktır.
SA-MP 0.3d R2 Genel Sınırlar
"Hakkında daha fazla bilgiyi SA:MP Resmi Bilgilendirme Sitesi'nden elde edebilirsiniz."


## SA-MP'de RolePlay.
Rol yapma oyunu, RYO, (İngilizce Role Playing Game RPG) oyuncuların oynadıkları karakterlerin kişiliklerine bürünerek birleşik bir hikâye oluşturdukları oyundur. Diğer oyunlarda (Metin2 gibi) genellikle rol kavramı anlaşılamamıştır. Çoğu internet oyunu RYO olarak geçmesine rağmen rolle uzaktan yakından bir alakası yoktur. SA-MP'de bu terim Role Play (Rol Yapma) olarak geçer. Çünkü RP sunucuları ayrı bir "Rol Yapma Oyunu" değildir. Grand Theft Auto: San Andreas oyunu üzerine yapılmış multiplayer eklentisidir.
Çoğu sunucuda oyuna başladığınızda bir miktar paranız olur ve işsizsinizdir. Kendinize bir meslek bulup para kazanmanız gerekecektir. Oyunda rol içi (Rİ-IC), rol dışı (RD-OOC) role aykırı (RA-NONRP) gibi kavramlarla çok sık karşılaşacaksınız. Bunların anlamları şöyle sıralanabilir;
Rol içi: Sizin değil, karakterinizin yaşamı hakkındaki şeylerdir. Oynadığınız oyun değil, karakterinizin yaşadığı yaşamdır. Kısaltılmışı Rİ'dir. İngilizce kısaltılmışı ise IC (In Character)dir.
Rol dışı: Karakterinizin yaşamı dışındaki şeylerdir. Örneğin, "Hangi tuşla yolcu koltuğuna biniliyor?" rol dışı bir cümledir. Kısaltılmışı RD, İngilizce kısaltılmışı ise OOC (Out Of Character)dir.
Role Aykırı, Role Uymamak, Non-rp: Karakterinizi gerçek hayattaki bir insan gibi canlandırmamaktır. Örneğin, durduk yere etrafa silahla ateş açmak RU örneğidir. Kısaltılmışı RU ya da RA'dır. İngilizcesi ise Non-rp'dir.
RD-Rİ Karıştırmak, Mix: Oyunda rol içi konuşma yerlerine RD yazı yazmak, RD bildiğimiz bir şeyi karakterimiz de biliyor gibi oynamak RD-Rİ karıştırma örneklerindendir. İngilizce kısaltılmışı mix (karıştırmak)tır.
Metagaming: Gerçek hayatta herkesin ismini bilmezsiniz. Oyunda da karakterinizin başkalarının isimlerini bilmiyor olması gerekir. Eğer birisini tanımıyorsanız ya da ismini üstündeki yazıdan görüp de ismini biliyor gibi davranmanız metagame'dir.
Powergaming: Gerçek hayatta yapamayacağınız(imkânsız olarak görülen) şeyleri oyunda yaparak dengeyi ve rolü bozmaktır. Örn: Oyundaki bütün araç türlerinden birer tane almak.
Rol Sunucularında Sıklıkla Kullanılan Komutlar
/b [yazı]: Rol dışı konuşma komutudur. Yazılarınız belli bir mesafeden okunabilir.
/s [yazı]: Bağırma komutudur. Söyledikleriniz daha uzaktan duyulabilir. Rİ'dir
/do [yazı]: Bir şeyin olduğunu başka oyunculara göstermek, bildirmek ya da hatırlatmak için kullanılır. Rİ bir komuttur. Genellikle oyun grafiğinin yeterli olmadığı yerlerde kullanılır. 
/me [yazı]: Kendinizin Rİ yaptığı bir şeyi belirtmek için kullanılır. Ekrana "[İsim] [yazı]." şeklinde yansır. Oyun grafiğinin yetersiz olduğu yerlerde kullanılır. Örneğin; "/me arabanın camından içeri bakar.", "/me farları yakar.", "/me gülümser.".
/help, /yardim: Sunucunun Rİ ve RD komutlarını, sunucunun kurallarını öğrenebileceğiniz komuttur. Sunucuların tamamında olan komutlardır.
= 0.3x ile gelen bazı önemli özellikler =
  - Model önizleme textdraw'ı sayesinde bu özelliği kullanabilip modelleri önceden önizleme yapabiliyoruz.
  - Objelerin distance seviyesini az veya çok yapıp objeleri daha uzaktan görebiliyoruz.
  - AFK göstergesi.
  - Yeni araç renkleri.
= 0.3z ile gelen yeni özellikler =
  - Kaybolan uzun mesafe atış sorunu düzeltildi.
  - Nametag LoS artık server taraflı objelerde de çalışıyor.
  - Joypad'lerin autoaim özelliği kaldırıldı.
  - Artık lag shoot yapmanıza gerek yok, hasar vermek için direkt skine vurmak yeterli.
  - Server ateşlenen mermi hakkında bilgilere erişebiliyor, merminin bir oyuncuya, araca ya da objeye isabet ettiğini anlayabiliyorsunuz.