SA:MP Destek Blogu
Samp Destek Sitesi

Mod ve Pawno Nedir?

Merhaba, eski yorumları incelerken sıkça mod nedir sorusuna denk geldim. Herkesin aklında olan bu sorunun cevabını vermek için böyle bir yazı hazırladım. İyi okumalar!

Mod, sunucuyu açmak ve geliştirmek için ihtiyacımız olan şeydir. SA-MP'ın kendi sitesinden, yani buradan işletim sisteminize göre uygun dosyayı indirmelisiniz. Girdikten sonra en son sürüm, yani en üstte bulunan son sürüme Download Page diyerek indirme sayfasına gidiyoruz.

Bu noktadan sonra karşımıza bir sayfa çıkıyor. Normal sa-mp client kısmı, windows server kısmı ve linux server kısmından oluşuyor. Eğer işletim sisteminiz windows ise windows server'a, eğer işletim sisteminiz windows değil de linux ise linux server'a tıklıyoruz.

İndirdikten sonra dosyayı açıyoruz ve düzenlememizi yapıyoruz. İyi de, nasıl? İçerisinde pawno ile birlikte geliyor. Pawno, modu yapmamıza ve geliştirmemize yarayan araçtır. Pawno klasörüne girip pawno.exe açıyoruz. Hemen sonra karşımıza bomboş bir sayfa gelecek. Endişlenmeyin, orası dolacak. (Tutmayın beni, dolduracağım orayı!)

File yazısının hemen altında bulunan kağıt butonuna basıyoruz. Hah, işte doldu. Önünüze bir sürü saçma sapan şey çıkacak. En azından size öyle gelecek. Korkmayın, onlar olması gereken şeyler. Modumuzun ayarını yapmaya başlayalım o zaman?

Filterscript olmayıp gamemode olacağı için silmemiz gereken yerler şunlar:

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

#endif

Üstteki kısmı sildikten sonra aşağıdaki kodun ne işe yaradığını öğrenelim.

main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}

Bu, samp-server.exe açıldıktan sonra ekranda ne yazılacağını belirleyen şeydir. Burada Blank Gamemode by your name here yazısı yerine herhangi bir şey yazabiliriz. Örneğin ben "Samp Destek Sitesi Be!" yazmak istiyorum. Ekranda görünecek olan şey tam olarak şu olacak:



Göründüğü gibi işlemimiz tamamlandı.

Sıradaki kodumuz SetGameModeText("Blank Script"); oluyor. Bu, modename ismi oluyor. Yani modun ismi. Buraya Turkiye/Türkiye vs. yazarak oyuncuların gelmesini sağlayabilirsiniz.

Hemen onun altında AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); kodunu görüyoruz. Bu, karakter seçme ekranındaki karakterler demek oluyor. Ne 

AddPlayerClass(Skin ID, POS-X,POS-Y,POS-Z,FACING-ANGLE,SİLAH 1,1. SİLAHIN  MERMİSİ,SİLAH  2,2. SİLAHIN  MERMİSİ,3. SİLAH,3. SİLAHIN  MERMİSİ,4. SİLAH,4. SİLAHIN  MERMİSİ);

Skin ID - Bu karakterin hangi skin olacağını belirler. Bütün skin idlerine ulaşmak için buraya tıklayınız.
POS-X, POS-Y, POS-Z, FACING-ANGLE - Bunlar oyuncunun doğduktan sonra tam olarak nerede doğacağını ayarlamaya yarar. Oyun içerisinde /save komutu ile oyuncunun koordinatını kaydedip Belgeler > Gta San Andreas User  Files > SAMP  > savedpositions.txt kısmından kaydettiğiniz kodu görebilirsiniz. Fakat orada da aynen bu şekil bir kod göreceksiniz. Orada almanız gereken kısım POS-X,POS-Y,POS-Z ve FACING-ANGLE olacak.
Silah 1, 1. Silahın Mermisi - Burası oyuncu doğduktan sonra ne silahı alacak onu belirler. Silah idlerine bakmak için buraya tıklayınız.
Silah 2, 2. Silahın Mermisi - Bu ise doğduktan sonra oyuncunun 2. alacağı silah ve mermisidir. Aynı şekilde 4'e kadar böyle devam etmektedir.

Diğer durağımız OnPlayerRequestClass oluyor. İçerisinde şu kodları göreceksiniz:

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

Bu kodlar karakter seçme ekranını ayarlamaya yaramaktadır.

SetPlayerPos - Oyuncunun duracağı yer.
SetPlayerCameraPos - Oyuncuya bakacak kameranın yeri.
SetPlayerCameraLookAt - Kameranın nereye bakacağı.

Az önce koordinat almayı göstermiştim. (POS-X, POS-Y, POS-Z, FACING-ANGLE kısmında.) Ona göre ayarlamamızı yapacağız.

Bir sonraki durağımız OnPlayerCommandText oluyor. Hemen içerisinde şu kodları göreceksiniz.

if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}

Bu bizim örnek komutumuzdur. Gelin ve şu komutu düzenleyelim. Mesela ekranda merhaba dünya yazalım en klasiğinden.

if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid,0xFFFFFF,"Merhaba Dünya!");
return 1;
}

Oyun içerisinde /mycommand yazınca ekranda "Merhaba Dünya" yazacaktır. SendClientMessage gibi birçok fonksiyona ulaşmak için buraya tıklayınız. Eğer ingilizceniz iyiyse anlaşılmayacak hiçbir şey yoktur. Yakın bir zamanda Türkçe destekli bir anlatım gelecektir.

Bir sonraki durağımız OnPlayerDeath oluyor! Burada oyuncu öldükten sonra ne olacağını işleyeceğiz. Örneğin ceza olarak ondan -100$ keselim.

public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney(playerid,-100); // Dilerseniz siz daha büyük bir para kesebilirsiniz.
// Hatta işi daha da abartarak 1 skorunu da alabiliriz.

SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
return 1;
}

Bir sonraki durağımız OnPlayerConnect oluyor! Burada oyuncu sunucuya bağlandıktan sonra ne olacağını belirliyoruz. Bir hoş geldin diyelim o halde?

SendClientMessage(playerid,0xFFFFFF,"Hoş geldin ahbap! Burada eğlenceli vakit geçireceksin.");

Bir sonraki durağımız OnPlayerDisconnect oluyor! Burada da oyuncu çıktıktan sonra ne olacağını belirliyoruz. İsterseniz diğer oyunculara bir bildirim gönderelim.

new string[128];
new sdsname[MAX_PLAYER_NAME];
GetPlayerName(playerid,sdsname,24);
format(string,sizeof(string),"%s(%d) isimli oyuncu aramızdan ayrıldı.",sdsname,playerid);
SendClientMessageToAll(0xFFFFFF,string);


Bir sonraki durağımız ise OnPlayerSpawn! Burada oyuncu doğduktan sonra ne olacağını belirliyoruz. İsterseniz gelin ve oyuncu doğduğu için 1000$ verelim.

public OnPlayerSpawn(playerid)
{
GivePlayerMoney(playerid,1000);
return 1;
}

Evet, modu incelememiz bu kadar. Düzenlememiz bittiği zaman ise F5 veya F6 tuşuna basmak zorundayız. Eğer mod compile olmazsa kayıt olmaz. Daha sonra önümüze kaydetme ekranı geliyor ve konumunu ayarlıyoruz. Konumu gamemodes klasörü olmalı, aksi takdirde mod çalışmayacaktır. Modun adını örneğin "asd" olarak kayıt ettiniz. Server.cfg açıp gamemode0 karşısına asd yazmanız gerekmekte. Yani gamemode0 asd olmalı. Daha sonra çalıştırmak için samp-server.exe açıyoruz ve önümüze siyah bir ekran geliyor. İşte bu! O açık olduğu süre serverınız açık kalacaktır. Oyuna bağlanmak için IP  adresi ise ":7777" olacaktır. (Server.cfg'de portu değiştirirseniz :7777'de değişir. Örneğin 6666 yaparsanız :6666 ile girmek zorundasınız.)

+ Arkadaşlarım nasıl oyuna girecek?
Arkadaşlarının girmesi için öncelikle port açman gerekiyor. Her modemin ayrı olduğu için anlatım yapamıyorum. Fakat internetten çeşitli kaynaklardan yararlanarak port açabilirsin. Hangi porta açacaksanız o portu açmanız gerekiyor. Örneğin SA-MP'ın default portu 7777'dir. Oyuncu IP'i yapıştırdığında :7777 olarak kaydedilir. Eğer sizin porunuz :6666 ise ve oyuncu :6666 yapmamışsa server çıkmaz, çünkü :7777 kayıtlıdır. O yüzden 7777 olarak açmakta fayda var.
+ Nasıl pawn dilini öğrenebilirim?
Sitemizde anlatımı mevcuttur. Buraya tıklayarak anlatıma uçabilirsiniz!
Mesaj At
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol