Dodanie 1/x do klasy i inne
szczypek1g
11.06.2022
Posiadam klase o nazwie Mrożon, która ma aktualnie 1/5 szansy na zamrożenie przeciwnika, chciałbym:
- Dodać 1/12 z M4A1 - coś mi nie wychodzi zwykłe dodanie 1/x z broni, bo wtedy kasuje się zamrożenie
- Dodać Efekt zamrożenia, aby był przeciwnik pokryty "lodem"
Ew. ktoś ma lepszą klase napisaną z efektem zamrożenia, to może podrzucić
szczypek1g
11.06.2022
Nie mogę edytować, zapomniałem o .sma
#include <amxmodx> #include <codmod> #include <engine> #include <hamsandwich> #include <fakemeta> #include <fun> new bool:ma_klase[33], bool:zamrozenie[33] new const nazwa[] = "Mrozon"; new const opis[] = "Posiada 1/5 na zamrozenie"; new const bronie = (1<<CSW_M4A1); new const zdrowie = 5; new const kondycja = 15; new const inteligencja = 5; new const wytrzymalosc = 10; public plugin_init() { register_plugin(nazwa, "1.0", "RiviT"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 1) RegisterHam(Ham_Killed, "player", "HamKilledPre", 0) } public cod_class_enabled(id) ma_klase[id] = true public cod_class_disabled(id) ma_klase[id] = false public TakeDamage(this, idinflictor, idattacker) { if(!is_user_connected(idattacker) || get_user_team(idattacker) == get_user_team(this) || zamrozenie[this]) return HAM_IGNORED; if(ma_klase[idattacker] && !random(5)) { zamrozenie[this] = true set_pev(this, pev_flags, pev(this, pev_flags) | FL_FROZEN) set_task(2.0, "Odmroz", this) client_print(this, print_center, "Zostales zamrozony na 2s!") } return HAM_IGNORED } public HamKilledPre(this, attacker) { if(is_user_connected(this) && zamrozenie[this]) set_pev(this, pev_flags, pev(this, pev_flags) &~ FL_FROZEN) } public Odmroz(id) { if(!is_user_alive(id)) return new origin[3] get_user_origin(id, origin) set_pev(id, pev_flags, pev(id, pev_flags) &~ FL_FROZEN) zamrozenie[id] = false origin[2] += 35 set_user_origin(id, origin) }
Rivit
11.06.2022
Zamień cały public TakeDamage na to:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker) || get_user_team(idattacker) == get_user_team(this) || !ma_klase[idattacker]) return HAM_IGNORED; if(!random(5) && !zamrozenie[this]) { zamrozenie[this] = true set_pev(this, pev_flags, pev(this, pev_flags) | FL_FROZEN) set_task(2.0, "Odmroz", this) client_print(this, print_center, "Zostales zamrozony na 2s!") } if(!random(12) && damagebits & (1<<1) && get_user_weapon(idattacker) == CSW_M4A1) { KillPlayer(this, idinflictor, idattacker, (1<<1)) } return HAM_IGNORED } KillPlayer(id, inflictor, attacker, damagebits) { static DeathMsgId new msgblock, effect if (!DeathMsgId) DeathMsgId = get_user_msgid("DeathMsg") msgblock = get_msg_block(DeathMsgId) set_msg_block(DeathMsgId, BLOCK_ONCE) set_pdata_int(id, 75, HIT_CHEST , 5) set_pdata_int(id, 76, damagebits, 5) ExecuteHamB(Ham_Killed, id, attacker, 1) set_pev(id, pev_dmg_inflictor, inflictor) effect = pev(id, pev_effects) if(effect & 128) set_pev(id, pev_effects, effect-128) set_msg_block(DeathMsgId, msgblock) message_begin(MSG_ALL, DeathMsgId) write_byte(attacker) write_byte(id) write_byte(0) write_string("m4a1") message_end() }
nie testowałem.
PANDA_2zl
11.06.2022
#include <amxmodx> #include <codmod> #include <engine> #include <hamsandwich> #include <fakemeta> #include <fun> new bool:ma_klase[33], bool:zamrozenie[33] new const nazwa[] = "Mrozon"; new const opis[] = "Posiada 1/5 na zamrozenie"; new const bronie = (1<<CSW_M4A1); new const zdrowie = 5; new const kondycja = 15; new const inteligencja = 5; new const wytrzymalosc = 10; public plugin_init() { register_plugin(nazwa, "1.0", "RiviT"); cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 1) RegisterHam(Ham_Killed, "player", "HamKilledPre", 0) } public cod_class_enabled(id) ma_klase[id] = true public cod_class_disabled(id) ma_klase[id] = false public TakeDamage(this, idinflictor, idattacker) { if(!is_user_connected(idattacker) || get_user_team(idattacker) == get_user_team(this) || zamrozenie[this]) return HAM_IGNORED; if(ma_klase[idattacker] && random_num(1, 12) == 1) { zamrozenie[this] = true set_pev(this, pev_flags, pev(this, pev_flags) | FL_FROZEN) set_task(2.0, "Odmroz", this) client_print(this, print_center, "Zostales zamrozony na 2s!") set_user_rendering(this, kRenderFxGlowShell, 107, 179, 250, kRenderNormal, 20); } return HAM_IGNORED; } public HamKilledPre(this, attacker) { if(is_user_connected(this) && zamrozenie[this]) set_pev(this, pev_flags, pev(this, pev_flags) &~ FL_FROZEN) } public Odmroz(id) { if(!is_user_alive(id)) return new origin[3] get_user_origin(id, origin) set_pev(id, pev_flags, pev(id, pev_flags) &~ FL_FROZEN) zamrozenie[id] = false set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0); origin[2] += 35 set_user_origin(id, origin) }
takie ode mnie bo widze w między czasie ktoś uprzedził
Edited by SezonowyGracz, 11.06.2022 13:32.
szczypek1g
11.06.2022
Zamień cały public TakeDamage na to:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker) || get_user_team(idattacker) == get_user_team(this) || !ma_klase[idattacker]) return HAM_IGNORED; if(!random(5) && !zamrozenie[this]) { zamrozenie[this] = true set_pev(this, pev_flags, pev(this, pev_flags) | FL_FROZEN) set_task(2.0, "Odmroz", this) client_print(this, print_center, "Zostales zamrozony na 2s!") } if(!random(12) && damagebits & (1<<1) && get_user_weapon(idattacker) == CSW_M4A1) { KillPlayer(this, idinflictor, idattacker, (1<<1)) } return HAM_IGNORED } KillPlayer(id, inflictor, attacker, damagebits) { static DeathMsgId new msgblock, effect if (!DeathMsgId) DeathMsgId = get_user_msgid("DeathMsg") msgblock = get_msg_block(DeathMsgId) set_msg_block(DeathMsgId, BLOCK_ONCE) set_pdata_int(id, 75, HIT_CHEST , 5) set_pdata_int(id, 76, damagebits, 5) ExecuteHamB(Ham_Killed, id, attacker, 1) set_pev(id, pev_dmg_inflictor, inflictor) effect = pev(id, pev_effects) if(effect & 128) set_pev(id, pev_effects, effect-128) set_msg_block(DeathMsgId, msgblock) message_begin(MSG_ALL, DeathMsgId) write_byte(attacker) write_byte(id) write_byte(0) write_string("m4a1") message_end() }nie testowałem.
A to jest coś o tym efekcie zamrożenia? Czy tylko 1/12?
@SezonowyGracz
Twoje działa z tym efektem, ale nie znika po odmrożeniu
Edited by szczypek1g, 11.06.2022 18:34.
PANDA_2zl
11.06.2022
public Odmroz(id) { set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0); if(!is_user_alive(id)) return new origin[3] get_user_origin(id, origin) set_pev(id, pev_flags, pev(id, pev_flags) &~ FL_FROZEN) zamrozenie[id] = false origin[2] += 35 set_user_origin(id, origin) }
podmień