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

Kliknięcie guzika w prethinku


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

#1 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 23.08.2008 13:23

Jednym z sposobow wykrycia guzika i przypisania do niego akcji jest taki:
#include <amxmodx>
#include <amxmisc>
#include <engine>

public client_PreThink(id)
{
	new button = get_user_button(id)
	
	if(button & IN_USE) client_print(0,print_chat,"Elo")
}
Tylko, ze owy scrypt ma straszna wade - jast wielokrotnie wywolywany (paredziesiat razy na sekunde, az do puszczenia guzika).

Oto 2 skuteczne metody (prawie to samo tylko jeden dziala w momencie nacisniecia a drugi w czasie puszczenia guzika).

#include <amxmodx>
#include <amxmisc>
#include <engine>

new zmienna[33]

public client_PreThink(id)
{
	new button = get_user_button(id)
	
	if(zmienna[id]==0 && button & IN_USE) client_print(0,print_chat,"Elo")
	
	if(button & IN_USE) zmienna[id] = 1
	else zmienna[id] = 0
}


#include <amxmodx>
#include <amxmisc>
#include <engine>

new zmienna[33]

public client_PreThink(id)
{
	new button = get_user_button(id)
	
	if(zmienna[id]==1 && !(button & IN_USE)) client_print(0,print_chat,"Elo")
	
	if(button & IN_USE) zmienna[id] = 1
	else zmienna[id] = 0
}


Guziki:
#define IN_ATTACK		(1<<0)
#define IN_JUMP			(1<<1)
#define IN_DUCK			(1<<2)
#define IN_FORWARD		(1<<3)
#define IN_BACK			(1<<4)
#define IN_USE			(1<<5)
#define IN_CANCEL		(1<<6)
#define IN_LEFT			(1<<7)
#define IN_RIGHT		(1<<8)
#define IN_MOVELEFT		(1<<9)
#define IN_MOVERIGHT		(1<<10)
#define IN_ATTACK2		(1<<11)
#define IN_RUN			(1<<12)
#define IN_RELOAD		(1<<13)
#define IN_ALT1			(1<<14)
#define IN_SCORE		(1<<15)

PS. nie mialem okazji przetestowac, wiec jakby cos nie dzialalo to dajcie znac ;-)
PS2. Guziki sa zdelkarowane w module Engine wiec nie musicie tego dodawac u siebie ^^
PS3. [id] - zapomnialem dodac przy zmiennej :P
  • +
  • -
  • 4

#2 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 05.04.2010 13:23

troszke stary temat ale napisze gdyby ktos chcial :P
#include <amxmodx>
#include <amxmisc>
#include <engine>

public client_PreThink(id)
{	
	if(get_user_button(id) & IN_USE && !(get_user_oldbutton(id) & IN_USE)) client_print(0,print_chat,"Elo")
}



i nie trzeba bedzie zmiennych :)
  • +
  • -
  • 0

#3 Miczu

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 05.04.2010 13:48

Tak wiem, po prostu bardzo stary temat :F
  • +
  • -
  • 0




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

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