Merhaba arkadaşlar,
Forumda yeniyim. Bugün sizler için mSelection includesinin kullanımını anlatacağım. İlk gördüğümde çok karışık gelmişti, fakat şimdi çok basit geliyor. Yazacaklarımı anlamanız için biraz pawno bilginiz olmalıdır. En azından fonksiyonun anlamını biliyor olun anlayacaksınız.
Kolay gelsin.
mSelection nedir?Skinleri, silahları, araçları ve sa-mp objelerini oyunculara görsel olarak sunan ve tıklandığınıldığında işlem yapabildiğiniz bir kütüphanedir. Yapımcısı forum sa-mp'dan b0 isimli kullanıcıdır.
FonksiyonlarLoadModelSlectionMenu(f_name[])
- f_name[]: Scriptfiles klasörünün içinde bulunan dosyanın adıdır.
Scriptfiles klasörünün içindeki text dosyası olmalıdır. Text dosyasının içerisine görüntülenmesini istediğiniz objenin, skinin veya aracın model numarasını yazmalısınız.
Alıntı
Model ID, rotasyonX, rotasyonY, rotasyonZ, Yakınlık(zoom)
411
411 180.0
411 0.0 180.0
411 0.0 0.0 180.0
411 0.0 0.0 0.0 1.0
HideModelSelectionMenu(playerid)
mSelection menüsünü kapatmak için kullanılır.
- playerid: Menünün gizleneceği oyuncuId numarası
ShowModelSelectionMenu(playerid, listId, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899, tdSelectionColor = 0xFFFF00AA)
Oyuncuya gösterilecek modellerin listesidir. Scriptfiles klasörünün içindeki textleri çeker ve gösterir.
- playerid mSelection menüsünün gösterileceği oyuncunun Id numarasıdır.
- listId: Gösterilecek görüntülerin listesidir. Scriptfileste tanıttığımız dosyanın ismi verilir.
- header_text[]: Listenin başlık kısmıdır.
- dialogBGcolor = 0x4A5A6BBB: mSelectionun arka plan rengidir.
- previewBGcolor = 0x88888899: Modellerin bulunduğu kutucuk renkleridir.
- tdSelectionColor = 0xFFFF00AA: Kutucukların üzerine gelince görüntülenecek renktir.
OnPlayerModelSelection (playerid, response, listid, modelid)
Oyuncu model seçtiğinde veya ESC tuşuna bastığında çağırılacak olan publictir.
- playerid: Oyunucunun Id numarası
- response: Oyuncu modele tıklarsa 1, ESC tuşuna tıklarsa 0 döndürür.
- listid: Liste numarasıdır.
- modelid: Tıkladığınız objenin model numarasıdır.
ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
Dinamik mSelection menüsüdür. Scriptfiles klasörünün içerisine görüntülenecek model listesi tanıtmadıysanız modunuzun içerisinde tanıtıp modelin rotasyon, yakınlık gibi ayarlarını bu fonksiyon ile verebilirsiniz.
- playerid: Gösterilecek oyunucunun Id numarası
- items_array[]: Tanıttığınız array dizisinin içindeki modellerdir.
- item_amount: Tanıtıtğınız array dizisinin içindeki eleman sayısıdır.
- header_text[]: mSelection menüsünün başlığıdır.
- extraid: Liste numarasıdır.
- Float:Xrot = 0.0 Modelin oyuncuya gösterileceği X koordinatı
- Float:Yrot = 0.0: Modelin oyuncuya gösterileceği Y koordinatı
- Float:Zrot = 0.0: Modelin oyuncuya gösterileceği Z koordinatı
- Float:mZoom = 1.0: Modelin oyuncuya görüntülenecek yakınlık mesafesi.
- dialogBGcolor = 0x4A5A6BBB: mSelectionun arka plan rengidir.
- previewBGcolor = 0x88888899: Modellerin bulunduğu kutucuk renkleridir.
- tdSelectionColor = 0xFFFF00AA: Kutucukların üzerine gelince görüntülenecek renktir.
OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
ShowModelSelectionMenuEx içerisinde bir modele tıkladığınızda olacak işlemlerdir.
- playerid: Oyunucunun Id numarası
- response: Oyuncu modele tıklarsa 1, ESC tuşuna tıklarsa 0 döndürür.
- extraid: Liste numarasıdır.
- modelid: Tıkladığınız objenin model numarasıdır.
Anlatım-1Scriptfiles klasörünü açın ve içine metin belgesi oluşturunuz. Birini planes.txt, diğerini skins.txt yazın.
Aşağıdaki kodları planes.txt metin belgesinin içine atınız.
Alıntı
460 16.0 0.0 -55.0
476 16.0 0.0 -55.0
511 16.0 0.0 -55.0
512 16.0 0.0 -55.0
513 16.0 0.0 -55.0
519 16.0 0.0 -55.0
520 16.0 0.0 -55.0
553 16.0 0.0 -55.0
577 16.0 0.0 -55.0
592 16.0 0.0 -55.0
593 16.0 0.0 -55.0
Aşağıdaki kodları skins.txt metin belgesinin içine atınız.
Alıntı0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Aşağıdaki kodları Pawnoda oluşturduğunuz text bölümüne atın ve compile edin.
server.cfg açarak compile ettiğiniz dosyanın adını yazın ve sunucunuzu açarak test edin.
#include <a_samp>
#include <mSelection>
new planelist = mS_INVALID_LISTID; // planelist adında değişken tanımladık ve bunun mSelection tipinde bir değişken olduğunu belirttik.
new skinlist = mS_INVALID_LISTID; // skinlist adında değişken tanımladık ve bunun mSelection tipinde bir değişken olduğunu belirttik.
public OnFilterScriptInit()
{
planelist = LoadModelSelectionMenu("planes.txt"); // Scriptfiles klasörü içine koyduğumuz kodların yolunu yukarıda tanıttığımız değişkenimize atadık.
skinlist = LoadModelSelectionMenu("skins.txt");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/plane", true) == 0)
{
ShowModelSelectionMenu(playerid, planelist, "->Uçaklar<-"); // mSelection menüsünü oyuncuya gösterdik. Oyuncunun karşısında uçaklar görünecektir. Çünkü planes.txt dosyasının içinde sa-mp'daki uçakların model Id numarası bulunmakta.
return 1;
}
if(strcmp(cmdtext, "/changeskin", true) == 0)
{
ShowModelSelectionMenu(playerid, skinlist, "Skinler"); // mSelection menüsünü oyuncuya gösterdik. Oyunucunun karşısında kıyafetler görünecektir. Çünkü skins.txt dosyasının içinde sa-mp'daki skinlerin model Id numarası bulunmakta.
return 1;
}
return 0;
}
public OnPlayerModelSelection(playerid, response, listid, modelid) // ShowModelSelectionMenu içinde herhangi bir kutucuğa tıkladığımızda public çağırılır.
{
if(listid == planelist) // Eğer oyuncu planelist isimli mSelectionda herhangi bir yere tıkladıysa aşağıdaki kodlar çalışır.
{
if(response) // Oyuncu kutucuğa tıkladımı diye kontrol ediyoruz.
{
SendClientMessage(playerid, 0xFF0000FF, "Uçak spawn oldu."); // Oyuncuya mesaj gönderdik.
new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); // Oyunucunun koordinatlarını aldık.
CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1); //Ve aracı yarattık.
}
else SendClientMessage(playerid, 0xFF0000FF, "Oyuncu ESC tuşuna bastı.");
return 1;
}
if(listid == skinlist)
{
if(response)
{
SendClientMessage(playerid, 0xFF0000FF, "Kıyafet seçildi");
SetPlayerSkin(playerid, modelid); // Oyuncuya skin verdik.
}
else SendClientMessage(playerid, 0xFF0000FF, "Oyuncu ESC tuşuna bastı.");
return 1;
}
return 1;
}
(https://i.hizliresim.com/2EoRAE.png)
(https://i.hizliresim.com/jQNaZW.png)
Anlatım-2Aşağıdaki kodları Pawnoda oluşturduğunuz text bölümüne atın ve compile edin.
server.cfg açarak compile ettiğiniz dosyanın adını yazın ve sunucunuzu açarak test edin.
#include <a_samp>
#include <mSelection> // mSelection kütüphanesini dahil ettik.
#define CUSTOM_TRAILER_MENU 1 // Menümüze Id numarası verdik.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/selectVehicleTrailer", true) == 0)
{
new cars[15]; // 15 boyutlu değişken tanımladık.
cars[0] = 435; // 435 numaralı araç numarasını değişkenin ilk indisini atadık.
cars[1] = 450;
cars[2] = 569;
cars[3] = 570;
cars[4] = 584;
cars[5] = 590;
cars[6] = 591;
cars[7] = 606;
cars[8] = 607;
cars[9] = 608;
cars[10] = 610;
cars[11] = 611;
ShowModelSelectionMenuEx(playerid, cars, 12, "Select trailer", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0); // Tanımladığımız dinamik menüyü oyuncuya göstermek için kullanılır.
return 1;
}
return 0;
}
public OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
{
if(extraid == CUSTOM_TRAILER_MENU) // Oyuncu CUSTOM_TRAILER_MENU'sünde herhangi bir kutucuğa tıkladı mı?
{
if(response) // Oyuncu kutucuklardan birine tıkladıysa.
{
SendClientMessage(playerid, 0xFF0000FF, "Trailer spawn oldu."); // Oyuncuya mesaj gösterdik.
new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]); // Oyuncunun koordinatlarını aldık.
CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1); // Araç yarattık.
}
else SendClientMessage(playerid, 0xFF0000FF, "Oyuncu ESC tuşuna bastı.");
}
return 1;
}
(https://i.hizliresim.com/Byb1YL.png)
Orjinal konusunu gitmek için tıklayın. (http://forum.sa-mp.com/showthread.php?t=407045)
Anlatımdaki dosyaları indirmek için tıklayın. (https://www.dropbox.com/s/s5nhowkdzyvjkr3/mSelection1.1R3.zip?dl=0)
Çok güzel anlatmışsın eline sağlık. :helal:
Çok açıklayıcı bir anlatım olmuş, teşekkürler. :helal:
Bu konunun Türkçe olarak bu kadar ayrıntılı anlatımı yok sanırım.
Paylaşım için teşekkürler. :helal:
Teşekkürler bilmeyenler için iyi anlatılmış. Ama biraz pawno'yu bilgisi olmalı yerinden kastın ne? Neden pawno'yu bilmeye gerek var. Ben biliyorum anladım ama bilmeyende anlayabilir
Alıntı yapılan: Dyternal - 13 Kasım 2017, 10:13:59
Teşekkürler bilmeyenler için iyi anlatılmış. Ama biraz pawno'yu bilgisi olmalı yerinden kastın ne? Neden pawno'yu bilmeye gerek var. Ben biliyorum anladım ama bilmeyende anlayabilir
Yani misal anlatım-2 de array dizisi var. Bu konuyu bilmeyen biri burada ne yapmış kafasına girebilir diye öngördüm. Yani birazcık temel bilgisi varsa anlayacaktır anlamında.
Diğer yorum yapan arkadaşlara teşekkürler.
Çok Güzel Bir Anlatım Pawn'ı Çok Az Bilsemde Bişeyler Anladım :helal: :helal:
Çok başarılı bir anlatım, paylaşım için teşekkürler.
Gördüğüm en kapsamlı anlatımlardan birisi olmuş, devamını getirmelisin. :bandit:
Kullanmıya kullanmıya nasıl kullanıldığını unutmuşum, kendi hazırladığım konudan yararlanmaya geldim. :kral:
Alıntı yapılan: Kripteks - 31 Mayıs 2019, 01:35:10
Kullanmıya kullanmıya nasıl kullanıldığını unutmuşum, kendi hazırladığım konudan yararlanmaya geldim. :kral:
Ahahah :D , anlatım için teşekkürler gayet güzel anlatmışsın. Kolay bir kullanımı var gibi görünüyor.
Teşekkürler.