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
 

Misiaczek ;c - zdjęcie

Misiaczek ;c

Rejestracja: 23.04.2008
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.05.2026 11:50
*****

#780322 Szukam pluginu który naprawia wyrzucanie broni powyżej 30

Napisane przez Misiaczek ;c w 02.04.2026 12:45

#include <amxmodx>
#include <engine>

#define PLUGIN  "Entity & Drop Fix"
#define VERSION "1.1"
#define AUTHOR  "Misiaczek ;c / Err0r"

new g_pMaxWeapons;
new g_pWeaponLife;
new g_pMaxEdicts;
new g_pDebug;
new g_iWeaponCount;

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

    g_pMaxWeapons = register_cvar("guard_max_weapons", "20");
    g_pWeaponLife = register_cvar("guard_weapon_life", "12.0");
    g_pMaxEdicts  = register_cvar("guard_max_edicts", "850");
    g_pDebug      = register_cvar("guard_debug", "0");

    register_event("CurWeapon", "OnWeaponDropCheck", "be");

    set_task(1.0, "CleanupWeapons", _, _, _, "b");
    set_task(3.0, "CheckEdicts", _, _, _, "b");
}

public plugin_cfg()
{
    SyncWeapons();
}

public OnWeaponDropCheck(id)
{
    if (!is_user_alive(id))
        return;

    SyncWeapons();

    if (g_iWeaponCount >= get_pcvar_num(g_pMaxWeapons))
    {
        client_print(id, print_center, "[GUARD] Za duzo broni na mapie!");
    }
}

public CleanupWeapons()
{
    new ent = -1;
    new Float:time = get_gametime();
    new Float:lifetime = get_pcvar_float(g_pWeaponLife);

    while ((ent = find_ent_by_class(ent, "weaponbox")))
    {
        if (!is_valid_ent(ent))
            continue;

        if (IsC4(ent))
            continue;

        new Float:spawn = entity_get_float(ent, EV_FL_fuser1);

        if (spawn == 0.0)
        {
            entity_set_float(ent, EV_FL_fuser1, time);
            continue;
        }

        if ((time - spawn) > lifetime)
        {
            remove_entity(ent);
        }
    }
}

public CheckEdicts()
{
    new total = 0;
    new ent = -1;

    while ((ent = find_ent_by_class(ent, "*")))
    {
        if (is_valid_ent(ent))
            total++;
    }

    if (total >= get_pcvar_num(g_pMaxEdicts))
    {
        new w = -1;

        while ((w = find_ent_by_class(w, "weaponbox")))
        {
            if (is_valid_ent(w))
                remove_entity(w);
        }

        if (get_pcvar_num(g_pDebug))
            server_print("[GUARD] CLEANUP! Edicts: %d", total);
    }
}

public SyncWeapons()
{
    new ent = -1;
    g_iWeaponCount = 0;

    while ((ent = find_ent_by_class(ent, "weaponbox")))
    {
        if (is_valid_ent(ent) && !IsC4(ent))
            g_iWeaponCount++;
    }
}

stock bool:IsC4(ent)
{
    static model[64];
    entity_get_string(ent, EV_SZ_model, model, charsmax(model));

    return containi(model, "c4") != -1;
}

mój błąd wcześniej, w reapi sugerowałem się częściowo fakemeta, przez co nieściłośc wyszła, ale prosze , to działa bez problemu

//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// test.sma
//
// Header size:            728 bytes
// Code size:             2480 bytes
// Data size:             1684 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   21276 bytes
// Done.
//
// Compilation Time: 0,7 sec
// ----------------------------------------

  • +
  • -
  • 1


#780310 Szukam pluginu który naprawia wyrzucanie broni powyżej 30

Napisane przez Misiaczek ;c w 30.03.2026 07:53

Spróbujemy to ugryźć inaczej ;)

guard_max_weapons "20" - maksymalna ilość broni na mapie
// 20 - NS
// 25 - Maksymalne dla stabilności
// 30 - ryzyko crasha

guard_weapon_life "10.0" - czas "życia" broni na ziemi
// 10.0 - agresywne usuwanie
// 15.0 - optymalne / stabline
// 30.0 - długie, możliwy crash

guard_max_edicts "900" - maksymalna ilośc encji na serwerze
// 850 - bezpieczen / stabilne
// 900 - optymalne / stabilne
// 1000 - ryzykowne przy NS

guard_safe_margin "100" - buffor bezpieczeństwa, plugin nie czeka az osiągniesz wartość z guard_max_edicts tylko reaguje odpowiednio wcześniej 
// 50 - pozna reakcja, możliwe ryzyko crasha
// 100 - optymalne / stabilne
// 150 - bezpieczne / stabilne
//
// dokładnie działa to tak [ guard_max_edicts - guard_safe_margin ]

guard_debug "0" - debuger
// 0 - off
// 1 - on
// loguje do konsoli co robi plugin oraz dodatkowo co spamuje enitami z innych pluginów
#include <amxmodx>
#include <reapi>

#define PLUGIN  "Entity & Drop Fix"
#define VERSION "1.1"
#define AUTHOR  "Misiaczek ;c / Err0r"

new g_pMaxWeapons;
new g_pWeaponLife;
new g_pMaxEdicts;
new g_pSafeMargin;
new g_pDebug;
new g_iWeaponCount;
new g_iEdictCount;

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

    g_pMaxWeapons = register_cvar("guard_max_weapons", "25");
    g_pWeaponLife = register_cvar("guard_weapon_life", "15.0");
    g_pMaxEdicts  = register_cvar("guard_max_edicts", "900");
    g_pSafeMargin = register_cvar("guard_safe_margin", "50");

    g_pDebug = register_cvar("guard_debug", "0");

    RegisterHookChain(RG_CBasePlayer_DropPlayerItem, "OnDrop", false);
    RegisterHookChain(RG_CreateEntity, "OnEntityCreate", false);
    RegisterHookChain(RG_RemoveEntity, "OnEntityRemove", true);
    RegisterHookChain(RG_RoundEnd, "OnRoundEnd", true);

    set_task(1.0, "CleanupWeapons", _, _, _, "b");
    set_task(3.0, "FullSync", _, _, _, "b");
}

public plugin_cfg()
{
    FullSync();
}

public OnDrop(const id, const char[] item)
{
    if (!is_user_alive(id))
        return HC_CONTINUE;

    new max = get_pcvar_num(g_pMaxWeapons);

    if (g_iWeaponCount >= max)
    {
        if (get_pcvar_num(g_pDebug))
            client_print(id, print_center, "[GUARD] Limit broni!");

        return HC_SUPERCEDE;
    }

    return HC_CONTINUE;
}

public OnEntityCreate(const ent, const char[] classname[])
{
    if (!ent)
        return HC_CONTINUE;

    new maxEdicts = get_pcvar_num(g_pMaxEdicts);
    new margin    = get_pcvar_num(g_pSafeMargin);

    if (g_iEdictCount >= (maxEdicts - margin))
    {
        if (IsRemovable(classname))
        {
            if (get_pcvar_num(g_pDebug))
                server_print("[GUARD] BLOCK ENTITY: %s", classname);

            return HC_SUPERCEDE;
        }
    }

    if (equal(classname, "weaponbox"))
    {
        new maxWeapons = get_pcvar_num(g_pMaxWeapons);

        if (g_iWeaponCount >= maxWeapons)
        {
            if (get_pcvar_num(g_pDebug))
                server_print("[GUARD] BLOCK WEAPONBOX");

            return HC_SUPERCEDE;
        }

        g_iWeaponCount++;
    }

    g_iEdictCount++;
    return HC_CONTINUE;
}

public OnEntityRemove(const ent)
{
    if (!is_entity(ent))
        return HC_CONTINUE;

    static classname[32];
    get_entvar(ent, var_classname, classname, charsmax(classname));

    if (equal(classname, "weaponbox"))
    {
        if (g_iWeaponCount > 0)
            g_iWeaponCount--;
    }

    if (g_iEdictCount > 0)
        g_iEdictCount--;

    return HC_CONTINUE;
}

public CleanupWeapons()
{
    new ent = -1;
    new Float:time = get_gametime();
    new Float:lifetime = get_pcvar_float(g_pWeaponLife);

    while ((ent = rg_find_ent_by_class(ent, "weaponbox")))
    {
        if (!is_entity(ent))
            continue;

        if (IsC4(ent))
            continue;

        new Float:spawn;
        get_entvar(ent, var_fuser1, spawn);

        if (spawn == 0.0)
        {
            set_entvar(ent, var_fuser1, time);
            continue;
        }

        if ((time - spawn) > lifetime)
        {
            rg_remove_entity(ent);
        }
    }
}

public FullSync()
{
    new ent = -1;

    g_iWeaponCount = 0;
    g_iEdictCount  = 0;

    while ((ent = rg_find_ent_by_class(ent, "*")))
    {
        if (!is_entity(ent))
            continue;

        g_iEdictCount++;

        static classname[32];
        get_entvar(ent, var_classname, classname, charsmax(classname));

        if (equal(classname, "weaponbox") && !IsC4(ent))
        {
            g_iWeaponCount++;
        }
    }

    if (get_pcvar_num(g_pDebug))
    {
        server_print("[GUARD] Edicts: %d | Weapons: %d", g_iEdictCount, g_iWeaponCount);
    }
}

public OnRoundEnd()
{
    g_iWeaponCount = 0;
}

stock bool:IsRemovable(const classname[])
{
    if (equal(classname, "weaponbox")) return true;
    if (equal(classname, "armoury_entity")) return true;
    if (equal(classname, "grenade")) return true;

    return false;
}

stock bool:IsC4(ent)
{
    static model[64];
    get_entvar(ent, var_model, model, charsmax(model));

    return containi(model, "c4") != -1;
}

  • +
  • -
  • 1


#713204 problem z pluginem blockweapons (blokada broni tt)

Napisane przez Misiaczek ;c w 12.10.2015 19:40

może tak ? ;>

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#define IsNoPlayer(%1) ( is_user_hltv( %1 ) || is_user_bot( %1 ) )

new bool:block[ 33 ];

stock const gszWeaponsNames[ ][ ] = {
	"weapon_scout", "weapon_mac10", "weapon_aug", "weapon_ump45", 
	"weapon_sg550", "weapon_galil", "weapon_famas", "weapon_awp", 
	"weapon_mp5navy", "weapon_m249", "weapon_m4a1", "weapon_tmp", 
	"weapon_g3sg1", "weapon_sg552", "weapon_ak47", "weapon_p90",
	"weapon_p228", "weapon_shield", "weapon_hegrenade", "weapon_xm1014",
	"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_usp",
	"weapon_glock18", "weapon_flashbang", "weapon_deagle"
}

stock const gszBlockNames[ ][ ] = {
	"armoury_entity", "weapon_shield", "weaponbox"
}

public plugin_init() {
	
	register_plugin( "Block Weapons", "1.0.0", "Misiaczek ;c" );
	
	RegisterHam( Ham_Spawn, "player", "hamSpawn", 1 );
	
	for ( new i = 1; i < sizeof gszWeaponsNames; i++ ) {
		if ( gszWeaponsNames[ i ][ 0 ] ) {
			RegisterHam( Ham_Item_Deploy, gszWeaponsNames[ i ], "hamDeploy", 1 );
		}		
	}
	
	for ( new i = 1; i < sizeof gszBlockNames; i++ ) {
		if ( gszBlockNames[ i ][ 0 ] ) {
			RegisterHam( Ham_Touch, gszBlockNames[ i ], "hamTouch" );
		}
	}
}

public client_disconnect( id ) block[ id ] = false;

public hamSpawn( id ) {
	
	if( !is_user_alive( id ) || IsNoPlayer( id ))
		return HAM_IGNORED;
	
	if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR  || cs_get_user_team( id ) == CS_TEAM_UNASSIGNED || cs_get_user_team( id ) ==  CS_TEAM_CT )
		return HAM_IGNORED;
		
	block[ id ] = true;
	
	return HAM_IGNORED;
}
		

public hamTouch( iEntity, id ) {
	
	if( block[ id ] )
		return HAM_SUPERCEDE;
	else
		return HAM_IGNORED;
		
	return HAM_IGNORED;
}

public hamDeploy( iEntity ) {
	
	new id = get_pdata_cbase( iEntity, 41, 4 );

	if( block[ id ] )
		engclient_cmd( id, "weapon_knife" );
	else
		return HAM_IGNORED;	
		
	return HAM_IGNORED;
}

  • +
  • -
  • 1


#713187 [ROZWIĄZANE] Query failed!

Napisane przez Misiaczek ;c w 12.10.2015 17:48

HLDS: 6153

AMXX: 1.8.2

MetaMod: 1.21p37

AMXBans: AMXX 1.5.1 | WEB 1.6 bądź CSBans 1.3 


  • +
  • -
  • 1


#713176 [ROZWIĄZANE] Query failed!

Napisane przez Misiaczek ;c w 12.10.2015 16:32

Czy jest ktos w stanie mi pomoc?

 

Kolejny post pod postem. wiem, przepraszam

uzyj plików amxbans_core.amxx i amxbans_main.amxx z wersji 1.5.1 ;)


  • +
  • -
  • 1


#713175 [ROZWIĄZANE] Prosba o kompilacje

Napisane przez Misiaczek ;c w 12.10.2015 16:32

Mozecie mi skopilowac ten plik? :)

 

Masz w paczce, kompilowane pod ZM 5.0 jak i 4.3

Załączone pliki

  • Załączony plik  ZM_VIP.zip   67,93 KB  150 Ilość pobrań

  • +
  • -
  • 1


#713149 [ROZWIĄZANE] Query failed!

Napisane przez Misiaczek ;c w 11.10.2015 22:15

amxbans.cfg pokaż... bo znając życie tam leży błąd po części i po części w pliku amxx

 

z amxbans.cfg potrzebuje zobaczyć jak masz uzupełnione te dwa cvar'y

amxbans_server_address ""

oraz

amxbans_servernick ""

ponieważ owy błąd zazwyczaj występuje gdy cvar 

amxbans_servernick ""

jest pusty, i plugin pobiera nazwę serwera taką jak mamy w server.cfg, gdzie nie raz są znaczki typu 

-+/\|[](){}<>`~!@#$%^&*

i inne twory użytkowników aby "upiększyć" nazwę serwera, a kod zapytań amxbans'a jest taki( czuły a raczej ograniczony xD ) a nie inny ze sypie potem błędami ;)  


  • +
  • -
  • 2


#713147 Blokowanie stawiania min w przejściach - działa w 100%

Napisane przez Misiaczek ;c w 11.10.2015 21:31

Dodałem to jako include, jezeli ktos ma sporo klas to ułatwi prace, a pozatym zawsze mozna to w samym silniku dodać ;), macie include w załączniku :)

 

Załączony plik  duzomiejsca.inc   1,46 KB  156 Ilość pobrań

 
Info jak używać includa z załącznika, pokażę na klasie Saper z standardowej paczki cod'a.

 

Szukamy

#include <codmod>

dopisujemy pod tym, to

#include <duzomiejsca>

następnie szukamy

public cod_class_skill_used(id)

w owym publiku odnajdujemy ten kod

	if (!ilosc_min_gracza[id])
	{
		client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
		return PLUGIN_CONTINUE;
	}

po czym dopisujemy pod nim to

	if( !czyDuzoMiejsca( id, 135.0 ) ) {
		client_print( id, print_center, "Stawianie min w malych pomieszczeniach jest zabronione!" );
		return PLUGIN_CONTINUE;
	}

Zapisujemy i kompilujemy klase ponownie w celu uzyskania pliku *.amxx który następnie podmieniamy z tym co mamy na serwerze.

 

Tutaj cały kod zmodyfikowanej klasy Saper w celach podglądowych

Załączony plik  codclass_saper.sma   3,39 KB  152 Ilość pobrań
  codclass_saper.amxx

 

 

Aby dodac blokade w samym silniku cod'a musimy również edytować SMA, lecz nie będzie potrzeby edycji klas :)

 

Otwieramy SMA naszego silnika. ( ja oprę modyfikację o silnik z TEGO POSTU )

Szukamy

#include <fakemeta>

zamieniamy na <- Masło maślane -> ( dlaczego zamieniamy? ponieważ w include duzomiejsca i tak jest wymagany moduł fakemet'y przez co sam include go ładuje :P<- Masło maślane ->

#include <duzomiejsca>

następnie szukamy

public UzyjPerku(id)

w publicu nastepnie szukamy tego kawałka kodu

	if(!is_user_alive(id))
		return PLUGIN_HANDLED;

dopisujemy pod owym kodem to

	if( !czyDuzoMiejsca( id, 135.0 ) ) {
		client_print( id, print_center, "Zbyt malo miejsca aby uzyc perku!" );
		return PLUGIN_CONTINUE;
	}

Po edycji, cały public powinien mniej więcej tak wyglądać!

public UzyjPerku(id)
{
	if(!is_user_alive(id))
		return PLUGIN_HANDLED;
	
	if( !czyDuzoMiejsca( id, 135.0 ) ) {
		client_print( id, print_center, "Zbyt malo miejsca aby uzyc perku!" );
		return PLUGIN_CONTINUE;
	}
		
	new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
	ExecuteForward(forward_handle, id, id);
	DestroyForward(forward_handle);
	return PLUGIN_HANDLED;
}

Zapisujemy i kompilujemy klase ponownie w celu uzyskania pliku *.amxx który następnie podmieniamy z tym co mamy na serwerze.

 

SMA silnika po edycji w celach podglądowych

Załączony plik  QTM_CodMod.sma   39,99 KB  120 Ilość pobrań
  QTM_CodMod.amxx


  • +
  • -
  • 2


#713043 [ROZWIĄZANE] Prośba o perk Deagle zguby i 1 inny

Napisane przez Misiaczek ;c w 09.10.2015 22:20

#include <amxmodx>
#include <codmod>
#include <cstrike>
#include <hamsandwich>

new const Nazwa[ ] = "Deagle Zguby";
new const Opis[ ] = "Dostajesz Deagla + 20 obrazen wiecej, 20% szans na natychmiastowe zabicie!.";

new bool:Perk[ 33 ];

public plugin_init( ) {
	
	register_plugin( Nazwa, "1.0", "Misiaczek ;c");
	
	cod_register_perk( Nazwa,  Opis);
	
	RegisterHam( Ham_TakeDamage, "player", "TakeDamage" );
}

public cod_perk_enabled( id ) {
	
	cod_give_weapon( id, CSW_DEAGLE );
	Perk[ id ] = true;
}

public cod_perk_disabled( id ) {
	
	cod_take_weapon( id, CSW_DEAGLE );
	Perk[ id ] = false;
}

public fwTakeDamage( this, idInf, idAtt, Float:fDmg, dmgBits ) {
	
	if( !is_user_alive( idAtt ) || !Perk[ idAtt ] )
		return HAM_IGNORED;
		
	if( get_user_weapon( idAtt ) == CSW_DEAGLE && dmgBits & (1<<1) )
		return HAM_IGNORED;
		
	if( get_user_team( this ) != get_user_team( idAtt ) )
		return HAM_IGNORED;
		
	if( random_num( 1, 5 ) != 1 ) {
		cs_set_user_armor( this, 0, CS_ARMOR_NONE);
		cod_inflict_damage( idAtt, this, float( get_user_health( this ) + 1 ), 0.0, idInf, dmgBits );
	}
	else {
		cod_inflict_damage( idAtt, this, 20.0, 1.0, idInf, dmgBits );
	}

	return HAM_HANDLED;
}

  • +
  • -
  • 1


#713035 Dodanie do BS Limiter map css_

Napisane przez Misiaczek ;c w 09.10.2015 20:45

if (contain(mapname, "de_")==-1)

na

if( contain( mapname, "de_" ) == -1 || contain( mapname, "css_" ) == -1 )

  • +
  • -
  • 1


#713026 adminchat - zielony kolor na u@

Napisane przez Misiaczek ;c w 09.10.2015 19:13

Wszystko ładnie śmiga, ale do ideału brakuje jeszcze tego, żeby to piknięcie gdy ktoś napisze na u@ było słychać od innych graczy i adminów, bo piknięcie jest gdy tylko ja napisze na u@.

 

Sprawdź

 

Załączone pliki


  • +
  • -
  • 1


#713024 [ROZWIĄZANE] Bronie dla survka

Napisane przez Misiaczek ;c w 09.10.2015 19:04

https://forums.allie...ead.php?t=89955


  • +
  • -
  • 1


#713021 adminchat - zielony kolor na u@

Napisane przez Misiaczek ;c w 09.10.2015 18:51

Łap
 
W Archiwum masz:

  • SMA
  • Include
  • Dźwięk
  • AMXX

Jak chcesz adminchat:

  • bez kolorów i bez dźwięku, to zmieniasz
//#define STANDARDOWY_CZAT
#define KOLOROWY_CZAT
#define DZWIEK_CZAT

na

#define STANDARDOWY_CZAT
//#define KOLOROWY_CZAT
//#define DZWIEK_CZAT
  • z kolorami i dźwiękiem, to zmieniasz
#define STANDARDOWY_CZAT
//#define KOLOROWY_CZAT
//#define DZWIEK_CZAT

na

//#define STANDARDOWY_CZAT
#define KOLOROWY_CZAT
#define DZWIEK_CZAT
  • z kolorami lecz bez dźwięku to zmieniasz
//#define STANDARDOWY_CZAT
#define KOLOROWY_CZAT
#define DZWIEK_CZAT

na

//#define STANDARDOWY_CZAT
#define KOLOROWY_CZAT
//#define DZWIEK_CZAT
  • bez kolorów lecz z dźwiękiem to zmieniasz
#define STANDARDOWY_CZAT
//#define KOLOROWY_CZAT
//#define DZWIEK_CZAT

na

#define STANDARDOWY_CZAT
//#define KOLOROWY_CZAT
#define DZWIEK_CZAT

Załączone pliki


  • +
  • -
  • 1


#713006 [ROZWIĄZANE] Problem ze strefą admina

Napisane przez Misiaczek ;c w 09.10.2015 14:50

Długie Wczytywanie Strefy Admina Fix sprawdź czy masz ten fix, bo może to powodować błąd


  • +
  • -
  • 1


#712833 Wybór odpowiedniej płyty głównej do 100zł

Napisane przez Misiaczek ;c w 06.10.2015 07:03

http://allegro.pl/in...5710055898.html

 

http://allegro.pl/pl...5690975078.html

 

xD


  • +
  • -
  • 1