Raised This Month: $ Target: $400
 0% 

Help / Support ZP5.0 "fm_set_rendering" problem!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
kaiii
Member
Join Date: Jul 2023
Location: Hungary
Old 05-04-2024 , 03:17   ZP5.0 "fm_set_rendering" problem!
Reply With Quote #1

Hello! I have this speed boost by MeRcyLeZZ and I was trying add a glowing effect to the player who has bought the speed boost and it was successful except for the humans.

Whenever zombies buy the speed boost, they get the glowing effect, but when humans buy it, they do not have the glowing effect...

Any idea what causes this?

Code; (SMA INCLUDED)

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zp50_core>
#include <zp50_items>
#include <zp50_class_nemesis>
#include <zp50_class_survivor>

const TASK_SPEED_BOOST = 100
#define ID_SPEED_BOOST (taskid - TASK_SPEED_BOOST)

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame

new g_itemid_boost
new cvar_boost_amount
new cvar_boost_duration
new g_has_speed_boost[33]
new g_sb_red, g_sb_green, g_sb_blue

public plugin_init()
{
register_plugin("[ZP] Extra Item Speed Boost", "1.2", "MeRcyLeZZ")

g_itemid_boost = zp_items_register("Speed Boost", 5)
cvar_boost_amount = register_cvar("zp_boost_amount", "100.0")
cvar_boost_duration = register_cvar("zp_boost_duration", "5.0")
g_sb_red = register_cvar("zp_sb_red_color", "150")
g_sb_green = register_cvar("zp_sb_green_color", "0")
g_sb_blue = register_cvar("zp_sb_blue_color", "100")

RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public zp_fw_items_select_pre(id, itemid, ignorecost)
{
if (itemid == g_itemid_boost)
{
// Don't show to nemesis and survivor
if(zp_class_nemesis_get(id) || zp_class_survivor_get(id))
{
return ZP_ITEM_DONT_SHOW;
}

// Player frozen (or CS freezetime)
if (pev(id, pev_maxspeed) <= 1)
{
client_print(id, print_chat, "[ZP] You can't use this item when frozen.");
return ZP_ITEM_NOT_AVAILABLE;
}

// Already using speed boost
if (g_has_speed_boost[id])
{
client_print(id, print_chat, "[ZP] You already have the speed boost.");
return ZP_ITEM_NOT_AVAILABLE;
}
}
return ZP_ITEM_AVAILABLE;
}

public zp_fw_items_select_post(id, itemid, ignorecost)
{
if (itemid == g_itemid_boost)
{
if(is_user_alive(id))
{
// Enable speed boost
fm_set_rendering(id, kRenderFxGlowShell, get_pcvar_num(g_sb_red), get_pcvar_num(g_sb_green), get_pcvar_num(g_sb_blue), kRenderNormal, 255);
g_has_speed_boost[id] = true;
client_print(id, print_chat, "[ZP] Speed boost enabled!");

// Set the restore speed task
set_task(get_pcvar_float(cvar_boost_duration) , "restore_maxspeed", id+TASK_SPEED_BOOST);

// Update player's maxspeed
ExecuteHamB(Ham_Player_ResetMaxSpeed, id);
}
}
}

public restore_maxspeed(taskid)
{
// Disable speed boost
g_has_speed_boost[ID_SPEED_BOOST] = false;
fm_set_rendering(ID_SPEED_BOOST, kRenderFxNone, 0, 0 ,0, kRenderNormal, 255);
client_print(ID_SPEED_BOOST, print_chat, "[ZP] Speed boost is over.");

// Update player's maxspeed
ExecuteHamB(Ham_Player_ResetMaxSpeed, ID_SPEED_BOOST);
}

// Remove speed boost task when infected, humanized, killed, or disconnected
public zp_fw_core_infect(id, attacker)
{
g_has_speed_boost[id] = false;
remove_task(id+TASK_SPEED_BOOST);
}
public zp_fw_core_cure(id, attacker)
{
g_has_speed_boost[id] = false;
remove_task(id+TASK_SPEED_BOOST);
}
public fw_PlayerKilled(victim)
{
g_has_speed_boost[victim] = false;
remove_task(victim+TASK_SPEED_BOOST);
}
public client_disconnect(id)
{
g_has_speed_boost[id] = false;
remove_task(id+TASK_SPEED_BOOST);
}

// Remove speed boost at round start
public event_round_start()
{
new id;
for (id = 1; id <= get_maxplayers(); id++)
{
g_has_speed_boost[id] = false;
remove_task(id+TASK_SPEED_BOOST);
}
}

public fw_ResetMaxSpeed_Post(id)
{
if (!is_user_alive(id) || !g_has_speed_boost[id])
return;

// Apply speed boost
new Float:current_maxspeed;
pev(id, pev_maxspeed, current_maxspeed);
set_pev(id, pev_maxspeed, current_maxspeed + get_pcvar_float(cvar_boost_amount));
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
new Float:RenderColor[3];
RenderColor[0] = float(r);
RenderColor[1] = float(g);
RenderColor[2] = float(b);

set_pev(entity, pev_renderfx, fx);
set_pev(entity, pev_rendercolor, RenderColor);
set_pev(entity, pev_rendermode, render);
set_pev(entity, pev_renderamt, float(amount));

return 1;
}
Attached Files
File Type: sma Get Plugin or Get Source (ZP_Extra_Speed_Boost50.sma - 26 views - 4.6 KB)
__________________
I know God doesn't hear dead men. But I expect he answers them.

Last edited by kaiii; 05-04-2024 at 03:17.
kaiii is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:23.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode