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

Oznaczenie bs spritesem


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

#1 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 19.03.2014 22:29

Witam chcialbym sie dowiedziec jak moge oznaczyc BS spritesem? Czyli gdy ktos spojrzy np w strone bs to nad nim bedzie sie wyswietlac sprite's.
  • +
  • -
  • 0

b35020692_qesnxqa.png


#2 wiwi249

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:440
  • GG:
  • Imię:Wiktor
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 19.03.2014 22:46

Jest na to sposób, musisz dodać sobie do pluginu najpierw stocki, pochodzą z CSO NST:
stock create_icon_origin(id, ent, sprite) // By sontung0 [czyli autora pierwszych CSO-NST]
{
    if (!pev_valid(ent)) return;
    
    new Float:fMyOrigin[3]
    entity_get_vector(id, EV_VEC_origin, fMyOrigin)
    
    new target = ent
    new Float:fTargetOrigin[3]
    entity_get_vector(target, EV_VEC_origin, fTargetOrigin)
    fTargetOrigin[2] +=50.0
    
    if (!is_in_viewcone(id, fTargetOrigin)) return;

    new Float:fMiddle[3], Float:fHitPoint[3]
    xs_vec_sub(fTargetOrigin, fMyOrigin, fMiddle)
    trace_line(-1, fMyOrigin, fTargetOrigin, fHitPoint)
                            
    new Float:fWallOffset[3], Float:fDistanceToWall
    fDistanceToWall = vector_distance(fMyOrigin, fHitPoint) - 10.0
    normalize(fMiddle, fWallOffset, fDistanceToWall)
    
    new Float:fSpriteOffset[3]
    xs_vec_add(fWallOffset, fMyOrigin, fSpriteOffset)
    new Float:fScale
    fScale = 0.01 * fDistanceToWall
    
    new scale = floatround(fScale)
    scale = max(scale, 1)
    scale = min(scale, 3) //liczba wartości zmiany skali ikonki kiedy się do niej przybliżamy lub oddalamy
    scale = max(scale, 1)

    te_sprite(id, fSpriteOffset, sprite, scale, 30) // to 30 to jasność ikonki skala 0 [ciemna]-255[jaskrawa]
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness) // By sontung0
{    
    message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
    write_byte(TE_SPRITE)
    write_coord(floatround(origin[0]))
    write_coord(floatround(origin[1]))
    write_coord(floatround(origin[2]))
    write_short(sprite)
    write_byte(scale)
    write_byte(brightness)
    message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul) // By sontung0
{
    new Float:fLen = xs_vec_len(fIn)
    xs_vec_copy(fIn, fOut)
    
    fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
    fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}
Później dla każdego gracza PreThink sobie ustaw i w tej funkcji jakaś pętla, która dla każdego BS będzie uruchamiała tę funkcję (nie wiem jak to najlepiej zrobic, pewnie jakies fm_find_ent_by_class albo cos, licze na pomoc).
create_icon_origin(id, byt_bs, twoj_sprite)

  • +
  • -
  • 1

Wykonuję strony internetowe, zlecenia AMXX i HLDS - w tym pisanie pluginów, ogarnianie serwerów, edycja i tworzenie modeli.

Potrzebujesz czegoś? Pisz!

 

"śpieszmy się pisać posty, tak szybko banują..." ~ sebul





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

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