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

Jak sprawzić czy dany gracz jest widzialny ?


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

#1 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 19.07.2012 17:08

Witam mam pytanie jak sprawdzić czy gracz jest widzialny bo za pomocą is_visible mi nie działa ;/
fm_is_visible też nie :D

tzn.

Chce zrobić coś takiego że w client_prethink sprawdza czy gracz jest widziany przez kogoś

a dokładniej czy patrzy na niego.. ?

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 20.07.2012 07:50

http://amxx.pl/topic...ci-gracza-bytu/

//czekaj, jezeli chcesz sprawdzic czy patrzy na niego, uzyj get_user_aiming(id, target, body); //target == id na ktorego patrzysz
  • +
  • -
  • 0

#3 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 20.07.2012 15:37

Get_user_aiming sprawdza czy gracz ma na celowniku cel
A mi chodzi o to czy na ekranie jest gracz

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 20.07.2012 16:53

Użyj is_in_viewcone.
/* SDK function - checks if an origin is in an entity's view cone
 * Set use3d to 1 to do the calculation in 3D. Otherwise it will be in 2D.
 */

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 22.07.2012 01:39

to że jest w viewcone niedowodzi jedoznacznie że jest widoczny może być ale nie musi ;)
sebul (02.08.2012 19:12):
Ale wyżej autor napisał "A mi chodzi o to czy na ekranie jest gracz", a viewcone właśnie to sprawdza.

  • +
  • -
  • 1

#6 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 02.08.2012 17:25

Właśnie sprawdzałem, sorka za odkopanie, ale funkcja bardzo by mi się przydała a w adv ence bullet dam age jest taka opcja ze gdy się strzeli przez ścianę to nie pokazuje ile się zadało obrażeń ( to jest na cvary ) I chyba musi sprawdzać czy grac jest widoczny albo jakiś byt nie przeszkadza w jego zobaczeniu.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 02.08.2012 19:17

Sprawdzałeś fm_is_ent_visible? Albo spróbuj tak
new Float:Iorigin[3], Float:Torigin[3], Float:Rorigin[3];
entity_get_vector(id, EV_VEC_origin, Iorigin);
entity_get_vector(target, EV_VEC_origin, Torigin);

trace_line(id, Iorigin, Torigin, Rorigin);

if(get_distance_f(Torigin, Rorigin) < 30.0) {
// id widzi target
}


Ogólnie gdybyś od razu napisał dokładnie o co Ci chodzi, to odpowiedź miałbyś dużo szybciej.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 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 04.08.2012 16:18


    /**
     * Description:        Unsure, I assume it is whether or not the other entity is visible to this entity.
     * Forward params:    function(this, idOther);
     * Return type:        Integer (boolean).
     * Execute params:    ExecuteHam(Ham_FVisible, this, idOther);
     */
    Ham_FVisible,

w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami
  • +
  • -
  • 1
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

#9 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 04.08.2012 16:21

Q' timestamp='1344093499' post='440663']
w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami

W bullet damage jest http://amxx.pl/dokum...-is-ent-visible
Chyba ktoś to już wyżej podał
G[o]Q (04.08.2012 16:24):
tak a fm_is_ent_visible dziala jak zwykly traceline i jest dla tych co nie ogarniają traceline'a lub tych którzy go czesto używają xD

  • +
  • -
  • 1

#10 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 04.08.2012 16:23

tutaj masz jeszcze kod który znalazlem z kiedyś ten kawalek jest odpowiedzialny za wybuch ent'a jak flash'a czyli jesli gracz patrzy na ent to mu zakrywa caly ekran jesli stoi tylem to polowe czyli rozwiązuje to chyba twój problem.

Funkcja wyszukuje graczy w zasięgu 700 unitów jest to kod z diablo więc kilka przeróbek by bylo potrzebnych

public flash_boom(ent){
    emit_sound( 0, CHAN_AUTO, "weapons/flashbang-1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
    
    //new id=pev(ent,pev_owner)
    
    new Float:forigin[3], origin[3]
    pev(ent,pev_origin,forigin)    
    FVecIVec(forigin,origin)
        
    new entlist[513]
    new numfound = find_sphere_class(0,"player",700.0,entlist,512,forigin)
        
    for (new i=0; i < numfound; i++)
    {        
        new pid=entlist[i]
        
        new wynik
        new Float:fAngle;
        if(fm_is_ent_visibles(pid, ent, fAngle) && fAngle <= 45.0)wynik=1
        else wynik=0

        if(player_class[pid]==Flasher) continue
        if(wynik)
            Display_Fade(pid,5600,5600,0,255,255,255,230)
        else
            Display_Fade(pid,5600,5600,0,255,255,255,160)
        
        
    }
    
    
    
    remove_entity(ent)
}

a tutaj stock fm_is_ent_visibles czyli troche przerobiona wersja z fm_util

stock bool:fm_is_ent_visibles(index, ent, &Float:fAngle, brush=0, ignoremonsters = 0){
    new Float:start[3], Float:view_ofs[3]
    pev(index, pev_origin, start)
    pev(index, pev_view_ofs, view_ofs)
    xs_vec_add(start, view_ofs, start);

    new Float:point[3];
    if(brush)
        fm_get_brush_entity_origins(ent, point);
    else
        pev(ent, pev_origin, point);
        
    new solid = pev(ent, pev_solid);
    set_pev(ent, pev_solid, SOLID_NOT);
    engfunc(EngFunc_TraceLine, start, point, ignoremonsters, index, 0)
    set_pev(ent, pev_solid, solid);

    //Angle
    start[0] = point[0] - start[0];
    start[1] = point[1] - start[1];
    start[2] = point[2] - start[2];
    xs_vec_normalize(start, start);
    
    new Float:view[3];
    pev(index, pev_v_angle, view);
    angle_vector(view, ANGLEVECTOR_FORWARD, view);
    
    fAngle = xs_vec_angle(view, start);
    
    //is visible?
    new Float:fraction
    get_tr2(0, TR_flFraction, fraction)
    if (fraction == 1.0)
        return true

    return false
}

  • +
  • -
  • 1
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

#11 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 10.08.2012 18:24


	/**
	 * Description:		Unsure, I assume it is whether or not the other entity is visible to this entity.
	 * Forward params:	function(this, idOther);
	 * Return type:		Integer (boolean).
	 * Execute params:	ExecuteHam(Ham_FVisible, this, idOther);
	 */
	Ham_FVisible,

w bullet_damage jest chyba zwykly traceline ktory sprawdza czy nic nie ma miedzy graczami



ExecuteHam(Ham_FVisible, this, idOther);


this = ?

idOther = ?


this to kto a id other to kogo ?

Edit ://


if(fm_is_ent_visibles(pid, ent, fAngle) && fAngle <= 45.0)wynik=1


pid to kto a ent to kogo ?


co to jest fAngle ?

tam po tym jest && fAngle < =45.0


To jest o kąt widzenia ? czyli 45 stopni w lewo i 45 stopni w prawo ?

Użytkownik PaTrIcKx edytował ten post 10.08.2012 18:27

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#12 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 11.08.2012 13:22

ent to to na co sie patrzy
pid to ten kto patrzy
fAngle to referencja więc ma być puste i jest to kąt

this to jest gracz dla którego wykonujesz funkcje
idOther to drugi gracz/ent

ten kawalek z ham'a sprawdza czy this ma na swoim ekranie idOther
  • +
  • -
  • 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

#13 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 11.08.2012 14:16

Czy ma na swoim ekranie - Nawet jeżeli jest za sciana ale na ekranie gracza?

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#14 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 11.08.2012 14:32

ehh jak gosc jest za scianą to masz go na ekranie?? widzisz go ? bo chyba nie
  • +
  • -
  • 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