Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Blokada obrażeń z laserów,lawy itd.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
14 odpowiedzi w tym temacie

#1 wonsz żeczny

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 23.06.2019 23:35

Witam,

jak napisać plugin, który zablokuje obrażenia z elementów mapy takich jak lawa, laser itd.

Próbowałem na wszelakie sposoby i bez efektów :(

public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)

Ma to jakieś powiązanie z idinflictor ?

 


Użytkownik wonsz żeczny edytował ten post 23.06.2019 23:37

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 24.06.2019 00:11

Sprwadzaj classname bytu, który zadaje obrażenia. Teoretycznie mógłbyś też uznać, że idattacker == 0, gdy dmg jest zadawane przez lasery, ale nie wiem czy rzeczywiście tak jest (no i dochodzi problem z np. falldamage itd).


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 Vasto_Lorde

    Wszechmogący

  • Power User

Reputacja: 256
Wszechwidzący

  • Postów:633
  • GG:
  • Steam:steam
  • Imię:Maćko
  • Lokalizacja:Poznań
Offline

Napisano 24.06.2019 07:50

Możesz też spróbować wyłączać obrażenia bazując na rodzaju obrażeń. DMG_BLAS, DMG_ BURN i tak dalej. Więcej tutaj: https://amxx.pl/topi...e-na-obrażenia/


  • +
  • -
  • 0

#4 wonsz żeczny

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 24.06.2019 19:05

A jakie to będą classname?

trigger_hurt i env_laser ?

 

Sprawdzałem z idattacker == 0 i >32 ale brak efektu.

 

#define DMG_ENERGYBEAM (1<<10) // Laser or other high energy beam

 

W przypadku lasera to będzie ten rodzaj obrażeń?

 


  • +
  • -
  • 0

#5 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 24.06.2019 20:25

Możesz to sprawdzić choćby wypisując sobie to w trakcie gry gdy otrzymujesz obrażenia
  • +
  • -
  • 0

#6 viper367

    Wszechobecny

  • Użytkownik

Reputacja: 76
Zaawansowany

  • Postów:441
  • Imię:łukasz
  • Lokalizacja:rzeszów
Offline

Napisano 26.06.2019 14:08

Co do lawy. Nie prościej edytować funkcje func_water w pliku .bsp np hexeditor?
  • +
  • -
  • 0

#7 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 552
Godlike

  • Postów:11 974
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2019 20:38

Sprawdź tym https://amxx.pl/topi...ine-entity-lab/
  • +
  • -
  • 0

#8 wonsz żeczny

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 28.06.2019 00:27

 

Sprawdzałem tym właśnie, bo akurat tego pluginu wcześniej używałem ale po nacelowaniu nic nie wykazywało.

Teraz jak przejrzałem wątek i zauważyłem, że jest takie coś:

- lub po prostu szukamy przez zasoby mapy (7.) - uszerogowane wzgledem klasy obiektu (np. player)

  • +
  • -
  • 0

#9 wonsz żeczny

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 28.06.2019 01:17

Pluginem pokazuje klasę env_laser.

        new szClass[16];
	entity_get_string(inflictor, EV_SZ_classname, szClass, 9);

	if( equal( szClass, "env_laser" ) )
		return HAM_SUPERCEDE;

	entity_get_string(attacker, EV_SZ_classname, szClass, 9);
	
	if( equal( szClass, "env_laser" ) )
		return HAM_SUPERCEDE;

Tak nie działa :/

        if( attacker == 0 || attacker >= 32 )
		return HAM_SUPERCEDE;
		
	if( inflictor == 0 || inflictor >= 32 )
		return HAM_SUPERCEDE;

To też nie :/

        for( new i = 0; i<=23; i++ )
	{
		if( damagebits & (1<<i) )
			return HAM_SUPERCEDE;
	}

To też nie :D

 

To może dam sobie spokój z tym :)

 


  • +
  • -
  • 0

#10 wariat aka pro

    Wszechwidzący

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:235
  • GG:
  • Imię:mat
Offline

Napisano 28.06.2019 01:28

nie poddawaj się na pewno jest jakiś na to patent. :D 

 

 przez dotyk (nie dziala na SOLID_NOT - czyli glownie 'przenikliwe' obiekty).

 

Laser i lawa jest przenikliwa :D jeśli chodzi o to m_eel

 

 

a testowałeś to z DMG_ENERGYBEAM ? bo rozumiem że nie masz jak uwzględnić danego bytu czy jak to się tam nazywa aby zablokować z niego obrażenia. 

 

Na pewno się da zablokować takie obrażenia na graczu. 



#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 552
Godlike

  • Postów:11 974
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 28.06.2019 19:10

jakim hookiem łapiesz obrażenia ?
  • +
  • -
  • 0

#12 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 28.06.2019 19:12

Możesz podesłać mapkę, na której chcesz coś zablokować? Sprawdzę u siebie i zobaczę czy coś wykombinuję


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#13 wonsz żeczny

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 29.06.2019 00:18

jakim hookiem łapiesz obrażenia ?

RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage")

Możesz podesłać mapkę, na której chcesz coś zablokować? Sprawdzę u siebie i zobaczę czy coś wykombinuję

https://gamebanana.com/maps/181733


  • +
  • -
  • 0

#14 wonsz żeczny

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 29.06.2019 01:15

Dobra sprawa z laserem załatwiona :)

Kombinowałem najpierw ze zmianą klasy tych laserów ale dmg pozostawał więc trochę zmieniłem ich właściwości :D

        new laser;
	for( new i = 33; i<= 1024; i++ )
	{
		laser = find_ent_by_class(i, "env_laser");
		entity_set_float(laser, EV_FL_dmg, Float:0.0)
	}

I tak oto nie zadają nic obrażeń.

 

Teraz mam problem z lawą, ponieważ jest to func_water, który nie ma przypisanej właściwości z obrażeniami.

A jak ją dotknę to jest napisane, że ginę przez "worldspawn".


  • +
  • -
  • 0

#15 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 552
Godlike

  • Postów:11 974
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 29.06.2019 10:50

ale sprawdzaj czy rzeczywiście taki laser istnieje

https://www.amxmodx....nd_ent_by_class

Entity index if an entity was found, 0 otherwise
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych