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
 

Zdjęcie

szukam najskuteczniejszej blokady granatów na 10sekund po roz. nowej rundy


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 10.07.2015 15:27

Witam szukam najskuteczniejszego plugina czyli żeby nie dało się wyjąć granata na freezetime oraz przed freezetime i do blokady granatów na 10 sekund po rozpoczęciu nowej rundy oraz żeby nie obciążał zbytnio servera

 

do tej pory korzystałem z  pluginu

 

#pragma semicolon 0

#include <amxmisc>

#include <fakemeta>



#define PLUGIN "Nowy Plugin"

#define VERSION "1.0"

#define AUTHOR "Sn!ff3r"



new bool:mozna = true;



public plugin_init() {

    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_forward(FM_PlayerPreThink, "PlayerPreThink")

    register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)

    register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")

}



public Nowa_Runda()

{

    mozna = false;

    set_task(15.0,"odblokuj",666)

}



public odblokuj(){

    mozna = true;

}



public PlayerPreThink(id)

{

    if(!is_user_alive(id) || mozna){

        return FMRES_IGNORED

    }

    

    if(get_user_weapon(id) != CSW_HEGRENADE){

        return FMRES_IGNORED

    }

    

    set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK)

    set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK2)

    

    return FMRES_HANDLED

}



public UpdateClientData_Post(id, sendweapons, cd_handle)

{

    

    if(!is_user_alive(id) || mozna){

        return FMRES_IGNORED

    }

    

    if(get_user_weapon(id) != CSW_HEGRENADE){

        return FMRES_IGNORED

    }

    

    set_cd(cd_handle, CD_ID, 0)

    

    return FMRES_HANDLED

}

działa dobrze ale obciąża serva przez  PlayerPreThink


Użytkownik tytusek edytował ten post 10.07.2015 15:31

  • +
  • -
  • 0

#2 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 10.07.2015 18:42

Najskuteczniejszy typ blokady to ten ktory uzywales, blokuje on calkowicie caly klawisz nie bugujac animacji broni itp. Scal to z jakims innym pluginem w ktorym uzywasz prethinka/cmdstart to wszystko bedzie sie wywolywac za jednym razem.


  • +
  • -
  • 0

b35020692_qesnxqa.png


#3 tytusek

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 10.07.2015 22:51

Najskuteczniejszy typ blokady to ten ktory uzywales, blokuje on calkowicie caly klawisz nie bugujac animacji broni itp. Scal to z jakims innym pluginem w ktorym uzywasz prethinka/cmdstart to wszystko bedzie sie wywolywac za jednym razem.

wiem własnie że to najskuteczniejszy sposób ale obciąża mi to serva i szukam czegoś podobniejszego tylko optymalnego 


  • +
  • -
  • 0

#4 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 10.07.2015 22:59

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

forward grenade_throw(id, iGrenade, iWeapon);

new Float:g_fThrowTime[33];

public plugin_init()
{
	RegisterHam(Ham_Item_Deploy, "weapon_hegrenade", "GrenadeDeploy", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "GrenadeAttack");
}

public GrenadeDeploy(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	new Float:fWaitTime = g_fThrowTime[id] - get_gametime();

	if(fWaitTime > 0.0)
	{
		client_print(id, print_center, "Zaczekaj %.0f sekund", fWaitTime);
		set_pdata_float(ent, 46, fWaitTime, 4);
	}
}

public GrenadeAttack(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	new Float:fWaitTime = g_fThrowTime[id] - get_gametime();

	if(fWaitTime > 0.0)
	{
		client_print(id, print_center, "Zaczekaj %.0f sekund", fWaitTime);
		set_pdata_float(ent, 46, fWaitTime, 4);
		return HAM_SUPERCEDE;
	}
	return HAM_IGNORED;
}

public grenade_throw(id, iGrenade, iWeapon)
{
	if(iWeapon == CSW_HEGRENADE)
	{
		g_fThrowTime[id] = get_gametime() + 15.0; // czas blokady w sekundach
	}
}

  • +
  • -
  • 1

#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 11.07.2015 12:14

A gdyby ustawić przez pdata wartość nextattack? Gdzieś takie coś widziałem
  • +
  • -
  • 0

#6 tytusek

    Czempion

  • Autor tematu
  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 11.09.2015 18:06

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

forward grenade_throw(id, iGrenade, iWeapon);

new Float:g_fThrowTime[33];

public plugin_init()
{
	RegisterHam(Ham_Item_Deploy, "weapon_hegrenade", "GrenadeDeploy", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "GrenadeAttack");
}

public GrenadeDeploy(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	new Float:fWaitTime = g_fThrowTime[id] - get_gametime();

	if(fWaitTime > 0.0)
	{
		client_print(id, print_center, "Zaczekaj %.0f sekund", fWaitTime);
		set_pdata_float(ent, 46, fWaitTime, 4);
	}
}

public GrenadeAttack(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	new Float:fWaitTime = g_fThrowTime[id] - get_gametime();

	if(fWaitTime > 0.0)
	{
		client_print(id, print_center, "Zaczekaj %.0f sekund", fWaitTime);
		set_pdata_float(ent, 46, fWaitTime, 4);
		return HAM_SUPERCEDE;
	}
	return HAM_IGNORED;
}

public grenade_throw(id, iGrenade, iWeapon)
{
	if(iWeapon == CSW_HEGRENADE)
	{
		g_fThrowTime[id] = get_gametime() + 15.0; // czas blokady w sekundach
	}
}

odkop wiem 

ale plugin nie działa :X 


  • +
  • -
  • 0

#7 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 11.09.2015 21:32

Sposób z mojego serwera:

#include <amxmodx>
#include <hamsandwich>

new const g_szGrenadeNames[][] =
{
    "weapon_hegrenade",
    "weapon_smokegrenade",
    "weapon_flashbang"
};

new Float:g_fStartTime

public plugin_init() {
    register_plugin("Blokada Granatow", "v1.0", "Webster")
    register_logevent("Round_Start", 2, "1=Round_Start")

    for(new i=0; i<sizeof(g_szGrenadeNames); i++) {
        register_clcmd(g_szGrenadeNames[i], "BlockGrenade")
        RegisterHam(Ham_Weapon_PrimaryAttack, g_szGrenadeNames[i], "fwd_PrimaryAttack")
    }
}

public Round_Start()
    g_fStartTime = get_gametime()

public fwd_PrimaryAttack(this)
{
    if(get_gametime() - g_fStartTime > 15.0)
        return HAM_IGNORED

    return HAM_SUPERCEDE
}

public BlockGrenade(id)
{
    if(get_gametime() - g_fStartTime > 15.0)
        return PLUGIN_CONTINUE

    return PLUGIN_HANDLED
}

Może się przyda :)


  • +
  • -
  • 1
Zabijaka Gryps to mój autorytet!




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych