Jak pobrać jakich entów dotyka gracz w danym momencie
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.
|
Guest Message by DevFuse
Których entow dotyka
Temat rozp. DarkGL, 13.08.2010 21:23
5 odpowiedzi w tym temacie
#1
Napisano 13.08.2010 21:23
#2
Napisano 13.08.2010 22:17
Hmm, całkiem ciekawe pytanie. Może coś w ten gust, ale o parametry funkcji nie pytaj bo nie wiem.
#include < amxmodx >
#include < engine >
public plugin_init( ) {
register_touch( "player", "*", "HookTouch" );
}
public HookTouch( ... ) {
//...
}
Użytkownik Ortega edytował ten post 13.08.2010 22:17
#3
Napisano 13.08.2010 23:33
Ogólnie to byt dotknięty (touched) i dotykający (toucher)
Musisz pamiętać, że czasem gracz dotknie bytu, a czasem byt dotknie gracza, więc mamy drugi przypadek
Przykładowy kod:
Jakbyś taki hook nie pozwala Ci zrealizować tego co wymyśliłeś, przyda się tablica z czasami ostatnich dotknięć
public HookTouch(touched, toucher) { }
Musisz pamiętać, że czasem gracz dotknie bytu, a czasem byt dotknie gracza, więc mamy drugi przypadek
register_touch( "*", "player", "HookTouch2" );
Przykładowy kod:
#include <amxmodx> #include <engine> public plugin_init( ) { register_touch( "player", "*", "HookTouch" ); register_touch( "*", "player", "HookTouch2" ); } public HookTouch2(touched, toucher) HookTouch( toucher, touched); public HookTouch( touched, toucher) { if(is_user_alive(touched)){ //jeśli gracz dotknie elementu mapy to toucher = 0 client_print(0, print_chat, "Gracz %d dotyka byt %d", touched, toucher); } }
Jakbyś taki hook nie pozwala Ci zrealizować tego co wymyśliłeś, przyda się tablica z czasami ostatnich dotknięć
new Float:gfTouch[33][512];gracz ID dotknął ostatnio byt Ent w chwili gfTouch[ID][Ent]
#4
Napisano 14.08.2010 07:36
może opisze bardziej co chcę zrobić
chcę pobrać wszystkie enty które dotyka gracz w tym momencie np.
get_user_touching_ents(id,tablica)
i w tablicy dostaje id entów które dotyka
chcę pobrać wszystkie enty które dotyka gracz w tym momencie np.
get_user_touching_ents(id,tablica)
i w tablicy dostaje id entów które dotyka
#5
Napisano 14.08.2010 16:52
W silniku HL1 nie ma czegoś takiego jak czy nadal dotykasz czegos... Jedyne zblizone, to flaga czy stoisz na ziemi (czy wisisz w powietrzu). Wszystko w silniku jest odpalane przy dotknieciu, a czy nadal dotyka jest nie określone... Dlatego np. gdy stoisz w bs'ie to co frame (serwera?) odpala sie touch tak samo z buyzone.
Napisz jak chcesz używać tej funkcji, może da się to trochę przerobić.
Napisz jak chcesz używać tej funkcji, może da się to trochę przerobić.
#6
Napisano 19.08.2010 11:27
hmm a co zwroci ExecuteHam(Ham_Touch...) dla 2 bytow //nigdy nie testowalem takiego rozwiazania ale to chyba nie dziala jak fake_touch
Manual ponad wszystko, konsola ponad manual :&
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych