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

Których entow dotyka


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 13.08.2010 21:23

Jak pobrać jakich entów dotyka gracz w danym momencie
  • +
  • -
  • 0

#2 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

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

  • +
  • -
  • 0

#3 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 13.08.2010 23:33

Ogólnie to byt dotknięty (touched) i dotykający (toucher)
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]
  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

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 ;)
  • +
  • -
  • 0

#5 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

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ć.
  • +
  • -
  • 0

#6 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

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 :D
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

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) :D




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

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