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

Tworzenie/Animacja Enta (Engine)


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

#1 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 29.06.2011 16:05

*
Popularny

Napisałem sobie 2 funkcje do tworzenia i animacji entów. Myślę ze się może komuś przydać.

stock StworzEnta(szClassname[] = "info_target", Float:origin[3], Float:takedamage, Float:health, ent_classname[]="", model[]="", solid = SOLID_NOT, Float:mins[3], Float:maxs[3])
{
new ent = create_entity(szClassname)
entity_set_origin(ent, origin)
entity_set_float(ent, EV_FL_takedamage, takedamage)
entity_set_float(ent, EV_FL_health, health)
entity_set_string(ent, EV_SZ_classname, ent_classname)
entity_set_model(ent, model)
entity_set_int(ent, EV_INT_solid, solid)
entity_set_size(ent, mins, maxs)

return ent
}



stock AnimujEnta(index, sequence, Float: framerate = 1.0) 
{
entity_set_float(index, EV_FL_animtime, get_gametime());
entity_set_float(index, EV_FL_framerate, framerate);
entity_set_float(index, EV_FL_frame, 0.0);
entity_set_int(index, EV_INT_sequence, sequence);
}



Przykładowe użycie obydwu funkcji oraz gotowy plugin(w załączniku):

new Float:origin[3]
entity_get_vector(id, EV_VEC_origin, origin)
new Float:maxs[3] = {16.0,16.0,36.0}
new Float:mins[3] = {-16.0,-16.0,-36.0}
new albert = StworzEnta("info_target", origin, 1.0, 100.0, "albert_npc", "models/player/terror/terror.mdl", SOLID_BBOX, mins, maxs)
AnimujEnta(albert, 1)



Opinie negatywne jak i pozytywne mile widziane Dołączona grafika

Załączone pliki


Użytkownik MarWit edytował ten post 29.06.2011 16:10

  • +
  • -
  • 9

marwit-0.png


#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 04.07.2011 12:23

Istnieje funkcja do pobrania ustawień naturalnych dla konkretnej sekwencji modelu
native lookup_sequence(entity, const name[], &Float:framerate = 0.0, &bool:loops = false, &Float:groundspeed = 0.0);

W animowaniu bytów pomagają także kontrolery kości (jakby mięśnie). Dzięki kontrolerom możemy np. kręcić głową modeli ludzkich (barney, naukowcy, czyli też hosty)
native Float:set_controller(entity, controller, Float:value);
kontrolery są 4, ale modele nie zawsze udostępniają wszystkie, co prostsze nie mają ich wcale

Obie funkcje są częścią fakemety
  • +
  • -
  • 0

#3 MarWit

    The Chosen One

  • Autor tematu
  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 04.07.2011 13:17

R3X, jakbyś mógł to proszę żebyś napisał jak zastosować te kontrolery, bo już duzo razy widziałem je w rożnych skryptach ale nie wiedziałem jak działają.

Użytkownik MarWit edytował ten post 04.07.2011 13:18

  • +
  • -
  • 1

marwit-0.png


#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 04.07.2011 13:49

*
Popularny

Polecam ten program: Jed`s Half Life Model Viewer

Screen pomocniczy

Otwieramy model i przechodzimy w zakładkę bodyparts (1)
Mamy tam wybór kontrolera(2) i suwak z wartością(3). Zakres wartości możemy odczytać z Dumpingu(4, 5)

Wiemy teraz, że kontroler 0 odpowiada za obrót głowy o kąt <-60.0, 60.0> a kontroler 1 otwiera barneyowi usta w zakresie <0.0, 45.0>


Barney patrzy w swoje lewo i ma na wpół otwarte usta
set_controller(barney, 0, 60.0);
set_controller(barney, 1, 22.0);

  • +
  • -
  • 6

#5 MarWit

    The Chosen One

  • Autor tematu
  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 04.07.2011 13:59

Programik mam juz dłuższy czas (fajnie sie dekompiluje modele), wiedzialem jak wykozystas sequence ale nie kontolery. dzięki za wytłumaczenie, zresztą nie tylko mi się przyda :).

Użytkownik MarWit edytował ten post 14.07.2011 19:51

  • +
  • -
  • 1

marwit-0.png


#6 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 161
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 04.07.2011 13:59

można też takiego użyć ja takiego używam a nie widziałem o tym co R3X napisał, oczywiście ++
entity_set_byte(ent, EV_BYTE_controller1, 0);//od 0 do 255

Użytkownik Cypis' edytował ten post 04.07.2011 13:59

  • +
  • -
  • 0




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

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