Panowie 27920 i 44177, ja rozumiem, że podyskutować czasem trzeba, ale proszę zejść z tonu i prowadzić czysto merytoryczną dyskusję, bez niedomówień i zachwalania jednej metody nad drugą, bo tak.
Po 1. Jeśli czegoś się tak nie robi lub się robi tak, argumety dlaczego!
Po 2. Jeśli jest taka a nie inna metoda to proszę pokazać jak wygląda, albo przynajmniej nakierować, a nie podawać suchy fakt który nic nikomu nie pomoże. Chodzi mi tu głównie o Ham_Weapon_SecondaryAttack, ja wiem w jaki sposób działa, 27920 też jak widać wie, ale 26984 już niekoniecznie, a to on założył temat. Więc prosiłbym na przyszłość opisać przynajmniej jak działa Ham_Weapon_SecondaryAttack i nakierować jak go połączyć z czymś innym, aby uzyskać pożądany rezultat. A nie podawać suchy fakt i patrzeć jak się ktoś męczy nie mogąc dojść do tego jak to ma mu pomóc...
Jeszcze istota różnicy między zadaniem obrażeń, a zabiciem. Owszem, różnica jest, nawet jeśli się zada obrażenia pewnymi sposobami to może to skutkować graczem z 0 ilością HP (lub ujemną) ale nadal żyjącym. Tu też na przyszłość proszę opisać dlaczego zadanie obrażeń jest w danym przypadku lepsze od zabicia lub odwrotnie, bo w ten sposób to można się sprzeczać w nieskończoność.
I jeszcze raz powtarzam, proszę zejść z tonu, a nie sugerować, że druga strona dyskusji się nie zna lub nic nie wie. To, że potrafię zrobić najlepszą jajecznicę na świecie ze mnie wybitnego kucharza nie czyni, jeśli potrafię tylko jajecznicę robić. Tak samo o kucharzu źle nie świadczy, jeśli nie wie jak zrobić jajecznicę, ale z innymi daniami sobie radzi świetnie. Nawet ekspert nie wie wszystkiego.
Odnośnie samego problemu:
get_pdata_cbase(attacker,373,5)
Czym jest to magiczne 373? Nie lepiej jest użyć tutaj stałej, która coś nam już powie? I skąd pewność, że:
Z paru minut testowania wynika że jak użyjemy lpm to
offset 46 == 0.6~0.8
offset 47 == 0.7~0.9
a jak użyjemy ppm to
offset 46 == 1.0
offset 4.7 == 1.1
Kilka minut testowania owszem, może dać ciekawe wyniki, ale moim zdaniem ta wartość może się zmienić pod wpływem czynników, których nie przewidziałeś. Choćby tego, ze jakiś inny plugin postanowi zmodyfikować obrażenia przy LPM.
W tym przypadku wykrywanie użycia PPM do którego podlinkował 44177 jest dużo bardziej pewne. I nawet jeśli jest mniej optymalne to jeśli komuś taka różnica w optymalności przeszkadza to powinien przestać szukać optymalizacji w kodzie na siłę, a zająć się czymś pożyteczniejszym.