PHP Code:
new g_iClientAttach = -1;
new g_iClientCanSee = -1;
new g_iParticle = -1;
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn, EventHookMode_Post);
HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);
HookEvent("teamplay_round_win", Event_RoundWin, EventHookMode_PostNoCopy);
}
public OnEntityCreated(entity, const String:classname[])
{
if (StrEqual(classname, "info_particle_system"))
{
SDKHook(entity, SDKHook_Spawn, Hook_OnEntitySpawn);
}
}
public Hook_OnEntitySpawn(entity)
{
decl String:parentname[33];
GetEntPropString(entity, Prop_Data, "m_iParent", parentname, sizeof(parentname));
if (StrContains(parentname, "durp_particle") != -1)
{
SDKHook(entity, SDKHook_SetTransmit, Hook_SetTransmit);
}
}
public Action:Hook_SetTransmit(entity, client)
{
if (client != g_iClientCanSee)
return Plugin_Handled;
return Plugin_Continue;
}
public Event_RoundWin(Handle:event, const String:name[], bool:dontBroadcast)
{
MurderParticle();
}
public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new iDerp = GetClientOfUserId(GetEventInt(event, "userid"));
if (iDerp == g_iClientAttach)
{
MurderParticle();
if (GetClientTeam(g_iClientAttach) != GetClientTeam(g_iClientCanSee))
{
AttachParticle(g_iClientAttach, "duel_red");
}
}
}
public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
new iDerp = GetClientOfUserId(GetEventInt(event, "userid"));
if (iDerp == g_iClientAttach)
{
MurderParticle();
}
}
MurderParticle()
{
if (g_iParticle != -1 && IsValidEdict(g_iParticle))
{
AcceptEntityInput(g_iParticle, "Kill");
if (IsValidEdict(g_iParticle))
{
RemoveEdict(g_iParticle);
}
}
g_iParticle = -1;
}
AttachParticle(ent, String:particleType[])
{
g_iParticle = CreateEntityByName("info_particle_system");
if (IsValidEdict(g_iParticle))
{
new Float:pos[3] ;
GetEntPropVector(ent, Prop_Send, "m_vecOrigin", pos);
pos[1] += 20;
TeleportEntity(g_iParticle, pos, NULL_VECTOR, NULL_VECTOR);
DispatchKeyValue(ent, "targetname", "durp_particle");
DispatchKeyValue(g_iParticle, "targetname", "tf2particle");
DispatchKeyValue(g_iParticle, "parentname", "durp_particle");
DispatchKeyValue(g_iParticle, "effect_name", particleType);
DispatchSpawn(g_iParticle);
SetVariantString("durp_particle");
AcceptEntityInput(g_iParticle, "SetParent", g_iParticle, g_iParticle, 0);
SetVariantString("head");
AcceptEntityInput(g_iParticle, "SetParentAttachment", g_iParticle, g_iParticle, 0);
ActivateEntity(g_iParticle);
AcceptEntityInput(g_iParticle, "start");
}
}
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
2 problems, the transmit is not working, everyone can see the logo, tho i might be doing that wrong, just assuming thats how it works
Second, the logo is not removed when people die, respawn, change class....
tried Kill ent input, and remove edict on the death event and spawn event.
http://cloud.steampowered.com/ugc/55...050AB91EDC231/
__________________