kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
romegames 1
romegames
Bvural41 1
Bvural41
Best Studio 1
Best Studio
BlackFullMoon 1
BlackFullMoon
NovaLst 1
NovaLst
SLyFeLLowTR 1
SLyFeLLowTR
xranzei 1
xranzei
InfernoShade 1
InfernoShade
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

[REHBER] SA-MP Server Kurulum (Windows,Linux)

  • Konuyu başlatan Konuyu başlatan AnyHypnosis
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 10
  • Görüntüleme Görüntüleme 6K

AnyHypnosis

Slient Death..!
TM Üye
Katılım
2 Şub 2013
Konular
131
Mesajlar
1,807
Çözüm
8
Online süresi
6mo 28d
Reaksiyon Skoru
615
Altın Konu
0
TM Yaşı
13 Yıl 4 Ay 10 Gün
Başarım Puanı
269
MmoLira
7,258
DevLira
6
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Linux SA-MP Server Kurma?

Merhabalar. Linuxta SA-MP server kurarken dikkat etmeniz gereken hususları anlatacağım. Umarım sizler için yararlı olur. Anlatım, Centos 5 ve 6 için uygundur. Centos 7'de komutlar değişiklik gösterebilir. İyi Forumlar.


Konu Centos tabanı kullanılarak oluşturulmuştur. Diğer Linuxlar için ekstra düzenleme yapmanız gerekebilir

Linux SA-MP Server İndirme/Kurma/Sunucuyu Açma

Aşama 1 - Server Dosyalarını İndiriyoruz

Öncelikle SSH bağlanıyoruz.


Sonra komut satırına aşağıdaki komutu yazıyoruz. Bu kod indirme kodudur.

wget

ADRR7B.png


Aşama 2 - Sıkıştırılmış Server Dosyalarını Çıkartıyoruz

Daha sonrasında indirdiğimiz .tar.gz dosyasını bir çeşit sıkıştırma türü olduğu için dosyayı genişletiyoruz. Bunu aşağıda verdiğim kodla yapabilirsiniz.

tar -zxvf samp037svr_R2-1.tar.gz

0RMMnY.png


Aşama 3 - Server Bilgilerini Düzenliyoruz

cd samp03
yazarak serverın olduğu dizine geçiyoruz.

Ardından; nano server.cfg komutuyla sunucumuzun bilgilerini düzenliyoruz.
rcon_password kısmını değiştirmeyi unutmayın, değiştirmezseniz sunucu açılmayacaktır.

4jBBr7.png


Aşama 4 - Sunucuyu Açıyoruz

Sunucumuzu açmak için komut satırına nohup ./samp03svr yazıyoruz. SSH bağlantımızı sonlandırsak da çalışması için komutu bu şekilde yazıyoruz.

Komutu yazdığımızda görüntü bu şekilde olacaktır.

JZooA5.png


Eğer portunuz açıksa sunucumuz açılmış olacaktır. Port açma işlemi için yazının devamını okuyun.
7A7GZ5.png


Linux SA-MP Server için Port nasıl açılır?

Linux üzerinde iptables ile sağlanan güvenlik duvarı bulunmaktadır. Yeni kurulmuş Linux sunucuda güvenlik duvarında bütün portlar kapalıdır. Bu yüzden SA-MP için güvenlik duvarına yeni kural eklememiz gerekiyor. SA-MP için portumuz UDP protokolünde olmalıdır. SA-MP'ın varsayılan port'u 7777'dir. Bunun için UDP 7777 portunu açacağız.

Komut satırına aşağıdaki komutu yazıyoruz.

iptables -I INPUT -p udp --dport 7777 -j ACCEPT
Portumuzun restart vb. işlemlerde kaybolmaması için iptables kurallarını kaydediyoruz.

service iptables save
Bu işlemden sonra portumuz tamamen açılmıştır. Komut; Centos 7 sürümünün alt sürümleri içindir, komut çalışmıyorsa işletim sisteminizin port dökümanlarını okuyun.

Linux sunucuda MySQL nasıl kurulur?
Bir uçbirim (Terminal) açıyoruz.
1yum install mysql mysql-server
yazıyoruz. Kurulum bittikten sonra , bilgisayarımızı yedinen başlattığımızda otomatik olarak çalışabilmesi için

1chkconfig --levels 235 mysqld on
yapıyoruz.ve MySQL’imizi başlatıyoruz.
1/etc/init.d/mysqld start
Güvenlik için root şifresi belirlememiz gerek. bunun içinde
1mysql_secure_installation
yazıp giriş yapıyoruz. Karşımıza ;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] <-- ENTER
New password: <-- root şifreniz
Re-enter new password: <-- root şifreniz
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <-- ENTER
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <-- ENTER
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <-- ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <-- ENTER
... Success!

Cleaning up...



All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!
Tadaaaa Herşey Tamam Artık MySQL Sunucumuz Tamamdır.

Root Yetkisi Verilmesi?
Etrafta LAMP(Linux Apache , MySQL,PHP) olarak kısaltılmış halini muhakkak görmüşsünüzdür. Burda anlatılanların hepsi root yetkisiyle yapılmalıdır. Bunun içinde uç birim (terminal) açıp
1su root
yazıp root şifrenizi girmeniz gerekmekte.
1-İlk adım olarak sunucumuza Apache sunucu kurulumu yapacağız.
1yum install httpd
Kurulum bittikten sonra sistemimiz her açıldığında otomatik olarak başlasın diye ;
1chkconfig --levels 235 httpd on
yazıyoruz.
Daha sonra Apache sunucumuzu yeniden başlatıyoruz.ister bunu kullanın
1service httpd restart
isterseniz
1/etc/init.d/httpd start
bunu. Her ikiside benim için çalıştı Sunucumuz başarıyla kurulduys Web tarayıcımızın adres satırına
yazıyoruz. İşte oldu tertemiz apache 2 test sayfasını görüyoruz


PhpMyAdmin Kurulum?

Öncelikle PhpmyAdmin İndiriyoruz
rpm -iUvh

Şimdi Update İşlemi Gerçekleştirip Kuruluma Geçelim

yum -y install phpmyadmin

Ip Adresimizi Bulalım?




PhpMyAdmin için Temel Yapılandırma?

vim /etc/httpd/conf.d/phpMyAdmin.conf

Varsayılan olarak, phpMyAdmin yapılandırması yalnızca yüklü olduğu sunucudan erişime izin verir. Aşağıdaki bölümleri bulun ve her IP adresini 3. Adımda bulduğunuz adrese veya phpMyAdmin'e uzaktan bağlanacak başka bir IP adresine değiştirin:

Require ip 127.0.0.1
Allow from 127.0.0.1
Require ip 127.0.0.1
Allow from 127.0.0.1

Sonra çıkın ve dosyayı şu komutla kaydedin: wq.

Apache'yi yeniden başlatın:

service httpd restart

PhpMyAdmin'in phpmyadmin adresini ziyaret ederek çalıştığını doğrulayın.
Örneğin:

Linux sunucuda pluginler nasıl olmalıdır?

Linux üzerinden plugin çalıştırmak için pluginlerinizin .so uzantılı olması gerekiyor. Bu nedenle plugins klasörüne .so uzantılı pluginleri kopyalamanız gerekiyor.

Ve özellikle server.cfg'deki plugins kısmında pluginlere .so uzantısını getirmeniz gerekiyor.

Resimde plugin adlandırmalarının nasıl yapıldığını görebilirsiniz.

Ov11Mn.png


Linux sunucuda SSH üzerinden MySQL'a nasıl SQL import ederim?

MySQL'a SQL dosyası import etme konusunda çoğu kişi sıkıntı yaşayabilir. Çünkü PhpMyAdmin üzerinden belirli dosya upload limiti olabiliyor. Bu nedenle import gerçekleşmeyebiliyor. Bunu SSH üzerinden rahatça yapabilirsiniz. Öncellikle SSH üzerinde .sql dosyamızın olduğu dizinde olmalıyız.

Daha sonra aşağıdaki komutu uyguluyoruz. Burada DB kısmı veritabanımızın adı olmalıdır. tables.sql dosyası da .sql dosyamızın adı olmalıdır.

mysql --max_allowed_packet=1000000000 -u root -p DB < tables.sql
Bu komuttan sonra sistem bize MySQL'daki root hesabının şifresini soracaktır. Buraya MySQL şifresini yazıyoruz ve enter'a basıyoruz. Sonrasında import tamamlanıyor.

Linux sunucuda Parçalama arızası (core dumped) nasıl düzeltilir?

Evet bu hata ingilizce kurulmuş Linux sunucularda Segmentation fault (core dumped) olarak da geçebilir. Bu hata genellikle MySQL kullanan modlarda olabiliyor. Peki bu hata nasıl düzeltiliyor? Bu hatanın çeşitli sebepleri olabilir. Normal durumda sunucu bu hatayı vererek açılmıyorsa kaynağı SELinux denilen Linux koruma sistemiyle alakalı. Bu hatayı SELinux'u devredışı bırakarak çözüyoruz.

SELinux nasıl devredışı bırakılır?

Komut satırına nano /etc/selinux/config yazıyoruz.
zjPP4R.png


Bu kısımda SELINUX=enforcing yazan yeri SELINUX=disabled olarak değiştiriyoruz.
Gm88zb.png


Bu kısımdan kaydederek çıkmak için CTRL + X ve sonrasında E veya Y tuşuna (Linux diline göre değişiklik gösteriyor) basarak 2 kere ENTER tuşuna basıyoruz.

Daha sonrasında komut satırına şu komutu yazıyoruz.

Sunucumu nasıl 7/24 açık bırakırım? (Özel Script)

Normal durumda nohup ./samp03svr yazdığınızda sunucunuz bir hatayla karşılaşıp kapanmadığı sürece sunucunuz açık kalır. Ancak herhangi bir hata durumunda otomatik tekrar açılmasını istiyorsanız yaptıklarımı aşağıdaki adımları uygulayın.

SA-MP'ın kurulu olduğu dizine gelip nano startgtaserver.sh yazıyoruz. Ve içine aşağıdaki kodları yazıyoruz. /root/samp yazan yere SA-MP server'in olduğu dizini yazıyoruz.

y6774n.png


#!/bin/bash
export GTA_PATH=/root/samp
cd $GTA_PATH
while [ true ]; do
cat $GTA_PATH/server_log.txt >> {$GTA_PATH}/full_server_log.txt
rm $GTA_PATH/server_log.txt
touch $GTA_PATH/server_log.txt
./samp03svr
done

Daha sonrasında komut satırına cd /usr/local/bin yazıyoruz.

Ardından nano sampserver yazıyoruz.

Burada /root/samp kısmı yine aynı şekilde SA-MP serverinizin kurulu olduğu dizin olmalıdır.

6aAAnl.png


#!/bin/bash

server_start() {
/root/samp/startgtaserver.sh &
}

server_stop() {
killall startgtaserver.sh
killall samp03svr
}

serverotoac_stop() {
killall startgtaserver.sh
}

server_restart() {
server_stop
sleep 5
server_start
}
case "$1" in
'baslat')
server_start
;;
'durdur')
server_stop
;;
'yenidenbaslat')
server_restart
;;
'otoacmadurdur')
serverotoac_stop
;;
*)
echo "KULLANIM $0 baslat|durdur|yenidenbaslat|otoacmadurdur"
esac

Bu kısımdan kaydederek çıkmak için CTRL + X ve sonrasında E veya Y tuşuna (Linux diline göre değişiklik gösteriyor) basarak 2 kere ENTER tuşuna basıyoruz.

Sonrasında komutlarımız için izinlerimizi ayarlıyoruz. Bunu aşağıdaki kodu yazarak yapabiliriz.

chmod 0777 /root/samp/startgtaserver.sh && chmod 0777 /usr/local/bin/sampserver

Sonuç
WqMMY4.png


Sonuç olarak sunucumuzu sampserver komutuyla kolayca başlatıp durdurabiliriz hatta yeniden başlatabiliriz.

[!] Komuttaki otoacmadurdur komutu sunucu komut haricinde kapatıldığında otomatik açılmaması için gereken işlevi durduruyor. Bu işlevi tekrar çalıştırmak için sampserver yenidenbaslatkomutuyla tekrar sunucuyu kapatıp tekrar açmamız gerekiyor.

Windows SA-MP Server Kurulum?

Öncelikle Samp'In Server Dosyalarını İndirme Kısımına Giriyoruz Buradan SA-MP 0.3.7-R2 Windows Server'e Basıyoruz Ve İndiriyoruz Ve Masaüstüne Server Diye Klasör Açıp İçindeki Dosyaları Server Klasörümüzün İçine Atıyoruz.


Serveri Aktif Hale Getirmek

Öncelikle Siz Server.exe Yi Açmaya Çalışacaksınız Ve Açtığınızda Direk Kapanacaktır Bunun Sebebi Rcon Şifresini Ayarlamamış Olmanızdır Ve Birçok Ayarı Daha Anlatacağım Hazırsanız Geçelim.

Server.cfg
Öncelikle Server.cfg Yi Açıyoruz Karşımıza Not Defteri'Nin İçinde Bir Sürü Yazılar Gelcek Size Söylediklerim Haricinde Hiç Bir Şeye Dokunmayınız.

