Pewnie ktoś będzie wiedzial jak to zrobic, wiec napisze to tutaj i podam jak to mogloby wygladac, dla ulatwienia roboty.
Chodzi mi o wykrycie "nie swojego enta" i jego usuniecie.
Dokladnie to bedzie mina wroga ![]()
Od klasy, ktora stawia mine mamy kod, ktory po rundzie usuwa wszystkie miny.
new ent = find_ent_by_class(-1, "mine");
while(ent > 0)
{
remove_entity(ent);
ent = find_ent_by_class(ent, "mine");
}
Teraz potrzebujemy to przerobić, aby klasa nad ktora pracujemy mogla te miny rozbroic(zniszczyc).
Aby zniszczyc, najpierw trzeba je widziec
, wiec:
register_forward(FM_AddToFullPack, "widzenie", 1)
&
public widzenie(es_handle, e, ent, host, hostflags, player, pSet)
{
if(!is_user_connected(host))
return;
if(!ma_perk[host])
return;
if(!pev_valid(ent))
return;
new classname[5];
pev(ent, pev_classname, classname, 4);
if(equal(classname, "mine"))
{
set_es(es_handle, ES_RenderMode, kRenderTransAdd);
set_es(es_handle, ES_RenderAmt, 255.0);
}
}
Teraz trzeba przerobic pierwszy kod, ktory podalem, by :
-sprawdzalo odleglosc gracza od miny w ktorej moze rozbroicc(zniszczyc) tą mine,
-no ale najpierw musi znalezc tą minę(enta nie swojego[wroga]).
Jak ktos ma taka wiedze, to zapraszam.


Dodatki SourceMod













