Redbull da bir süreden sonra gravity değişiyor ve normale dönüyor ayrıca redbullun kapatıp açma süresi çok uzun baya bekletiyor. Düzeltilebiliyorsa attığım kodda düzeltebilir misiniz? Düzelmiyorsa bu sorun olmayan bir redbull plugini atabilir misiniz? Teşekkürler.
Kod:
#include <amxmodx>
#include <reapi>
new const tag[] = "Olympus";
new bool:blUsed[MAX_CLIENTS+1], Float:cvar[3], hardkomut;
public plugin_init()
{
register_plugin("ReAPI Redbull", "0.1", "LyNcH");
register_clcmd("radio1", "@Redbull");
register_clcmd("say /redbull", "@Redbull");
register_event("CurWeapon", "@CurWeapon", "be");
RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "@CBasePlayer_ResetMaxSpeed", .post = false);
RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = true);
RegisterHookChain(RG_CSGameRules_RestartRound, "@CSGameRules_RestartRound", .post = true);
bind_pcvar_float(create_cvar("redbull_maxcan", "120.0"), cvar[0]);
bind_pcvar_float(create_cvar("redbull_hiz", "700.0"), cvar[1]);
bind_pcvar_float(create_cvar("redbull_gravity", "1"), cvar[2]);
}
public plugin_natives()
{
register_native("Hard_Komut","native_Hard_Komut");
register_native("Hard_KomutAc","native_Hard_KomutAc");
register_native("Hard_KomutKapat","native_Hard_KomutKapat");
}
public native_Hard_Komut(id)
{
return hardkomut;
}
public native_Hard_KomutAc(id)
{
new bmOyuncular[32],bmSayi
get_players(bmOyuncular, bmSayi ,"a");
for(new i; i < bmSayi; i++){
id = bmOyuncular[i];
blUsed[id] = false;
set_entvar(id, var_maxspeed, 320.0);
set_entvar(id, var_gravity, 1.0);
remove_task(id + 1000);
}
hardkomut = true;
}
public native_Hard_KomutKapat(id)
{
hardkomut = false;
}
public client_disconnected(id) {
blUsed[id] = false;
if(task_exists(id + 1000)) remove_task(id + 1000);
}
@CurWeapon(const id)
{
if(blUsed[id]) {
set_entvar(id, var_maxspeed, cvar[1]);
set_entvar(id, var_gravity, cvar[2]);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
@CBasePlayer_ResetMaxSpeed(const id) {
if(blUsed[id]) {
set_entvar(id, var_maxspeed, cvar[1]);
set_entvar(id, var_gravity, cvar[2]);
return HC_SUPERCEDE;
}
return HC_CONTINUE;
}
@CBasePlayer_Killed(const victim, const killer) {
new t; rg_initialize_player_counts(t);
if(t <= 1) {
for(new i = 1; i <= MaxClients; i++) {
if(is_user_alive(i)) {
blUsed[i] = false;
@Settings(i);
}
}
}
if(blUsed[victim]) {
blUsed[victim] = false;
@Settings(victim);
}
}
@CSGameRules_RestartRound() {
for(new i = 1; i <= MaxClients; i++) {
if(is_user_connected(i)) {
blUsed[i] = false;
@Settings(i);
}
}
}
@Redbull(const id) {
if(IsCanUse(id))
{
if(blUsed[id]) {
blUsed[id] = false;
client_print_color(id, id, "^1[^3%s^1] ^4Redbull devre disi birakildi ^1!", tag);
}
else {
blUsed[id] = true;
set_task(1.0, "@GiveHeal", id + 1000, .flags = "b");
client_print_color(id, id, "^1[^3%s^1] ^4Redbull aktif edildi ^1!", tag);
}
@Settings(id);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
@GiveHeal(const Taskid) {
new id = Taskid - 1000;
if(is_user_alive(id) && get_entvar(id, var_health) < cvar[0] && blUsed[id]) {
set_entvar(id, var_health, Float:get_entvar(id, var_health) + 1.0);
set_entvar(id, var_maxspeed, cvar[1]);
set_entvar(id, var_gravity, cvar[2]);
}
}
@Settings(const id) {
if(!is_user_alive(id)) {
return;
}
if(blUsed[id]) {
set_entvar(id, var_maxspeed, cvar[1]);
set_entvar(id, var_gravity, cvar[2]);
}
else {
remove_task(id + 1000);
rg_reset_maxspeed(id);
set_entvar(id, var_gravity, 1.0);
}
}
stock bool:IsCanUse(const id) {
new t; rg_initialize_player_counts(t);
if(!is_user_alive(id)) {
client_print_color(id, id, "^1[^3%s^1] ^4Oluyken redbull icemezsin ^1!", tag);
return false;
}
if(t <= 1) {
client_print_color(id, id, "^1[^3%s^1] ^4Tek mahkum varken redbull icemezsin ^1!", tag);
return false;
}
if(hardkomut) {
client_print_color(id, id,"^1[^3%s^1] ^4Hard komut acikken redbull icemezsin ^1!", tag);
return false;
}
return true;
})

