From 6f9a19def41b6e67f2c84fbda0af3f7836b952d9 Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Tue, 14 Apr 2020 03:52:05 -0400 Subject: [PATCH 1/6] Update LakRabbitGame.cs Blaster Damage reduction (Lak Only) Reduced damage for midair blaster shots Reduced damage for ground blaster shots To combat blaster spamming (Before 4 shots to kill a light > 5 midair shots or 7 ground shots) --- Classic/scripts/LakRabbitGame.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index f68c69d..483be82 100644 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -608,10 +608,13 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am case $DamageType::Blaster: if(%ma) { - %points = %distanceBonus/2; + %points = %distanceBonus/2.5; //was 2 %velBonus /= 2; %sound = %defaultSound; + %amount *= 0.7; //Midair blaster damage reduction - particularly for blaster spamming } + else + %amount *= 0.5; //Ground blaster damage reduction - particularly for blaster spamming %weapon = "Blaster"; case $DamageType::Plasma: if(%ma && %percentDam >= 98) From 40834b15992292772005781e996b35afbfaa8d3d Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Tue, 14 Apr 2020 03:53:44 -0400 Subject: [PATCH 2/6] Update zDarkTigerStats.cs Record Team the player was on --- Classic/scripts/autoexec/zDarkTigerStats.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Classic/scripts/autoexec/zDarkTigerStats.cs b/Classic/scripts/autoexec/zDarkTigerStats.cs index c152f4d..e469396 100644 --- a/Classic/scripts/autoexec/zDarkTigerStats.cs +++ b/Classic/scripts/autoexec/zDarkTigerStats.cs @@ -786,6 +786,8 @@ $dtStats::FV[$dtStats::FC["dtStats"]++,"dtStats"] = "shockHitMaxDist"; $dtStats::FV[$dtStats::FC["dtStats"]++,"dtStats"] = "packpickupCount"; $dtStats::FV[$dtStats::FC["dtStats"]++,"dtStats"] = "weaponpickupCount"; $dtStats::FV[$dtStats::FC["dtStats"]++,"dtStats"] = "repairpackpickupCount"; + + $dtStats::FV[$dtStats::FC["dtStats"]++,"dtStats"] = "dtTeam"; /////////////////////////////////////////////////////////////////// $dtStats::uFC["dtStats"] = 0; // not saved but used to calculate other stats that are saved @@ -3211,6 +3213,9 @@ function DefaultGame::postGameStats(%game,%client){ //stats to add up at the end else if(%game.class $= "LakRabbitGame"){ %client.flagTimeMin = mFloor((%client.flagTimeMS / 1000)/60); } + + //Record clients team + %client.dtTeam = %client.team; } function DefaultGame::getGamePct(%game) From ddae237096a006ed045bc3bea1bdc96728b13783 Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Tue, 14 Apr 2020 15:15:54 -0400 Subject: [PATCH 3/6] Update LakRabbitGame.cs Added Laser and Chain Damage back Merged hand grenade code with grenade launcher switch code. --- Classic/scripts/LakRabbitGame.cs | 176 +++++++++++++++---------------- 1 file changed, 87 insertions(+), 89 deletions(-) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index 483be82..1447dd8 100644 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -354,9 +354,8 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am // borlak -- DJ + gren spam abuse, remove player height if(%damageType == $DamageType::Grenade && !$lastObjExplode.isHandNade) %targetPosition = setWord(%targetPosition, 2, getWord(%targetPosition,2) - getHeight(%targetObject)); - - //if(%damageType == $DamageType::ShockLance || %damageType == $DamageType::Laser) - if(%damageType == $DamageType::ShockLance) + + if(%damageType == $DamageType::ShockLance || %damageType == $DamageType::Laser) { $lastObjExplode = 0; %distance = VectorDist(%targetPosition, %sourceObject.getWorldBoxCenter()); @@ -380,8 +379,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am %velBonus = (mPow(%vel,1.125)/10)+1; // for shock and laser, you get MA points if -you- are in the air not the opponent - //if(%damageType == $DamageType::ShockLance || %damageType == $DamageType::Laser) - if(%damageType == $DamageType::ShockLance) + if(%damageType == $DamageType::ShockLance || %damageType == $DamageType::Laser) %ma = TestForMA(%sourceObject, 6); else %ma = TestForMA(%targetObject, 6); @@ -400,45 +398,6 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am if(Game.noSplashDamage && %percentDam < 98 && $lastObjExplode && !$lastObjExplode.isHandNade && %damageType != $DamageType::Mine) %amount = 0.0; - //if(%damageType == $DamageType::Laser && (%energy > 0.5 || %players > 7)) - //{ - // %players = (ClientGroup.getCount()-1)/1.5; - // %points = (%distance/75)+1; - // - // if(%ma) - // %points *= 1.75; - // - // if(%targetObject.client.headshot) - // { - // %sound = %defaultSound; - // %special = " Headshot"; - // %points *= 1.75; - // } - // %sourceObject.client.totalSnipeHits++; - // %weapon = "Snipe"; - //} - //else if(%damageType == $DamageType::Bullet) - //{ - // // doesn't matter if it's MA - // %ma = 0; - // - // %players = (ClientGroup.getCount()-1)/1.75; - // - // $LakFired[%sourceObject, ChaingunBullet, 1]++; - // - // if($LakFired[%sourceObject, ChaingunBullet, 1] % 5 == 0) - // { - // %accamount = mFloor(($LakFired[%sourceObject, ChaingunBullet, 1] / $LakFired[%sourceObject, ChaingunBullet, 0])*100); - // %velBonus = 0; - // %points = (%accamount/3)+1; - // %accuracy = " [Accuracy:" @ %accamount @ "%]"; - // - // %sourceObject.client.totalChainAccuracy += %accamount; - // %sourceObject.client.totalChainHits++; - // } - // %weapon = "Chaingun"; - //} - switch$(%damageType) { case $DamageType::Disc: @@ -505,37 +464,60 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am } %weapon = "Disc"; case $DamageType::Grenade: - if(Game.PubPro) + if($lastObjExplode.isHandNade) //Hand grenades { - if(%ma && %percentDam >= 98) + if(%percentDam > 20) { - %points = %distanceBonus; - %sound = %defaultSound; + %accuracy = " [Accuracy:" @ %percentDam @ "%]"; + %points = (%percentDam/10)+1; + %velBonus = 0; + %sound = '~wfx/misc/coin.wav'; + } - if(%percentDam >= 25 && !%ma && %distance >= 80 && %velTarget > 20) + if(%percentDam >= 99) { - %points = %longDistanceBonus; - %velBonus /= 2; - %long = 1; - %sound = %defaultSound; + %sound = '~wfx/misc/Cheer.wav'; + %points *= 2.0; } + if(%ma) + %points *= 1.5; + + %weapon = "Hand-Nade"; } - else + else { - if(%ma && %percentDam >= 98) + if(Game.PubPro) { - %points = %distanceBonus/1.85; - %sound = %defaultSound; + if(%ma && %percentDam >= 98) + { + %points = %distanceBonus; + %sound = %defaultSound; + } + if(%percentDam >= 25 && !%ma && %distance >= 80 && %velTarget > 20) + { + %points = %longDistanceBonus; + %velBonus /= 2; + %long = 1; + %sound = %defaultSound; + } } - if(%percentDam >= 25 && !%ma && %distance >= 100 && %velTarget > 30) + else { - %points = %longDistanceBonus/1.85; - %velBonus /= 4; - %long = 1; - %sound = %defaultSound; + if(%ma && %percentDam >= 98) + { + %points = %distanceBonus/1.85; + %sound = %defaultSound; + } + if(%percentDam >= 25 && !%ma && %distance >= 100 && %velTarget > 30) + { + %points = %longDistanceBonus/1.85; + %velBonus /= 4; + %long = 1; + %sound = %defaultSound; + } } + %weapon = "Grenade-Launcher"; } - %weapon = "Grenade-Launcher"; case $DamageType::Mortar: if(%ma && %percentDam >= 98) { @@ -588,7 +570,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am %dif = VectorNormalize(%dif); %dot = VectorDot(%dif, %objDir2D); - if(%dot >= mCos(1.05)) + if(%dot >= mCos(1.05)) { if(%sourceObject.holdingFlag && TestForMA(%targetObject, 6)) { @@ -602,9 +584,12 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am } if(%ma) %points += 3; - %sound = %defaultSound; - %sourceObject.client.totalShockHits++; - %weapon = "ShockLance"; + + //not a bug. sl gets points ma or not + %sound = %defaultSound; + %sourceObject.client.totalShockHits++; + + %weapon = "ShockLance"; case $DamageType::Blaster: if(%ma) { @@ -630,30 +615,43 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am %sound = %defaultSound; } %weapon = "Plasma"; + case $DamageType::Laser: + if(%energy > 0.5 || %players > 7) + { + %players = (ClientGroup.getCount()-1)/1.5; + %points = (%distance/75)+1; + + if(%ma) + %points *= 1.75; + + if(%targetObject.client.headshot) + { + %sound = %defaultSound; + %special = " Headshot"; + %points *= 1.75; + } + %sourceObject.client.totalSnipeHits++; + %weapon = "Snipe"; + } + case $DamageType::Bullet: + // doesn't matter if it's MA + %ma = 0; + %players = (ClientGroup.getCount()-1)/1.75; + $LakFired[%sourceObject, ChaingunBullet, 1]++; + + if($LakFired[%sourceObject, ChaingunBullet, 1] % 5 == 0) + { + %accamount = mFloor(($LakFired[%sourceObject, ChaingunBullet, 1] / $LakFired[%sourceObject, ChaingunBullet, 0])*100); + %velBonus = 0; + %points = (%accamount/3)+1; + %accuracy = " [Accuracy:" @ %accamount @ "%]"; + + %sourceObject.client.totalChainAccuracy += %accamount; + %sourceObject.client.totalChainHits++; + } + %weapon = "Chaingun"; } } - - //Hand grenades - if(%damageType == $DamageType::Grenade && $lastObjExplode.isHandNade) - { - if(%percentDam > 20) - { - %accuracy = " [Accuracy:" @ %percentDam @ "%]"; - %points = (%percentDam/10)+1; - %velBonus = 0; - %sound = '~wfx/misc/coin.wav'; - - } - if(%percentDam >= 99) - { - %sound = '~wfx/misc/Cheer.wav'; - %points *= 2.0; - } - if(%ma) - %points *= 1.5; - - %weapon = "Hand-Nade"; - } // borlak -- recalc score for hits if( isObject(%sourceObject) From 1c7d35a00998b13afb74ecf448e3d4a014616058 Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Tue, 14 Apr 2020 15:46:46 -0400 Subject: [PATCH 4/6] Update LakRabbitGame.cs --- Classic/scripts/LakRabbitGame.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Classic/scripts/LakRabbitGame.cs b/Classic/scripts/LakRabbitGame.cs index 1447dd8..71772d7 100644 --- a/Classic/scripts/LakRabbitGame.cs +++ b/Classic/scripts/LakRabbitGame.cs @@ -616,6 +616,9 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am } %weapon = "Plasma"; case $DamageType::Laser: + if($InvBanList[LakRabbit, "SniperRifle"]) //banned + return; + if(%energy > 0.5 || %players > 7) { %players = (ClientGroup.getCount()-1)/1.5; From 65793827c7aa5532240d77da4355be8085bc9bcc Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Thu, 16 Apr 2020 22:29:22 -0400 Subject: [PATCH 5/6] Update EnableLogs.cs --- Classic/scripts/autoexec/EnableLogs.cs | 16 ++++++++++------ Classic/scripts/autoexec/zDarkTigerStats.cs | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Classic/scripts/autoexec/EnableLogs.cs b/Classic/scripts/autoexec/EnableLogs.cs index a63ff64..ce06625 100644 --- a/Classic/scripts/autoexec/EnableLogs.cs +++ b/Classic/scripts/autoexec/EnableLogs.cs @@ -94,15 +94,22 @@ function ClassicChatLog(%client, %id, %team, %msg) return; // Don't log voicepack stuff. - if(strstr(%msg, "~w") != -1) + if(strstr(%msg, "~w") != -1 || strstr(%msg, "flag") != -1) return; + + %team = getTaggedString(Game.getTeamName(%team)); + + if(%team $= "Unassigned") + %team = "Observer"; + else if($CurrentMissionType $= "LakRabbit" || $CurrentMissionType $= "DM") + %team = $dtStats::gtNameLong[%client.lgame]; //from zDarktigerStats.cs switch$(%id) { case 0: %team = "[Global]"; case 1: - %team = "["@getTaggedString(Game.getTeamName(%team))@"]"; + %team = "[" @ %team @ "]"; case 2: %team = "[Admin]"; case 3: @@ -111,10 +118,7 @@ function ClassicChatLog(%client, %id, %team, %msg) %team = "[Centerprint]"; } - // Make it all uppercase - %team = strupr(%team); - - $ClassicChatLog = "["@formattimestring("H:nn:ss")@"]" SPC %team SPC getTaggedString(%client.name) @": "@%msg; + $ClassicChatLog = "["@formattimestring("H:nn:ss")@"] "@%team SPC getTaggedString(%client.name)@": "@%msg; $ClassicChatLog = stripChars($ClassicChatLog, "\c0\c1\c2\c3\c4\c5\c6\c7\c8\c9\x10\x11\co\cp"); %path = $Host::ClassicChatLogPath @ formatTimeString("/yy/mm-MM/dd.log"); export("$ClassicChatLog", %path, true); diff --git a/Classic/scripts/autoexec/zDarkTigerStats.cs b/Classic/scripts/autoexec/zDarkTigerStats.cs index e469396..2a968ba 100644 --- a/Classic/scripts/autoexec/zDarkTigerStats.cs +++ b/Classic/scripts/autoexec/zDarkTigerStats.cs @@ -235,7 +235,7 @@ $dtStats::gtNameShort["DMGame"] = "DM"; $dtStats::gtNameShort["SCtFGame"] = "LCTF"; $dtStats::gtNameShort["ArenaGame"] = "Arena"; $dtStats::gtNameShort["DuelGame"] = "Duel"; -//Display name +//Display name - rely on these in tacoserver enablelogs.cs $dtStats::gtNameLong["CTFGame"] = "Capture the Flag"; $dtStats::gtNameLong["LakRabbitGame"] = "LakRabbit"; $dtStats::gtNameLong["DMGame"] = "Deathmatch"; From 13fc66f55b4890b4301bb70551f421f80dc2468f Mon Sep 17 00:00:00 2001 From: ChocoTaco1 Date: Fri, 17 Apr 2020 15:22:34 -0400 Subject: [PATCH 6/6] Update README.md typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c7a390..6c32b81 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![Tribes 2](https://cdn.discordapp.com/attachments/521797012014759970/678460505597149214/TacoServer.png) # TacoServer -## A Tribes 2 server with competative features that is also open-source. +## A Tribes 2 server with competitive features that is also open-source. ---