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

[ANLATIM] PreviewModelDialog.inc - SA:MP'ta yeni bir GUI tarzı!

Başlatan Lawnless, 20 Kasım 2019, 04:59:34

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Lawnless


Bu include sayesinde, Pawno'nun ve SA:MP'ın bize verdiği sınırlardan kurtulup yepyeni tasarımlarla sunucumuzu hoş bir görünüme kavuşturabiliyoruz.

Örneğin bir Roleplay sunucusu açtınız ve sunucunuzun güzel görünmesini istiyorsunuz, oyuncular skin değiştirmek için kıyafet mağazasına gittiğinde bir bakacaklar yepyeni bir GUI!

Bize sunuculan özelliker:
• Sınır yok! (Ne demek bu?: İstediğiniz kadar modeli bir arada bir dialogta toplayabilirsiniz.)
• Yer kaplıyor sorunu yok! (Büyük bir sunucu sahibi olupta büyük .amx dosyaları oluşturmanıza gerekte yok.)
• Büyük, interaktif modern bir görünüm!
• Döndürme ve Yakınlaştırma tuşları!



• Muhteşem bir kaydırma çubuğu!
• GameTextPlayer'in renk kodları menülerimizde kullanabiliyoruz.



Örnekler

Mesela tüm SA:MP skinlerinin bulunduğu bir skin seçme dialogu oluşturalım.



Kod:
PAWN Kodu: Seç
CMD:skinler(playerid) { // zCmd yardımı ile komutumuzu oluşturduk.
    const MAX_SKINS = 312; // Maksimum skin sayısını ayarladık.
    new subString[16];
    static string[MAX_SKINS * sizeof(subString)];

    if (string
[list][li]== EOS) {[/li][/list]
        for (new i; i < MAX_SKINS; i++) { // Maksimum skin sayısından düşük oldukça skin id'yi arttıracak bir döngü.
            format(subString, sizeof(subString), "%i\tID: %i\n", i, i); // Burada yukarda oluşturduğumuz subString'e ekleme yapıyoruz.
            strcat(string, subString); // Ve bunu menü haline getirmek için strcat kullanıyoruz.
        }
    }

    return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PREVIEW_MODEL, "Skin Secme Dialogu", string, "Sec", "Iptal"); // Ve burada bildiğimiz dialog gösterme callbacki.
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { // Dialog isteği işlendiğinde
    if (dialogid == 0) { // Dialog ID 0 ise
        if (response) { // Sec butonuna basıldıysa
            SetPlayerSkin(playerid, listitem); // Oyuncu skinini değiştir
            GameTextForPlayer(playerid, "~g~Skin Degistirildi!", 3000, 3); // Bir mesaj göster
        }
    }
    return 1;
}


Yada mesela tüm silahların bulunduğu bir dialog oluşturalım.


PAWN Kodu: Seç
enum E_WEAPON_SHOP_DATA {
    WEAPON_MODELID,
    WEAPON_NAME[35],
    WEAPON_PRICE,
    WEAPON_AMMO,
    WEAPON_ID
};

new const WEAPON_SHOP[][E_WEAPON_SHOP_DATA] = {
    {335, "Bicak", 0, 1, WEAPON_KNIFE},
    {341, "Testere", 1500, 1, WEAPON_CHAINSAW},
    {342, "Bomba", 1545, 1, WEAPON_GRENADE},
    {343, "Molotof", 1745, 1, WEAPON_MOLTOV},
    {347, "Susturuculu 9mm", 1500, 150, WEAPON_SILENCED},
    {348, "Desert Eagle", 3199, 150, WEAPON_DEAGLE},
    {350, "Sawed Off Pompali", 4999, 100, WEAPON_SAWEDOFF},
    {351, "Spas12 Pompali", 3870, 100, WEAPON_SHOTGSPA},
    {352, "Micro-UZI", 3500, 300, WEAPON_UZI},
    {353, "MP5", 2999, 200, WEAPON_MP5},
    {372, "Tec-9", 3500, 300, WEAPON_TEC9},
    {358, "Sniper Tufegi", 4999, 50, WEAPON_SNIPER},
    {355, "Ak47", 2999, 200, WEAPON_AK47},
    {356, "M4", 3155, 200, WEAPON_M4},
    {359, "RPG", 1999, 1, WEAPON_ROCKETLAUNCHER},
    {361, "Flamethrower", 3500, 350, WEAPON_FLAMETHROWER},
    {362, "Minigun", 10000, 350, WEAPON_MINIGUN},
    {363, "Satchel Charge", 1999, 2, WEAPON_SATCHEL},
    {365, "Sprey", 800, 200, WEAPON_SPRAYCAN},
    {366, "Yangin Sondurucu", 855, 200, WEAPON_FIREEXTINGUISHER}
};

CMD:silahlar(playerid) {
    new subString[64];
    static string[sizeof(WEAPON_SHOP) * sizeof(subString)];

    if (string
[list][li]== EOS) {[/li][/list]
        for (new i; i < sizeof(WEAPON_SHOP); i++) {
            format(subString, sizeof(subString), "%i(0.0, 0.0, -50.0, 1.5)\t%s~n~~g~~h~$%i\n", WEAPON_SHOP[i][WEAPON_MODELID], WEAPON_SHOP[i][WEAPON_NAME], WEAPON_SHOP[i][WEAPON_PRICE]);
            strcat(string, subString);
        }
    }

    return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PREVIEW_MODEL, "Silah Dialogu", string, "Satin Al", "Iptal");
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    if (dialogid == 1) {
        if (response) {
            if (GetPlayerMoney(playerid) < WEAPON_SHOP[listitem][WEAPON_PRICE]) {
                SendClientMessage(playerid, 0xAA0000FF, "Bu silahi alabilmek icin paraniz yok!");
                return cmd_weapons(playerid);
            }
           
            GivePlayerMoney(playerid, -WEAPON_SHOP[listitem][WEAPON_PRICE]);
            GivePlayerWeapon(playerid, WEAPON_SHOP[listitem][WEAPON_ID], WEAPON_SHOP[listitem][WEAPON_AMMO]);
           
            GameTextForPlayer(playerid, "~g~Silah Alindi!", 3000, 3);
        }
    }
    return 1;
}

Son düzenlenme: 20 Kasım 2019, 05:09:15 GreeJolly
public class gtaMultiSignature {
    public static void main(String[] args) {
      System.out.println("How can I help you?");
      System.out.println("C#, C++, Java, Python, LUA, PHP, .NET, Typescript, Javascript");
    }
}

Warning


Myalis