Skocz do zawartości

Rekomendowane odpowiedzi

Witam.

 

Mój kod wygląda w ten sposób: 

public bool IsClientColideWithWall(int client){
    float pos[3];
    GetClientEyePosition(client, pos);

    float angles[3];
    float endPos[3];
    float distance;

    Handle trace;

    bool nearWall = false;

    for(int angle = 0; angle < 360; angle+= 30){
        angles[0] = 0.0;
        angles[1] = float(angle);
        angles[2] = 0.0;

        trace = TR_TraceRayFilterEx(pos, angles, MASK_SOLID, RayType_Infinite, TraceFilter, client);

        if(TR_DidHit(trace)){
            TR_GetEndPosition(endPos, trace);

            distance = GetVectorDistance(endPos, pos, true);

            if(distance < 5)
                nearWall = true;
        }

        CloseHandle(trace);
    }
    return nearWall;
}

public bool TraceFilter(int entity, int mask, any data) {
    if(entity == data)
        return false;
    return true;
}

 

Powyższy kod cały czas zwraca FALSE.

Po usunięciu TraceFilter i zmianie TR_TraceRayFilterEx na TR_TraceRayEx kod zaczął cały czas zwracać TRUE.

 

Kod ma zwracać TRUE tylko wtedy gdy klient dotyka ściany,

Edytowane przez BlacKly
Odnośnik do odpowiedzi
Udostępnij na innych stronach
public bool IsClientColideWithWall(int client){
    float pos[3];
    GetClientAbsOrigin(client, pos);
    pos[2] += 25;

    float min[3];
    GetClientMins(client, min);

    float max[3];
    GetClientMaxs(client, max);

    min[0] -= 10;
    min[1] -= 10;

    max[0] += 10;
    max[1] += 10;

    Handle trace = TR_TraceHullFilterEx(pos, pos, min, max, MASK_SOLID, TraceFilter, client);

    if(TR_DidHit(trace))
        return true;
    
    CloseHandle(trace);
    return false;
}

public bool TraceFilter(int entity, int mask, any data){
    if(entity == data)
        return false;
    return true;
}

Powyższy kod działa dobrze. Do zamknięcia

 

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 4 tygodnie później...
  • Moderator poziom 2

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Sygnatura użytkownika

» Support: https://discord.com/invite/zMXt97R63v

» Steam: https://steamcommunity.com/id/pawelsteam/

» Discord: Paweł#8244

» PluginyCS: https://pluginycs.pl/profile/Pawel

» Przyjmuję zlecenia na paczki oraz pluginy.  «

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio przeglądający ten temat (5 użytkowników)

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...