echo Executing Server Config...
lanmode 0
rcon_password changeme //Burası Serverin Rcon Şifresi Adminlik Şifresi Gibi Birşeydir Kimseyle Paylaşmayınız Serveriniz Burası Changeme Olduğu İçin Açılmadı Burayı"Changeme"'Yi Kendinize Göre Düzenleyiniz Tavsiyem Bulunması Zor Birşey Yapınız.
maxplayers 50 // Bu serverdaki maksimum oyuncu sayısıdır. Bunu istediğiniz Sayı İle Değiştirebilirsiniz.
port 7777 // Burası Serverin Portudur Buraya Ellemeyiniz.
hostname SA-MP Server // Bu serverın ismidir. Bunu istediğiniz İsim İle Yapınız.
gamemode0 grandlarc 1 // Bu serverinizin kullandığı Moddur Kendi Kodladığınız GameModunuz Varsa Gamemodes Klasörüne Atıp İsmini "grandlarc 1" Yerine Yazınız.
filterscripts // Burada normalde bir sürü filterscripts olması gerek ama kaldırmanızı tavsiye ederim çünkü gereksiz şeylerdir.
announce 0
query 1
weburl //Burası Serverinizin Web Adresidir.
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]

Burada gösterdiğim şeyler haricinde hiçbir şeye dokunmayınız.Bu bilgileri kendinize göre düzenledikten sonra samp-server.exe tıklayarak serverı aktif edebilirsiniz.
Serverime Nasıl Girerim IP Si Nedir ?
Siz Servera Girmek İçin Şimdilik "127.0.0.1" bu IP'yi Kullana Bilirsiniz Veya IP Adresinizi Kullana Bilirsiniz.
SA:MP Port Açma - Arkadaşımla Nasıl Oynarım?
Port Açmak Oldukca Basittir.
Şimdi İsterseniz Nasıl Açıldığını Öğrenelim.
Port 4 Adet Boşlulu Seçeneklere Ayrılır."Başlangıç Portunu Tetikleme,Bitiş Portu,Çeviri Başlangıç Portu,
Çeviri Bitiş Portu" Bu Dediğim İsimlerin Karşısındaki Boşluklara Sırayla "7777" Yazınız.
"Sırada Sunucu IP Adresi" Seçeneği Var Burada "192.168.1." Olarak Yazar Burada "CMD" Devreye Giriyor CMD'Yi Açın>İPConfig Yazın>IPV4 Adresinin Son "Rakamına" Veya "Sayısına" Bakın Ve Yazın Mesela Bende Şuan 192.168.1.34 Yazıyor. Bunu Sunucu IP Adresi Kısmına Yazınız.(Kendinizinkini BenimKini Yazmayınız.)
Ve Geldik Son İşlemimize Son İşlemimiz "Protokol" Protokol'u "UDP/TCP" Olarak Seçiniz Ve Tamam'a Basınız.Port Adını İstediğiniz Gibi Kendinize Göre Ayarlayınız Ve Aktif Butonuna Basınız.
Şimdi ip-adresim.net Sitesine Giriniz.
IP Adresiniz: Yazan Yerin Karşısındaki Sayıları Kopyalayıp Arkadaşınıza Atın Ve Server.exe'Yi Açınız. Artık Arkadaşınızla İstediğiniz Zaman OynayaBilirsiniz.

Pawno Nedir?​

Pawno, bir SA-MP sunucusunun temelidir. Yazdığınız kodları PWN formatından AMX formatına dönüştürüp serverınızda kullanmanıza yarar. Pawno olmadan bir SA-MP sunucusu olmaz. Bunun için Pawno kodlamak şarttır.

İndirdiğimiz dosyalar içinde pawno adlı bir klasör olacak ona girip pawno uygulamasını açın.
Karşımıza bir sürü kod geldi.
Eğer modunuzun eklediğiniz herhangi bir kodda hata vermemesini istiyorsanız, 7. satırdaki
#if defined FILTERSCRIPT'i silin ve yerine #define FILTERSCRIPT'i tanıtın. Daha sonra 22. satırdaki #else ve 31. satırdaki #endif'isilin ve üst kısımdaki Compline/Run butonuna tıklayın.
Yaptığınız çalışmalar hiçbir şekilde hata vermeden kaydedildiyse şunu görmelisiniz;


Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

Merhaba arkadaşlar öncelikle gidiyoruz. SA-MP 0.3e ve SA-MP 0.3e Windows Server indiriyoruz. SA-MP 0.3e Windows Server'ın içinden çıkan dosyaları Rockstar Games/San Andreas'ın içine atıyoruz. Şimdi geldik server açmak ve pawno derslerine.

Peki bunları neden sildik? Bunlar ne işe yarıyor? Hemen söyleyeyim, bu tanıtılan kodlar, filterscripts dosyasında kayıtlı olan komutları serverınıza taşımanıza yardımcı olur.
Yani bu kodlar servera kendiliğinden gelir.
Örnek olarak admin komutu olan
/kick ve /ban komutunu gösterebilirim.
Eğer
#define FILTERSCRIPT ya da #if defined FILTERSCRIPT modun başında tanıtılmadıysa filterscripts klasörünün içindeki komutları serverınız tanımaz.
Bunları silmemizin nedeni ise, bunları modun başında durduğu sürece moda renk falan tanıtamıyoruz, hata veriyor.

Şimdi serverın isminin SA-MP'ta görünmesini istiyorsanız, 12. ve 27. satıra serverın ismini yazacaksınız. Serverın versiyonunu ise 36. satırdaki
SetGameModeText("Buraya"); içine yazacaksınız. İşlem bu kadar yaptığınız çalışmaları kaydedebilirsiniz.

Şimdi geldik karakter seçim ekranına skin eklemeye. Öncelikle 33. satıra gidin. Karşınıza şöyle bir şey gelecek;

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

AddPlayerClass'taki 0, skindir. Bu skini istediğiniz başka bir skin ile değiştirebilirsiniz. Peki skin IDler'ini nasıl öğrenebilirim? Adresinden bütün skinleri öğrenebilirsiniz.

Skinin yanında gördüğünüz sayılar (1958.3783, 1343.1572, 15.3746, 269.1425) karakterin nerede doğacağıdır. Spawn seçeneğine tıkladığınızda belirlediğiniz koordinatlarda doğar. Peki bu koordinatları nasıl ayarlayabilirim? Çok basit bir işlem. Önce oyuna girin ve karakterin doğmasını istediğiniz yere gelip /save yazın. Yeriniz kaydedildi. Şimdi Belgelerim/San Andreas User Files/SAMP'ın içindeki savedpositions.txt'i açın. Kaydettiğiniz koordinatlar burada. Bununla geçerli koordinatları değiştirdiğiniz de karakteriniz sizin istediğiniz yerde doğar.

Koordinatların yanındaki sayılar ise karakterde olmasını istediğiniz silahlardır. (0 (Bu 1. silahtır. Buraya silahın ID'sini yazacaksınız.) ,0 (Burası 1. silahta olmasını istediğiniz mermi miktarıdır.), 0, 0, 0, 0) diğerleri ise 2. ve 3. silahtır ve onların mermi miktarıdır. Buralara silahların ID'lerini yazabilirsiniz. Peki silah ID'lerini nereden bulabilirim? Sizin için aşağıya hepsini yazdım.


0 Yumruk
1 Muşta
2 Golf sopası
3 Jop
4 Bıçak
5 Beyzbol sopası
6 Kürek
7 Bilardo sopası
8 Katana
9 Elektirikli Testere
10 Mor Dildo
11 Kücük Beyaz Vibratör
12 Büyük Beyaz Vibratör
13 Gümüş Vibratör
14 Çicek
15 Baston
16 El Bombası
17 Gaz Bombası
18 Molotof Kokteyli
22 9mm
23 Susturuculu 9mm
24 Desert Eagle
25 Pompalı
26 Sawnoff Pompalı
27 Combat Pompalı
28 Uzi
29 SMG(MP5)
30 AK47
31 M4
32 Tec9
33 Tüfek
34 Sniper
35 Bazuka
36 Isı Duyarlı Bazuka
37 Alev Püskürtücü
38 Minigun
39 Remote Grenades
40 Remote Grenades Patlatıcısı
41 Spray
42 Yangın Söndürücü
43 Kamera
44 Gece Görüş gözlüğü
45 Isı Duyarlı Gözlük
46 Paraşüt

Karakter seçim ekranına skin eklemek bu kadar. Yeni bir tane skin eklemek için,
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); kopyalayıp alta geçirin ve istediğiniz bilgileri ayarlayın.

Yeni eklediğiniz skinlerin garip bir koşuş stili var.
Hepsinin koşuş stilini CJ gibi yapmak için OnGameModeInit publicinin başına UsePlayerPedAnims();
ekleyin ve kaydedin işlem tamam artık bütün karakterler CJ gibi koşacaktır.

Şimdi geldik karakter seçim ekranını ayarlamaya. Bildiğiniz gibi karakter seçim ekranında karakterler görünmüyor.
Şimdi 46. satıra gelin. Karşınıza şöyle bir şey çıkacak;


public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); Karakterin durduğu yerdir.
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); Kameranın durduğu yerdir.
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); Kameranın karaktere bakış açısıdır.

Şimdi bunları kendimize göre ayarlayacağız.
Öncelikle karakterin durmasını istediğimiz yere gidip /save yazarak kaydediyoruz.
Daha sonra onun karşısına geçip tekrar /save yazarak kaydediyoruz.
Bu kaydettiğimiz kameranın duracağı yerdir.
Şimdi geldik pawnoya geçirmeye.
OnPlayerRequestClass publicine gidip, SetPlayerPos(playerid, yazdıktan sonra karakterin duracağı yerin koordinatlarının ilk üçünü yazıyoruz.
Daha sonra altına geçiyoruz ve SetPlayerFacingAngle(playerid, yazdıktan sonra karakterin duracağı yerin koordinatlarından son bir koordinatı buraya yapıştırıyoruz.
Bu karakterin kameraya bakış açısıdır.
Sonra altına geçiyoruz ve SetPlayerCameraPos(playerid, yazdıktan sonra kameranın duracağı yerin koordinatlarından ilk üç koordinatı buraya yapıştırıyoruz.
Son olarak SetPlayerCameraLookAt(playerid, yazdıktan sonra kameranın duracağı yerin koordinatlarının ilk üçünü buraya yapıştırıyoruz.
İşlem tamam. Çalışmalarınızı kaydedin. Burada sorun yaşabilirsiniz onun için size örnek bir karakter seçim ekranı vereceğim.
Bunu kullanabilirsiniz. Kullanmak istemiyorsanız sizin için istediğiniz yeri yapabilirim.
Örnek karakter seçim ekranı, 4Dragons.


36bbo9.png

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,2027.1962,1007.7031,10.8203);
SetPlayerCameraPos(playerid,2034.6650,1007.8406,11.9078);
SetPlayerCameraLookAt(playerid,2029.0746,1007.6553,10.8203);
return 1;
}

Karakter seçim ekranını ister böyle bırakabilirsiniz, isterseniz de müzik ekleyebilir, karakterlere dans ettirebilirsiniz. Karakter seçim ekranında karakterlere dans ettirmek için, SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1); kodunu OnPlayerRequestClass publicine ekleyin. Spawn olduktan sonra karakterini hala dans etmeye devam edecektir. Bunu durdurmak için, OnPlayerSpawn publicine SetPlayerSpecialAction(playerid,0); kodunu ekleyin. Eğer dans stilini beğenmediyseniz DANCE1 yazan yeri DANCE2 vs. yaparak değiştirebilirsiniz. Karakter seçim ekranına müzik eklemek için modun başına, new Float:X,Float:Y,Float:Z; ekleyin ve OnPlayerRequestClass'a PlayerPlaySound(playerid,muzikid, X, Y, Z); ekleyin. Muzikid yazan yere müziğin ID'sini yazacaksınız. Müzik IDler'ine sitesinden ulaşabilirsiniz. İşlem tamam ama spawn olduğunuzda müzik hala devam edecektir. Bunun için OnPlayerSpawn publicine PlayerPlaySound(playerid,0, X, Y, Z); ekleyin ve yaptığınız çalışmaları kaydedin. İşlem tamam.
RCON Nedir?
RCON, serverın sahibidir. Server sahibi olan herkes adminliğe /rcon login şifre ile girer. Şifeyi nasıl değiştireceğinizi başta göstermiştim. Değiştirdiğiniz şifreyi kullanarak admin girişi yapabilirsiniz. Serverda bir çok RCON komutu bulunur. Bunları aşağıdan öğrenebilirsiniz.

/rcon login [şifre]/rcon cmdlist - Tüm Rcon Komutlarını Gösterir
/rcon exit - Sunucuyu kapatır.
/rcon hostname [Sunucu Adı] - Sunucu adını değiştirir.
/rcon gamemodetext [GameMode İsmi] - GameMode ismini değiştirir..
/rcon mapname [MapName] - MapName'yi değiştirir.
/rcon kick <id> - <id>'yi sunucudan kickler.
/rcon ban <id> - <id>'yi sunucudan banlar.
/rcon changemode [Mod Adı] - Başka bir modu açar.
/rcon reloadbans - Tüm banları siler.
/rcon reloadlog - Logları temizler.
/rcon banip [IP] - Belirtilen IP'ye ban atar.
/rcon unbanip [IP] - Belirtilen IP'nin banını kaldırır.
/rcon gravity [Değer] - Sunucunun yer çekimini ayarlar. (Standart 0.80)
/rcon weather [Hava ID'si] - Hava durumunu değiştirir.
/rcon loadfs [FS Adı] - Belirtilen FS'yi aktifleştirir.
/rcon unloadfs [FS Adı] - Belirtilen FS'yi disaktif eder.
/rcon reloadfs - Tüm FS'leri disaktif eder.
/rcon modname [Mod Adı] - Gamemodetext ile aynı işlevi yapmaktadır.

GM Nedir?
GM'nin açılımı Game Master'dır. GM, oyundaki yetkili kişidir. RCON komutlarını leveli yeterliyse kullanabilir.

ANM Nedir?

ANM'in açılımı Animatördür. Animatörler, serverda çeşitli etkinlikler düzenler.

Şimdi geldik asıl olaya. Çoğu kişi RCON girişi yaptığı halde isminin başında [RCON]tagı görünmediğinden şikayetçi.
Şimdi bunu nasıl aktif hale getireceğimizi anlatacağım.
Öncelikle
IsPlayerLAdmin includeunu indiriyoruz. İndirmek için Sonra modun başına #include <IsPlayerLadmin> yazarak tanıtıyoruz. Daha sonra 84. satıra gidiyoruz. Karşımıza böyle bir şey geliyor.

public OnPlayerText(playerid, text[])
{
return 1;
}
return 1; dahil olmak üzere oraya şu kodu yapıştırıyoruz;

if(IsPlayerAdmin(playerid))
{
new string[300];
new name[20];
GetPlayerName(playerid, name, 20);
format(string, sizeof(string), "{Renk}[{FFFFFF}RCON{Renk}] {Renk}%s {Renk}({FFFFFF}%i{Renk}) :{FFFFFF} %s", name,playerid, text);
SendClientMessageToAll(playerid, string);
return 0;
}

if(IsPlayerLAdmin(playerid))
{
new string[300];
new name[20];
GetPlayerName(playerid, name, 20);
format(string, sizeof(string), "{Renk}[{FFFFFF}GM{Renk}] {Renk}%s {Renk}({FFFFFF}%i{Renk}) :{FFFFFF} %s", name,playerid, text);
SendClientMessageToAll(playerid, string);
return 0;
}
if(IsPlayerLAdmin(playerid))
{
new string[300];
new name[20];
GetPlayerName(playerid, name, 20);
format(string, sizeof(string), "{Renk}[{FFFFFF}ANM{Renk}] {Renk}%s {Renk}({FFFFFF}%i{Renk}) :{FFFFFF} %s", name,playerid, text);
SendClientMessageToAll(playerid, string);
return 0;
}
else
{

new string[128];

format(string, sizeof(string), "(%i): %s", playerid, text);
SendPlayerMessageToAll(playerid, string);
}
return 0;
}

Renk yazdığım yerlere adminlerin nickinin hangi renk olmasını istiyorsanız onu yazacaksınız fakat HTML kodu halinde. HTML renk kodlarına erişebilmek için, sitesine gidebilirsiniz. İşlem bu kadar. Yaptığınız çalışmaları kaydedebilirsiniz.

İşte asıl yere geldik. Servera komut eklemeye.

Öncelikle 89. satıra gidin. Karşınıza şöyle bir şey gelecek;

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

Komutunun isminin ne olacağını belirlemek için "/mycommand" yazan yere komutun ismini yazacaksınız fakat /işaretini silmeden. Ben size örnek olarak/can, /zirh, ve silah alma komutlarını göstereceğim.

Can Komutu:

if (strcmp("/can", cmdtext, true, 10) == 0)
{
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xF6F6F6AA,"{F81414}HATA: {FFFFFF}Can almak için yeterli paranız yok! Yeterli para miktarı 1000$'dır!");
SetPlayerHealth(playerid, 100);
GivePlayerMoney(playerid, -1000);
GameTextForPlayer(playerid, "~w~Caniniz Fullendi, ~r~-1000$", 5000,1);
return 1;
}

Burada tanımadığımız 4 şey var. GetPlayerMoney, eğer oyuncunun parası 1000$'den az ise oyuncunun canını fullemez. Parayı daha az ya da daha çok yapmak istiyorsanız, GetPlayerMoney'den sonraki 1000 yazan yerin değerini istediğiniz bir değerle değiştirebilirsiniz. SendClientMessage, oyuncunun parasının olmadığını ya da 1000$'den az olduğunu belirtir. Bunu çeşitli komutlarda farklı amaçlarda kullanabilirsiniz. Oradaki 0xF6F6F6AA ise rengin kodudur. Renk kodlarını aşağıya yazdım hepsine oradan ulaşabilirsiniz. Bu terim ChatBox'un hizasında görünür. SetPlayerHealth, oyuncunun canının değerini ayarlar. (playerid, 100) kısmındaki 100'ü daha küçük bir değer yaparak değiştirebilirsiniz. GivePlayerMoney, oyuncuya kaç para vereceğini ya da kaç para alacağını belirler. -1000 yazan yere farklı bir değer girerek canın fiyatını değiştirebilirsiniz.

Zırh Komutu:

if (strcmp("/zirh", cmdtext, true, 10) == 0)
{
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xF6F6F6AA,"{F81414}HATA: {FFFFFF}Zırh almak için yeterli paranız yok! Yeterli para miktarı 1000$'dır!");
SetPlayerArmour(playerid, 100);
GivePlayerMoney(playerid, -1000);
GameTextForPlayer(playerid, "~w~Zirhiniz Fullendi, ~r~-1000$", 5000,1);
return 1;
}

Silah Alma Komutu:
if(!strcmp(cmdtext,"/uzi",true)) {
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xF6F6F6AA,"{F81414}HATA: {FFFFFF}Zırh almak için yeterli paranız yok! Yeterli para miktarı 1000$'dır!");
SendClientMessage(playerid, COLOR_GREEN, "Uzi satın aldın. Hesabından -1000$ kesildi.");
GivePlayerWeapon(playerid,28,1000);
GivePlayerMoney(playerid,-1000);
return 1;
}

Burada tanımadığımız 2 şey var, COLOR_GREEN terimi renktir.
Bu rengi modun başına #define COLOR_GREEN 0x33AA33AA
olarak tanıtabilirsiniz. Hangi rengi tanıtmak istiyorsanız ismini ve rengin kodunu yazmanız yeterli.
GivePlayerWeapon, oyuncuya vereceği silahtır. 28 silahın ID'si, 1000 ise silahın mermisidir.
Bunu diğer silah komutlarında değiştirebilirsiniz.

Pawno Renk Kodları:

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_BLUE 0x33AAFFFF
#define COLOR_GREEN 0x33AA33AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_PINK 0xFF69B4FF
#define COLOR_BGREEN 0x08FD04FF
#define COLOR_CYAN 0x00FFFFAA
#define COLOR_DGREEN 0x008000FF
#define COLOR_DRED 0x800000FF
#define COLOR_DARK 0x000000FF
#define COLOR_GRED 0xF60000AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCB***EFF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_BROWN 0x993300AA
#define COLOR_BLACK 0x00000000
#define COLOR_NEUTRALGREEN 0x81CFAB00
#define COLOR_DARKGREEN 0x12900BBF
#define COLOR_LIGHTGREEN 0x24FF0AB9
#define COLOR_DARKBLUE 0x300FFAAB
#define COLOR_BLUEGREEN 0x46BBAA00
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_BRIGHTRED 0xFF0000AA
#define COLOR_INDIGO 0x4B00B0AA
#define COLOR_VIOLET 0x9955DEEE
#define COLOR_LIGHTRED 0xFF99AADD
#define COLOR_SEAGREEN 0x00EEADDF
#define COLOR_GRAYWHITE 0xEEEEFFC4
#define COLOR_LIGHTNEUTRALBLUE 0xabcdef66
#define COLOR_GREENISHGOLD 0xCCFFDD56
#define COLOR_LIGHTBLUEGREEN 0x0FFDD349
#define COLOR_NEUTRALBLUE 0xABCDEF01
#define COLOR_LIGHTCYAN 0xAAFFCC33
#define COLOR_LEMON 0xDDDD2357
#define COLOR_MEDIUMBLUE 0x63AFF00A
#define COLOR_NEUTRAL 0xABCDEF97

NOT!: Bütün komutlar return 0;'ın üstünde olmalıdır. Olmadığı takdirde pawno hata verir.

Bildiğiniz gibi çoğu serverda 2'ye basınca aracı tamir etme ve 10x Nitro ekleme özelliği var. Bunu nasıl serverınıza ekleyeceğinizi öğreteceğim.

Öncelikle 189. satıra gidiyoruz. Karşımıza şöyle bir şey geliyor;


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
Oraya şu kodu return 1; dahil olmak üzere ekliyoruz;

if(newkeys & KEY_LOOK_BEHIND && IsPlayerInAnyVehicle(playerid))
{
if(!IsNosVehicle(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, 0xFF0000AA, "Bulunduğunuz araca nos ve hidrolik takılamaz.");
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);

SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
RepairVehicle(GetPlayerVehicleID(playerid));
PlayerPlaySound(playerid, 1133 ,0, 0, 0);
GameTextForPlayer(playerid,"~l~~g~10X ~n~~r~Nitro ~b~+ ~l~~p~Tamir",1000,3);
}

return 1;
}
IsNosVehicle(vehicleid)
{
#define NO_NOS_VEHICLES 29

new InvalidNosVehicles[NO_NOS_VEHICLES] =
{
581,523,462,521,463,522,461,448,468,586,
509,481,510,472,473,493,595,484,430,453,
452,446,454,590,569,537,538,570,449
};

for(new i = 0; i < NO_NOS_VEHICLES; i++)
{
if(GetVehicleModel(vehicleid) == InvalidNosVehicles)
{
return false;
}
}
return true;
}
İşlem tamam. Yaptığınız çalışmaları kaydedebilirsiniz.
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Rehber için teşekkür ederim kardeşim, konu tarafımca değerlendirilecektir. :)
 
Paylaşım için teşekkürler, eline sağlık. :) Samp hala binlerce oyuncu tarafından oynanıyor. :)
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst