Jump to content

Recommended Posts

Due to recent code refactoring, making this MP compatible should be easier. After the gib update, I will make it my goal to get this working in an MP environment.

 

even with the first version it's fairly easy, just need to switch over to using createvehicle instead of local and have each client run the commands.

In order to avoid blood overload and performance drops you'd share the variable with publicvariable, although it would probably be better to only have that pruning done on the server or something.

 

there's some other ways of doing it but this would be the most consistent way as it'll mean everyone will see the same thing

Share this post


Link to post
Share on other sites

That's great news Zooloo and the new gibs are looking damn good too. Might have to donate again!

 

For MP, would everybody seeing the same thing will be worth the performance cost in your opinion kerc kasha? Not speaking from an enormous amount of knowledge here but in the past I found that the more that can be offloaded from the server, the better, so clientside would be my preference unless it's not all that performance intensive. I could well be wrong though. 

Share this post


Link to post
Share on other sites

I think so many createVehicles & deleteVehicles would clog up the network :( it might be worth thinking about just transmitting a hit, and have each client work out what to do from there. It would mean clients wouldn't see exactly the same thing, but they would see something close, and the network traffic would be much smaller.

  • Like 1

Share this post


Link to post
Share on other sites

There's a reason why the effects are coded to be local only. It's insane to synchronize every single splatter across all clients. I was planning on implementing something similar to dmarkwick's suggestion with the least amount of network performance hit.

If it were easy, it would be done already.

Share this post


Link to post
Share on other sites

There's a reason why the effects are coded to be local only. It's insane to synchronize every single splatter across all clients. I was planning on implementing something similar to dmarkwick's suggestion with the least amount of network performance hit.

If it were easy, it would be done already.

 

in that case, an event system would be best. Something that tells each client that a blood splatter needs to be created, but I'm wondering how much different that would be from using createvehicle

Share this post


Link to post
Share on other sites

in that case, an event system would be best. Something that tells each client that a blood splatter needs to be created, but I'm wondering how much different that would be from using createvehicle

 

Yep, all the clients need to know is that someone was hit -- just synchronize the events sending only the essential data. From there, clients can create blood splatters fairly accurately.

Share this post


Link to post
Share on other sites

I was messing around with this + the new Unsung mod release. 

Noticed it doesn't work with a lot of the US units. (no blood)

Wonder why that would be?

Share this post


Link to post
Share on other sites

I was messing around with this + the new Unsung mod release. 

Noticed it doesn't work with a lot of the US units. (no blood)

Wonder why that would be?

 

I've noticed this with another unit addon pack as well, didn't look into the issue. My guess right now is that those units aren't configured traditionally as most units. Could be different hitpoint names, could be that the class doesn't derive from Man.

Share this post


Link to post
Share on other sites

^^^Art^^^

 

 Hey Zooloo, is there a global variable I can pull from Bloodlust to activate in another script to let me know a unit has been gibbed? I tried 'BloodLust_IsVaporized' but that always came back as true.

Share this post


Link to post
Share on other sites

^^^Art^^^

 

 Hey Zooloo, is there a global variable I can pull from Bloodlust to activate in another script to let me know a unit has been gibbed? I tried 'BloodLust_IsVaporized' but that always came back as true.

 

That's it, you'll have to watch for it to change:

_unit getVariable ["BloodLust_IsVaporized", false];

Make sure you default it to false if there's no value assigned. It's only set in the BloodLust_VaporizeUnit function.

Share this post


Link to post
Share on other sites

 So using in a killed eventHandler I  have:

 

_target = _this select 0;
_killer = _this select 1;

 _target setVariable ["BloodLust_IsVaporized", false];

 

 if ((_target in _group) && (_target getVariable ["BloodLust_IsVaporized", true]))  then {
    
        hintc format ["Vapor!"];
        _groupWitness say3d "bullshit_01";
        SK = SK -100;
        tsk =tsk -100;
    };

 

 

 But its firing everytime someone in my group dies

Edit: Correction it does not fire if I set define it at False at all but fires every death if I define it as True for all deaths -gibs and non gibs. Never called a variable from another mod before :unsure:

Share this post


Link to post
Share on other sites

hope u like it , i made it for fun

 

ffOghDr.jpg

Would make a sick album cover lol.

  • Like 1

Share this post


Link to post
Share on other sites

Gonna thank and blame Evil Organ for gifting me XCOM: Enemy Unknown. Been getting carried away in that game, lots of fun!

Also, here's the torso gib in all its high-poly glory.

 

http://imgur.com/a/IddYj

 

 

This is all that's left to do!

C:\_Software\_ArmA\BloodLust\trunk\_Resources\Models\Gibs\rightringfinger.obj
C:\_Software\_ArmA\BloodLust\trunk\_Resources\Models\Gibs\rightthumb.obj
C:\_Software\_ArmA\BloodLust\trunk\_Resources\Models\Gibs\rightupperarm.obj
C:\_Software\_ArmA\BloodLust\trunk\_Resources\Models\Gibs\rightupperleg.obj

On a separate note:

For the MP version of BloodLust, I want to work closely with a multiplayer community which likes close quarters PVP. I'd like to make a little deathmatch arena mission which will also be the test-bed for the MP port. What I'll need is access to a server where I can freely upload updates of the mission and addon, and an active bunch of people to help test out at a moments notice (I am in the Central timezone). A Teamspeak server is also preferred for quick communication with said members.

  • Like 5

Share this post


Link to post
Share on other sites

Wow outstanding work on that torso gib, I can't wait to see that in action.

 

Also I can't say it enough mate thanks so much for sharing your hard work with the community blood lust has change arma 3 fun for me forever.

 

The clean up options you have added are great and suit my missions style perfectly, and I'm wondering if you could add another option or two for me ?

 

Because my mission has roughly 30 AI fighting each other in a CQB scenario within a built up area of about 1000 meters, there is a lot of killing going on between the AI that the player never sees.

 

So is it possible to add an option to the hit eventHandler that if the killed unit is greater then a set distance from the player (eg: 100m) the effects aren't applied.

 

Cheers,

 

CB.

Share this post


Link to post
Share on other sites

To add to cb65, it would be nice have a limit for the number of gibs spawned by any one entity. Hitting a man with the Gau 8 from the Wipeout drops FPS to like 1 or 2 with the number of hits spawned.

Share this post


Link to post
Share on other sites

Wow outstanding work on that torso gib, I can't wait to see that in action.

 

Also I can't say it enough mate thanks so much for sharing your hard work with the community blood lust has change arma 3 fun for me forever.

 

The clean up options you have added are great and suit my missions style perfectly, and I'm wondering if you could add another option or two for me ?

 

Because my mission has roughly 30 AI fighting each other in a CQB scenario within a built up area of about 1000 meters, there is a lot of killing going on between the AI that the player never sees.

 

So is it possible to add an option to the hit eventHandler that if the killed unit is greater then a set distance from the player (eg: 100m) the effects aren't applied.

 

Cheers,

 

CB.

There's an activation distance setting in the settings menu which is defaulted to 2000 meters.

  • Like 1

Share this post


Link to post
Share on other sites

To add to cb65, it would be nice have a limit for the number of gibs spawned by any one entity. Hitting a man with the Gau 8 from the Wipeout drops FPS to like 1 or 2 with the number of hits spawned.

That's the gib iteration setting. The FPS drop is from the splash damage which causes the hitpart event handler to fire off excessively. Still trying to solve that problem.

Share this post


Link to post
Share on other sites

There's an activation distance setting in the settings menu which is defaulted to 2000 meters.

 

Thanks mate.

Share this post


Link to post
Share on other sites

So using in a killed eventHandler I have:

_target = _this select 0;

_killer = _this select 1;

_target setVariable ["BloodLust_IsVaporized", false];

if ((_target in _group) && (_target getVariable ["BloodLust_IsVaporized", true])) then {

hintc format ["Vapor!"];

_groupWitness say3d "bullshit_01";

SK = SK -100;

tsk =tsk -100;

};

But its firing everytime someone in my group dies

Edit: Correction it does not fire if I set define it at False at all but fires every death if I define it as True for all deaths -gibs and non gibs. Never called a variable from another mod before :unsure:

Check your if condition. You're defaulting the vaporized value to true, change it to false.

You may also want to add a small sleep before executing your code, as Blood Lust might execute after your handler. Classic concurrency issues.

Share this post


Link to post
Share on other sites

 Thanks ^

 

 Still havent gotten it but I will :)

 

 Wanna add screams and Psychological trauma from witnessing the gibs

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×