Witam. Tak jak w temacie. Proszę o pomoc z tworzeniem perków.
c4 - Otrzymujesz HE i masz 1/3 szans na zabicie przeciwnika z granatu.
Mangekyou Sharingan - Otrzymujesz +10 do wtrzymalosci i zadajesz +10 dmg + int wiecej
Byakugou no in - Jestes odporny na wszystkie umiejetnosci oraz perki oraz jestes odporny na miny, rakiety oraz dynamit
Hiraishin Kunai - Natychmiastowe zabicie z noza (Przy uzyciu prawego przycisku myszki)
Samehada - Twoje zdrowie regeneruje sie o LW procent zadanych obrazen
Buty Akatsuki - Otrzymujesz +10 kazdego atrybutu ( Zdrowie, Kondycja, Inteligencja, Wytrzymalosc)
Susanoo Kagutsuchi - Natychmiastowe zabicie z AWP
Susanoo - Otrzymujesz 25 zdrowia i 25 wytrzymalości.
Tajemnica Temari - Otrzymujesz 1/4 lub 1/6 szans na wyrzucenie broni przeciwnikowi
Sage Mode - Za kazdego zabitego otrzymujesz 20 HP i regenerujesz 10 HP co 5 sekund
To jest moja praca nad konkretnymi perkami. Będę opisywał co nie działa i dlaczego.
1) Byakugou no in [Perk, który nie może się skompilowac]
Spoiler
#include <amxmodx>
#include <codmod> #include <hamsandwich> #include <fakemeta> new const perk_name[] = "Byakugou no in"; new const perk_desc[] = "Jestes odporny na wszystkie umiejetnosci oraz perki oraz jestes odporny na miny, rakiety oraz dynamit"; new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage") } public cod_perk_enabled(id) ma_perk[id] = true; public cod_perk_disabled(id) ma_perk[id] = false; public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!ma_perk[this]) return HAM_IGNORED; new classname[10] pev(idinflictor, pev_classname, classname, 9); if(equal(classname, "mine") || equal(classname, "rocket") || equal(classname, "dynamite")) return HAM_SUPERCEDE; return HAM_IGNORED; } new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc, 1, 2); RegisterHam(Ham_TakeDamage, "player", "TakeDamage") } public cod_perk_enabled(id, wartosc) { if(wartosc == 1) return COD_STOP; ma_perk[id] = true; return COD_CONTINUE; } public cod_perk_disabled(id) ma_perk[id] = false; public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_perk[this]) return HAM_IGNORED; if(damagebits & DMG_CODSKILL) return HAM_SUPERCEDE; return HAM_IGNORED; }
2) Sage Mode: [Perk nie może się skompilować (Moja przeróbka)]:
Spoiler
#include <amxmodx>
#include <codmod> #include <fun> new const nazwa[] = "Sage Mode"; new const opis[] = "Za kazdego zabitego otrzymujesz 20 HP i regenerujesz 10 HP co 5 sekund"; new bool:ma_perk[33]; public plugin_init() { register_plugin(nazwa, "1.0", "QTM_Peyote"); cod_register_perk(nazwa, opis); register_event("DeathMsg", "Death", "ade"); } public cod_perk_enabled(id) ma_perk[id] = true; public cod_perk_disabled(id) ma_perk[id] = false; public Death() { new attacker = read_data(1); if(!is_user_connected(attacker)) return PLUGIN_CONTINUE; if(!ma_perk[attacker]) return PLUGIN_CONTINUE; new cur_health = get_user_health(attacker); new max_health = 100+cod_get_user_health(attacker); new new_health = cur_health+50<max_health? cur_health+50: max_health; set_user_health(attacker, new_health); return PLUGIN_CONTINUE; } /* AMXX -Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */ new bool:ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "QTM_Peyote"); cod_register_perk(perk_name, perk_desc); } public cod_perk_enabled(id) { ma_perk[id] = true; set_task(5.0, "WyszkolenieSanitarne", id+TASK_WYSZKOLENIE_SANITARNE); } public cod_perk_disabled(id) ma_perk[id] = false; public WyszkolenieSanitarne(id) { id -= TASK_WYSZKOLENIE_SANITARNE; if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(ma_perk[id]) { set_task(5.0, "WyszkolenieSanitarne", id+TASK_WYSZKOLENIE_SANITARNE); if(is_user_alive(id)) { new cur_health = get_user_health(id); new max_health = 100+cod_get_user_health(id); new new_health = cur_health+20<max_health? cur_health+20: max_health; set_user_health(id, new_health); } } return PLUGIN_CONTINUE; } /* AMXX -Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
3) Susanoo Kagutsuchi: [Perk nie zabija 1/1 z awp , tylko zadaje 99 dmga zawsze. Nie wiem jak to naprawic]
Spoiler
/* Plugin generated by AMXX -Studio */
#include <amxmodx>
#include <hamsandwich>
#include <fun>
#include <codmod>
#define DMG_BULLET (1<<1)
new const perk_name[] = "Susanoo Kagutsuchi";
new const perk_desc[] = "Natychmiastowe zabicie z AWP";
new bool:ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_perk_enabled(id)
{
cod_give_weapon(id, CSW_AWP);
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
cod_take_weapon(id, CSW_AWP);
ma_perk[id] = false;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_perk[idattacker])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AWP && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
4) Hiraishin Kunai [Nie zabija 1/1 z kosy (PPM)]:
Spoiler
/* Plugin generated by
AMXX -Studio */
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <codmod>
new const perk_name[] = "Hiraishin Kunai";
new const perk_desc[] = "Natychmiastowe zabicie z noza";
new komandos_id;
new bool:ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
komandos_id = cod_get_classid("Komandos");
}
public cod_perk_enabled(id)
{
if(cod_get_user_class(id) == komandos_id)
return COD_STOP;
ma_perk[id] = true;
return COD_CONTINUE;
}
public cod_perk_disabled(id)
ma_perk[id] = false;
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_perk[this])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_KNIFE && damagebits & DMG_BULLET && damage > 20)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
/*
AMXX -Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
5) Samehada [Perk nie działa]:
Spoiler
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <codmod>
#define DMG_BULLET (1<<1)
new const perk_name[] = "Samehada";
new const perk_desc[] = "Twoje zdrowie regeneruje sie o LW procent zadanych obrazen";
new bool:ma_perk[33];
new wartosc_perku[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc, 22, 30);
RegisterHam(Ham_TakeDamage, "player", "TakeDamagePost", 1);
}
public cod_perk_enabled(id, wartosc)
{
ma_perk[id] = true;
wartosc_perku[id] = wartosc;
}
public cod_perk_disabled(id)
ma_perk[id] = false;
public TakeDamagePost(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(idattacker))
return HAM_IGNORED;
if(!ma_perk[idattacker])
return HAM_IGNORED;
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (wartosc_perku[idattacker]/100) + pev(idattacker, pev_health);
set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
return HAM_IGNORED;
}