cs 1.6 pro public eklenti

avatar eraybey0745454
Forum Üyesi
03-04-2025, Saat: 23:35
502
#1
Yorumu Paylaş

cs 1.6 pro public sunucumda rutbeli bicak skinli plugin kurdum yani adam vurdukca rutbe artiyor ve rutbeye gore de bicak skini seciliyor lakin bazen map degisince rutbeler sifirlaniyor sorun nedir ?
deneme
Forum Üyesi

Konuda Ara

8 Yorum

FlorianWirtz

Forum Sorumlusu

Forum Sorumlusu

Çözdüğü Konu: 1
avatar
FlorianWirtz
03-04-2025, Saat: 23:39
03-04-2025, Saat: 23:39
#2
Yorumu Paylaş
Eklentiyi eke koyarmısınız

eraybey0745454

Forum Üyesi

Kayıtlı Üye Grubu

Çözdüğü Konu: 0
avatar
eraybey0745454
04-04-2025, Saat: 00:08
04-04-2025, Saat: 00:08
#3
Yorumu Paylaş
/* Sublime AMXX Editor v3.2 */

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

#pragma semicolon 1

new const sPlayers[] = "addons/amxmodx/configs/ap_prefixes.ini";

new const sChatSay[] = "^x01{DEAD}^x03[^x04{LEVEL}^x03] {VIP}^x04{PREFIX}^x03 {NAME}^x01: {FLAG}{MESSAGE}";

new const ChatTag[] = "^1[ ^3- ^4VESSELAM^3- ^1]";
new const sLevelSystem[][][] = {
    { "ER", 0 }, // 0
    { "ONBASI", 15 }, // 1
    { "CAVUS", 30 }, // 2
    { "USTCAVUS", 100 }, // 3
    { "BASCAVUS", 200 }, // 4
    { "KDEMLI BASCAVUS", 550 }, // 5
    { "ASTSUBAY", 800 }, // 6
    { "USTASTSUBAY", 1250 }, // 7
    { "BASASTSUBAY", 2000 }, // 8
    { "TEGMEN", 2500 }, // 9
    { "USTEGMEN", 3000 }, // 10
    { "YUZBASI", 3500 }, // 11
    { "BINBASI", 4000 }, // 12
    { "YARBAY", 4500 }, // 13
    { "ALBAY", 5000 }, // 14
    { "TUGGENERAL", 5750 }, // 15
    { "TUMGENERAL", 6500 }, // 16
    { "KORGENERAL", 7000 }, // 17
    { "ORGENERAL", 10000 }, // 18
    { "MARESAL", 15000 }, // 19
    { "BASKOMUTAN", 20000 }, // 20
    { "GAZI", 30000 }, // 21
};

new g_iCurrentColor;
new const g_iYellowColor[3] = {0, 255, 0};

native checkprefix(id);

new const Knifes[][][] = {
    { "Knife Adı", "mdl dosyası", 0 }, // Knife adı, alabilecek rank.
    { "Vesselam Knife", "models/bicak/v_knifef.mdl", 0 },
    { "Talon", "models/bicak/v_talon.mdl", 2 },
    { "Karambit", "models/bicak/v_karambit.mdl", 3 },
    { "Cekic", "models/vesselammodels/cekic.mdl", 4 },
    { "Seker", "models/vesselammodels/seker.mdl", 5 },
    { "Klavye", "models/vesselammodels/klavye.mdl", 10 },
    { "Classic", "models/bicak/v_knife_classic.mdl", 14 },
    { "Altin", "models/vesselammodels/altin.mdl", 21 }
};

enum _: Variables {
    Exp,
    Level
}
new Vars[MAX_PLAYERS + 1][Variables], iCvars[5], iSayText, iTeamInfo, iVault, iSyncHud, ActiveKnife[MAX_PLAYERS + 1];

public plugin_precache() {
    for (new i = 1; i < sizeof(Knifes); i++) {
        precache_model(Knifes[i][1]);
    }
}

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_GetMaxLevel", "@ALS_GMLV");
}

@ALS_GUEX() {
    new nPlayerID = get_param(1);
    return Vars[nPlayerID][Exp];
}

@ALS_SUEX() {
    new nPlayerID = get_param(1), nAmount = get_param(2);
    new iMaxLevel = (sizeof(sLevelSystem) - 1);
    new iMaxExp = sLevelSystem[iMaxLevel][1][0];
    
    if (nAmount >= iMaxExp) {
        Vars[nPlayerID][Level] = iMaxLevel;
        Vars[nPlayerID][Exp] = iMaxExp;
    } else {
        Vars[nPlayerID][Exp] = nAmount;
        for (new i = 0; i < sizeof(sLevelSystem); i++) {
            if (nAmount >= sLevelSystem[i][1][0]) {
                Vars[nPlayerID][Level] = i;
            } else {
                break;
            }
        }
    }
    new sSteamID[33];
    get_user_authid(nPlayerID, sSteamID, 32);
    sSetIntData("%s>Exp", Vars[nPlayerID][Exp], sSteamID);
    sSetIntData("%s>Level", Vars[nPlayerID][Level], sSteamID);
    log_amx("Set Exp for %s: Exp=%d, Level=%d", sSteamID, Vars[nPlayerID][Exp], Vars[nPlayerID][Level]);
    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);
    new iMaxLevel = (sizeof(sLevelSystem) - 1);
    if (nAmount >= iMaxLevel) {
        Vars[nPlayerID][Level] = iMaxLevel;
        Vars[nPlayerID][Exp] = sLevelSystem[iMaxLevel][1][0];
    } else {
        Vars[nPlayerID][Level] = nAmount;
        Vars[nPlayerID][Exp] = sLevelSystem[nAmount][1][0];
    }
    new sSteamID[33];
    get_user_authid(nPlayerID, sSteamID, 32);
    sSetIntData("%s>Exp", Vars[nPlayerID][Exp], sSteamID);
    sSetIntData("%s>Level", Vars[nPlayerID][Level], sSteamID);
    log_amx("Set Level for %s: Exp=%d, Level=%d", sSteamID, Vars[nPlayerID][Exp], Vars[nPlayerID][Level]);
    return PLUGIN_CONTINUE;
}

@ALS_GMLV() {
    return (sizeof(sLevelSystem) - 1);
}

public plugin_cfg() {
    iVault = nvault_open("ALS_V1");
    if (iVault == INVALID_HANDLE) {
        log_amx("Failed to open vault ALS_V1");
    }
}

public plugin_init() {
    register_plugin("Advanced Level System", "1.0", "PawNod', Maravilha+MikeField");

    register_concmd("amx_give_level", "@GiveLevel", ADMIN_RCON, "<isim> <miktar>, belirlenen kisiye level verir");

    register_clcmd("say", "@HookSay");

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

    iSayText = get_user_msgid("SayText");
    iTeamInfo = get_user_msgid("TeamInfo");

    Cvars();

    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");

    register_clcmd("say /bicak", "@anamenu");
    register_clcmd("say !rutbebic", "@anamenu");
    register_clcmd("say .rutbebic", "@anamenu");
    register_clcmd("say /rutbebicak", "@anamenu");
    register_clcmd("say !rutbebicak", "@anamenu");
    register_clcmd("say .rutbebicak", "@anamenu");

    iSyncHud = CreateHudSyncObj();

    if (!file_exists(sPlayers)) {
        log_amx("%s Dosya Bulunamadi.", sPlayers);
    }

    set_task(1.0, "ChangeColors", 123123, _, _, "b");
}

public ChangeColors() {
    g_iCurrentColor = (g_iCurrentColor + 1) % 5;
    
    new players[32], num;
    get_players(players, num, "ch");
    
    for(new i = 0; i < num; i++) {
        ShowHudMessage(players[i] + 125721);
    }
}

@CBasePlayerWeapon_DefaultDeploy_Pre(const pEntity, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
    if (get_member(pEntity, m_iId) != WEAPON_KNIFE) {
        return;
    }
    new pPlayer = get_member(pEntity, m_pPlayer);

    if (ActiveKnife[pPlayer] > 0) {
        SetHookChainArg(2, ATYPE_STRING, Knifes[ActiveKnife[pPlayer]][1]);
    }
}

@anamenu(const id) {
    new menu = menu_create(fmt("\dVESSELAM\w| \yBıçak Menüsü"), "@anamenu_devam");

    for (new i = 1; i < sizeof(Knifes); i++) {
        menu_additem(menu, fmt("\dVESSELAM\w| \y%s \d(%s)", Knifes[i][0], sLevelSystem[Knifes[i][2][0]][0]), fmt("%d", i));
    }

    menu_display(id, menu);
}

@anamenu_devam(const id, const menu, const item) {
    if (item == MENU_EXIT) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6];
    menu_item_getinfo(menu, item, _, data, charsmax(data));
    new key = str_to_num(data);

    if (Vars[id][Level] < Knifes[key][2][0]) {
        client_print_color(id, id, "%s ^4Bu bıçak modelini almak için rütbeniz yeterli değil^1!", ChatTag);
        return PLUGIN_HANDLED;
    }

    ActiveKnife[id] = key;
    rg_remove_item(id, "weapon_knife");
    rg_give_item(id, "weapon_knife");
    menu_destroy(menu);

    return PLUGIN_HANDLED;
}

Cvars() {
    bind_pcvar_num(create_cvar("ALS_Give_Exp", "1"), iCvars[0]);
    bind_pcvar_num(create_cvar("ALS_Give_Min_Exp", "20"), iCvars[1]);
    bind_pcvar_num(create_cvar("ALS_Give_Max_Exp", "70"), iCvars[2]);
    bind_pcvar_num(create_cvar("ALS_Chat", "1"), iCvars[3]);
    bind_pcvar_num(create_cvar("ALS_Chat_Messages", "0"), iCvars[4]);
}

@GiveLevel(const iPlayer, const iLVL, const iCid) {
    if (~get_user_flags(iPlayer) & ADMIN_RCON)
        return PLUGIN_HANDLED;

    new iStringName[18], iStringAmount[18];
    read_argv(1, iStringName, 17);
    read_argv(2, iStringAmount, 17);

    new iAmmount = str_to_num(iStringAmount);
    new iMaxLevel = (sizeof(sLevelSystem) - 1);
    new iMaxExp = sLevelSystem[iMaxLevel][1][0];

    if (iStringName[0] == '@') {
        new iPlayers[32], iPlayerNum, iPlayerad;
        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 Exp ^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 Exp ^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 Exp ^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 Exp ^4] ^1verdi^4.", iPlayer, iAmmount);
            }
        }
        for (new i = 0; i < iPlayerNum; i++) {
            iPlayerad = iPlayers[i];
            Vars[iPlayerad][Exp] += iAmmount;
            if (Vars[iPlayerad][Exp] >= iMaxExp) {
                Vars[iPlayerad][Exp] = iMaxExp;
                Vars[iPlayerad][Level] = iMaxLevel;
            } else {
                while (Vars[iPlayerad][Exp] >= sLevelSystem[Vars[iPlayerad][Level] + 1][1][0] && Vars[iPlayerad][Level] < iMaxLevel) {
                    Vars[iPlayerad][Level]++;
                }
            }
            new sSteamID[33];
            get_user_authid(iPlayerad, sSteamID, 32);
            sSetIntData("%s>Exp", Vars[iPlayerad][Exp], sSteamID);
            sSetIntData("%s>Level", Vars[iPlayerad][Level], sSteamID);
            log_amx("GiveLevel (Team): %s, Exp=%d, Level=%d", sSteamID, Vars[iPlayerad][Exp], Vars[iPlayerad][Level]);
        }
        return PLUGIN_HANDLED;
    }

    new iUID = find_player("bl", iStringName);
    if (!iUID) {
        client_print_color(iPlayer, iPlayer, "^4Oyuncu bulunamadi!");
        return PLUGIN_HANDLED;
    }

    Vars[iUID][Exp] += iAmmount;
    if (Vars[iUID][Exp] >= iMaxExp) {
        Vars[iUID][Exp] = iMaxExp;
        Vars[iUID][Level] = iMaxLevel;
    } else {
        while (Vars[iUID][Exp] >= sLevelSystem[Vars[iUID][Level] + 1][1][0] && Vars[iUID][Level] < iMaxLevel) {
            Vars[iUID][Level]++;
        }
    }

    new sSteamID[33];
    get_user_authid(iUID, sSteamID, 32);
    sSetIntData("%s>Exp", Vars[iUID][Exp], sSteamID);
    sSetIntData("%s>Level", Vars[iUID][Level], sSteamID);
    log_amx("GiveLevel (Individual): %s, Exp=%d, Level=%d", sSteamID, Vars[iUID][Exp], Vars[iUID][Level]);
    client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3%n ^4] ^1adli kisiye ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iUID, iAmmount);
    return PLUGIN_HANDLED;
}

@HookSay(const iPlayer) {
    new iMessage[312];
    read_args(iMessage, charsmax(iMessage));
    remove_quotes(iMessage);
    
    if (!iCvars[3])
        return PLUGIN_CONTINUE;
        
    if (iMessage[0] == '@' || iMessage[0] == '.' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage, ""))
        return PLUGIN_CONTINUE;
    
    new sNewData[128], iColor[10];
    copy(sNewData, charsmax(sNewData), sChatSay);
    get_user_team(iPlayer, iColor, charsmax(iColor));

    new prefix[32];
    GetPrefixForPlayer(fmt("%n", iPlayer), prefix);
    
    new flags = get_user_flags(iPlayer);
    new szTag[32] = "";

    if (flags & ADMIN_RCON) {
        formatex(szTag, charsmax(szTag), "^x04[Kurucu] ");
    } else if (flags & ADMIN_BAN) {
        formatex(szTag, charsmax(szTag), "^x04[ADMIN] ");
    } else if (flags & ADMIN_KICK) {
        formatex(szTag, charsmax(szTag), "^x04[SLOT] ");
    } else if (flags & ADMIN_RESERVATION) {
        formatex(szTag, charsmax(szTag), "^x04[VIP] ");
    }

    replace_all(sNewData, charsmax(sNewData), "{VIP}", szTag);
    is_user_alive(iPlayer) ? (replace_all(sNewData, charsmax(sNewData), "{DEAD}", "")) : (replace_all(sNewData, charsmax(sNewData), "{DEAD}", "(x) "));
    replace_all(sNewData, charsmax(sNewData), "{FLAG}", get_user_flags(iPlayer) & ADMIN_RESERVATION ? "^x04" : "^x01");
    replace_all(sNewData, charsmax(sNewData), "{LEVEL}", sLevelSystem[Vars[iPlayer][Level]][0][0]);
    replace_all(sNewData, charsmax(sNewData), "{PREFIX}", prefix);
    replace_all(sNewData, charsmax(sNewData), "{NAME}", fmt("%n", iPlayer));
    replace_all(sNewData, charsmax(sNewData), "{MESSAGE}", iMessage);

    @sendMessage(iColor, is_user_alive(iPlayer) ? 1 : 0, sNewData);
    return PLUGIN_HANDLED;
}

@IsKilled(const iVictim, const iAttacker) {
    if (!is_user_connected(iAttacker) || iVictim == iAttacker) return;
    
    new exp_to_add = (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0];
    
    if (LevelChecker(iAttacker, false, exp_to_add)) {
        Vars[iAttacker][Exp] += exp_to_add;
        
        new sSteamID[33];
        get_user_authid(iAttacker, sSteamID, 32);
        sSetIntData("%s>Exp", Vars[iAttacker][Exp], sSteamID);
        log_amx("Exp added for %s: Exp=%d, Level=%d", sSteamID, Vars[iAttacker][Exp], Vars[iAttacker][Level]);
        
        ShowHudMessage(iAttacker + 125721);
    }
    
    if (LevelChecker(iAttacker, true, 0)) {
        @LevelUp(iAttacker);
    }
}

@LevelUp(const iPlayer) {
    Vars[iPlayer][Level]++;
    client_print_color(iPlayer, iPlayer, "%s ^1Basarili bir sekilde ^4Level Atladiniz^1!", ChatTag);
    new sSteamID[33];
    get_user_authid(iPlayer, sSteamID, 32);
    sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
    log_amx("Level up for %s: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);
}

public client_putinserver(iPlayer) {
    new sSteamID[33];
    get_user_authid(iPlayer, sSteamID, 32);

    Vars[iPlayer][Exp] = sGetIntData("%s>Exp", sSteamID);
    Vars[iPlayer][Level] = sGetIntData("%s>Level", sSteamID);

    new iMaxLevel = (sizeof(sLevelSystem) - 1);
    new iMaxExp = sLevelSystem[iMaxLevel][1][0];
    
    if (Vars[iPlayer][Level] < 0 || Vars[iPlayer][Level] >= sizeof(sLevelSystem)) {
        Vars[iPlayer][Level] = 0;
        Vars[iPlayer][Exp] = 0;
    } else if (Vars[iPlayer][Exp] < 0 || Vars[iPlayer][Exp] > iMaxExp) {
        Vars[iPlayer][Exp] = sLevelSystem[Vars[iPlayer][Level]][1][0];
    }

    for (new i = 0; i < sizeof(sLevelSystem); i++) {
        if (Vars[iPlayer][Exp] >= sLevelSystem[i][1][0]) {
            Vars[iPlayer][Level] = i;
        } else {
            break;
        }
    }

    sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
    sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
    log_amx("Player %s connected: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);

    set_task(3.0, "ChatReklami", iPlayer);
    set_task(1.0, "ShowHudMessage", iPlayer + 125721, .flags = "b");
}

public ShowHudMessage(Taskid) {
    new id = Taskid - 125721;
    
    if (!is_user_connected(id)) return;
    
    new playerName[32];
    get_user_name(id, playerName, sizeof(playerName));
    
    set_hudmessage(
        g_iYellowColor[0], 
        g_iYellowColor[1], 
        g_iYellowColor[2], 
        0.85,
        0.75,
        0,
        0.0,
        1.0,
        0.0,
        0.0,
        iSyncHud
    );
    
    new levelName[32];
    copy(levelName, sizeof(levelName), sLevelSystem[Vars[id][Level]][0][0]);
    
    if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
        ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i/%i]", 
            levelName,
            Vars[id][Exp],
            sLevelSystem[Vars[id][Level] + 1][1][0]
        );
    } else {
        ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i/MAX]", 
            levelName, 
            Vars[id][Exp]
        );
    }
}

public ChatReklami(id) {
    if (is_user_connected(id)) {
        client_print_color(id, id, "%s ^4Servera hosgeldiniz, serverda [RUTBE BICAK] sistemi vardir!^1!", ChatTag);

        if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
            client_print_color(id, id, "%s ^4/bicak yazarak ^4sistemi acabilirsiniz!^1!", ChatTag);
        }
    }
}

public plugin_end() {
    new players[32], num;
    get_players(players, num, "ch");

    for (new i = 0; i < num; i++) {
        new id = players[i];
        new sSteamID[33];
        get_user_authid(id, sSteamID, 32);
        sSetIntData("%s>Exp", Vars[id][Exp], sSteamID);
        sSetIntData("%s>Level", Vars[id][Level], sSteamID);
        log_amx("Plugin end - Saved for %s: Exp=%d, Level=%d", sSteamID, Vars[id][Exp], Vars[id][Level]);
    }
    nvault_close(iVault);
}

public client_disconnected(iPlayer) {
    remove_task(iPlayer + 125721);

    new sSteamID[33];
    get_user_authid(iPlayer, sSteamID, 32);
    sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
    sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
    log_amx("Player %s disconnected: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);

    Vars[iPlayer][Exp] = 0;
    Vars[iPlayer][Level] = 0;
}

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;
            Vars[iPlayer][Level] = iMaxLevel;
            new sSteamID[33];
            get_user_authid(iPlayer, sSteamID, 32);
            sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
            sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
            return false;
        }
    }
    return true;
}

@sendMessage(const color[], const alive, const message[]) {
    new teamName[10];
    for (new player = 1; player <= MaxClients; player++) {
        if (!is_user_connected(player))
            continue;
        if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LEVEL_C) {
            get_user_team(player, teamName, 9);
            @changeTeamInfo(player, color);
            @writeMessage(player, message);
            @changeTeamInfo(player, teamName);
        }
    }
}

@changeTeamInfo(const player, const team[]) {
    message_begin(MSG_ONE, iTeamInfo, _, player);
    write_byte(player);
    write_string(team);
    message_end();
}

@writeMessage(const player, const message[]) {
    message_begin(MSG_ONE, iSayText, { 0, 0, 0 }, player);
    write_byte(player);
    write_string(message);
    message_end();
}

stock sGetIntData(const sKey[], any:...) {
    new sFixedData[128];
    vformat(sFixedData, 127, sKey, 2);
    new value = nvault_get(iVault, sFixedData);
    log_amx("Loaded from vault: %s = %d", sFixedData, value);
    return value;
}

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);
    log_amx("Saved to vault: %s = %d", sFixedData, iData);
}

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 WWW.VESSELAM.COM.TR</center>");

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

stock GetPrefixForPlayer(const playerName[], output[]) {
    new line[128], part1[32], part2[32], part3[32];
    new file = fopen(sPlayers, "r");

    if (file == INVALID_HANDLE) {
        server_print("Dosya açılamadı: %s", sPlayers);
        return 0;
    }

    while (fgets(file, line, sizeof(line))) {
        parse(line, part1, sizeof(part1), part2, sizeof(part2), part3, sizeof(part3));

        if (equali(part2, playerName)) {
            copy(output, 32, part3);
            fclose(file);
            return 1;
        }
    }

    copy(output, 32, "");
    fclose(file);
    return 0;
}

FlorianWirtz

Forum Sorumlusu

Forum Sorumlusu

Çözdüğü Konu: 1
avatar
FlorianWirtz
04-04-2025, Saat: 14:09
04-04-2025, Saat: 14:09
#4
Yorumu Paylaş
nvault küyüphnesi ekli görünüyor

Sistem

Sistem
Sistem

Çözdüğü Konu: 2
avatar
Sistem
04-04-2025, Saat: 14:09
04-04-2025, Saat: 14:09
#5
Yorumu Paylaş
@EmirCW,
EmirCW Adlı Kullanıcıdan Alıntı:Yoruma git[Sansürlendi: Sakıncalı içerik]
Yorumunuz moderasyon kuyruğuna alındı.
İşaretlenme sebebi: Hakaret içeren bir ifade barındırmaktadır. Uygunsuz bir dil kullanılmıştır.

Mahmut Şahan

cs14.csduragi.com Ts3:Hanedanpro

Kayıtlı Üye Grubu

Çözdüğü Konu: 0
avatar
Mahmut Şahan
04-04-2025, Saat: 14:35
04-04-2025, Saat: 14:35
#6
Yorumu Paylaş
https://dosya.co/5g0nzko28aj6/nvault.inc.html
 Bunu Deneyin  

https://panel.csduragi.com/cstrike/webft...ng/include Takip edin Buraya Yukleyin

eraybey0745454

Forum Üyesi

Kayıtlı Üye Grubu

Çözdüğü Konu: 0
avatar
eraybey0745454
04-04-2025, Saat: 23:28
04-04-2025, Saat: 23:28
#7
Yorumu Paylaş
beyler sorun halen devam ediyor cozum nedir

Pawner

Forum Üyesi

Kayıtlı Üye Grubu

Çözdüğü Konu: 0
avatar
Pawner
08-06-2025, Saat: 12:03
08-06-2025, Saat: 12:03
#8
Yorumu Paylaş
olmuştur şimdi
PHP Kod:
#include <amxmodx>
#include <reapi>
#include <regex>
#include <nvault>

#pragma semicolon 1

new const sPlayers[] = "addons/amxmodx/configs/ap_prefixes.ini";

new const 
sChatSay[] = "^x01{DEAD}^x03[^x04{LEVEL}^x03] {VIP}^x04{PREFIX}^x03 {NAME}^x01: {FLAG}{MESSAGE}";

new const 
ChatTag[] = "^1[ ^3- ^4VESSELAM^3- ^1]";
new const 
sLevelSystem[][][] = {
    { 
"ER"}, // 0
    
"ONBASI"15 }, // 1
    
"CAVUS"30 }, // 2
    
"USTCAVUS"100 }, // 3
    
"BASCAVUS"200 }, // 4
    
"KDEMLI BASCAVUS"550 }, // 5
    
"ASTSUBAY"800 }, // 6
    
"USTASTSUBAY"1250 }, // 7
    
"BASASTSUBAY"2000 }, // 8
    
"TEGMEN"2500 }, // 9
    
"USTEGMEN"3000 }, // 10
    
"YUZBASI"3500 }, // 11
    
"BINBASI"4000 }, // 12
    
"YARBAY"4500 }, // 13
    
"ALBAY"5000 }, // 14
    
"TUGGENERAL"5750 }, // 15
    
"TUMGENERAL"6500 }, // 16
    
"KORGENERAL"7000 }, // 17
    
"ORGENERAL"10000 }, // 18
    
"MARESAL"15000 }, // 19
    
"BASKOMUTAN"20000 }, // 20
    
"GAZI"30000 }, // 21
};

new 
g_iCurrentColor;
new const 
g_iYellowColor[3] = {02550};

native checkprefix(id);

new const 
Knifes[][][] = {
    { 
"Knife Adı""mdl dosyası"}, // Knife adı, alabilecek rank.
    
"Vesselam Knife""models/bicak/v_knifef.mdl"},
    { 
"Talon""models/bicak/v_talon.mdl"},
    { 
"Karambit""models/bicak/v_karambit.mdl"},
    { 
"Cekic""models/vesselammodels/cekic.mdl"},
    { 
"Seker""models/vesselammodels/seker.mdl"},
    { 
"Klavye""models/vesselammodels/klavye.mdl"10 },
    { 
"Classic""models/bicak/v_knife_classic.mdl"14 },
    { 
"Altin""models/vesselammodels/altin.mdl"21 }
};

enum _Variables {
    
Exp,
    
Level
}
new 
Vars[MAX_PLAYERS 1][Variables], iCvars[5], iSayTextiTeamInfoiVaultiSyncHudActiveKnife[MAX_PLAYERS 1];

public 
plugin_precache() {
    for (new 
1sizeof(Knifes); i++) {
        
precache_model(Knifes[i][1]);
    }
}

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_GetMaxLevel""@ALS_GMLV");
}

@
ALS_GUEX() {
    new 
nPlayerID get_param(1);
    return 
Vars[nPlayerID][Exp];
}

@
ALS_SUEX() {
    new 
nPlayerID get_param(1), nAmount get_param(2);
    new 
iMaxLevel = (sizeof(sLevelSystem) - 1);
    new 
iMaxExp sLevelSystem[iMaxLevel][1][0];
    
    if (
nAmount >= iMaxExp) {
        
Vars[nPlayerID][Level] = iMaxLevel;
        
Vars[nPlayerID][Exp] = iMaxExp;
    } else {
        
Vars[nPlayerID][Exp] = nAmount;
        for (new 
0sizeof(sLevelSystem); i++) {
            if (
nAmount >= sLevelSystem[i][1][0]) {
                
Vars[nPlayerID][Level] = i;
            } else {
                break;
            }
        }
    }
    new 
sSteamID[33];
    
get_user_authid(nPlayerIDsSteamID32);
    
sSetIntData("%s>Exp"Vars[nPlayerID][Exp], sSteamID);
    
sSetIntData("%s>Level"Vars[nPlayerID][Level], sSteamID);
    
log_amx("Set Exp for %s: Exp=%d, Level=%d"sSteamIDVars[nPlayerID][Exp], Vars[nPlayerID][Level]);
    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);
    new 
iMaxLevel = (sizeof(sLevelSystem) - 1);
    if (
nAmount >= iMaxLevel) {
        
Vars[nPlayerID][Level] = iMaxLevel;
        
Vars[nPlayerID][Exp] = sLevelSystem[iMaxLevel][1][0];
    } else {
        
Vars[nPlayerID][Level] = nAmount;
        
Vars[nPlayerID][Exp] = sLevelSystem[nAmount][1][0];
    }
    new 
sSteamID[33];
    
get_user_authid(nPlayerIDsSteamID32);
    
sSetIntData("%s>Exp"Vars[nPlayerID][Exp], sSteamID);
    
sSetIntData("%s>Level"Vars[nPlayerID][Level], sSteamID);
    
log_amx("Set Level for %s: Exp=%d, Level=%d"sSteamIDVars[nPlayerID][Exp], Vars[nPlayerID][Level]);
    return 
PLUGIN_CONTINUE;
}

@
ALS_GMLV() {
    return (
sizeof(sLevelSystem) - 1);
}

public 
plugin_cfg() {
    
iVault nvault_open("ALS_V1");
    if (
iVault == INVALID_HANDLE) {
        
log_amx("Failed to open vault ALS_V1");
    }
}

public 
plugin_init() {
    
register_plugin("Advanced Level System""1.0""PawNod', Maravilha+MikeField");

    
register_concmd("amx_give_level""@GiveLevel"ADMIN_RCON"<isim> <miktar>, belirlenen kisiye level verir");

    
register_clcmd("say""@HookSay");

    
RegisterHookChain(RG_CBasePlayer_Killed"@IsKilled", .post true);
    
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy"@CBasePlayerWeapon_DefaultDeploy_Pre", .post false);

    
iSayText get_user_msgid("SayText");
    
iTeamInfo get_user_msgid("TeamInfo");

    
Cvars();

    
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");

    
register_clcmd("say /bicak""@anamenu");
    
register_clcmd("say !rutbebic""@anamenu");
    
register_clcmd("say .rutbebic""@anamenu");
    
register_clcmd("say /rutbebicak""@anamenu");
    
register_clcmd("say !rutbebicak""@anamenu");
    
register_clcmd("say .rutbebicak""@anamenu");

    
iSyncHud CreateHudSyncObj();

    if (!
file_exists(sPlayers)) {
        
log_amx("%s Dosya Bulunamadi."sPlayers);
    }

    
set_task(1.0"ChangeColors"123123__"b");
}

public 
ChangeColors() {
    
g_iCurrentColor = (g_iCurrentColor 1) % 5;
    
    new 
players[32], num;
    
get_players(playersnum"ch");
    
    for(new 
0numi++) {
        
ShowHudMessage(players[i] + 125721);
    }
}

@
CBasePlayerWeapon_DefaultDeploy_Pre(const pEntityszViewModel[], szWeaponModel[], iAnimszAnimExt[], skiplocal) {
    if (
get_member(pEntitym_iId) != WEAPON_KNIFE) {
        return;
    }
    new 
pPlayer get_member(pEntitym_pPlayer);

    if (
ActiveKnife[pPlayer] > 0) {
        
SetHookChainArg(2ATYPE_STRINGKnifes[ActiveKnife[pPlayer]][1]);
    }
}

@
anamenu(const id) {
    new 
menu menu_create(fmt("\dVESSELAM\w| \yBıçak Menüsü"), "@anamenu_devam");

    for (new 
1sizeof(Knifes); i++) {
        
menu_additem(menufmt("\dVESSELAM\w| \y%s \d(%s)"Knifes[i][0], sLevelSystem[Knifes[i][2][0]][0]), fmt("%d"i));
    }

    
menu_display(idmenu);
}

@
anamenu_devam(const id, const menu, const item) {
    if (
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6];
    
menu_item_getinfo(menuitem_datacharsmax(data));
    new 
key str_to_num(data);

    if (
Vars[id][Level] < Knifes[key][2][0]) {
        
client_print_color(idid"%s ^4Bu bıçak modelini almak için rütbeniz yeterli değil^1!"ChatTag);
        return 
PLUGIN_HANDLED;
    }

    
ActiveKnife[id] = key;
    
rg_remove_item(id"weapon_knife");
    
rg_give_item(id"weapon_knife");
    
menu_destroy(menu);

    return 
PLUGIN_HANDLED;
}

Cvars() {
    
bind_pcvar_num(create_cvar("ALS_Give_Exp""1"), iCvars[0]);
    
bind_pcvar_num(create_cvar("ALS_Give_Min_Exp""20"), iCvars[1]);
    
bind_pcvar_num(create_cvar("ALS_Give_Max_Exp""70"), iCvars[2]);
    
bind_pcvar_num(create_cvar("ALS_Chat""1"), iCvars[3]);
    
bind_pcvar_num(create_cvar("ALS_Chat_Messages""0"), iCvars[4]);
}

@
GiveLevel(const iPlayer, const iLVL, const iCid) {
    if (~
get_user_flags(iPlayer) & ADMIN_RCON)
        return 
PLUGIN_HANDLED;

    new 
iStringName[18], iStringAmount[18];
    
read_argv(1iStringName17);
    
read_argv(2iStringAmount17);

    new 
iAmmount str_to_num(iStringAmount);
    new 
iMaxLevel = (sizeof(sLevelSystem) - 1);
    new 
iMaxExp sLevelSystem[iMaxLevel][1][0];

    if (
iStringName[0] == '@') {
        new 
iPlayers[32], iPlayerNumiPlayerad;
        switch (
iStringName[1]) {
            case 
't''T': {
                
get_players(iPlayersiPlayerNum"ae""TERRORIST");
                
client_print_color(00"^4[ ^3%n ^4] ^1adli admin ^4[ ^3Zombiler ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4."iPlayeriAmmount);
            }
            case 
'c''C': {
                
get_players(iPlayersiPlayerNum"ae""CT");
                
client_print_color(00"^4[ ^3%n ^4] ^1adli admin ^4[ ^3Insanlar ^4] ^1'a ^4[ ^3%i Exp ^4] ^1verdi^4."iPlayeriAmmount);
            }
            case 
'a''A': {
                
get_players(iPlayersiPlayerNum"a");
                
client_print_color(00"^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4."iPlayeriAmmount);
            }
            default: {
                
get_players(iPlayersiPlayerNum"a");
                
client_print_color(00"^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4."iPlayeriAmmount);
            }
        }
        for (new 
0iPlayerNumi++) {
            
iPlayerad iPlayers[i];
            
Vars[iPlayerad][Exp] += iAmmount;
            if (
Vars[iPlayerad][Exp] >= iMaxExp) {
                
Vars[iPlayerad][Exp] = iMaxExp;
                
Vars[iPlayerad][Level] = iMaxLevel;
            } else {
                while (
Vars[iPlayerad][Exp] >= sLevelSystem[Vars[iPlayerad][Level] + 1][1][0] && Vars[iPlayerad][Level] < iMaxLevel) {
                    
Vars[iPlayerad][Level]++;
                }
            }
            new 
sSteamID[33];
            
get_user_authid(iPlayeradsSteamID32);
            
sSetIntData("%s>Exp"Vars[iPlayerad][Exp], sSteamID);
            
sSetIntData("%s>Level"Vars[iPlayerad][Level], sSteamID);
            
log_amx("GiveLevel (Team): %s, Exp=%d, Level=%d"sSteamIDVars[iPlayerad][Exp], Vars[iPlayerad][Level]);
        }
        return 
PLUGIN_HANDLED;
    }

    new 
iUID find_player("bl"iStringName);
    if (!
iUID) {
        
client_print_color(iPlayeriPlayer"^4Oyuncu bulunamadi!");
        return 
PLUGIN_HANDLED;
    }

    
Vars[iUID][Exp] += iAmmount;
    if (
Vars[iUID][Exp] >= iMaxExp) {
        
Vars[iUID][Exp] = iMaxExp;
        
Vars[iUID][Level] = iMaxLevel;
    } else {
        while (
Vars[iUID][Exp] >= sLevelSystem[Vars[iUID][Level] + 1][1][0] && Vars[iUID][Level] < iMaxLevel) {
            
Vars[iUID][Level]++;
        }
    }

    new 
sSteamID[33];
    
get_user_authid(iUIDsSteamID32);
    
sSetIntData("%s>Exp"Vars[iUID][Exp], sSteamID);
    
sSetIntData("%s>Level"Vars[iUID][Level], sSteamID);
    
log_amx("GiveLevel (Individual): %s, Exp=%d, Level=%d"sSteamIDVars[iUID][Exp], Vars[iUID][Level]);
    
client_print_color(00"^4[ ^3%n ^4] ^1adli admin ^4[ ^3%n ^4] ^1adli kisiye ^4[ ^3%i Exp ^4] ^1verdi^4."iPlayeriUIDiAmmount);
    return 
PLUGIN_HANDLED;
}

@
HookSay(const iPlayer) {
    new 
iMessage[312];
    
read_args(iMessagecharsmax(iMessage));
    
remove_quotes(iMessage);
    
    if (!
iCvars[3])
        return 
PLUGIN_CONTINUE;
        
    if (
iMessage[0] == '@' || iMessage[0] == '.' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage""))
        return 
PLUGIN_CONTINUE;
    
    new 
sNewData[128], iColor[10];
    
copy(sNewDatacharsmax(sNewData), sChatSay);
    
get_user_team(iPlayeriColorcharsmax(iColor));

    new 
prefix[32];
    
GetPrefixForPlayer(fmt("%n"iPlayer), prefix);
    
    new 
flags get_user_flags(iPlayer);
    new 
szTag[32] = "";

    if (
flags ADMIN_RCON) {
        
formatex(szTagcharsmax(szTag), "^x04[Kurucu] ");
    } else if (
flags ADMIN_BAN) {
        
formatex(szTagcharsmax(szTag), "^x04[ADMIN] ");
    } else if (
flags ADMIN_KICK) {
        
formatex(szTagcharsmax(szTag), "^x04[SLOT] ");
    } else if (
flags ADMIN_RESERVATION) {
        
formatex(szTagcharsmax(szTag), "^x04[VIP] ");
    }

    
replace_all(sNewDatacharsmax(sNewData), "{VIP}"szTag);
    
is_user_alive(iPlayer) ? (replace_all(sNewDatacharsmax(sNewData), "{DEAD}""")) : (replace_all(sNewDatacharsmax(sNewData), "{DEAD}""(x) "));
    
replace_all(sNewDatacharsmax(sNewData), "{FLAG}"get_user_flags(iPlayer) & ADMIN_RESERVATION "^x04" "^x01");
    
replace_all(sNewDatacharsmax(sNewData), "{LEVEL}"sLevelSystem[Vars[iPlayer][Level]][0][0]);
    
replace_all(sNewDatacharsmax(sNewData), "{PREFIX}"prefix);
    
replace_all(sNewDatacharsmax(sNewData), "{NAME}"fmt("%n"iPlayer));
    
replace_all(sNewDatacharsmax(sNewData), "{MESSAGE}"iMessage);

    @
sendMessage(iColoris_user_alive(iPlayer) ? 0sNewData);
    return 
PLUGIN_HANDLED;
}

@
IsKilled(const iVictim, const iAttacker) {
    if (!
is_user_connected(iAttacker) || iVictim == iAttacker) return;
    
    new 
exp_to_add = (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0];
    
    if (
LevelChecker(iAttackerfalseexp_to_add)) {
        
Vars[iAttacker][Exp] += exp_to_add;
        
        new 
sSteamID[33];
        
get_user_authid(iAttackersSteamID32);
        
sSetIntData("%s>Exp"Vars[iAttacker][Exp], sSteamID);
        
log_amx("Exp added for %s: Exp=%d, Level=%d"sSteamIDVars[iAttacker][Exp], Vars[iAttacker][Level]);
        
        
ShowHudMessage(iAttacker 125721);
    }
    
    if (
LevelChecker(iAttackertrue0)) {
        @
LevelUp(iAttacker);
    }
}

@
LevelUp(const iPlayer) {
    
Vars[iPlayer][Level]++;
    
client_print_color(iPlayeriPlayer"%s ^1Basarili bir sekilde ^4Level Atladiniz^1!"ChatTag);
    new 
sSteamID[33];
    
get_user_authid(iPlayersSteamID32);
    
sSetIntData("%s>Level"Vars[iPlayer][Level], sSteamID);
    
log_amx("Level up for %s: Exp=%d, Level=%d"sSteamIDVars[iPlayer][Exp], Vars[iPlayer][Level]);
}

public 
client_putinserver(iPlayer) {
    new 
sSteamID[33];
    
get_user_authid(iPlayersSteamID32);

    
Vars[iPlayer][Exp] = sGetIntData("%s>Exp"sSteamID);
    
Vars[iPlayer][Level] = sGetIntData("%s>Level"sSteamID);

    new 
iMaxLevel = (sizeof(sLevelSystem) - 1);
    new 
iMaxExp sLevelSystem[iMaxLevel][1][0];
    
    if (
Vars[iPlayer][Level] < || Vars[iPlayer][Level] >= sizeof(sLevelSystem)) {
        
Vars[iPlayer][Level] = 0;
        
Vars[iPlayer][Exp] = 0;
    } else if (
Vars[iPlayer][Exp] < || Vars[iPlayer][Exp] > iMaxExp) {
        
Vars[iPlayer][Exp] = sLevelSystem[Vars[iPlayer][Level]][1][0];
    }

    for (new 
0sizeof(sLevelSystem); i++) {
        if (
Vars[iPlayer][Exp] >= sLevelSystem[i][1][0]) {
            
Vars[iPlayer][Level] = i;
        } else {
            break;
        }
    }

    
sSetIntData("%s>Exp"Vars[iPlayer][Exp], sSteamID);
    
sSetIntData("%s>Level"Vars[iPlayer][Level], sSteamID);
    
log_amx("Player %s connected: Exp=%d, Level=%d"sSteamIDVars[iPlayer][Exp], Vars[iPlayer][Level]);

    
set_task(3.0"ChatReklami"iPlayer);
    
set_task(1.0"ShowHudMessage"iPlayer 125721, .flags "b");
}

public 
ShowHudMessage(Taskid) {
    new 
id Taskid 125721;
    
    if (!
is_user_connected(id)) return;
    
    new 
playerName[32];
    
get_user_name(idplayerNamesizeof(playerName));
    
    
set_hudmessage(
        
g_iYellowColor[0], 
        
g_iYellowColor[1], 
        
g_iYellowColor[2], 
        
0.85,
        
0.75,
        
0,
        
0.0,
        
1.0,
        
0.0,
        
0.0,
        
iSyncHud
    
);
    
    new 
levelName[32];
    
copy(levelNamesizeof(levelName), sLevelSystem[Vars[id][Level]][0][0]);
    
    if (
Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
        
ShowSyncHudMsg(idiSyncHud"[Rutben: %s]^n[Frag: %i/%i]"
            
levelName,
            
Vars[id][Exp],
            
sLevelSystem[Vars[id][Level] + 1][1][0]
        );
    } else {
        
ShowSyncHudMsg(idiSyncHud"[Rutben: %s]^n[Frag: %i/MAX]"
            
levelName
            
Vars[id][Exp]
        );
    }
}

public 
ChatReklami(id) {
    if (
is_user_connected(id)) {
        
client_print_color(idid"%s ^4Servera hosgeldiniz, serverda [RUTBE BICAK] sistemi vardir!^1!"ChatTag);

        if (
Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
            
client_print_color(idid"%s ^4/bicak yazarak ^4sistemi acabilirsiniz!^1!"ChatTag);
        }
    }
}

public 
plugin_end() {
    new 
players[32], num;
    
get_players(playersnum"ch");

    for (new 
0numi++) {
        new 
id players[i];
        new 
sSteamID[33];
        
get_user_authid(idsSteamID32);
        
sSetIntData("%s>Exp"Vars[id][Exp], sSteamID);
        
sSetIntData("%s>Level"Vars[id][Level], sSteamID);
        
log_amx("Plugin end - Saved for %s: Exp=%d, Level=%d"sSteamIDVars[id][Exp], Vars[id][Level]);
    }
    
nvault_close(iVault);
}

public 
client_disconnected(iPlayer) {
    
remove_task(iPlayer 125721);

    new 
sSteamID[33];
    
get_user_authid(iPlayersSteamID32);
    
sSetIntData("%s>Exp"Vars[iPlayer][Exp], sSteamID);
    
sSetIntData("%s>Level"Vars[iPlayer][Level], sSteamID);
    
log_amx("Player %s disconnected: Exp=%d, Level=%d"sSteamIDVars[iPlayer][Exp], Vars[iPlayer][Level]);

    
Vars[iPlayer][Exp] = 0;
    
Vars[iPlayer][Level] = 0;
}

bool:LevelChecker(const iPlayer, const bool:IsExp, const iExpAmout) {
    new 
iMaxExpiMaxLevel;
    
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;
            
Vars[iPlayer][Level] = iMaxLevel;
            new 
sSteamID[33];
            
get_user_authid(iPlayersSteamID32);
            
sSetIntData("%s>Exp"Vars[iPlayer][Exp], sSteamID);
            
sSetIntData("%s>Level"Vars[iPlayer][Level], sSteamID);
            return 
false;
        }
    }
    return 
true;
}

@
sendMessage(const color[], const alive, const message[]) {
    new 
teamName[10];
    for (new 
player 1player <= MaxClientsplayer++) {
        if (!
is_user_connected(player))
            continue;
        if (
alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LEVEL_C) {
            
get_user_team(playerteamName9);
            @
changeTeamInfo(playercolor);
            @
writeMessage(playermessage);
            @
changeTeamInfo(playerteamName);
        }
    }
}

@
changeTeamInfo(const player, const team[]) {
    
message_begin(MSG_ONEiTeamInfo_player);
    
write_byte(player);
    
write_string(team);
    
message_end();
}

@
writeMessage(const player, const message[]) {
    
message_begin(MSG_ONEiSayText, { 00}, player);
    
write_byte(player);
    
write_string(message);
    
message_end();
}

stock sGetIntData(const sKey[], any:...) {
    new 
sFixedData[128];
    
vformat(sFixedData127sKey2);
    new 
value nvault_get(iVaultsFixedData);
    
log_amx("Loaded from vault: %s = %d"sFixedDatavalue);
    return 
value;
}

stock sSetIntData(const sKey[], const iDataany:...) {
    new 
sFixedData[128], sNTS[48];
    
vformat(sFixedData127sKey3);
    
num_to_str(iDatasNTS47);
    
nvault_set(iVaultsFixedDatasNTS);
    
log_amx("Saved to vault: %s = %d"sFixedDataiData);
}

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 
1sizeof(sLevelSystem); i++) {
        
Num += formatex(Arg[Num], 2126 Num"<tr><th>%i<th>%s<th>%d</tr>"isLevelSystem[i][0][0], sLevelSystem[i][1][0]);
    }

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

    
show_motd(PlayerArg"Rütbe Bilgilendirmesi");
}

stock GetPrefixForPlayer(const playerName[], output[]) {
    new 
line[128], part1[32], part2[32], part3[32];
    new 
file fopen(sPlayers"r");

    if (
file == INVALID_HANDLE) {
        
server_print("Dosya açılamadı: %s"sPlayers);
        return 
0;
    }

    while (
fgets(filelinesizeof(line))) {
        
parse(linepart1sizeof(part1), part2sizeof(part2), part3sizeof(part3));

        if (
equali(part2playerName)) {
            
copy(output32part3);
            
fclose(file);
            return 
1;
        }
    }

    
copy(output32"");
    
fclose(file);
    return 
0;

Pawner

Forum Üyesi

Kayıtlı Üye Grubu

Çözdüğü Konu: 0
avatar
Pawner
08-06-2025, Saat: 12:04
08-06-2025, Saat: 12:04
#9
Yorumu Paylaş
konunuz çözüldü mü ?


Konuyu Okuyanlar: