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

Wykrycie wcisnięcia klawisza B (komenda buy)popatrz na tytuł


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

#1 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:270
Offline

Napisano wczoraj, 00:23

Wymagania:

Rehlds + ReGameDLL_CS + mp_buy_anywhere 1/2/3 lub plugin Buyzone Range

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Client buy open"
#define VERSION "1.0"
#define AUTHOR "fresh"

new msg_buyclose

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("client_buy_open","clcmd_client_buy_open")
	msg_buyclose = get_user_msgid("BuyClose")
}

public clcmd_client_buy_open(id)
{
	client_print(id,3,"Wcisnąłem [B] na klawiaturze!")
	send_buyclose(id)
}

public send_buyclose(id)
{
	if(!is_user_connected(id))
		return;
		
	message_begin(MSG_ONE ,msg_buyclose,_,id)
	message_end()
}

Jak to działa?

 

- Buyzone jest dostępny na całej mapie

- Gracz wciska klawisz B, gra otwiera mu VGui buymenu

- Klient gry wysyła do serwera informacje o otwarciu buymenu (komenda "client_buy_open")

- Serwer zamyka buymenu poprzez wysłanie message "BuyClose" - ten sam co podczas wybiegnięcia z buyzone

 

Efekt: Możemy zbindować cokolwiek pod klawisz B

 

Wady: Na serwerze po wciśnięciu B wyskoczy nam standardowe buymenu z csa na czas *ping_gracza* x 2, na lanie buymenu będzie praktycznie niezauważalne 


  • +
  • -
  • 0

Cześć


#2 Anonymuss

    Profesjonalista

  • Użytkownik

Reputacja: 77
Zaawansowany

  • Postów:219
  • Imię:Anonimowy
  • Lokalizacja:Polska
Offline

Napisano wczoraj, 14:32

Dopisz że nie działa gdy wyłączy się vgui: setinfo _vgui_menus 0


  • +
  • -
  • 0

#3 rzeznik9871

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:270
Offline

Napisano wczoraj, 16:21



Dopisz że nie działa gdy wyłączy się vgui: setinfo _vgui_menus 0

Racja, dla pełnej kompatybilności z wyłączonym vgui plugin powinien wyglądać tak:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Client buy open"
#define VERSION "1.0"
#define AUTHOR "fresh"

new msg_buyclose

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("buy","clcmd_buy")	// Rejestrujemy otwarcie sklepu z wylaczonym vgui
	
	register_clcmd("client_buy_open","clcmd_client_buy_open")	// Rejestrujemy otwarcie sklepu z wlaczonym vgui
	msg_buyclose = get_user_msgid("BuyClose")
}

public clcmd_buy(id)
{
	client_print(id,3,"Wcisnąłem [B] na klawiaturze!!! przy wylaczonym vgui menu...")
	
	return PLUGIN_HANDLED_MAIN	// Blokujemy wyświetlenie standardowego menu broni 
}

public clcmd_client_buy_open(id)
{
	client_print(id,3,"Wcisnąłem [B] na klawiaturze!")
	send_buyclose(id)	// Zamykamy okno vgui menu broni
}

send_buyclose(id)
{
	if(!is_user_connected(id))
		return;
		
	message_begin(MSG_ONE ,msg_buyclose,_,id)
	message_end()
}

  • +
  • -
  • 0

Cześć





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

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