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

Niemożliwa kompilacja...


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 czlowiekkredens

    Nowy

  • Zbanowany

Reputacja: -1
Nowy

  • Postów:1
  • Imię:Cezary
  • Lokalizacja:Polska
Offline

Napisano 26.06.2011 21:44

Robię nową klasę, ale dodanie obrażeń uniemożliwia mi kompilację... Proszę o pomoc :)
Nie chcę, byście dawali mi gotowe skompilowane, ale bym mógł zobaczyć jak .sma powinno wyglądać :)
Z góry dzięki

/* Plugin generated by czlowiek-kredens*/

#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 msg_bartime;
/*                            LINIJKA ########## 25 */
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)
	ma_klase[id] = true;

	public cod_class_disabled(id)
	ma_klase[id] = false;
/*                            lINIJKA ########## 40 */
public cod_class_skill_used(id)
{

 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)
	{
			cod_inflict_damage(idattacker, this, damage*2, 0, idinflictor, damagebits);	
	}
	
	return HAM_IGNORED;
 }

	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, 50, 0, 255);
	set_task(CZAS_BERSERKER.0, "WylaczBerserker", id);
	
	message_begin(MSG_ONE, msg_bartime, _, id)
	write_short(CZAS_BERSERKER)
	message_end()
}

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);
}

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

Użytkownik Knopers edytował ten post 27.06.2011 08:03


#2 Gość_deLL_*

  • Gość

Reputacja: 0

Offline

Napisano 27.06.2011 20:30

Od linijki 44 do 58. Co ta funkcja robi w funkcji cod_class_skill_used(id) ?

Zrób to tak:
/* Plugin generated by czlowiek-kredens*/

#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 msg_bartime;
/* LINIJKA ########## 25 */
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)
ma_klase[id] = true;

public cod_class_disabled(id)
ma_klase[id] = false;
/* lINIJKA ########## 40 */
public cod_class_skill_used(id)
{
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, 50, 0, 255);
set_task(CZAS_BERSERKER.0, "WylaczBerserker", id);

message_begin(MSG_ONE, msg_bartime, _, id)
write_short(CZAS_BERSERKER)
message_end()
}

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);
}

public ResetHUD(id)
wykorzystal[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(get_user_weapon(idattacker) == CSW_KNIFE && damagebits & DMG_BULLET && damage > 20.0)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

return HAM_IGNORED;
}


#3 Dhorr

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:26
  • Imię:Cezary
  • Lokalizacja:Mars
Offline

Napisano 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

Użytkownik Dhorr edytował ten post 01.07.2011 12:33

  • +
  • -
  • 0




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

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