RSSy MYGO.pl Opublikowano Kwiecień 13, 2022 o 03:57 RSSy Udostępnij Opublikowano Kwiecień 13, 2022 o 03:57 Request master repair SMA, thank you new cvar_pump_active; new cvar_pump_force; Float:operator*(Float:,_:)(Float:oper1, oper2) { return floatmul(oper1, float(oper2)); } Float:operator/(Float:,_:)(Float:oper1, oper2) { return floatdiv(oper1, float(oper2)); } bool:operator>(Float:,Float:)(Float:oper1, Float:oper2) { return 0 < floatcmp(oper1, oper2); } bool:operator<=(Float:,Float:)(Float:oper1, Float:oper2) { return 0 >= floatcmp(oper1, oper2); } get_entity_distance(ent1, ent2) { new Float:orig1[3] = 0.0; new Float:orig2[3] = 0.0; entity_get_vector(ent1, cvar_pump_active, orig1); entity_get_vector(ent2, cvar_pump_active, orig2); return floatround(get_distance_f(orig1, orig2), cvar_pump_active); } set_user_velocity(entity, Float:vec[3]) { return entity_set_vector(entity, 2, vec); } get_user_velocity(entity, Float:vec[3]) { return entity_get_vector(entity, 2, vec); } public plugin_init() { register_plugin("Pump Knockback (when shot by one)", "1.0", "v3x & Chronic"); register_event("Damage", "event_Damage", 296, "2>0"); cvar_pump_active = register_cvar("pump_knockback", 380, cvar_pump_active, cvar_pump_active); cvar_pump_force = register_cvar("pump_force", "10", cvar_pump_active, cvar_pump_active); return 0; } public event_Damage(id) { if (!get_pcvar_num(cvar_pump_active)) { return 0; } if (!is_user_alive(id)) { return 0; } new weapon; new attacker = get_user_attacker(id, weapon); if (!is_user_alive(attacker)) { return 0; } if (weapon == 21) { new Float:vec[3] = 0.0; new Float:oldvelo[3] = 0.0; get_user_velocity(id, oldvelo); create_velocity_vector(id, attacker, vec); vec[0] = floatadd(vec[0], oldvelo[0]); new var1 = vec[1]; var1 = floatadd(var1, oldvelo[1]); set_user_velocity(id, vec); } return 0; } create_velocity_vector(victim, attacker, Float:velocity[3]) { new var1; if (!is_user_alive(victim) || !is_user_alive(attacker)) { return 0; } new Float:vicorigin[3] = 0.0; new Float:attorigin[3] = 0.0; entity_get_vector(victim, cvar_pump_active, vicorigin); entity_get_vector(attacker, cvar_pump_active, attorigin); new Float:origin2[3] = 0.0; origin2[0] = floatsub(vicorigin[0], attorigin[0]); origin2[1] = floatsub(vicorigin[1], attorigin[1]); new Float:largestnum = 0.0; if (floatabs(origin2[0]) > largestnum) { largestnum = floatabs(origin2[0]); } if (floatabs(origin2[1]) > largestnum) { largestnum = floatabs(origin2[1]); } origin2[0] = floatdiv(origin2[0], largestnum); new var3 = origin2[1]; var3 = floatdiv(var3, largestnum); velocity[0] = floatmul(origin2[0], get_pcvar_float(cvar_pump_force) * 3000) / get_entity_distance(victim, attacker); velocity[1] = floatmul(origin2[1], get_pcvar_float(cvar_pump_force) * 3000) / get_entity_distance(victim, attacker); new var2; if (velocity[0] <= 20.0 || velocity[1] <= 20.0) { velocity[2] = random_float(1128792064, 1133084672); } return 1; } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi