←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Event (Ham_TakeDamage), warunek nie spełni...

Zablokowany

  • +
  • -
ogieR8 - zdjęcie ogieR8 02.01.2015

public player_TakeDamage(def, byt, off, Float:dmg, typ) {
	new Float:damage = dmg;

	if(is_user_alive(def) && is_user_connected(def) && is_user_alive(off) && is_user_connected(off) && off != def && get_user_team(def) != get_user_team(off) && typ == DMG_BULLET) {
		if(staty_zrecznosc[def] > 0) {
			damage *= (1-player_damreduction[def]) * 1.0;	// redukcja obrazen z powodu statystyki zrecznosci	(STATYSTYKA)
			if(pi_los_zrecznosc[off] > 0 && random_num(1,pi_los_zrecznosc[off]) == 1) damage = dmg;	// szansa przy strzale, ze ominiesz zrecznosc	(PRZEDMIOT)
			if(pc_los_zrecznosc[off] > 0 && random_num(1,pc_los_zrecznosc[off]) == 1) damage = dmg;	// szansa przy strzale, ze ominiesz zrecznosc	(KLASA)
		}

		if(haswhpnnmg[off] && has_minigun[off] == true) damage *= get_pcvar_float(DMGMG);	// obrazenia zadane przez minigun	(BRON)
		if(pi_los_krytyk[off] > 0 && random_num(1,pi_los_krytyk[off]) == 1) damage *= 2.0;	// szansa przy strzale, na krytyka [czyt. 2 razy wieksze obrazenia]	(PRZEDMIOT)
		if(pc_los_krytyk[off] > 0 && random_num(1,pc_los_krytyk[off]) == 1) damage *= 2.0;	// szansa przy strzale, na krytyka [czyt. 2 razy wieksze obrazenia]	(KLASA)

		if((pi_wrog_na_flash[off] || pc_wrog_na_flash[off]) && jest_oslepiony[def] && get_user_weapon(off) == CSW_SCOUT) {
			cs_set_user_armor(def,0,CS_ARMOR_NONE);
			damage = get_user_health(def) * 1.1;	// jesli przeciwnik jest oslepiony - zabijasz od razu	(KLASA I PRZEDMIOT)
		}

		if((pi_klon[off] > 0 || pc_klon[off] > 0) && !moze_atakowac[off]) damage = 0.0;	// jesli klon aktywny, prawdziwy gracz nie moze zadawac obrazen	(KLASA I PRZEDMIOT)

		SetHamParamFloat(4, damage)
		
		return HAM_IGNORED
	}

	return HAM_IGNORED
}

Zauważyłem, że problem tkwi w pierwszym warunku, wrzucałem client_print'y co kilka linijek i sprawdzałem, które się wywołają i kiedy.
Początkowo testowałem na nożach.. nie działało, pomysł: bullet.. pocisk, w sumie to nie uderzenie z noża, wrzuciłem tam 2 damagebits'a z SLASH'em, ale to samo.. z broni palnej to samo..
 
Testowałem na botach, nie mam obecnie chętnego na odwiedziny.. nie wiem co jest nie tak :/ A nawet jeśli na graczu zadziała - chcę by na botach również działało. Więc pytanie: co w tym warunku jest nie tak, że się nie spełnia ?

Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 02.01.2015

na podbotach zadziała, na zbotach nie


Użytkownik Droso edytował ten post 02.01.2015 20:13
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 02.01.2015

[  3] POD-Bot mm, vV3B21, Jun 13 2010, by Count Floyd & Bots United, see http://www.bots-united.com

meta list. :/

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 02.01.2015

Jezeli sprawdzasz czy gracz zyje to nie musisz sprawdzac czy jest podłączony do serwera.

Rozbij te warunki pojedynczo i sprawdz ktory dokladnie blokuje.
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 03.01.2015

Taa, głupi błąd, który pokazuje braki w podstawach, o których ostatnio mówiłem... damagebits == DMG_BULLET, == zamiast & :/

 

'patrze na to (if(typ == DMG_BULLET) {) .. chujnia, wszystko ok.. po 5 minutach.. tyy, a może tutaj ma być te jedno & .. lukne sobie na poradnik R3X'a, tam był jeden przykład z tym xD

 

/close.

Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 03.01.2015

& powinno być, to są operacje bitowe.

Kolejna sprawa dla wygody i sprawności poowijaj w nawiasy te warunki

Odpowiedz

  • +
  • -
radim - zdjęcie radim 03.01.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany