Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Jak zablokować dany klawisz?


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

#1 IntelCom

    Wszechwiedzący

  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 19.01.2015 13:59

Witam,

 

W jaki sposób mogę zablokować w pluginie użycie danego klawiszu np. B (kupowanie broni)?


  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1279
Godlike

  • Postów:2371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Tomaszów Mazowiecki
Offline

Napisano 19.01.2015 14:04

klawisza nia zablokujesz.

 

Bind tak.

 

Jednak najlepiej żeby zablokować kupno broni jest usuwanie spawna (bytu) od kupowania lub ukrywanie tego u gracza (ukrycie ikonki i możliwośći).

 

 

 

ogólnie bind sie blokuje tak:

register_clcmd("bind_costam", "Zablokuj")

...

public Zablokuj(id) return PLUGIN_HANDLED;

Jednak dla niektórych bindów (np pewnie E), ta metoda zawiedzie, więc należy użyć innych metod.

 

Jeżeli chcesz osiągnąć zablokowanie kupna broni, też należy użyć innej metody

register_message(107, "msg_StatusIcon");

...

public msg_StatusIcon(msgid, dest, id)
{
	new szIcon[8];
	get_msg_arg_string(2, szIcon, 7);
	
	if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
	{
		set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 IntelCom

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 19.01.2015 14:09

A dlaczego tablica 8 elementowa ?

new szIcon[8]

  • +
  • -
  • 0

#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1279
Godlike

  • Postów:2371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Tomaszów Mazowiecki
Offline

Napisano 19.01.2015 14:12

	new szIcon[8];
	get_msg_arg_string(2, szIcon, 7);

Bo pobieramy tekst, a wiemy, że nasz tekst i tak maksymalnie może mieć 7 znaków (ten tekst to "buyzone"), a dodatkowe 8 miejsce na zakończenie stringu (to jest wiadomosć dla silnika, gdzie jest koniec stringu)


  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 IntelCom

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 100
Zaawansowany

  • Postów:500
  • GG:
  • Imię:Dawid
  • Lokalizacja:Opole
Offline

Napisano 19.01.2015 14:16

A tutaj dlaczego 107?

register_message(107, "msg_StatusIcon");

A tu 235?

set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));

  • +
  • -
  • 0

#6 psilocybe

    Toasty!

  • Power User

Reputacja: 246
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 19.01.2015 14:33

Ty nie chcesz zablokować klawisza, tylko usunąć na czas rozgrzewki buyzone.

 

Najprostszy kod jaki widziałem:

#include <amxmodx>
#include <hamsandwich>

public plugin_precache()
    RegisterHam(Ham_Spawn,"func_buyzone","buyZoneSpawn")
   
public plugin_init()
    register_plugin("Remove Buyzone", "1.0", "Can't remember")
   
public buyZoneSpawn(id)
    return HAM_SUPERCEDE;

Byt buyzone sam się zrespawnuje w nowej rundzie, więc usuwaj go tylko podczas rundy rozgrzewkowej.


  • +
  • -
  • 1

Dołączona grafika

Dołączona grafika





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

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