⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐ Buraya kendi metin reklamınızı vererek binlerce kişiye ulaşın! ⭐
Sponsor Görsel 2
SponsorSponsor

Showkeys Plugini Değiştirilecek

ShowKeys Plugini Değiştirilecek
selamlar izleyici'ye attıgım kisiler izledikleri kisilerin klavye tuslarını goruyor fakat pluginde yapmak istediğim değişiklikler var bunları yapabilen olursa çok sevinirim. öncelikle benim kullandıgım pluginin tasarımı attıgım 2. fotoğraftaki gibi olmasını istiyorum.. ekstradan hız göstergeci ve fps göstergeci de eklenirse çok güzel olur. tesekkur ederım.

1- https://hizliresim.com/nqefksz
2- https://hizliresim.com/lhc0sed

Kod:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <reapi>

#define PLUGIN  "SpecInfo"
#define VERSION "1.0"
#define AUTHOR  "mi0"

#define LISTR 45
#define LISTG 89
#define LISTB 116
#define LISTX 0.7
#define LISTY 0.1

#define LISTFREQ 10

enum PlayerSettings
{
    Name[32],
    bool:Keys,
    bool:KeysSpec,
    KeysString[192],
    bool:List,
    bool:ListHide,
    SpectatingIndex,
    ListString[256],
    WatchingCount
}

new g_iThinkingEntity, iSyncHudListObj, iSyncHudKeysObj
new g_ePlayerSettings[MAX_PLAYERS + 1][PlayerSettings]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    iSyncHudListObj = CreateHudSyncObj()
    iSyncHudKeysObj = CreateHudSyncObj()

    g_iThinkingEntity = rg_create_entity("info_target")
    set_entvar(g_iThinkingEntity, var_classname, "SpecInfo_Entity")
    set_entvar(g_iThinkingEntity, var_nextthink, get_gametime() + 10.0)
    RegisterHam(Ham_Think, "info_target", "OnEntityThink")
}

public client_connect(id)
{
    get_user_name(id, g_ePlayerSettings[id][Name], charsmax(g_ePlayerSettings[][Name]))
    g_ePlayerSettings[id][List] = true
    g_ePlayerSettings[id][ListHide] = false
    g_ePlayerSettings[id][Keys] = false
    g_ePlayerSettings[id][KeysSpec] = true
    Func_ClearStorages(id)
}

public client_infochanged(id)
{
    get_user_info(id, "name", g_ePlayerSettings[id][Name], charsmax(g_ePlayerSettings[][Name]))
}

public OnEntityThink(id)
{
    if (id != g_iThinkingEntity) {
        return;
    }
    
    static iListCounter
    if (++iListCounter >= LISTFREQ)
    {
        Func_UpdateList()
        iListCounter = 0
    }

    Func_UpdateKeys()

    set_entvar(g_iThinkingEntity, var_nextthink, get_gametime() + 0.1)
}

Func_UpdateKeys()
{
    new iPlayers[MAX_PLAYERS], iPlayersNum
    get_players_ex(iPlayers, iPlayersNum)
    
    new iTargetIndex
    new bool:bNeeded[33], iSpecIndex[33]
    for (new i = 0; i < iPlayersNum; i++)
    {
        iTargetIndex = iPlayers[i]
        if (is_user_alive(iTargetIndex))
        {
            if (g_ePlayerSettings[iTargetIndex][Keys])
            {
                bNeeded[iTargetIndex] = true
            }
        }
        else
        {
            if (!g_ePlayerSettings[iTargetIndex][KeysSpec] ||
                !is_user_alive((iSpecIndex[iTargetIndex] = get_entvar(iTargetIndex, var_iuser2))) ||
                bNeeded[iSpecIndex[iTargetIndex]])
            {
                continue
            }

            bNeeded[iSpecIndex[iTargetIndex]] = true
        }
    }

    for (new i; i < iPlayersNum; i++)
    {
        iTargetIndex = iPlayers[i]
        if (!bNeeded[iTargetIndex])
        {
            continue
        }

        Func_FormatButtons(iTargetIndex)
    }

    new iObserved
    for (--iPlayersNum; iPlayersNum >= 0; iPlayersNum--)
    {
        iTargetIndex = iPlayers[iPlayersNum]

        if (is_user_alive(iTargetIndex) && g_ePlayerSettings[iTargetIndex][Keys])
        {
            iObserved = iTargetIndex
        }
        else if (g_ePlayerSettings[iTargetIndex][KeysSpec])
        {
            iObserved = iSpecIndex[iTargetIndex]
        }
        else
        {
            continue
        }

        Func_ShowKeys(iTargetIndex, iObserved)
    }
}

Func_FormatButtons(id)
{
    new iButtons = get_entvar(id, var_button)

    // definately didnt steal that HUH
    formatex(g_ePlayerSettings[id][KeysString], charsmax(g_ePlayerSettings[][KeysString]), "^n^t^t%s^t^t^t%s^n^t%s %s %s^t^t%s",
            iButtons & IN_FORWARD ? "W" : " .",
            iButtons & IN_JUMP ? "Jump" : "  -",
            iButtons & IN_MOVELEFT ? "A" : ".",
            iButtons & IN_BACK ? "S" : ".",
            iButtons & IN_MOVERIGHT ? "D" : ".",
            iButtons & IN_DUCK ? "Duck" : "  -"
        )
}

Func_ShowKeys(iObs, iObsed)
{
    set_hudmessage(0, 30, 200, 0.48, 0.40, 0, 0.0, 0.1, 0.1, 0.0)
    ShowSyncHudMsg(iObs, iSyncHudKeysObj, g_ePlayerSettings[iObsed][KeysString])
}

Func_UpdateList()
{
    new iPlayers[MAX_PLAYERS], iPlayersNum, iPlayersDead[MAX_PLAYERS], iPlayersDeadNum
    new iTargetIndex, iSpectatingIndex

    get_players_ex(iPlayers, iPlayersNum, GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV)
    for (new i; i < iPlayersNum; i++)
    {
        Func_ClearStorages(iPlayers[i])
    }

    get_players_ex(iPlayersDead, iPlayersDeadNum, GetPlayers_ExcludeAlive | GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV)
    for (new i; i < iPlayersDeadNum; i++)
    {
        iTargetIndex = iPlayersDead[i]
        if ((iSpectatingIndex = get_entvar(iTargetIndex, var_iuser2)) && iSpectatingIndex != iTargetIndex)
        {
            if (!g_ePlayerSettings[iTargetIndex][ListHide])
            {
                format(g_ePlayerSettings[iSpectatingIndex][ListString], charsmax(g_ePlayerSettings[][ListString]),
                    "%s^n^t%s", g_ePlayerSettings[iSpectatingIndex][ListString], g_ePlayerSettings[iTargetIndex][Name])
            }
            g_ePlayerSettings[iSpectatingIndex][WatchingCount]++
            g_ePlayerSettings[iTargetIndex][SpectatingIndex] = iSpectatingIndex
        }
    }

    for (new i; i < iPlayersNum; i++)
    {
        iTargetIndex = iPlayers[i]
        
        if (is_user_alive(iTargetIndex))
        {
            Func_FormatList(iTargetIndex)
        }
    }

    for (--iPlayersNum; iPlayersNum >= 0; iPlayersNum--)
    {
        iTargetIndex = iPlayers[iPlayersNum]

        if (g_ePlayerSettings[iTargetIndex][List] && g_ePlayerSettings[is_user_alive(iTargetIndex) ? iTargetIndex : g_ePlayerSettings[iTargetIndex][SpectatingIndex]][WatchingCount])
        {
            Func_ShowList(iTargetIndex, is_user_alive(iTargetIndex) ? iTargetIndex : g_ePlayerSettings[iTargetIndex][SpectatingIndex])
        }
    }
}

Func_FormatList(id)
{
    format(g_ePlayerSettings[id][ListString], charsmax(g_ePlayerSettings[][ListString]), "Watching %s [%i]:%s",
        g_ePlayerSettings[id][Name], g_ePlayerSettings[id][WatchingCount], g_ePlayerSettings[id][ListString])
}

Func_ShowList(id, iListOwner)
{
    set_hudmessage(LISTR, LISTG, LISTB, LISTX, LISTY, 0, 0.0, 1.0)
    ShowSyncHudMsg(id, iSyncHudListObj, g_ePlayerSettings[iListOwner][ListString])
}

Func_ClearStorages(id)
{
    g_ePlayerSettings[id][SpectatingIndex] = 0
    g_ePlayerSettings[id][WatchingCount] = 0
    copy(g_ePlayerSettings[id][ListString], charsmax(g_ePlayerSettings[][ListString]), "")
}

RE: ShowKeys Plugini Değiştirilecek
Konu günceldir…..
RE: ShowKeys Plugini Değiştirilecek
@sametcann merhabalar 24 saat gecemeden konu guncelleyemezsiniz 24 saate sadece 1 kez güncelliyebilirsiniz.
MODEL TASARIMI SİLAH TASARIMI SPREY TASARIMI EKLENTİ İŞLERİ MOD KURULUMU İÇİN DİSCORD:okan5705 veya Ts3 Domainler:flexekip,flexekib,okan,okans
RE: ShowKeys Plugini Değiştirilecek
Konunuz çözüldüyse bildirin
亗 TEŞKİLAT-I MAHSUSA 亗

DNS :  pro.timailesi.com / ts1.timailesi.com
ShowKeys Plugini Değiştirilecek
Konunuz "Çözülmüş İsteklere" taşınmıştır.
亗 TEŞKİLAT-I MAHSUSA 亗

DNS :  pro.timailesi.com / ts1.timailesi.com

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Benzer Konular

Konuyu Okuyanlar: 1 Ziyaretçi
Task