GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Kripteks - 12 Kasım 2017, 20:22:38

Başlık: [ANLATIM] mSelection Kullanımı
Gönderen: Kripteks - 12 Kasım 2017, 20:22:38
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.

Fonksiyonlar

LoadModelSlectionMenu(f_name[])

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.




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.




OnPlayerModelSelection (playerid, response, listid, modelid)
Oyuncu model seçtiğinde veya ESC tuşuna bastığında çağırılacak olan publictir.




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.



OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
ShowModelSelectionMenuEx içerisinde bir modele tıkladığınızda olacak işlemlerdir.





Anlatım-1

Scriptfiles 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-2

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> // 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)
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: LanceX - 12 Kasım 2017, 20:40:04
Çok güzel anlatmışsın eline sağlık. :helal:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Levi - 12 Kasım 2017, 20:42:56
Çok açıklayıcı bir anlatım olmuş, teşekkürler. :helal:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Kiproo - 12 Kasım 2017, 20:58:10
Yararlı Konu olmuş, İşime yaradı Teşekkürler.  :helal:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Wither - 12 Kasım 2017, 23:31:49
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:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: 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
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: pag - 16 Kasım 2017, 23:00:01
Yararli anlatim olmus,emeginize saglik.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Kripteks - 25 Ocak 2018, 19:48:50
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.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: mtb - 28 Ocak 2018, 15:05:24
Güzel anlatım.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Pablo - 01 Şubat 2018, 16:34:38
Alıntı yapılan: -Poseidon- - 28 Ocak 2018, 15:05:24

Güzel anlatım.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Kripteks - 02 Temmuz 2018, 22:42:16
Yasaklanmışsınız ama teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Tyranus - 14 Temmuz 2018, 22:37:13
Çok Güzel Bir Anlatım Pawn'ı Çok Az Bilsemde Bişeyler Anladım  :helal: :helal:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Willy - 14 Temmuz 2018, 22:45:10
Paylaşım için teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Cruza - 15 Temmuz 2018, 16:48:02
Çok başarılı bir anlatım, paylaşım için teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Mehmet! - 27 Ağustos 2018, 17:01:13
Alıntı yapılan: ReDDooM - 16 Kasım 2017, 23:00:01

Yararli anlatim olmus,emeginize saglik.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Diaz - 02 Eylül 2018, 02:44:36
Gördüğüm en kapsamlı anlatımlardan birisi olmuş, devamını getirmelisin. :bandit:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Zoxy - 06 Eylül 2018, 16:23:25
Güzel anlatmışsın, eline sağlık.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Albert Einstein. - 16 Eylül 2018, 01:57:10
Paylaşım için teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: starhan01 - 16 Eylül 2018, 14:04:40
Alıntı yapılan: SelimBasKaN - 12 Kasım 2017, 20:40:04

Çok güzel anlatmışsın eline sağlık. :helal:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: 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:
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Cruza - 31 Mayıs 2019, 01:37:07
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.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Ryroz - 31 Mayıs 2019, 18:07:01
Teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Prisoners - 31 Mayıs 2019, 18:40:14
Teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: QrzR - 11 Haziran 2019, 17:00:00
Teşekkürler.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: FelleR - 27 Haziran 2019, 01:19:29
Yararlı.
Başlık: Ynt: [ANLATIM] mSelection Kullanımı
Gönderen: Kripteks - 14 Aralık 2020, 21:35:50
Yorumlar için teşekkürler.