[ROZWIĄZANE] Zamrożenie gracza, brak akcji
EferenTM
27.12.2013
Witam,
mam kod paralizatora napisanego przeze mnie, który działa świetnie, lecz jest jeden problem.
Po uderzeniu paralizatorem gracza zamraża go (nie może się ruszać) lecz może atakować,
Chciałbym się dowiedzieć jaką funkcją mógłbym uniemożliwić graczowi wykonywanie akcji uderz,strzel itp.
Oto kawałek kodu:
if(wid == CSW_KNIFE && !CheckParaliz(this) && is_user_alive(this) && get_user_team(this) == 1) { set_hudmessage(0, 0, 255, 0.02, 0.23, 0, 6.0, 7.0); show_hudmessage(idattacker, "[Sparalizowales: %s]^n[Masz 10 sekund na przeszukanie go]", username); g_iCzas[this] = 10; set_task(1.0, "Freeze", this, _, _, "a", 10); set_user_maxspeed(this, 0.1); set_user_rendering(this, kRenderFxGlowShell, 0, 0, 255, kRenderGlow, 60) SetParaliz(this); return HAM_SUPERCEDE } } return HAM_IGNORED; } public Freeze(this) { set_hudmessage(0, 0, 255, 0.02, 0.23, 0, 6.0, 7.0); show_hudmessage(this, "[Zostales sparalizowany]^n[Pozostalo: %d sekund]", g_iCzas[this]); --g_iCzas[this] if(g_iCzas[this] <= 0) { remove_task(this); set_user_maxspeed(this, 0.0); set_user_rendering(this, kRenderFxNone, 0, 0, 0, kRenderNormal); RemoveParaliz(this); } }
Pomóżcie, dajcie wskazówkę, nawet w dokumentacji nie mogłem znaleźć odpowiedniej funkcji.
Pozdrawiam Eferen.
0-0-0
27.12.2013
Dodajesz na samej górze:
Użytkownik Zerko edytował ten post 27.12.2013 16:40
new pValue;
#define OFFSET_LINUX_WEAPONS 4 #define m_flNextPrimaryAttack 46 #define m_flNextSecondaryAttack 47Do plugin init dodajesz:
new const szWpnEntNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" } for(new i = 0;i<sizeof szWpnEntNames;i++) if(szWpnEntNames[i][0]) RegisterHam(Ham_Item_Deploy,szWpnEntNames[i],"fwPrimary")Tworzysz nowy public:
public fwPrimary(id){ if(pValue == 1) set_pdata_float(id, m_flNextPrimaryAttack, 99999.0, OFFSET_LINUX_WEAPONS) if(pValue == 1) set_pdata_float(id, m_flNextSecondaryAttack, 99999.0, OFFSET_LINUX_WEAPONS) }Zmieniasz kawałek kodu co podałeś na:
if(wid == CSW_KNIFE && !CheckParaliz(this) && is_user_alive(this) && get_user_team(this) == 1) { set_hudmessage(0, 0, 255, 0.02, 0.23, 0, 6.0, 7.0); show_hudmessage(idattacker, "[Sparalizowales: %s]^n[Masz 10 sekund na przeszukanie go]", username); g_iCzas[this] = 10; set_task(1.0, "Freeze", this, _, _, "a", 10); set_user_maxspeed(this, 0.1); set_user_rendering(this, kRenderFxGlowShell, 0, 0, 255, kRenderGlow, 60) SetParaliz(this); pValue == 1 return HAM_SUPERCEDE } } return HAM_IGNORED; } public Freeze(this) { set_hudmessage(0, 0, 255, 0.02, 0.23, 0, 6.0, 7.0); show_hudmessage(this, "[Zostales sparalizowany]^n[Pozostalo: %d sekund]", g_iCzas[this]); --g_iCzas[this] if(g_iCzas[this] <= 0) { remove_task(this); set_user_maxspeed(this, 0.0); set_user_rendering(this, kRenderFxNone, 0, 0, 0, kRenderNormal); RemoveParaliz(this); pValue == 0 } }
Użytkownik Zerko edytował ten post 27.12.2013 16:40
sebul
27.12.2013
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL