Author Topic: Death Breaks when I do certain things with gameconnection::ondeath  (Read 801 times)

Code: [Select]
function generateDeathMessage(%client,%killer,%type)
{
if(isObject(%killer) && %killer != %client)
{
%msg = getTaggedString($DeathMessage_Murder[%type]);
%msg = setWord(%msg,getWordCount(%msg)-1,%client.getPlayerName());
%msg = setWord(%msg,0,%killer.getPlayerName());
}
else
{
%msg = getTaggedString($DeathMessage_Self Delete[%type]);
%msg = setWord(%msg,getWordCount(%msg)-1,%client.getPlayerName());
}
        return %msg;
}
function GameConnection::onDeath(%client,%obj,%killer,%type,%area)
{
        %minigame = %client.minigame;
if(isObject(%killer))
{
%client.kills = 0;
if(%killer != %client)
%killer.kills++;
}
%msg = generateDeathMessage(%client,%killer,%type);

%ks = "\c3(Kill Spree:" SPC %killer.player.kills @ ")";
%msg = %msg SPC %ks;

%minigame.messageAll('',%msg);
parent::onDeath(%client,%obj,%killer,%type,%area);

}
I'm trying to replicate slayers killstreaks but whenever I do this the entire death function breaks (except for kill messages but I basically just recreated it) even though I parented it what am I doing wrong?

this is packaged correct?

So you basically want to remake the Slayer kill-streak system, like you were telling me about?

Here's an example of how to do it.
Code: [Select]
package blah
{
function generateDeathMessage(%client,%killer,%type)
{
//this prevents the slayer killstreak messages from appearing.
%killer.player.killSpree = 0;

%msg = parent::generateDeathMessage(%client,%killer,%type);

if(!isObject(%killer) || %killer == %client)
return %msg;

//this is where your kill streaks are set.
%killer.player.killStreak ++;
if(%killer.player.killStreak >= Slayer.getPref("Bonus Kills","Kill Spree Start"))
{
//set the message
%msg = setWord(%msg,getWordCount(%msg),"\c3(Kill Streak:" SPC %killer.player.killStreak @ ")");
}

return %msg;
}
};
activatePackage(blah);
« Last Edit: September 18, 2011, 12:16:35 PM by Greek2me »

I fixed it so that it works but two death messages appear now one with the killstreak and one without
Code: [Select]
function generateDeathMessage(%client,%killer,%type)
{
if(isObject(%killer) && %killer != %client)
{
%msg = getTaggedString($DeathMessage_Murder[%type]);
%msg = setWord(%msg,getWordCount(%msg)-1,%client.getPlayerName());
%msg = setWord(%msg,0,%killer.getPlayerName());
}
else
{
%msg = getTaggedString($DeathMessage_Self Delete[%type]);
%msg = setWord(%msg,getWordCount(%msg)-1,%client.getPlayerName());
}
return %msg;
}
package SwollowKillstreaks
{
function GameConnection::onDeath(%client,%obj,%killer,%type,%area)
{
%minigame = %client.minigame;
if(isObject(%killer))
{
%client.kills = 0;
if(%killer != %client)
%killer.kills++;
}
%msg = generateDeathMessage(%client,%killer,%type);

%ks = "\c3(Kill Spree:" SPC %killer.player.kills @ ")";
%msg = %msg SPC %ks;

%minigame.messageAll('',%msg);
return parent::onDeath(%client,%obj,%killer,%type,%area);
}
};
ActivatePackage(SwollowKillstreaks);
Whats wrong with it?

I fixed it so that it works but two death messages appear now one with the killstreak and one without
Look at my previous post. That's all you need to make this work.

Look at my previous post. That's all you need to make this work.
nono I'm trying to make a stand alone killstreak mod.
I'm really confused now :|
I already have the killstreak mod done and stuff I just want the killstreak messages to appear after death messages instead of cluttering the chat
« Last Edit: September 18, 2011, 01:25:16 PM by swollow »

nono I'm trying to make a stand alone killstreak mod.
I'm really confused now :|
I already have the killstreak mod done and stuff I just want the killstreak messages to appear after death messages instead of cluttering the chat
Then your mod will break Slayer, TDM, and any other mod that uses custom death messages.

Then your mod will break Slayer, TDM, and any other mod that uses custom death messages.
Its just a private mod I'm using for death matches