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

[ROZWIĄZANE] Problem z ustawieniem bytu renderingu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 17.11.2014 19:02

Witam, mam taki kod:

public StworzEnta()
{
      new ent =  engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))

      if(!pev_valid(ent)) return 0;
      
      set_pev(ent, pev_classname, "granica_rushu")
      
      dllfunc(DLLFunc_Spawn, ent)
      
      new Float:mins[3], Float:max[3]
      mins[0] = float(origin_granica[0])
      mins[1] = float(origin_granica[2])
      mins[2] = float(origin_granica[4])
      max[0] = float(origin_granica[1])
      max[1] = float(origin_granica[3])
      max[2] = float(origin_granica[5])

      set_pev(ent, pev_mins, mins)
      set_pev(ent, pev_maxs, max)
      set_pev(ent, pev_solid, SOLID_TRIGGER)

      fm_set_user_rendering(ent, kRenderFxGlowShell, 0, 255, 0, kRenderGlow, 30) 
      
      return PLUGIN_CONTINUE

}

Jednak on nie działa, czyli ent nie ma zielonej.

 

Byt się tworzy (sprawdzalem komenda entity_dump), mins i max ma wlasciwe prowadzilem sobie linie do tych punktow).

 

Co może być przyczyną braku powłoki?


  • +
  • -
  • 0

#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 18.11.2014 14:51

Rozumiem, że widziałeś naocznie to entity w porządanym miejscu? Upewniam się, bo nie widzę żebyś ustawiał origin. m_eel widzi ten byt tam gdzie byś go chciał? sprawdź


  • +
  • -
  • 1

#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 18.11.2014 17:23

m_eel widzi byt

 

Zarejestrowałem sobie tucha dla tego bytu ale nic się nie dzieje


  • +
  • -
  • 0

#4 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 19.11.2014 04:23

Nie wiem jak jest teraz, ale 3 lata temu jak próbowałem zrobić dotykalne entity to w FM nie szło nijak.

Spróbuj użyć engine. i koniecznie entity_set_origin oraz entity_set_size a takze ustaw minsy i maxy. Nie jestem pewny, ale zeby dalo sie dotknac, a co za tym idzie wykryc touch forwardem trzeba ustawic solid_box ew solid_bsp


  • +
  • -
  • 1

#5 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 20.11.2014 17:54

Gdzie mam ustawić origin enta (na jaką wartość)?

 

I czym się różni rozmiar enta od jego origin ?   Nie czaję tego kompletnie. Rozmiar to rozmiar,a ent znajduje się w całym obszarze ustalonym w size. Może ktoś wytłumaczyć?


  • +
  • -
  • 0

#6 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 20.11.2014 19:17

origin to położenie, a size to rozmiar

masz tu przykladowy kod tworzacy byt obok Ciebie, baw się i testuj

new ent=create_entity("func_wall")
	entity_set_string(ent,EV_SZ_classname,"testowy_ent")
	entity_set_model(ent,model)
	new Float:origin[3]
	entity_get_vector(id,EV_VEC_origin,origin)
	origin[0]+=130
	new Float:mins[3]={-100.0,-100.0,-100.0}
	new Float:maxs[3]={100.0,100.0,100.0}
	entity_set_size(ent,mins,maxs)
	entity_set_origin(ent,origin)
	entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
	entity_set_int(ent,EV_INT_movetype,MOVETYPE_FLY)

  • +
  • -
  • 1

#7 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 20.11.2014 19:30

Dobra, a różnica między tym:

new ent=create_entity("func_wall")
	entity_set_string(ent,EV_SZ_classname,"testowy_ent")

Czym się różni classname od tego pierwszego?

 

 

 

 

Uzywam tego kodu i nie chce zaskoczyć:

public StworzEnta()
{
      new ent =  create_entity("info_target")

      if(!is_valid_ent(ent)) return 0;
      
      entity_set_string(ent, EV_SZ_classname, "granica_rushu")
      
      new Float:mins[3], Float:max[3];
      mins[0] = float(origin_granica[0])
      mins[1] = float(origin_granica[2])
      mins[2] = float(origin_granica[4])
      max[0] = float(origin_granica[1])
      max[1] = float(origin_granica[3])
      max[2] = float(origin_granica[5])

      entity_set_size(ent, mins, max)
      entity_set_origin(ent, mins)
      entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
            
      return PLUGIN_CONTINUE
}

  • +
  • -
  • 0

#8 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 21.11.2014 01:22

Uparty jesteś jak osioł:D Dałem Ci działający kod, wyciąłeś ostatnią linijkę i piszesz, że nie działa. 


  • +
  • -
  • 0

#9 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 21.11.2014 05:43

aaaa,
Nie zauwazylem movetype...

A czemu przy tworzeniu enta (w Twoim kodzie) podajesz func_wall a potem zmieniasz classname? Nie mozna od razu dac takiego jakie sie chce?
  • +
  • -
  • 0

#10 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

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

Napisano 21.11.2014 11:31

Spróbuj. Będzie działało-można. Ja ten kod znalazłem gdzieś w swoich starociach. Nie pamiętam niestety dlaczego było to tak a nie inaczej, a nie chciało mi się teraz tego testować.

Coś mi się kojarzy jakoby jedynie pewne narzucone klasy (przy tworzeniu) jdynie mogły być dotykalne, ale to może być głupota.


Użytkownik grankee edytował ten post 21.11.2014 11:33

  • +
  • -
  • 0

#11 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 24.11.2014 21:38

Czy żeby wykrywało dotknięcie bytu musi być ustawiony model ?

 

KOD

public StworzEnta2(id)
{
      new ent=create_entity("func_wall")
	entity_set_string(ent,EV_SZ_classname,"testowy_ent")
	//entity_set_model(ent,model)
	new Float:origin[3]
	entity_get_vector(id,EV_VEC_origin,origin)
	origin[0]+=130
	new Float:mins[3]={-100.0,-100.0,-100.0}
	new Float:maxs[3]={100.0,100.0,100.0}
	entity_set_size(ent,mins,maxs)
	entity_set_origin(ent,origin)
	entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
	entity_set_int(ent,EV_INT_movetype,MOVETYPE_FLY)
      return PLUGIN_CONTINUE
}
public plugin_init()
{	
      register_touch("player", "testowy_ent", "fwToucxh")
      register_touch("testowy_ent", "player", "fwToucxh")

      register_clcmd("say /crt", "StworzEnta2")
}

Ten kod zawiesza serwer po chwili jak wpisze /crt


  • +
  • -
  • 0

#12 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 25.11.2014 20:54

Okazało się że jest jakiś problem z dotykaniem entu jeśli nie ma on modelu (crashowało serwer), poradziłem sobie dając model łuski :)

 

 

Close


  • +
  • -
  • 0

#13 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 26.11.2014 08:42

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




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

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