Blockland Forums > Modification Help

Death Breaks when I do certain things with gameconnection::ondeath

Pages: (1/2) > >>

Swollow:


--- Code: ---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);

}

--- End code ---
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?

Placid:

this is packaged correct?

Greek2me:

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: ---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);
--- End code ---


Swollow:

I fixed it so that it works but two death messages appear now one with the killstreak and one without

--- Code: ---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);
--- End code ---
Whats wrong with it?

Greek2me:


--- Quote from: swollow on September 18, 2011, 12:12:12 PM ---I fixed it so that it works but two death messages appear now one with the killstreak and one without

--- End quote ---
Look at my previous post. That's all you need to make this work.

Pages: (1/2) > >>

Go to full version