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
 

Jcr - zdjęcie

Jcr

Rejestracja: 06.11.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.08.2015 15:49
-----

#704187 Blokowanie ataku

Napisane przez Rivit w 27.06.2015 18:28


register_forward(FM_CmdStart,"CmdStart");

public CmdStart(id, uc_handle, seed)
{
if(!is_user_connected(id) || !is_user_alive(id))
return PLUGIN_CONTINUE;

if(ma_zmienna[id])
set_uc(uc_handle, UC_Buttons, get_uc(uc_handle, UC_Buttons) & ~IN_ATTACK);

return PLUGIN_CONTINUE;
}

 

Nie żebym sie czepiał, ale nienawidzę jakis niedokładności/lekkich błędów:

- to forward z fakemety, używaj więc return FMRES_*

- sprawdz czy gracz jest zywy zamiast sprawdzac czy jest podlaczony i zywy (wsadź alive do warunku nr.2)

- czy po zmienieniu czegos nie powinnismy zwrocic FMRES_HANDLED?

#define FMRES_IGNORED	1	// Calls target function, returns normal value
#define FMRES_HANDLED	2	// Tells metamod you did something, still calls target function and returns normal value
#define FMRES_OVERRIDE	3	// Supposed to still call the target function but return your value instead
							// however this does not work properly with metamod; use supercede instead.
#define FMRES_SUPERCEDE	4	// Block the target call, and use your return value (if applicable)

Ja bym użył kodu Asiap, zamiast hookować forward, który się wykonuje bardzo często...


  • +
  • -
  • 2


#704185 Blokowanie ataku

Napisane przez Asiap w 27.06.2015 17:48


A da się zrobić tak, żeby nie podawać czasu, tylko 1 komenda na włączenie 2ga na wyłączenie?

Wyłączanie:

set_pdata_float(id, 83, 0.0);

  • +
  • -
  • 1


#704184 Blokowanie ataku

Napisane przez Linux' w 27.06.2015 16:54

Zamiast strzalu lepiej zablokowac caly klawisz. Sprobuj w ten sposob:

register_forward(FM_CmdStart,"CmdStart");

public CmdStart(id, uc_handle, seed)
{
    if(!is_user_connected(id) || !is_user_alive(id))
        return PLUGIN_CONTINUE;

    if(ma_zmienna[id])
        set_uc(uc_handle, UC_Buttons, get_uc(uc_handle, UC_Buttons) & ~IN_ATTACK);

    return PLUGIN_CONTINUE;
}


  • +
  • -
  • 2


#704182 Blokowanie ataku

Napisane przez Asiap w 27.06.2015 15:03

new Float:fTime = 60.0; //czas blokady strzelania
set_pdata_float(id, 83, fTime);

  • +
  • -
  • 1


#704044 Problem z rejestracją komendy konsolowej

Napisane przez WeBsteR w 25.06.2015 22:08

Hmm spróbuj:

register_concmd("amx_mycommand","MyFunction",ADMIN_KICK,"Description of the command") 

czyli:

register_concmd("kup","kup_kup",ADMIN_KICK,"kup")

dalej:

public kup_kup(id,level,cid){

    if (!cmd_access(id,level,cid,1))

        return PLUGIN_HANDLED

    client_print(id,print_chat,"Very good! Dziala!")

    return PLUGIN_CONTINUE

}

Na moje oko to powinno działać.

 

  • +
  • -
  • 1


#704049 Problem z rejestracją komendy konsolowej

Napisane przez Asiap w 26.06.2015 03:16

#include <amxmodx>

public plugin_init()
{
	register_concmd("amx_buy", "ConCmdBuy", ADMIN_KICK);
}

public ConCmdBuy(id, iBitFlags) {
	if(~get_user_flags(id) & iBitFlags)
	{
		console_print(id, "Nie masz dostepu do tego!");
		return;
	}
	console_print(id, "Very good! Dzialczy!");
}

  • +
  • -
  • 1


#704102 Problem z rejestracją komendy konsolowej

Napisane przez sebul w 26.06.2015 15:55

Co do "Unknown command", to już zostało tutaj napisane kilka razy czemu tak się dzieje, ale chyba ktoś nie czyta...
Zajrzyj do tego tematu -> http://amxx.pl/topic...menu-przykłady/i pobierz paczkę pluginów, tam masz przykłady, które powinny Ci pomóc zrozumieć tworzenie akcji na komendę.
  • +
  • -
  • 1


#703936 [ROZWIĄZANE] Detekcja broni hamem

Napisane przez Asiap w 24.06.2015 19:47

if(weapon == CSW_GLOCK18 || CSW_P228 || CSW_HEGRENADE || CSW_C4 || CSW_MAC10 || CSW_SMOKEGRENADE || CSW_ELITE || CSW_FIVESEVEN || CSW_UMP45 || CSW_USP || CSW_MP5NAVY || CSW_TMP || CSW_FLASHBANG || CSW_DEAGLE || CSW_KNIFE)

na

if(weapon == CSW_GLOCK18 || weapon == CSW_P228 || weapon == CSW_HEGRENADE || weapon == CSW_C4 || weapon == CSW_MAC10 || weapon == CSW_SMOKEGRENADE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN || weapon == CSW_UMP45 || weapon == CSW_USP || weapon == CSW_MP5NAVY || weapon == CSW_TMP || weapon == CSW_FLASHBANG || weapon == CSW_DEAGLE || weapon == CSW_KNIFE)
if(weapon == CSW_SCOUT || CSW_AWP)

na

else if(weapon == CSW_SCOUT || weapon == CSW_AWP)




Lub

new iBitWeapons = pev(id, pev_weapons);
if(iBitWeapons &= ~(1<<CSW_SCOUT|1<<CSW_AWP))
{
	ColorChat(id, RED, "[DEBUG]^x04 GRUPA BRONI 2");
}
else
{
	ColorChat(id, RED, "[DEBUG]^x04 GRUPA BRONI 1");
}

  • +
  • -
  • 1


#703682 [ROZWIĄZANE] Jak sprawdzić, czy gracz zmienił broń

Napisane przez Asiap w 22.06.2015 07:47

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

public plugin_init() {
	new szName[24];
	for(new i = 1; i <= 30; i++)
	{
		if(i == 2 || !get_weaponname(i, szName, 23))
		{
			continue;
		}

		RegisterHam(Ham_Item_Deploy, szName, "ItemDeploy", 1);
	}
}

public ItemDeploy(ent) {
	new id = get_pdata_cbase(ent, 41, 4);
	new szWeapon[24];

	if(!get_weaponname(get_pdata_int(get_pdata_cbase(id, 373), 43, 4), szWeapon, 23))
	{
		return;
	}

	client_print(id, print_chat, "Wyciagnales bron ^"%s^"", szWeapon);
}

  • +
  • -
  • 1


#680106 [ROZWIĄZANE] Nie wyświetla się menu w pluginie gunshop

Napisane przez ogieR8 w 02.01.2015 20:18

Nie mam czasu analizować, ale dla pewności.. 

"gun_shop"

wpisałeś tego CVARa z wartością inną niż "1" do amxx.cfg ? Wpisując komendę - żyłeś ? ;)


  • +
  • -
  • 1


#680129 [ROZWIĄZANE] Nie wyświetla się menu w pluginie gunshop

Napisane przez ogieR8 w 02.01.2015 20:55

A cokolwiek działa ? Sprawdź czy masz go w liście pluginów do wyłączenia (taka możliwość) i ew. sprawdź logi, powinno Cie nimi zasypać w takim razie. Chyba.. że masz inny plik, który blokuje wiadomości na say zaczynające się od "/" <- standardowo sa to komendy ;) Nie wiem, różne założenia.


  • +
  • -
  • 1


#680132 [ROZWIĄZANE] Nie wyświetla się menu w pluginie gunshop

Napisane przez ogieR8 w 02.01.2015 21:10


/drshop działa więc to nie jest żadne blokowanie wiadomości

 

Nie koniecznie, zależy od kolejności na plugins.ini


  • +
  • -
  • 1


#680138 [ROZWIĄZANE] Nie wyświetla się menu w pluginie gunshop

Napisane przez ogieR8 w 02.01.2015 21:14

new gMsgItemPickup
gMsgItemPickup = get_user_msgid( "ItemPickup" );
register_event( "CurWeapon", "HookCurWeapon", "be", "1=1" );
RegisterHam( Ham_Player_Jump, "player", "bacon_playerJumping" );

i wiele innych, których nie powinno tutaj być. Tworzysz zmienne, przydzielasz im 'wartość', ale nie korzystasz z nich. Łapiesz wydarzenia, a potem nie odwołujesz się do nich w kodzie, usuń to co zbędne. Może się zdziwisz, gdy skończysz ;)

 

Masz tutaj troszkę nieco ułożony kod http://wklej.to/rHKkl - czytelniejszy na pewno.


  • +
  • -
  • 1