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 bytów o dowolnych kształtach

kształt bytów okrągłe byty bryły

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

#1 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 05.10.2013 21:07

*
Popularny

Pewnego dnia postanowiłem rozwiać wszelkie wątpliwości na temat tworzenia bytów o dowolnych kształtach, ponieważ chciałem w końcu stworzyć coś nowego używając amxxa, niż tylko marne bryły w kształcie sześcianów/prostopadłościanów.

 

Okazało się to możliwe i to w niemożliwie prosty sposób  :crazy:

SOLID_BSP

No, ale co dalej?

 

Cała magia polega na tym, że musimy stworzyć "pustą" mapę w VHE, tworząc na środku niej naszą bryłę. Jako jej teksturę ustawiamy CLIP.

Dodajemy dowolne "point entity", np info_null. Kompilujemy mapę, otrzymujemy plik .bsp.

 

Następnie musimy stworzyć swój własny model, o rozmiarach takich samych jak nasza bryła w pliku .bsp. Jak go stworzyć nie będę tłumaczyć, ponieważ mnie samego wyręczył znajomy.  :^D

 

Posiadając plik .bsp oraz .mdl wystarczy już tylko napisać plugin stawiający nasze dwa byty w jednym miejscu -

  • jeden posiadający model x.bsp + SOLID_BSP + MOVETYPE_PUSH (jest to jedyny movetype "wspołpracujący" z solid_bsp);
  • drugi posiadający model x.mdl 

I to tyle. Pierwszy byt będzie niewidoczny ale będzie odpowiadać za dotyk, drugi natomiast jest modelem zapewniającym "oteksturowanie" tego pierwszego - nie posiadającym dotyku.

 

Przykład w kodzie:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

enum _:Wut{
	BSP,
	MDL
};

new g_sWut[Wut][0xE] = {
	"maps/x.bsp",
	"models/x.mdl"
};

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("stworz", "_Stworz");
}

public plugin_precache() {
	for(new i ; i < Wut ; i++) precache_model(g_sWut[i]);
}

public _Stworz(id){
	new Float:fOrigin[0x3];
	entity_get_vector(id, EV_VEC_origin, fOrigin);
	fOrigin[0x2]-=36.0;
	
	new iEnt = create_entity("func_wall");
	entity_set_origin(iEnt, fOrigin);
	entity_set_int(iEnt, EV_INT_movetype, 0x7); //MOVETYPE_PUSH
	entity_set_int(iEnt, EV_INT_solid, 0x4);
	entity_set_model(iEnt, g_sWut[BSP]);
	
	new iRendered = create_entity("info_target");
	entity_set_origin(iRendered, fOrigin);
	entity_set_model(iRendered, g_sWut[MDL]);
}

Kod ten stworzy byt(y) pod naszymi stopami.

 

Załączam przykładowy kod wraz z przykładowym modelem oraz plikiem .bsp.

 

 

Załączone pliki


  • +
  • -
  • 10

#2 joejoe

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Lokalizacja:PL
Offline

Napisano 16.11.2013 21:51

Da się jakoś naprawić to, że gdy stoimy na takim blocku to trzęsie się nam ekran, a gdy po nim chodzimy to spowalnia postać ( wygląda to tak jakby lagowało ), na LANie nie ma tragedii i spowalnia o wiele mniej, jednak na zwykłym serwerze bardzo to przeszkadza.


  • +
  • -
  • 0

#3 GeDox

    Wszechpomocny

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:315
  • Steam:steam
  • Imię:Przemysław
  • Lokalizacja:Kielce
Offline

Napisano 17.11.2013 16:15

Poza pozycją nie ma innego powiązania między tymi bytami? :o


  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 17.11.2013 16:21

W kodzie wyżej ? Tak


  • +
  • -
  • 0

#5 diablix

    emeryt

  • Autor tematu
  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 17.11.2013 18:00

Da się jakoś naprawić to, że gdy stoimy na takim blocku to trzęsie się nam ekran, a gdy po nim chodzimy to spowalnia postać ( wygląda to tak jakby lagowało ), na LANie nie ma tragedii i spowalnia o wiele mniej, jednak na zwykłym serwerze bardzo to przeszkadza.

 

Raczej nie wiele da się z tym zrobić, po prostu MOVETYPE_TOSS jest wymagane do postawienia takiego bytu, a co za tym idzie potrzeba albo dobrego połączenia między graczem a serwerem albo po prostu zrezygnować :(


  • +
  • -
  • 0




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

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