| Blockland Forums > Modification Help |
| Death Breaks when I do certain things with gameconnection::ondeath |
| (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. |
| Navigation |
| Message Index |
| Next page |