

A dmg z rakiety/miny/dynamitu to jakie damagebits? Tylko mi nie mów ze (1<<24) bo się odstrzele jeszcze dziś.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Najlepsza odpowiedź BlackPerfum, 27.06.2014 14:21
Nie rozumiem dlaczego mam nie uzywac cod_inflict_damage().
Już tłumaczę:
Funkcja cod_inflict_damage to nic innego niż:
ExecuteHam(Ham_TakeDamage,id,ent,attacker,Float:damage,damagebits)
Tylko dodatkowo w dmg może zostać uwzgledniony pewien procent int'a gracza. Jeśli to hamsandwich zadaje dmg to co jest złe?? A to że używasz ExecuteHam a nie ExecuteHamB
różnica ogromna choć pozornie mała. Dodanie na samym końcu nazwy funkcji "B" sprawi iż tą funkcję będą mogły złapać inne pluginy. Tzn. tak jak mówiłem wyżej. Grasz klasą np. Szturmowiec która ma dodatkowe 10 dmg z m4(dodane twoim sposobem). a jakis gracz w przeciwnym teamie gra klasa AntySzturmowiec która posiada w evencie ham_takeDamage blokuje wszystkie dmg z m4. W pewnym momęcie strzelacie do siebie (twoja bron to m4) i o dziwo zadajesz mu dmg!!! Bo on nie był w stanie satrzymać tego dodatkowego dmg! Dlatego udało ci się go zabić
Przykład w którym widac że dmg zadawane tym sposobem nie mozna modyfikować (za pomocą hamsandwich'a)
Wniosek: Jeśli zmodyfikujesz swojego cod'a i dodasz tam "B" to możesz używać tej funkcji to zadawania dmg. Nadal nie możesz używać jej do zwiększenia dmg. Dlaczego?? Bo jak za pomocą jej zwiększysz dmg == ∞ (wtf? moja nieskończonośc zmalała )
Dlaczego? Bo wykonujesz pętle nieskończoną. Zadając komuś dmg (normalnie pistoletem) sprawiasz że wykonuje się funkcja zarejestrowana w ham'ie nastepnie dodajesz w ten sposób dmg co sprawia że znowu ta funkcja się wykonuje i znowu dodajesz dmg i znowu...
Jak modyfikować dmg?
Według mnie najlepiej robic to tak:
W Ham_TakeDamage (pre) dodawać / odejmować dmg (za pomocą SetHamParmFloat)
Mozna także tutaj zrobić blokowanie dmg za pomoca zwrócenia supercode a także można tu robic 1/x za pomocą Ham_Killed
W Ham TakeDamage (post) mnożyć / dzielić dmg (za pomocą SetHamParmFloat) oraz dopiero tutaj pytać się jakie gracz zadał dmg. tzn. dopiero tutaj np. zabierać wytrzymalośc przedmiotu (w zależności od dmg) albo dodawać expa (w zależności od dmg) dlaczego dopiero tutaj bo to jest dmg końcowe to dmg już nie podlega zmianie (a to w pre tak)
Tak naprawdę to by sie przydały trzy eventy:
- pierwszy na doddawanie/odejmowanie dmg
- drugi na mnożenie/dzielenie dmg
- i trzeci: pobieranie dmg i działanie nad nim ale nie zmienianie go
Przejdź do postu
Napisano 28.06.2014 12:09
Paczka perkow.perki Napisany przez NAVIK, 24.03.2025 ![]() |
|
![]() |
|||
CoD Nowy
Plugin na małe mapy.Napisany przez NAVIK, 16.02.2025 ![]() |
|
![]() |
|||
CoD Nowy
Dodatkowe, osobne trzy linie opisu klasNapisany przez Rafii, 27.01.2025 ![]() |
|
![]() |
|||
CoD Nowy
problem z kompilacjaNapisany przez Anonimowy09, 21.01.2025 ![]() |
|
![]() |
|||
CoD Nowy
problem z HUDNapisany przez Anonimowy09, 10.01.2025 ![]() |
|
![]() |
0 użytkowników, 1 gości, 0 anonimowych