⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐Kurumsal web sitesi barındırma, VDS ve sanal sunucu çözümleri. Name SSD altyapısı, yüksek performans, kesintisiz erişim ve profesyonel teknik destekle hizmetinizde.⭐
Sponsor Görsel 2
SponsorSponsor

Konu

#11
Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>
#include <nvault>

new const ChatTag[] = "^1[^4EOSM^1]";

new const sLevelSystem[][][] = {
    { "Rutbesiz", 0 }, // 0
    { "I.Yeniceri", 50 }, // 1
    { "II.Timarli Sipahi", 100 }, // 2
    { "III.Atli Suvari", 200 }, // 3
    { "IV.Silahtar Aga", 400 }, // 4
    { "V.Uc Beyi", 550 }, // 5
    { "VI.Akinci Beyi", 800 }, // 6
    { "VII.Sancak Beyi", 1250 }, // 7
    { "VIII.Beyler Beyi", 1750 }, // 8
    { "IX.Subasi", 2000 }, // 9
    { "X.Nisanci", 2500 }, // 10
    { "XI.SerAsker Kethudasi", 3000 }, // 11
    { "XII.Kapudan Pasa", 3500 }, // 12
    { "XIII.KazAsker", 4000 }, // 13
    { "XIV.KubbeAlti Veziri", 4500 }, // 14
    { "XV.Sadrazam", 5000 }, // 15
    { "XVI.Sehzade", 5750 }, // 16
    { "XVII.Hukumdar", 6500 }, // 17
};

enum _: Variables {
    Exp,
    Level
}
new Vars[MAX_PLAYERS + 1][Variables], iCvars[3], iVault, iForward, iReturn, iSyncHud;

public plugin_init() {
    register_plugin("Advanced Level System", "1.0", "PawNod', LyNcH");

    register_concmd("amx_give_level", "@GiveLevel", ADMIN_RCON, "<isim> <miktar>, belirlenen kisiye level verir");
    
    register_clcmd("say /rutbe", "RutbeInformation");
    register_clcmd("say !rutbe", "RutbeInformation");
    register_clcmd("say .rutbe", "RutbeInformation");
    register_clcmd("say /rütbe", "RutbeInformation");
    register_clcmd("say !rütbe", "RutbeInformation");
    register_clcmd("say .rütbe", "RutbeInformation");

    RegisterHookChain(RG_CBasePlayer_Killed, "@IsKilled", .post = true);

    iForward = CreateMultiForward("pUserLevelUp", ET_IGNORE, FP_CELL);

    Cvars();

    iSyncHud = CreateHudSyncObj();
}
Cvars() {
    bind_pcvar_num(create_cvar("ALS_Give_Exp", "1"), iCvars[0]); // Bu değeri 0 yaparsanız ALS_Give_Max_Exp ve ALS_Give_Min_Exp değerleri arasından rastgele exp verecektir.
    bind_pcvar_num(create_cvar("ALS_Give_Min_Exp", "20"), iCvars[1]);
    bind_pcvar_num(create_cvar("ALS_Give_Max_Exp", "70"), iCvars[2]);
}
@GiveLevel(const iPlayer, const iLVL, const iCid) {
    if (~get_user_flags(iPlayer) & iLVL)
        return PLUGIN_HANDLED;
    new iStringName[18], iStringAmount[18];
    read_argv(1, iStringName, 17);
    read_argv(2, iStringAmount, 17);
    if (iStringName[0] == '@') {
        new iPlayers[32], iPlayerNum, iPlayerad, iAmmount = str_to_num(iStringAmount);
        switch (iStringName[1]) {
            case 't', 'T'
            :  {
                get_players(iPlayers, iPlayerNum, "ae", "TERRORIST");
                client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Zombiler ^4] ^1'e ^4[ ^3%i Level ^4] ^1verdi^4.", iPlayer, iAmmount);
            }
            case 'c', 'C'
            :  {
                get_players(iPlayers, iPlayerNum, "ae", "CT");
                client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Insanlar ^4] ^1'a ^4[ ^3%i Level ^4] ^1verdi^4.", iPlayer, iAmmount);
            }
            case 'a', 'A'
            :  {
                get_players(iPlayers, iPlayerNum, "a");
                client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Level ^4] ^1verdi^4.", iPlayer, iAmmount);
            }
            default:  {
                get_players(iPlayers, iPlayerNum, "a");
                client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Level ^4] ^1verdi^4.", iPlayer, iAmmount);
            }
        }
        for (new i = 0; i < iPlayerNum; i++) {
            iPlayerad = iPlayers[i];
            if (Vars[iPlayerad][Level] + iAmmount >= (sizeof(sLevelSystem) - 1)) {
                Vars[iPlayerad][Level] = (sizeof(sLevelSystem) - 1);
                Vars[iPlayerad][Exp] = sLevelSystem[(sizeof(sLevelSystem) - 1)][1][0];
            } else {
                Vars[iPlayerad][Exp] = sLevelSystem[Vars[iPlayerad][Level] + iAmmount][1][0];
                Vars[iPlayerad][Level] += iAmmount;
            }
        }
        return PLUGIN_HANDLED;
    }
    new iAmmount, iUID = find_player("bl", iStringName);
    iAmmount = str_to_num(iStringAmount);

    client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3%n ^4] ^1adli kisiye ^4[ ^3%i Level ^4] ^1verdi^4.", iPlayer, iUID, iAmmount);
    if (Vars[iUID][Level] + iAmmount >= (sizeof(sLevelSystem) - 1)) {
        Vars[iUID][Level] = (sizeof(sLevelSystem) - 1);
        Vars[iUID][Exp] = sLevelSystem[(sizeof(sLevelSystem) - 1)][1][0];
    } else {
        Vars[iUID][Exp] = sLevelSystem[Vars[iUID][Level] + iAmmount][1][0];
        Vars[iUID][Level] += iAmmount;
    }

    new sSteamID[64];
    get_user_authid(iUID, sSteamID, 63);
    sSetIntData("%s>Level", Vars[iUID][Level], sSteamID);
    sSetIntData("%s>Exp", Vars[iUID][Exp], sSteamID);

    return PLUGIN_HANDLED;
}
@IsKilled(const iVictim, const iAttacker) {
    if (!is_user_connected(iAttacker) || iVictim == iAttacker) return;
    if (LevelChecker(iAttacker, false, (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0])) {
        (iCvars[0] == 0) ? (Vars[iAttacker][Exp] += random_num(iCvars[1], iCvars[2])) : (Vars[iAttacker][Exp] += iCvars[0]);
        new sSteamID[64];
        get_user_authid(iAttacker, sSteamID, 63);
        sSetIntData("%s>Exp", Vars[iAttacker][Exp], sSteamID);
    }
    if (LevelChecker(iAttacker, true, 0))
        @LevelUp(iAttacker);
}
@LevelUp(const iPlayer) {
    Vars[iPlayer][Level]++;
    ExecuteForward(iForward, iReturn, iPlayer);
    client_print_color(iPlayer, iPlayer, "%s ^1Basarili bir sekilde ^4Level Atladiniz^1!", ChatTag);
    new sSteamID[64];
    get_user_authid(iPlayer, sSteamID, 63);
    sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
    sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
}
public client_putinserver(iPlayer) {
    new sSteamID[64];
    get_user_authid(iPlayer, sSteamID, 63);
    Vars[iPlayer][Exp] = sGetIntData("%s>Exp", sSteamID);
    Vars[iPlayer][Level] = sGetIntData("%s>Level", sSteamID);

    set_task(3.0, "ChatReklami", iPlayer);
    set_task(5.0, "ShowHudMessage", iPlayer + 125721, .flags = "b");
}
public ShowHudMessage(Taskid) {
    new id = Taskid - 125721;

    if (is_user_connected(id)) {
        set_hudmessage(0, 255, 0, 1.0, 0.50, 0, 0.0, 5.0);

        if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i / %i]", sLevelSystem[Vars[id][Level]][0][0], Vars[id][Exp], sLevelSystem[Vars[id][Level] + 1][1][0]);
        else ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i / Max]", sLevelSystem[Vars[id][Level]][0][0], Vars[id][Exp]);
    }
}
public ChatReklami(id) {
    if (is_user_connected(id)) {
        client_print_color(id, id, "%s ^4Servera hosgeldiniz, serverda level sistemi vardir^1!", ChatTag);

        if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
            client_print_color(id, id, "%s ^4Sonraki rutbeye gecmek icin ^3%i kill ^4daha al^1!", ChatTag, sLevelSystem[Vars[id][Level] + 1][1][0] - Vars[id][Exp]);
        }
    }
}

public plugin_natives() {
    register_native("ALS_GetUserExp", "@ALS_GUEX");
    register_native("ALS_SetUserExp", "@ALS_SUEX");
    register_native("ALS_GetUserLevel", "@ALS_GULV");
    register_native("ALS_SetUserLevel", "@ALS_SULV");
    register_native("ALS_GetLevelName", "@ALS_GETNAME");
    register_native("ALS_GetMaxLevel", "@ALS_GMLV");
}
@ALS_GETNAME() {
    new levelid = get_param(1);
    new len = get_param(2);
    set_string(2, fmt("%s", sLevelSystem[levelid][0][0]), len);
}
@ALS_GUEX() {
    new nPlayerID = get_param(1);
    return Vars[nPlayerID][Exp];
}
@ALS_SUEX() {
    new nPlayerID = get_param(1), nAmount = get_param(2);
    if (nAmount >= sLevelSystem[(sizeof(sLevelSystem) - 1)][1][0]) {
        Vars[nPlayerID][Level] = (sizeof(sLevelSystem) - 1);
        Vars[nPlayerID][Exp] = sLevelSystem[(sizeof(sLevelSystem) - 1)][1][0];
    } else {
        Vars[nPlayerID][Exp] = nAmount;
        for (new i = 0; i < sizeof(sLevelSystem); i++) {
            if (nAmount >= sLevelSystem[i][1][0]) {
                Vars[nPlayerID][Exp] = i;
                break;
            }
        }
    }
    return PLUGIN_CONTINUE;
}
@ALS_GULV() {
    new nPlayerID = get_param(1);
    return Vars[nPlayerID][Level];
}
@ALS_SULV() {
    new nPlayerID = get_param(1), nAmount = get_param(2);
    if (nAmount >= (sizeof(sLevelSystem) - 1)) {
        Vars[nPlayerID][Level] = (sizeof(sLevelSystem) - 1);
        Vars[nPlayerID][Exp] = sLevelSystem[(sizeof(sLevelSystem) - 1)][1][0];
    } else {
        Vars[nPlayerID][Exp] = sLevelSystem[nAmount][1][0];
        Vars[nPlayerID][Level] = nAmount;
    }
    return PLUGIN_CONTINUE;
}
@ALS_GMLV() {
    return (sizeof(sLevelSystem) - 1);
}
public plugin_cfg()
iVault = nvault_open("ALS_V1");
public plugin_end()
nvault_close(iVault);

bool:LevelChecker(const iPlayer, const bool:IsExp, const iExpAmout) {
    new iMaxExp, iMaxLevel;
    iMaxLevel = (sizeof(sLevelSystem) - 1);
    iMaxExp = sLevelSystem[iMaxLevel][1][0];
    if (IsExp) {
        if (Vars[iPlayer][Exp] >= iMaxExp) {
            Vars[iPlayer][Level] = iMaxLevel;
            return false;
        }
        if (Vars[iPlayer][Exp] < sLevelSystem[Vars[iPlayer][Level] + 1][1][0])
            return false;
        if (Vars[iPlayer][Level] >= iMaxLevel) {
            Vars[iPlayer][Level] = iMaxLevel;
            return false;
        }
    } else {
        if (Vars[iPlayer][Exp] + iExpAmout >= iMaxExp) {
            Vars[iPlayer][Exp] = iMaxExp;
            return false;
        }
    }
    return true;
}
stock sGetIntData(const sKey[], any:...) {
    new sFixedData[128];
    vformat(sFixedData, 127, sKey, 2);
    return nvault_get(iVault, sFixedData);
}
stock sSetIntData(const sKey[], const iData, any:...) {
    new sFixedData[128], sNTS[48];
    vformat(sFixedData, 127, sKey, 3);
    num_to_str(iData, sNTS, 47);
    nvault_set(iVault, sFixedData, sNTS);
}

public RutbeInformation(Player) {
    new Arg[2126], Num;
    
    Num += formatex(Arg[Num], 2126 - Num, "<meta charset=UTF-8><style>body{background:#000;font-family:Arial}th{border-left:1px solid #FF0000;border-top:1px solid #FF0000}table{background:#000;font-size:11px;color:#FFF;border-right:1px solid #FF0000;border-bottom:1px solid #FF0000;padding:3px}h2,h3{color:#FFF}#c{background:#FF9B00;color:#000}img{height:10px;background:#00E930;margin:0 3px}#r{height:10px;background:#B6423C}#clr{background:none;color:#FFF;font-size:20px;border:0} .powered{color:#FF0000}</style>");
    Num += formatex(Arg[Num], 2126 - Num, "<body><table width=100%% border=0 align=center cellpadding=0 cellspacing=1>");
    Num += formatex(Arg[Num], 2126 - Num, "<tr><th>#<th>Rütbe Adı<th>Gereken Kill</tr>");

    for (new i = 1; i < sizeof(sLevelSystem); i++) {
        Num += formatex(Arg[Num], 2126 - Num, "<tr><th>%i<th>%s<th>%d</tr>", i, sLevelSystem[i][0][0], sLevelSystem[i][1][0]);
    }

    Num += formatex(Arg[Num], 2126 - Num, "</table><br><center class='powered'>Powered By WEBAilesi.COM</center>");

    show_motd(Player, Arg, "Rütbe Bilgilendirmesi");
}

Ücretli / Ücretsiz Eklenti İşleri İçin:
Discord: never.meant.to.belong
WhatsApp: Mesaj Gönder
#12
(28-10-2024, 23:35)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: Merhaba kardeşim Tabloda 1den başlayip 17 lw kadar siralama ve kill sayısı yazıcak amaç bilgilendirmek oyundan /rutbe yazarak vs

(28-10-2024, 22:44)Maravilha Adlı Kullanıcıdan Alıntı: Levellerin listesini mi sıralayacak yoksa en yüksek rütbeli oyuncularl
güncel level listesini sıralayacak bilgilendirme amacıyla
kardeşim ne yazarak bilgilendiricek ayriyeten seninle iletişme gecebilr miyim
#13
(01-11-2024, 00:13)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı:
(28-10-2024, 23:35)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: Merhaba kardeşim Tabloda 1den başlayip 17 lw kadar siralama ve kill sayısı yazıcak amaç bilgilendirmek oyundan /rutbe yazarak vs

güncel level listesini sıralayacak bilgilendirme amacıyla
kardeşim ne yazarak bilgilendiricek ayriyeten seninle iletişme gecebilr miyim
/rutbe - /rütbe komutu ile, ÖM üzerinden iletişim kurabilirsiniz.
Ücretli / Ücretsiz Eklenti İşleri İçin:
Discord: never.meant.to.belong
WhatsApp: Mesaj Gönder
#14
(01-11-2024, 00:13)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı:
(28-10-2024, 23:35)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: Merhaba kardeşim Tabloda 1den başlayip 17 lw kadar siralama ve kill sayısı yazıcak amaç bilgilendirmek oyundan /rutbe yazarak vs

güncel level listesini sıralayacak bilgilendirme amacıyla
kardeşim ne yazarak bilgilendiricek ayriyeten seninle iletişme gecebilr miyim
rütbe isim değişikliği manuel olunca tabloda otomatikmen değişiyor mu hocam
#15
(01-11-2024, 00:55)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı:
(01-11-2024, 00:13)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: kardeşim ne yazarak bilgilendiricek ayriyeten seninle iletişme gecebilr miyim
rütbe isim değişikliği manuel olunca tabloda otomatikmen değişiyor mu hocam
Evet
Ücretli / Ücretsiz Eklenti İşleri İçin:
Discord: never.meant.to.belong
WhatsApp: Mesaj Gönder
#16
(01-11-2024, 00:55)kYUNUSBEYHATUN Adlı Kullanıcıdan Alıntı:
(01-11-2024, 00:13)YUNUSBEYHATUN Adlı Kullanıcıdan Alıntı: kardeşim ne yazarak bilgilendiricek ayriyeten seninle iletişme gecebilr miyim
rütbe isim değişikliği manuel olunca tabloda otomatikmen değişiyor mu hocam
eline sağlık kardeşim sağolasın
#17
İstek konusu, @Maravilha adlı kullanıcı tarafından 5 gün içinde çözülmüştür.
İsteği çözdüğü için Maravilha Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Maravilha Adlı kullanıcı sizin dışınızda toplam 113 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da