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

"Ignorowanie" sciany przy strzale.


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

#1 Owner123

    Wszechpomocny

  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 04.10.2010 16:58

Jest jakiś sposób aby po strzale przez ścianie nie zmniejszało obrażeń? Próbowałem użyć TraceAttack oraz FM_TraceLine ale żadne z tych rzeczy nie dało efektu.
  • +
  • -
  • 0

#2 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

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

Napisano 04.10.2010 17:18

sprobuj "podpatrzeć" sposob z advanced bulletdamage (czy jak to sie nazywa) ktory nie pokazuje obrazen przez sciane i blokowac dmg
register_forward(FM_TraceLine, "fw_traceline", 1);
+
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace) 
{

    if(id<1||id>32)
        return FMRES_IGNORED;
        
    if(!is_user_connected(id) || is_user_bot(id))
        return FMRES_IGNORED;

    // not a player entity, or player is dead
    if(!is_user_alive(id))
        return FMRES_IGNORED;
        
    if(!(pev(id,pev_button) & IN_ATTACK))
        return FMRES_IGNORED;
        
        
    new hit = get_tr2(trace, TR_pHit)    
    
    
    if(hit<1||hit>32)
        return FMRES_IGNORED;
    if(is_valid_ent(hit))
    {
        if(is_user_alive(hit))
        {
            if(tutaj_warunek_czy_jest_za_sciana)
                set_tr(TR_flFraction,1.0)
        }
        
    
    }
    return FMRES_IGNORED;
}
(to powinno dzialac)

Użytkownik kyku edytował ten post 04.10.2010 17:19

  • +
  • -
  • 1

#3 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 04.10.2010 18:43

Mam takiego ifa:
if(player_b_wallbang[id] && !ExecuteHam(Ham_IsPlayer, hit))
set_tr2(trace, TR_flFraction, 1.0)

I strzaly nadal tracą na sile. Przy twoim to strzaly przelatywaly mi nawet przez graczy :P
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 04.10.2010 21:09

po set zwróć FMRES_HANDLED
  • +
  • -
  • 0

#5 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 05.10.2010 17:15

mozna tez w pre- take_damage zwracac HAM_SUPERCEDE jesli nie spelniony warunek
if(fm_is_ent_visible(attacker,id))

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

#6 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 05.10.2010 20:42

Chodzi o to aby po strzale przez ściane dmg był taki sam jak przy normalnym strzale ...
  • +
  • -
  • 0

#7 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 05.10.2010 23:37

Jest sposób na około, ale mogę tylko opisać o co chodzi, nie mam niestety na tyle czasu, aby się w to bawić.
Trzeba zrobić liste możliwych dmg ze wszystkich broni i wszystkich zakresów dystansów między graczami, sprawdzić traceline czy strzał idzie przez ściane, jeśli tak to odpowiednią zmienną globalną (wcześniej utworzoną na te potrzeby) zmienić na true, a w ham_takedamage sprawdzać czy strzał szedł przez ściane (za pomocą owej zmiennej) i jeśli tak ustawiać obrażenia zależnie od dystansu i broni.
  • +
  • -
  • 0

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 06.10.2010 15:29

albo po prostu zrobić własnego TraceLine`a
  • +
  • -
  • 0

#9 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 07.10.2010 12:32

Własnego Traceline'a ? Mógłbyś to bardziej opisać lub podać jakiś przykład ? :)
  • +
  • -
  • 0

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.10.2010 13:37

Zwrócenie HANDLED nie zadziałało?

Jak chcesz własnego, to proszę.
id- atakujący
victim- ofiara

new Float:start[3] ,Float:end[3];
pev(id, pev_origin, start);
pev(victim, pev_origin, end);
	
new tr = create_tr2();
engfunc(EngFunc_TraceLine, start, end, IGNORE_MONSTERS, id, tr);
	
//get_tr2(tr)....
	
free_tr2(tr);

  • +
  • -
  • 0

#11 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 07.10.2010 16:50

Tak, zwrocilem HANDLED i nadal to samo.
Mam taki kod:
new tr = create_tr2();
new Float:fVictimOrigin[3];
new Float:fAttackerOrigin[3];
pev(id, pev_origin, fAttackerOrigin);
pev(hit, pev_origin, fVictimOrigin);
engfunc(EngFunc_TraceLine, fAttackerOrigin, fVictimOrigin, IGNORE_MONSTERS, id, tr);
if(!fm_is_ent_visible(id, hit))
set_tr2(tr, TR_flFraction, 1.0);
free_tr2(tr);
return FMRES_SUPERCEDE;

I nadal strzaly traca na sile przy strzale przez sciane :s
  • +
  • -
  • 0

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.10.2010 17:04

a traceline złapałeś z post=1?


co do kodu:
no na pewno nie w ten sposób xD

jak chcesz skorzystać z rady grankee to zamiast modyfikować trace modyfikuj obrażenia; ja Ci podałem tylko inny sposób (może lepszy, a może nie) na wykrycie czy gracze się widzą
  • +
  • -
  • 0

#13 Owner123

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 146
Zaawansowany

  • Postów:331
  • Lokalizacja:Barty ;]
Offline

Napisano 07.10.2010 17:30

Na wykrycie czy gracze mnie widzą mam fm_is_ent_visible ^^
Hmm, widzę że sporo roboty będzie z tym ;P No dobra. Widzę że wszystko już wyczerpane. Temat do zamknięcia.
  • +
  • -
  • 0




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

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