PDA

View Full Version : Custom deathmsg


anakin_cstrike
01-03-2012, 12:03
I wanna show on hud "killer weapon victim" like a default deathmsg
I tried this
new Handle:HookDeathMsg = CreateEvent ( "player_death", true );
SetEventInt ( HookDeathMsg, "userid", i_Player );
SetEventInt ( HookDeathMsg, "attacker", i_Index );
SetEventString ( HookDeathMsg, "weapon", "weapon" );
FireEvent ( HookDeathMsg, true );
but it doesn't show anything

Mitchell
01-03-2012, 15:34
What do you mean?

lokizito
01-03-2012, 20:18
I wanna show on hud "killer weapon victim" like a default deathmsg
I tried this
new Handle:HookDeathMsg = CreateEvent ( "player_death", true );
SetEventInt ( HookDeathMsg, "userid", i_Player );
SetEventInt ( HookDeathMsg, "attacker", i_Index );
SetEventString ( HookDeathMsg, "weapon", "weapon" );
FireEvent ( HookDeathMsg, true );
but it doesn't show anything
Are you using in i_Player and i_Index player's userid's?

anakin_cstrike
01-04-2012, 08:37
yes...

Bacardi
01-04-2012, 11:14
There is tutorial in Alliedmodders WIki about this.
- Your problem is that you use player indexs (what are zero to server maxplayer)
Creating or edit event, you need use players #userid, this is uniq number everytime when player connect to server (#zero to #milion or something)

Try again look this


2 Sending Events (http://wiki.alliedmods.net/Events_%28SourceMod_Scripting%29#Sending_Even ts)


here example...
#include <sdktools>

public OnPluginStart()
{
RegConsoleCmd("sm_test", test);
}

public Action:test(client, args)
{

new target = GetClientAimTarget(client, true);

if(target != -1) // You aim to someone
{
new Handle:event = CreateEvent("player_death"); // Try create event

if (event == INVALID_HANDLE) // event not succeed, not exist, wrong event name !
{
return Plugin_Handled;
}

SetEventInt(event, "userid", GetClientUserId(target)); // victim
SetEventInt(event, "attacker", GetClientUserId(client)); // attacker
SetEventString(event, "weapon", "knife"); // weapon_* name
SetEventBool(event, "headshot", true); // headshot true or false
FireEvent(event);
}
else // Suicide
{
new Handle:event = CreateEvent("player_death"); // Try create event

if (event == INVALID_HANDLE) // event not succeed, not exist, wrong event name !
{
return Plugin_Handled;
}

SetEventInt(event, "userid", GetClientUserId(client)); // victim
SetEventInt(event, "attacker", GetClientUserId(client)); // attacker
SetEventString(event, "weapon", "knife"); // weapon_* name
SetEventBool(event, "headshot", true); // headshot true or false
FireEvent(event);
}


return Plugin_Handled; // When using commands, this stop show "unknow command" player console
}

*edit
You get better results when you fill all event outputs, or else it will show event console message side by side...

iNexus
01-04-2012, 11:51
It's valide no ?

new Handle:newEvent = CreateEvent("player_death", true);
if (newEvent == INVALID_HANDLE)
{
return Plugin_Handled;
}
SetEventInt(newEvent, "index", 0);
SetEventInt(newEvent, "userid", 0);
SetEventInt(newEvent, "attacker", 0);
SetEventString(newEvent, "weapon", "");
SetEventBool(newEvent, "headshot", false);
SetEventInt(newEvent, "dominated", 0);
SetEventInt(newEvent, "revenge", 0);
FireEvent(newEvent);

anakin_cstrike
01-04-2012, 12:41
works, thanks