Jump to content

SpaydCBR

Member
  • Content Count

    99
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by SpaydCBR


  1. Hi all, I was wondering if someone could help me modify the way the sector module handles captures.

     

    Currently, if you set the "Ownership limit" to 1, and your team owns it, all the other team has to do is touch it and it will go to a neutral owner until they fully capture it. I want to modify this so that you can't lose it until the enemy teams captures it 100%. I don't want any neutral states. Also, if there was a way to do this while keeping everything else about the sector module the same like its attributes and UI elements that would be ideal.

     

    Setting the Ownership limit to 0.5 gets rid of the neutral state problem but then there could potentially be an issue of ownership going back and forth too frequently when it's being contested, and i think that would just be annoying, especially since I have stuff getting enabled and disabled upon capture of these sectors.


  2. Hi Larrow, I finally had a chance to try out your mission after a pretty busy few days.

     

    It seems to be working great! I tried it from the MP editor and on a local dedicated server and every time I respawned I saw the updated loadout in the correct spot, amazing! I haven't had a chance to test it with a friend yet.

     

    I looked through your code a bit and I'm surprised how much work it required.

     

    If I really wanted to nitpick, and I do :D  , is that the new inventory icons in the respawn inventory menu don't get updated even though the "details" are correct. However, clicking on another loadout then clicking back will update said icons correctly. Is that something that can be fixed so that it shows the updated icons the first time?

     

    Also, a big THANK YOU!!!


  3. Can you show me your CfgRespawnInventory, CfgRoles and how and where exactly you are adding the respawn inventories.

    This will allow me to better explain a solution for you, especially where your adding the respawn inventory as the data is shared globally and we will have to try fudging expertly coercing a local update when the arsenal is closed and see if it holds.

    //description.ext
    
    class CfgRespawnInventory
    {
    // I'm actually using #include "loadouts_west.hpp"
    // but the following is the content of that file
    class Rifleman
    {
        displayName = "Rifleman"; // Name visible in the menu
        icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa"; // Icon displayed next to the name
        role = "Assault";
    
        // Loadout definition, uses same entries as CfgVehicles classes
        weapons[] = {
            "arifle_MXC_F",
            "Binocular"
        };
        magazines[] = {
            "30Rnd_65x39_caseless_mag",
            "30Rnd_65x39_caseless_mag",
            "SmokeShell"
        };
        items[] = {
            "FirstAidKit"
        };
        linkedItems[] = {
            "V_Chestrig_khk",
            "H_Watchcap_blk",
            "optic_Aco",
            "acc_flashlight",
            "ItemMap",
            "ItemCompass",
            "ItemWatch",
            "ItemRadio"
        };
        uniformClass = "U_B_CombatUniform_mcam_tshirt";
        backpack = "B_AssaultPack_mcamo";
    };
    class MG
    {
        // Alternative configuration pointing to a CfgVehicles class. Loadout will be copied from it.
        displayName = "MG";
        icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa";
        role = "Support";
    
        // Loadout definition, uses same entries as CfgVehicles classes
        weapons[] = {
            "LMG_Mk200_F",
            "Binocular"
        };
        magazines[] = {
            "200Rnd_65x39_cased_Box",
            "200Rnd_65x39_cased_Box"
        };
        items[] = {
            "FirstAidKit"
        };
        linkedItems[] = {
            "V_Chestrig_khk",
            "H_Watchcap_blk",
            "optic_Aco",
            "ItemMap",
            "ItemCompass",
            "ItemWatch",
            "ItemRadio"
        };
        uniformClass = "U_B_CombatUniform_mcam_tshirt";
        backpack = "B_AssaultPack_mcamo";
    };
    class Sniper
    {
        // Alternative configuration pointing to a CfgVehicles class. Loadout will be copied from it.
        displayName = "Sniper";
        icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa";
        role = "Recon";
    
        // Loadout definition, uses same entries as CfgVehicles classes
        weapons[] = {
            "srifle_LRR_F",
            "Binocular"
        };
        magazines[] = {
            "7Rnd_408_Mag",
            "7Rnd_408_Mag",
            "7Rnd_408_Mag"
        };
        items[] = {
            "FirstAidKit"
        };
        linkedItems[] = {
            "V_Chestrig_khk",
            "H_Watchcap_blk",
            "optic_LRPS",
            "ItemMap",
            "ItemCompass",
            "ItemWatch",
            "ItemRadio"
        };
        uniformClass = "U_B_GhillieSuit";
        backpack = "";
    };
    #include "loadouts_east.hpp"
    };
    
    class CfgRoles
    {
    	class Assault
    	{
    		displayName = "Assault";
    		icon = "\A3\Ui_f\data\GUI\Cfg\RespawnRoles\assault_ca.paa";
    	};
    	class Support
    	{
    		displayName = "Support";
    		icon = "\A3\Ui_f\data\GUI\Cfg\RespawnRoles\support_ca.paa";
    	};
    	class Recon
    	{
    		displayName = "Recon";
    		icon = "\A3\Ui_f\data\GUI\Cfg\RespawnRoles\recon_ca.paa";
    	};
    };
    

    initServer.sqf

    //initServer.sqf
    //Assign car limits
    ...
    
    //Initialize dynamic groups
    ...
    
    //Initialize assault loadouts
    [west,["Rifleman",5]] call BIS_fnc_addRespawnInventory;
    [east,["Rifleman",5]] call BIS_fnc_addRespawnInventory;
    
    //Initialize support loadouts
    [west,["MG",8]] call BIS_fnc_addRespawnInventory;
    [east,["MG",8]] call BIS_fnc_addRespawnInventory;
    
    //Initialize recon loadouts
    [west,["Sniper",2]] call BIS_fnc_addRespawnInventory;
    [east,["Sniper",2]] call BIS_fnc_addRespawnInventory;
    
    //Player connected handler
    ...
    
    //Player disconnected handler
    ...
    

  4. I can't remember that stuff off the top of my head and I'm at work right now, so I'll post them when I get home tonight. Thanks!

     

    If it helps for now, basically I have 3 custom roles ("Assault", "Support", "Recon"), and 1 custom Loadout/Inventory for each role respectively ("Rifleman","MG,"Sniper" - these are the display names and class names). These are just to test, there will be more in the future but I think there will always be only those 3 Roles, just more loadouts for each role.

     

    In the initServer.sqf I have something like [west, ["Rifleman",5]] call BIS_fnc_addRespawnInventory for each of the Loadouts in the order they appear in CfgRespawnInventory.

     

    I believe that's it. Everything looks and works as it should. I'd just like people to be able to modify these dynamically using the VA and keep the same look and feel for a better presentation and keep the correct limit count on those loadouts, since they have limits too if you noticed in that addRespawnInventory call.

     

    In my head I imagined I would just have to get the reference to the current inventory I loaded then update it or re-create it when I quit the VA. Sounded simple. I tried looking through all the respawn inventory code this weekend myself. I actually learned a lot but didn't really get anywhere :(

     

    Again, I'll post all that stuff you requested when I get home tonight.


  5. This thread was very helpful.

     

    May I make one request? Is there any way to dynamically change an existing loadout?

     

    Meaning, I have custom Roles and RespawnInventory loadouts in the description.ext file, Let's say I have a "Medic" loadout under the "Support" role for example. The player selects this loadout, spawns, then proceeds to a nearby ammo box that starts the Virtual Arsenal with items I've whitelisted for medics. The player makes his changes to his loadout, closes the VA, goes to play for a bit and dies. Upon respawn, is there any way for the "Medic" loadout under the "Support" role to now be updated with the changes the player made in the VA in his previous life?

     

    I tried using https://community.bistudio.com/wiki/BIS_fnc_saveInventory and https://community.bistudio.com/wiki/BIS_fnc_setRespawnInventory which seems to work fine, but even if I use the same name as an existing loadout it just creates a new loadout with the same name under a "Default" role.


  6. Thanks for the info guys. So basically I want to make sure any commands a client sends to the server is properly configured in CfgRemoteExec?

     

    What about something like MP event handlers, are they safe to use, as opposed to managing regular event handlers? Like "Killed" vs "MPKilled" to run code upon someone's death. Or is BE really just good enough that I don't have to worry too much about this?


  7. I was just wondering, is it any "safer" (from hackers) to run code on server rather than on clients? Like is it any less exploitable to create a vehicle on the server rather than on the client even though its effects are global and would work either way? Maybe that's a bad example but I think you get the idea of what I'm trying to ask. I have absolutely no idea how hackers manage to inject their own code into a game.


  8. I found this in the code for BIS_fnc_dynamicGroups.

    /**
    	 * Event for player group being disbanded
    	 */
    	case "OnGroupDisbanded" :
    	{
    		private ["_group", "_who", "_oldLeader"];
    		_group          = _params param [0, grpNull, [grpNull]];
    		_who            = _params param [1, objNull, [objNull]];
    		_oldLeader      = _params param [2, objNull, [objNull]];
    
    		if (!isNull _oldLeader && {!isNull _who} && {_oldLeader != _who}) then
    		{
    			[["LocalShowNotification", ["DynamicGroups_GroupDisbanded", [name _oldLeader], _who]], "BIS_fnc_dynamicGroups", _who] call BIS_fnc_mp;
    		};
    
    		// Log
    		if (LOG_ENABLED) then
    		{
    			["OnGroupDisbanded: %1 / %2 / %3", _group, _who, _oldLeader] call bis_fnc_logFormat;
    		};
    	};
    

    It doesn't help me though does it? It looks like it just shows a notification for when a group gets disbanded. I can't run my own code when it happens like for other event handlers right?


  9. Ah, thanks. I installed PBO Manager and seems to work well on Windows 10 if anyone else was curious.

     

    Now I'm trying to figure out how to view these .paa files. Google mostly mentioned TexView 2. I installed it but it doesn't work. It crashes every time I try something. The only other one I found was a photoshop plugin, but I'd rather not go that route. Do you know any other tool that can easily view .paa files?


  10. Hello, quick question.

     

    Let's say a player can spawn an ATV through an addAction attached to a flag post. The player can only spawn 1 ATV at a time and when he dies, his ATV gets deleted so he can spawn another one at the flag post after he respawns.

     

    My method is to assign the ATV to a variable that can reference the player so that I can retrieve the ATV "assigned" to him and delete it.

     

    Is it better to use the player's namespace

    player setVariable ["atv",_atv]
    

    or missionNamespace?

    missionNamespace setVariable [format["atv_%1",player],_atv]
    

    I'm not sure which method to choose. Is there a reason to choose one over the other, or some preferred convention I should follow? Is there even a better way to do this?


  11. This is my first time doing a GUI and after spending days getting absolutely no where I'm about to give up on my dialog and I was hoping someone here could walk me through this.

     

    I'm trying to make a simple respawn dialog that pretty much looks exactly like the BIS one but without all their list boxes. I just want the map with the standard BIS respawn icons at each respawn position, and two buttons "Respawn" and "Arsenal". When you click "Respawn", you spawn at the position you've selected on the map, and when you click "Arsenal", it takes you to the Virtual Arsenal screen where you can select your gear, and when you close it, it should take you back to the Respawn screen.

     

    I thought I could just copy all the BIS MenuPosition stuff and just remove the parts I don't want, but I couldn't get that to work. Then I decided to just do it from scratch and looking at the BIS stuff as a guide but that got a little overwhelming.

     

    I guess my main problem right now is I can't figure out how to make the map a part of my dialog. I've been starting with "openMap[true,true]", then creating my dialog on top of it "_gui = createDialog "CBR_RespawnDialog" " which is just the two buttons. This "looks" right but I can't drag the map around, presumably because it's only allowing for input to my dialog (the buttons). So I THINK I need to include the map as part of my dialog but I'm not sure how. I found this https://community.bistudio.com/wiki/Dialog_Control_Map which looks like what I want but it hasn't been very helpful. I'm not sure what to put in the "text" attribute. I'm also confused because I saw that BIS also used openMap in their code somewhere too, so I'm not really sure how theirs is working.

     

    Any help please? :D

    Am I even on the right track here?


  12. Lets just say its an "ARMA" thing...

     

    Salt in a wound:  It works for the other people I normally play with also.

     

    Have you tried "verifing game cache"?    -I hate even mentioning that, lol

     

    And I assume your server is updated completely.

    I actually don't have a server. I was using the old Revive for a mission I'm making, and I'm just a little concerned about why it wasn't working anymore. I don't like when things break man!

     

    I've asked them several times in several places for updated documentation about this and those requests have been drowned out by complaints about whatever seemingly.  Hopefully someone with knowledge of how it all works will update the biki.

    Hmm, thanks for the info. The biki needs a lot of updating and I hope someone can clarify this issue on there :(

     

    I just tried the revive with a friend in a multiplayer game and it works. So like he said, it only works when you have another player on the server. If you don't, it will tell you that the revive respawn template does not exist. And I checked the config viewer and I don't see revive either.

    It doesn't really mater anyways, because revive is useless when you are alone. 

    Thanks for the confirmation. I haven't had a chance to try it with a friend yet to test what they said earlier. I guess I'll just assume it works then for now.


  13. Nope, I don't have it checked.

    Yeah I didn't think that would make a difference. Like I said, the Revive template just doesn't exist anymore. If you go to the config file and check under CfgRespawnTemplates you'll see that Revive is gone!

     

    Wasn't the new Revive stuff supposed to be one of the highlights of this update? Did they forget to add it? Haha :p

×