Niemożliwa kompilacja...
czlowiekkredens 26.06.2011
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
Użytkownik Knopers edytował ten post 27.06.2011 08:03
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
Gość_deLL_* 27.06.2011
Od linijki 44 do 58. Co ta funkcja robi w funkcji cod_class_skill_used(id) ?
Zrób to tak:
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;
}
Dhorr
01.07.2011
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
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
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