Przy okazji pisania komuś pluginu w ramach pomocy musiałem zrobić prostą funkcję, która umożliwiła mi ustalenia originu entu.
Chciałem sprawdzić odległość między bytem func_breakable a graczem, niestety func_breakable-w moim przypadku kratka wentylacyjna na nuku miała origin 0 więc musiałem go ustalić korzystając z absmin i absmax, a dokładniej musiałem odnieść się do punktu leżącego w samym środku, który to był dla mnie originem. Potrzebowałem między trzema elementami absmin i absmax ustalić punkt środkowy czyli połowę, do tego zrobiłem prostą funkcję, która zwraca mi tablicę ze środkami.
wartosc_srodkowa(const Float:liczba1[3],const Float:liczba2[3],Float:wynik[3])
{
new Float:roznica
for(new a=0;a<3;a++)
{
roznica=liczba1[a]-liczba2[a]
if(roznica==0)
{
wynik[a]=0.0
continue
}
wynik[a]=(roznica>0)?(liczba1[a]-(roznica/2)):(liczba2[a]-(floatabs(roznica)/2))
}
}
Dla jasności jeśli podamy dwie tablica o wartościach
tabmin[3]={10,20,30}
tabmax[3]={20,40,60}
to zwroci nam wynik {15,30,45}
Oczywiście działa też dla liczb ujemnych i kombinacji ujemnych i dodatnich


Dodatki SourceMod














