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.
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.
|
Guest Message by DevFuse
Oznaczenie bs spritesem
Temat rozp. Linux', 19.03.2014 22:29
1 odpowiedź w tym temacie
#2
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)
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