←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Wyrzucanie modelu tak jak wyr...


Najlepsza odpowiedź ^Grzyboo 01.03.2014 17:58

public plugin_precache()
	precache_model("models/rpgrocket.mdl");

public cmd(id)
{
	new Float:vOrigin[3], iEnt;
	
	pev(id, pev_origin, vOrigin);
	
	iEnt = fm_create_entity("info_target");
	fm_entity_set_model(iEnt, "models/rpgrocket.mdl");
	fm_entity_set_origin(iEnt, vOrigin);
	
	set_pev(iEnt, pev_classname, "cl_Object");
	set_pev(iEnt, pev_solid, SOLID_BBOX)
	set_pev(iEnt, pev_movetype, MOVETYPE_TOSS)
	set_pev(iEnt, pev_owner, id);
	
	new Float:vVelo[3];
	velocity_by_aim(id, 400, vVelo);
	set_pev(iEnt, pev_velocity, vVelo);
	
	return PLUGIN_HANDLED;
}
Przejdź do postu
Zablokowany

  • +
  • -
Danny OK - zdjęcie Danny OK 28.02.2014

Witam,

Powie mi ktoś jak zrobić wyrzucanie modelu (np. apteczki) z efektem tak jak wyrzucanie broni?

Czyli odlatuje od nas na ok 100-150u i spada na ziemie, a jeśli napotka przeszkodę to opada przy niej.

 

Z góry dziękuję za pomoc.


Użytkownik Danny OK edytował ten post 28.02.2014 22:19
Odpowiedz

  • +
  • -
Danny OK - zdjęcie Danny OK 01.03.2014

Lub jak ustawić aby było ograniczenie do 250u. Bo mam tam gdzie się patrzy no i przez całą mapkę można postawić apteczkę.

Jak zrobić aby był limit ze do 250u od stawiającego.

Odpowiedz

  • +
  • -
^Grzyboo - zdjęcie ^Grzyboo 01.03.2014

Trzeba stworzyć jakiegoś enta, nadać mu model, pev_movetype na MOVETYPE_TOSS, a potem ustawić prędkość na podstawie tego, co nam zwróci velocity_by_aim

Odpowiedz

  • +
  • -
Danny OK - zdjęcie Danny OK 01.03.2014

Mógłbyś pokazać to na przykładzie?

Odpowiedz

  • +
  • -
Najlepsza odpowiedź ^Grzyboo - zdjęcie ^Grzyboo 01.03.2014

public plugin_precache()
	precache_model("models/rpgrocket.mdl");

public cmd(id)
{
	new Float:vOrigin[3], iEnt;
	
	pev(id, pev_origin, vOrigin);
	
	iEnt = fm_create_entity("info_target");
	fm_entity_set_model(iEnt, "models/rpgrocket.mdl");
	fm_entity_set_origin(iEnt, vOrigin);
	
	set_pev(iEnt, pev_classname, "cl_Object");
	set_pev(iEnt, pev_solid, SOLID_BBOX)
	set_pev(iEnt, pev_movetype, MOVETYPE_TOSS)
	set_pev(iEnt, pev_owner, id);
	
	new Float:vVelo[3];
	velocity_by_aim(id, 400, vVelo);
	set_pev(iEnt, pev_velocity, vVelo);
	
	return PLUGIN_HANDLED;
}
Odpowiedz

  • +
  • -
Danny OK - zdjęcie Danny OK 01.03.2014

Teraz mam problem bo apteczki nie może podnieść jej właściciel :D

 

I jeszcze jedna sprawa, jak zrobić żeby jak gracz wchodzi na model nie ścinało. Bo teraz "ścina" (tak dziwnie trzęsie ekran i zatrzymuje na 0.5s) jak gracz wejdzie na róg modelu.


Użytkownik Danny OK edytował ten post 01.03.2014 18:26
Odpowiedz

  • +
  • -
Danny OK - zdjęcie Danny OK 01.03.2014

Można zrobić aby "set_pev(ent, pev_owner, id);" działało tylko przez np 1.5 sek?

Ponieważ musi to być bo inaczej blokuje się apteczka na graczu, ale jak to jest to właściciel nie może jej podnieść.

Dlatego proszę o radę co zrobić :-)

Odpowiedz

  • +
  • -
^Grzyboo - zdjęcie ^Grzyboo 01.03.2014

set_task(1.5, "TaskRemoveOwner", iEnt)

public TaskRemoveOwner(ent)
{
	if(!pev_valid(ent)) return;
	
	set_pev(ent, pev_owner, 0)
}
Odpowiedz

  • +
  • -
Danny OK - zdjęcie Danny OK 01.03.2014

Dzięki wielkie :-) Plusik poleciał.

 

Jeszcze mam jedno pytanko, ale najpierw spróbuje zrobić sam bo mam pomysł lecz nie wiem czy wypali :D

Odpowiedz
Zablokowany