Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create MLBA_v001.lsl #13

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

ShaxeiVetlana
Copy link

Modular LBA, with angle-based armour penetration and module damage. The system I'll be using for my current vehicles, optimized for public release.

Modular LBA, with angle-based armour penetration
Copy link
Contributor

@ThunderRahja ThunderRahja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional documentation needs to be provided along with this script to explain its use and how to integrate with vehicle scripts as a separate file. Not only does it simulate four damageable components but also directional armor plating and component positioning, making this a very complex system compared to standard LBA. Code is inconsistent. Braces { } should be on their own lines to avoid clutter. Description tags are incompatible with current system.

Because of the inherent complexity of setup and use, and issues noted within this review, I cannot recommend this be implemented into the main LBA project as it is. For the same reasons, I also believe that few people will actually use it unless directly recommended by its author.

MLBA_v001.lsl Outdated

ref()
{
llSetObjectDesc("LBA.v.,"+(string)enginehealth+","+(string)transhealth+","+(string)crewhealth+","+(string)ammohealth);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incompatible with current messaging system. Missing parameters from main LBA script. Will cause conflicts with weapons and tools that rely on these values.

Consider using the minimum value between current crewhealth, transhealth, enginehealth, and ammohealth as HP and the lowest of their maximum values as the MaxHP.

MLBA_v001.lsl Outdated
llSetObjectDesc("LBA.v.,"+(string)enginehealth+","+(string)transhealth+","+(string)crewhealth+","+(string)ammohealth);
llSetText(
"E: "+(string)(llRound(enginehealth)%90000)+"/"+(string)llRound(enginehealthmax)+" T: "+(string)(llRound(transhealth)%90000)+"/"+(string)llRound(transhealthmax)+
"\nC: "+(string)(llRound(crewhealth)%90000)+"/"+(string)llRound(crewhealthmax)+" A: "+(string)(llRound(ammohealth)%90000)+"/"+(string)llRound(ammohealthmax),<1,1,1>,1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These values are meaningless to rank-and-file combatants with little to no understanding of the system. Consider simplifying.

Ammo position: "+(string)ammopos+"m
Ammo maxhealth: "+(string)llRound(ammohealthmax)+"LBA
Crew position: "+(string)crewpos+"m
Crew maxhealth: "+(string)llRound(crewhealthmax)+"LBA"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few if any people will actually read all of this. There is too much information here that is needlessly complex. The rank-and-file combatant will simply use the largest munitions available until it dies and not be able to communicate useful information to their team.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information was largely for OICs opposing this system for the first time, so I wanted to make it as detailed as would be useful for people who know what they're doing. If this system actually gets adopted I'd simplify or even remove this

if(llGetLinkName(i)=="ammofx"){ammofx=i;}
}
}
collision_start(integer ndt)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implies LBA-Light. Description tag should include "LBA.v.L" to show this.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This collision event records relative hit positions to use in the listen for a more accurate idea of where the round hit me, the collision event itself takes no part in damaging the vehicle.

@MalefactorIX
Copy link
Contributor

The use of the metric system is arbitrary and will confuse inexperienced combatants. It needs be to be replaced for a more easily conveyable attribute, preferably the raw amount of damage reduction given to a specific area.

@ThunderRahja
Copy link
Contributor

ThunderRahja commented Aug 9, 2020

The use of the metric system is arbitrary and will confuse inexperienced combatants. It needs be to be replaced for a more easily conveyable attribute, preferably the raw amount of damage reduction given to a specific area.

It's more complicated than that. This system checks for angle of impact and factors that in with armor thickness and component positions to determine what component will be damaged and how much damage will be received.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants