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
 

Dhorr - zdjęcie

Dhorr

Rejestracja: 01.07.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 18.01.2015 19:01
-----

#264936 Niemożliwa kompilacja...

Napisane przez Dhorr w 01.07.2011 12:33

z tego co widzę w opisie klasy, koledze chodziło o podwójne obrażenia jedynie przez 5 sekund podczas użycia umiejętności klasy
ja napisałem coś takiego, niby się kompiluje, ale nie jestem pewien poprawności, wypróbuj to
chyba, że ktoś inny, kto się zna, da lepsze :)

#include <amxmodx>
#include <fun>
#include <hamsandwich>
#include <codmod>
#include <colorchat>

#define DMG_BULLET (1<<1) 

#define CZAS_BERSERKER 5 //SEKUND

new const nazwa[] = "Berserker";
new const opis[] = "Ma 5 sekund trybu Berserker (2xdmg i +1000HP) co runde";
new const bronie =  1<<CSW_P90 | 1<<CSW_GLOCK18;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 10;

new bool:wykorzystal[33];
new bool:ma_klase[33];
new bool:on[33];

new msg_bartime;

public plugin_init() 
{
        register_plugin(nazwa, "1.0", "QTM_Peyote");
        
        cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        register_event("ResetHUD", "ResetHUD", "abe");
        msg_bartime = get_user_msgid("BarTime");
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)

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

public cod_class_skill_used(id)
{
	if(!is_user_alive(id))
		return;

	if(wykorzystal[id])
	{
		ColorChat(id, RED, "Wykorzystales juz tryb Berserker.");
		return;
	}

	  wykorzystal[id] = true;

        cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+1000);
        set_user_health(id, get_user_health(id)+1000);
        set_user_rendering(id, kRenderFxGlowShell, 120, 0, 255);
        set_task(CZAS_BERSERKER.0, "WylaczBerserker", id);
        
        message_begin(MSG_ONE, msg_bartime, _, id)
        write_short(CZAS_BERSERKER)
        message_end()
        
        on[id] = true;
}


public WylaczBerserker(id)
{
        if(!is_user_connected(id)) return;
        
        cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-1000);
        set_user_health(id, max(1, get_user_health(id)+1000));
        set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0);
        
        on[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 && on[idattacker] && task_exists (CZAS_BERSERKER,0))
        
                cod_inflict_damage(idattacker, this, damage*2.0, 0.0, idinflictor, damagebits); 
        
        
        return HAM_IGNORED;
}

public ResetHUD(id)
        wykorzystal[id] = false;

daj plusa jeśli pomogłem :)

Dodano 01 lipiec 2011 - 19:18:
warna dać nowemu użytkownikowi za pierdółkę łatwo, szkoda, że czytając ten temat sam nie pomogłeś w problemie, bo naprawdę jest dość niespotykany
  • +
  • -
  • 0