Участник
Пользователь
- Сообщения
- 65
- Реакции
- 4
- Помог
- 2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Хотел сделать что бы парашют работал только у вип игроков.
Взял плагин :
Добавил туда пару строк:
Получилось:
Плагин работает вроде нормально но всё ли правильно сделал - добавил?
Взял плагин :
Код:
#include <amxmodx>
#include <reapi>
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
new g_bitAlive;
const Float:fall_speed = -100.0
public plugin_init(){
register_plugin("Parachute Lite [ReAPI]", "10.0", "Leo_[BH]");
RegisterHookChain(RG_CBasePlayer_Spawn, "RG_Spawn_Post", 1);
RegisterHookChain(RG_CBasePlayer_Killed, "RG_Player_Killed", 0);
RegisterHookChain(RG_CBasePlayer_PreThink, "RG_client_PreThink");
}
public RG_Spawn_Post(id) if(is_user_alive(id)) set_bit(g_bitAlive, id);
public RG_Player_Killed(id) clr_bit(g_bitAlive, id);
public client_disconnect(id) clr_bit(g_bitAlive, id);
public RG_client_PreThink(id){
if(!get_bit(g_bitAlive, id)) return;
if (get_entvar(id, EntVars:var_gravity) == 0.1) set_entvar(id, EntVars:var_gravity, 1.0);
if (get_entvar(id, EntVars:var_button) & IN_USE) {
static Float:velocity[3]
get_entvar(id, EntVars:var_velocity, velocity);
if (velocity[2] < 0.0) {
set_entvar(id, EntVars:var_gravity, 0.1);
velocity[2] = (velocity[2] + 40.0 < fall_speed) ? velocity[2] + 40.0 : fall_speed ;
set_entvar(id, EntVars:var_velocity, velocity);
}
}
else if ((get_entvar(id, EntVars:var_oldbuttons) & IN_USE)) {
set_entvar(id, EntVars:var_gravity, 1.0);
}
}
Код:
#define PARACHUTE_FLAG ADMIN_LEVEL_H
и
if(!is_user_connected(id) || !is_user_alive(id) || !(get_user_flags(id) & PARACHUTE_FLAG)) return;
Код:
#include <amxmodx>
#include <reapi>
#define PARACHUTE_FLAG ADMIN_LEVEL_H // ДОБАВИЛ
#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
new g_bitAlive;
const Float:fall_speed = -100.0
public plugin_init(){
register_plugin("Parachute [ReAPI]", "10.0", "Leo_[BH]");
RegisterHookChain(RG_CBasePlayer_Spawn, "RG_Spawn_Post", 1);
RegisterHookChain(RG_CBasePlayer_Killed, "RG_Player_Killed", 0);
RegisterHookChain(RG_CBasePlayer_PreThink, "RG_client_PreThink");
}
public RG_Spawn_Post(id) if(is_user_alive(id)) set_bit(g_bitAlive, id);
public RG_Player_Killed(id) clr_bit(g_bitAlive, id);
public client_disconnected(id) clr_bit(g_bitAlive, id);
public RG_client_PreThink(id){
if(!get_bit(g_bitAlive, id)) return;
if(!is_user_connected(id) || !is_user_alive(id) || !(get_user_flags(id) & PARACHUTE_FLAG)) return; //ДОБАВИЛ
if (get_entvar(id, EntVars:var_gravity) == 0.1) set_entvar(id, EntVars:var_gravity, 1.0);
if (get_entvar(id, EntVars:var_button) & IN_USE) {
static Float:velocity[3]
get_entvar(id, EntVars:var_velocity, velocity);
if (velocity[2] < 0.0) {
set_entvar(id, EntVars:var_gravity, 0.1);
velocity[2] = (velocity[2] + 40.0 < fall_speed) ? velocity[2] + 40.0 : fall_speed ;
set_entvar(id, EntVars:var_velocity, velocity);
}
}
else if ((get_entvar(id, EntVars:var_oldbuttons) & IN_USE)) {
set_entvar(id, EntVars:var_gravity, 1.0);
}
}