Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

mordoryjacz - zdjęcie

mordoryjacz

Rejestracja: 15.10.2021
Aktualnie: Przegląda stronę główną
Dostępny Ostatnio: 23 minut temu
***--

Moje posty

W temacie: hud.amxx problem z pluginem i mała przeróbka

30.01.2026 20:10

 

 

ale ai wjechalo xD

 

Owszem ai jest może niezbyt dokładne, lecz szybciej coś ogarniesz i jest bardziej pomocne wiadomo ai nie ogarnie w 100% bo się będziesz bawić i wkur.. xD przy większym projekcie ale zrobisz to szybciej i jak chcesz więc w czym widzisz problem ? Chyba każda pomoc jest potrzebna nie ważne z jakiego źródła :)

 

to chociaz jak juz uzywasz to wyslij kod przyjazny dla oka 

W temacie: hud.amxx problem z pluginem i mała przeróbka

30.01.2026 12:50

 

Dzień dobry się z państwem, ponawiam pytanko czy byłaby możliwość dopisania do kodu informację w formie dźwięku o postępie (przejściu na następną rangę)? Płacę jak na prezydenta.

 

SMA

#include <amxmodx>
#include <csx>
#include <fakemeta>

#define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)
#define TASK_HUD 666

new const rankName[][] =
{
    "Silver I", "Silver II", "Silver III", "Silver IV", "Silver Elite", "Silver Elite Master",
    "Gold Nova I", "Gold Nova II", "Gold Nova III", "Gold Nova IV", "Gold Nova Master",
    "Master Guardian I", "Master Guardian II", "Master Guardian Elite",
    "Distinguished Master Guardian", "Legendary Eagle", "Legendary Eagle Master",
    "Supreme Master First Class", "The Global Elite"
};

new const rankKills[][] =
{
    { 0, 29 }, { 30, 59 }, { 60, 119 }, { 120, 209 }, { 210, 324 }, { 325, 499 },
    { 500, 729 }, { 730, 999 }, { 1000, 1399 }, { 1400, 1849 }, { 1850, 2299 },
    { 2300, 2899 }, { 2900, 3549 }, { 3550, 4999 }, { 5000, 5899 }, { 5900, 6899 },
    { 6900, 7999 }, { 8000, 9299 }, { 9300, 12000 }
};

new hudObject;
new g_userOldRank[33];

public plugin_init()
{
    register_plugin("Info Hud I Rangi CsGo", "1.6", "ProToTyp e: N1K1Cz");
   
    hudObject = CreateHudSyncObj();
}

public client_putinserver(id)
{
    if (!is_user_bot(id) && !is_user_hltv(id))
    {
        g_userOldRank[id] = -1;
        set_task(1.0, "displayHud", id + TASK_HUD, .flags="b");
    }
}

// Zmienione na client_disconnected dla wersji 1.10
public client_disconnected(id)
{
    remove_task(id + TASK_HUD);
}

public displayHud(taskID)
{
    new index = taskID - TASK_HUD;
   
    if(!is_user_connected(index))
    {
        remove_task(taskID);
        return;
    }
   
    static userName[33], requiredKills, userPosition, userRankIndex, userStats[8], body[8];
    new target = index;
   
    // Obsługa widoku obserwatora (Spectator)
    if (!is_user_alive(index))
    {
        new spec = pev(index, pev_iuser2);
        if (spec > 0 && is_user_alive(spec))
        {
            target = spec;
        }
        else
        {
            ClearSyncHud(index, hudObject);
            return;
        }
    }

    // Pobieranie statystyk celu
    userPosition = get_user_stats(target, userStats, body);
    userRankIndex = getRankIndex(userStats[0]);
   
    // Logika powiadomienia o awansie (tylko dla gracza, który faktycznie awansuje)
    if (target == index)
    {
        if (g_userOldRank[index] != -1 && userRankIndex > g_userOldRank[index])
        {
            // Dźwięk awansu z folderu gry i napis na środku
            client_cmd(index, "spk events/tutor_msg.wav");
            set_hudmessage(255, 215, 0, -1.0, 0.3, 0, 6.0, 5.0);
            show_hudmessage(index, "GRATULACJE!^nAWANSOWALES DO RANGI: %s", rankName[userRankIndex]);
        }
        g_userOldRank[index] = userRankIndex;
    }

    get_user_name(target, userName, charsmax(userName));
   
    // Obliczanie progu fragów
    if (userRankIndex < sizeof(rankKills) - 1)
        requiredKills = rankKills[userRankIndex + 1][0];
    else
        requiredKills = rankKills[userRankIndex][1];

    // Kolor jasnoniebieski (cyjan), pozycja po lewej stronie
    set_hudmessage(0, 160, 255, 0.02, 0.20, 0, 0.1, 1.1, 0.1, 0.1, -1);
   
    ShowSyncHudMsg(index, hudObject,
        "[Nick: %s]^n\
        [Ranga: %s]^n\
        [Postep: %i / %i]^n\
        [Fragi: %i]^n\
        [Ranking: %i / %i]^n\
        [Vip: %s]",
        userName,
        rankName[userRankIndex],
        userStats[0],
        requiredKills,
        get_user_frags(target),
        userPosition,
        get_statsnum(),
        (get_user_flags(target) & ADMIN_LEVEL_H) ? "Tak" : "Nie"
    );
}

public getRankIndex(kills)
{
    for (new i = sizeof(rankKills) - 1; i >= 0; i--)
    {
        if (kills >= rankKills[i][0])
            return i;
    }
    return 0;
}

Dźwięk dodajesz tutaj cstrike/sound/events/tutor_msg.wav

jak coś daj znać na priv to zrobimy od podstaw ;)

 

ale ai wjechalo xD

W temacie: Rozgrzewka

10.01.2026 13:01

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>

new const warmup_sounds[][] = { "misc/rozgrzewka1.mp3", "misc/rozgrzewka2.mp3" };
new const warmup_weapons[][] = { "weapon_ak47", "weapon_m4a1", "weapon_deagle", "weapon_mp5navy", "weapon_famas", "weapon_awp" };
new const weapon_names[][] = { "AK-47", "M4A1", "Deagle", "MP5", "Famas", "AWP" };

new iTimer, iWeaponIndex, bool:bOnlyHS, bool:iRozgrzewka;
new syncHud;

public plugin_init() {
    register_plugin("Rozgrzewka", "0.0", "Rozgrzewka");
    
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0");
    
    RegisterHam(Ham_Killed, "player", "fw_PlayerKilled", 1);
    RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1);
    RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack");
    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "fw_C4PrimaryAttack");
    
    register_clcmd("buy", "Blokada");
    register_clcmd("buyammo1", "Blokada");
    register_clcmd("buyammo2", "Blokada");
    register_clcmd("cl_autobuy", "Blokada");
    register_clcmd("cl_rebuy", "Blokada");
    
    register_forward(FM_Touch, "fw_Touch");
    
    syncHud = CreateHudSyncObj();
}

public plugin_precache() {
    for(new i = 0; i < sizeof warmup_sounds; i++) {
        precache_generic(warmup_sounds[i]);
    }
}

public event_round_start() {
    if(!iRozgrzewka && get_gametime() < 15.0) {
        start_warmup();
    }
}

public start_warmup() {
    iRozgrzewka = true;
    iTimer = 30;
    iWeaponIndex = random(sizeof warmup_weapons);
    bOnlyHS = (random(2) == 1);
    
    server_cmd("csstats_pause 1");
    
    new iRandSound = random(sizeof warmup_sounds);
    client_cmd(0, "mp3 play sound/%s", warmup_sounds[iRandSound]);
    
    set_task(1.0, "warmup_timer", 1337, _, _, "a", iTimer);
}

public warmup_timer() {
    iTimer--;
    
    set_hudmessage(0, 160, 255, -1.0, 0.05, 0, 0.1, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(0, syncHud, "--- ROZGRZEWKA ---^nCzas: %d sek^nBron: %s^nTryb: %s", 
        iTimer, weapon_names[iWeaponIndex], bOnlyHS ? "[ONLY HS]" : "[NORMALNY]");

    if(iTimer <= 0) {
        end_warmup();
    }
}

public end_warmup() {
    iRozgrzewka = false;
    remove_task(1337);
    
    server_cmd("csstats_pause 0");
    server_cmd("sv_restart 1");
    
    client_cmd(0, "mp3 stop");
    
    set_hudmessage(255, 0, 0, -1.0, 0.2, 1, 1.0, 5.0);
    show_hudmessage(0, "KONIEC ROZGRZEWKI! POWODZENIA!");
}

public fw_PlayerSpawn(id) {
    if(!is_user_alive(id) || !iRozgrzewka)
        return;
    
    strip_user_weapons(id);
    give_item(id, "weapon_knife");
    
    new weapon_id = give_item(id, warmup_weapons[iWeaponIndex]);
    if(weapon_id > 0) {
        cs_set_user_bpammo(id, get_weaponid(warmup_weapons[iWeaponIndex]), 250);
    }
}

public Blokada(id) {
    if(iRozgrzewka) return PLUGIN_HANDLED;
    return PLUGIN_CONTINUE;
}

public fw_C4PrimaryAttack(ent) {
    if(iRozgrzewka) return HAM_SUPERCEDE;
    return HAM_IGNORED;
}

public fw_Touch(entity, id) {
    if(!iRozgrzewka || !is_user_connected(id))
        return FMRES_IGNORED;

    static classname[32];
    pev(entity, pev_classname, classname, 31);
    
    if(equal(classname, "weapon_c4")) {
        return FMRES_SUPERCEDE;
    }
    
    return FMRES_IGNORED;
}

public fw_PlayerKilled(victim, attacker, shouldgib) {
    if(iRozgrzewka) {
        set_task(0.7, "respawn_player", victim);
    }
}

public respawn_player(id) {
    if(is_user_connected(id) && iRozgrzewka) {
        ExecuteHamB(Ham_CS_RoundRespawn, id);
    }
}

public fw_TraceAttack(victim, attacker, Float:damage, Float:direction, tracehandle, damagebits) {
    if(iRozgrzewka && bOnlyHS && is_user_connected(attacker)) {
        if(get_tr2(tracehandle, TR_iHitgroup) != HIT_HEAD) {
            return HAM_SUPERCEDE;
        }
    }
    return HAM_IGNORED;
}

W temacie: hud.amxx problem z pluginem i mała przeróbka

06.01.2026 00:39

Elegancko, jeszcze ostatnia rzecz mi chodzi po głowie. Z racji, że na serwerze nie mam vipa dałoby zastąpić tę linijkę np. aktualnym czasem bądź mapą? Chciałem od razu to napisać ale nie mogę edytować postów.

musisz czekac az ci autor pluginu to zrobi 

W temacie: hud.amxx problem z pluginem i mała przeróbka

04.01.2026 18:31

jestes autorem kodu czyli twoj kod zaczales to go skoncz proste  :mur: