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

Przemieszanie bytu.


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

#1 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 07.05.2011 20:31

Witam. Przypuśćmy, że mam zrobiony jakiś tam byt z efektem. Jak mogę go płynnie przemieścić z punktu A do punktu B?

#2 Bialy^

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:97
  • GG:
  • Steam:steam
  • Imię:Igor
  • Lokalizacja:GK
Offline

Napisano 07.05.2011 20:34

Jeżeli chodzi ci o mape użyj " Valve Hammer Editor" do edycji map :)
  • +
  • -
  • 0
Dołączona grafikaPomogłem? daj+

#3 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 07.05.2011 20:36

Omg. Stworzony byt w amxx. Chce go przemieścić np poprzez kliknięcie E. =.=

#4 Bialy^

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:97
  • GG:
  • Steam:steam
  • Imię:Igor
  • Lokalizacja:GK
Offline

Napisano 07.05.2011 20:38

A to sorki bo za dużo bawienia sie w tworzenie map i w amxx ;P
  • +
  • -
  • 0
Dołączona grafikaPomogłem? daj+

#5 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 08.05.2011 17:18

set_pev
pev_velocity
pev_angle
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 08.05.2011 20:22

W banalnym przypadku punkty A i B dostępne są w linii prostej, bez przeszkód po drodze jak ściany czy skrzynki.

jeśli byt porusza się w powietrzu, naucz go latać!
set_pev(ent, pev_movetype, MOVETYPE_FLY);

dalej przyda Ci się
#include <xs>
trzeba obliczyć wektor prędkości

oblicz wektor między A i B, C = B-A
xs_vec_sub(B, A, C);

znormalizuj C
xs_vec_normalize(C, C);

przedłuż go do odpowiedniej szybkości
xs_vec_mul_scalar(C, 200.0, C);

nadaj bytowi prędkość C
set_pev(ent, pev_velocity, C);

byt nie zatrzyma się w punkcie B, więc musisz co jakiś czas sprawdzać odległość bytu od punktu B, najłatwiej użyć wbudowanego mechanizmu "myślenia" - Think
możesz ustawić moment w którym byt wywoła Think (tutaj za 0.1sekundy)
set_pev(ent, pev_nextthink, get_gamettime()+0.1);

złap register_forward(FM_Think), lub register_think() z <engine>
i tam też ustawiaj nextthink
  • +
  • -
  • 1

#7 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 08.05.2011 22:59

Działa wszystko. ;D A teraz jak mogę uwzględnić, że jak walnie o ścianę, to się zatrzymuje? Oraz jak zamiast modelu zrobić sprite? Po prostu wstawić sprite? Czy mogę ten sprite jakoś zmienić (Wiecie, np TE_BEAMCYLINDER zastosować)?

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 08.05.2011 23:39

to ze ścianą: register_touch() lub register_forward(FM_Touch) lub RegisterHam(Ham_Touch)
uważaj tylko na touch z Triggerami, np. bombsitey
pev(ent, pev_solid) == SOLID_TRIGGER

ściana daje id enta=0, inne byty dają swoje indeksy

sprite to też model, jak chcesz animowany to "env_sprite" przy create_entity(); + pev_spawnflags | SF_SPRITE_STARTON
  • +
  • -
  • 1

#9 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 08.05.2011 23:45

A możesz coś więcej powiedzieć o env_sprite?

#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 08.05.2011 23:54

env_sprite - Valve Developer Community
podejrzewam, że aktualnie korzystasz z klasy "info_target" bo jest jedną z prostszych
  • +
  • -
  • 0

#11 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.05.2011 00:57

Tak, info_target. Zbytnio nie mogę ogarnąć tego env_sprite.
Nie ma jakiejś innej metody, by stworzyć efekt no za pomocą TE_BEAMPOINTS?

#12 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 09.05.2011 07:26

Nie ma tam zbytnio nic do ogarniania. Tworzysz byt, nadajesz mu flagę, model, rozmiar i framerate + spawn

new ent = create_entity("env_sprite");
entity_set_model(ent, "sprites/sprite.spr");
entity_set_size(ent, fMin, fMax);
entity_set_int(ent, EV_INT_spawnflags, SF_SPRITE_STARTON );
entity_set_float(ent, EV_FL_framerate, 1.0);
DispatchSpawn(ent);

poza tym normalnie movetype i velocity
  • +
  • -
  • 1

#13 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.05.2011 11:35

Aaaa.. Czyli o to chodzi. ; dd

No dobra, zrobiłem, działa. Ale jak mogę nadać temu efektowi np wiadomość TE_BEAMPOINT? Bo głównie o to mi chodzi..

#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 09.05.2011 12:18

o to Ci chodzi?
#define	TE_BEAMPOINTS               0        // Beam effect between two points
// write_byte(TE_BEAMPOINTS)
// write_coord(startposition.x)
// write_coord(startposition.y)
// write_coord(startposition.z)
// write_coord(endposition.x)
// write_coord(endposition.y)
// write_coord(endposition.z)
// write_short(sprite index) 
// write_byte(starting frame) 
// write_byte(frame rate in 0.1's) 
// write_byte(life in 0.1's) 
// write_byte(line width in 0.1's) 
// write_byte(noise amplitude in 0.01's) 
// write_byte(red)
// write_byte(green)
// write_byte(blue)
// write_byte(brightness)
// write_byte(scroll speed in 0.1's)

to tworzy byt tymczasowy, nie trzeba używać create_entity() i nie można tego łączyć z normalnymi bytami

jak chcesz coś w rodzaju pocisku między 2 punktami to fajnie wygląda trail
#define TE_SPRITETRAIL              15       // Line of moving glow sprites with gravity, fadeout, and collisions
// write_byte(TE_SPRITETRAIL)
// write_coord(startposition.x)
// write_coord(startposition.y)
// write_coord(startposition.z)
// write_coord(endposition.x)
// write_coord(endposition.y)
// write_coord(endposition.z)
// write_short(sprite index)
// write_byte(count)
// write_byte(life in 0.1's) 
// write_byte(scale in 0.1's) 
// write_byte(velocity along vector in 10's)
// write_byte(randomness of velocity in 10's)

  • +
  • -
  • 1

#15 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.05.2011 12:21

Czyli żeby takie coś przemieścić to nie muszę tworzyć create_entity? czy jak ?

#16 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 09.05.2011 12:45

no nie trzeba, musisz tylko podać modelindex, zwraca go
precache_model("sprites/NazwaSpritea.spr")

  • +
  • -
  • 1

#17 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.05.2011 13:13

Nie no, nie wiem, mam coś takiego:

public Create_Piorun(id)
{
new StartOrigin[3], EndOrigin[3], FinalOrigin[3], Float:fStartOrigin[3], Float:fEndOrigin[3], Float:fFinalOrigin[3];
get_user_origin(id, StartOrigin);
get_user_origin(id, EndOrigin);

CreatePiorun(StartOrigin, SPR_LIGHTNING, 15, 90, 90, 255, 255, 255)

IVecFVec (StartOrigin, fStartOrigin)
IVecFVec (EndOrigin, fEndOrigin)
IVecFVec (FinalOrigin, fFinalOrigin)

xs_vec_sub(fEndOrigin, fStartOrigin, fFinalOrigin);
xs_vec_normalize(fFinalOrigin, fFinalOrigin);
xs_vec_mul_scalar(fFinalOrigin, 200.0, fFinalOrigin);
//set_pev(ent, pev_velocity, fFinalOrigin);
}

stock CreatePiorun(originss[3], sprite, life, width, noise, rrr, ggg, bbb)
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( 0 );
write_coord( originss[0] );
write_coord( originss[1] );
write_coord( originss[2] + 700 );
write_coord( originss[0] );
write_coord( originss[1] );
write_coord( originss[2] );
write_short( sprite );
write_byte( 0 ); // startframe
write_byte( 5 ); // framerate
write_byte( life ); // life
write_byte( width ); // width
write_byte( noise ); // noise
write_byte( rrr ); // r, g, b
write_byte( ggg ); // r, g, b
write_byte( bbb ); // r, g, b
write_byte( 200 ); // brightness
write_byte( 200 ); // speed
message_end();
}



Efekt się pojawia ale tylko tam gdzie stoję. ; / Na razie bez zatrzymania chce zrobić.

#18 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 09.05.2011 14:08

O takie coś chodzi?
Spoiler

  • +
  • -
  • 1

#19 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 09.05.2011 17:03

Nieee.. Takie to wiem jak napisać. Chodzi mi o to, że wywołam efekt np. Pionowej kreski a ona przemieści się z miejsca A do miejsca B. Coś jak z NPC zrobiłem.

#20 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 09.05.2011 17:45

to SVC_BEAMENTS wypróbuj
  • +
  • -
  • 0




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

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