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
CoD Nowy

Problem z klasą (natychmiastowe zabicie)

cod nowy

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

#1 V!p3r

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:90
  • Steam:steam
  • Imię:Tomek
  • Lokalizacja:Bojanowo
Offline

Napisano 12.12.2014 17:25

Witajcie. Mam problem z klasą. Dotyczy on tego, że ze Scouta mam 1/1, a z kosy niby wchodzi natychmiastowe zabicie ale rzadko.

Załączam kod:

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)

new const nazwa[]   = "klasa test";
new const opis[]    = "testowy opis";
new const frakcja[]   = "Free";
new const bronie    = (1<<CSW_SCOUT)|(1<<CSW_XM1014);
new const zdrowie   = 300;
new const kondycja  = 200;
new const inteligencja = 100;
new const wytrzymalosc = 60;

new bool:ma_klase[33];

public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
	
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
	ma_klase[id] = true;
}

public cod_class_disabled(id)
{
	ma_klase[id] = false;
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(!(damagebits & DMG_BULLET))
		return HAM_IGNORED;
	
	if(get_user_weapon(idattacker) == CSW_SCOUT || get_user_weapon(idattacker) == CSW_KNIFE && random_num(1,2) == 1)
		cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	
	return HAM_IGNORED;
}


  • +
  • -
  • 0

#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 12.12.2014 17:41

Ze scouta jest 1/1 a z kosy 50% szans na zabicie.

 

W czym problem?


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#3 wiwi249

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:440
  • GG:
  • Imię:Wiktor
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 12.12.2014 17:44

	if(!(damagebits & DMG_BULLET))
		return HAM_IGNORED;

I powiedzcie mi, jak tu ma wchodzić strzał z kosy...


  • +
  • -
  • 1

Wykonuję strony internetowe, zlecenia AMXX i HLDS - w tym pisanie pluginów, ogarnianie serwerów, edycja i tworzenie modeli.

Potrzebujesz czegoś? Pisz!

 

"śpieszmy się pisać posty, tak szybko banują..." ~ sebul


#4 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 12.12.2014 18:09

Rzeczywiście.

 

Zmień to na 

 

if(!(damagebits & DMG_BULLET || damagebits & DMG_SLASH))
return HAM_IGNORED;

  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#5 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 12.12.2014 18:51

 

Rzeczywiście.

 

Zmień to na 

if(!(damagebits & DMG_BULLET || damagebits & DMG_SLASH))
return HAM_IGNORED;

 

DMG_BULLET nie ma raczej nic do rzeczy, poniewaz dziala on zarowno dla broni jak i noza.

 

Jak chcesz by bylo 1.2 z noza i scouta to nizej daje kod.

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)

new const nazwa[]   = "klasa test";
new const opis[]    = "testowy opis";
new const frakcja[]   = "Free";
new const bronie    = (1<<CSW_SCOUT)|(1<<CSW_XM1014);
new const zdrowie   = 300;
new const kondycja  = 200;
new const inteligencja = 100;
new const wytrzymalosc = 60;

new bool:ma_klase[33];

public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
	ma_klase[id] = true;
}

public cod_class_disabled(id)
{
	ma_klase[id] = false;
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(!(damagebits & DMG_BULLET))
		return HAM_IGNORED;
	
	if(get_user_weapon(idattacker) == (CSW_SCOUT | CSW_KNIFE ) && random_num(1,2) == 1)
		cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
	
	return HAM_IGNORED;
}

  • +
  • -
  • 0

b35020692_qesnxqa.png






Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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