GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

[ANLATIM] mSelection Kullanımı

Başlatan Kripteks, 12 Kasım 2017, 20:22:38

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Kripteks

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[])

  • 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-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;
}





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;
}







Orjinal konusunu gitmek için tıklayın.
Anlatımdaki dosyaları indirmek için tıklayın.
Son düzenlenme: 23 Kasım 2017, 15:15:11 ThaLasso

LanceX

Çok güzel anlatmışsın eline sağlık. :helal:


Levi

Çok açıklayıcı bir anlatım olmuş, teşekkürler. :helal:

"I'm the best damn thing that your eyes have ever seen."

Kiproo

Yararlı Konu olmuş, İşime yaradı Teşekkürler.  :helal:


Wither

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:


Dyternal

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


pag

Yararli anlatim olmus,emeginize saglik.


Kripteks

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.


mtb


2017-2024

Pablo

Alıntı




Pawnotürk Üyesi 2017-2020

Kripteks

Yasaklanmışsınız ama teşekkürler.


Tyranus

Çok Güzel Bir Anlatım Pawn'ı Çok Az Bilsemde Bişeyler Anladım  :helal: :helal:


Willy


Cruza

Çok başarılı bir anlatım, paylaşım için teşekkürler.

since 2008
graphic designer & front-end web developer

Mehmet!

↬ MedceziR