cos tam mi sie udalo sklecic po wstepnych testach dziala ale wiadomo najlepiej przetestowac w praktyce tak btw do czego ci to potrzebne?
edit:jezeli masz server mozemy to przetestowac dokladniej bo wiadomo jak testuje sie na botach ;f a sam jestem tego ciekaw dogłębniej
stock czy_widzi_gracza(id,target)
{
if(is_user_alive(target) && is_user_alive(id)) //sprawdzam czy obaj gracze zyja
{
new Float:fOrigin[3],Float:fOrigin2[3],Float:fOrigin3[3],Float:fOrigin4[3],Float:fOrigin5[3]//zmienna w ktore przechowywane sa originy
,Float:fOrigin6[3],Float:fOrigin7[3],line[3];
entity_get_vector(id,EV_VEC_origin,fOrigin) //Pobranie originu gracza1 do zmiennej fOrigin
entity_get_vector(target,EV_VEC_origin,fOrigin2) //Pobranie originu gracza2 do zmiennej fOrigin2
entity_get_vector(target,EV_VEC_origin,fOrigin3) //Pobranie originu gracza2 do zmiennej fOrigin3
entity_get_vector(target,EV_VEC_origin,fOrigin4) //Pobranie originu gracza2 do zmiennej fOrigin4
fOrigin[2]+=25.0 //origin gracza jest pobierany od brzucha a wiec ustawiam aby plugin bral pod uwage glowe gracza nie tłów poniewaz nie patrzymy tłowiem :0
fOrigin2[2]+=25.0//robie to co wyzej ale dla targetu (gracz2) teraz ten origin symuluje glowe
fOrigin3[2]-=25.0//a tu "obnizam" origin teraz to symuluje nogi a wlasciwie przestrzen miedzy nogami tak +-
line[0]=trace_line(id,fOrigin,fOrigin2,fOrigin5)//sprawdzam czy symulowana glowa gracza1 widzi symulowana glowe gracza2
line[1]=trace_line(id,fOrigin,fOrigin3,fOrigin6)//sprawdzam czy symulowana glowa gracza1 widzi symulowane nogi gracza2
line[2]=trace_line(id,fOrigin,fOrigin4,fOrigin7)//sprawdzam czy symulowana glowa gracza1 widzi tłów gracza2 (standardowy origin)
if(line[0]==target || line[1]==target || line[2]==target) //jezeli symulowana glowa gracza1 dostrzega nogi glowe lub tłów gracza2 wykonuje kod
return true//zwracam true jezeli widzi okreslonego gracza (a wlasciwie jedna z jego czesci ciała)
}
return false//zwracam false jezeli nie widzi okreslonego gracza
}
Użytkownik rzeznik9871 edytował ten post 14.08.2016 01:07