Jump to content

celludriel

Member
  • Content Count

    374
  • Joined

  • Last visited

  • Medals

Everything posted by celludriel

  1. celludriel

    Arma Reforger - Mission Editor

    I"m already excited it's a full object oriented language now instead of a functional script SQF was. Not that SQF was bad, I'm just a programmer that enjoys OO. I do however think that due to the added complexity of having a full blown programming language and dev toolkit we need a good way to share scripting information. - Subforum would be nice - There is already a discord apparently what is the server ? - Are there any old Arma 3 scripters that have big plans ?
  2. celludriel

    [MP][CTI-COOP] Liberation (continued)

    There is a bug in liberation in there for a long time, when you get shot down in the huron and it ends up in the sea, it is not fully destroyed. So not fully destroyed means it never respawns. Here is how you fix it waitUntil { sleep 1; if(underwater _mhq) then { _mhq setDamage 1; }; !alive _mhq }; Where _mhq is the huron given as parameter and this scripts runs as a heartbeat.
  3. Goal Create a script library able to give objects a new Inventory UI that can store an unlimited weight of items but still quantify them. The current bis arsenal gives you an option to limit the choice of weapons to pick from but they are in fact unlimited to pick. I needed something that could hold unlimited items not constrained by weight limits but still the items would be quantified. Development cycle Agile Kanban This allows me to make increments to the library creating quickly a first implementation and adding to it with each iteration. I monitor progress on a trello scrum board and it will give others the option to join in if they would love to do so. https://trello.com/b/TARfxEdx/infinite-inventory Current backlog Make it possible to register objects to have infinite inventory and show a basic new GUI. It must be possible to add an item to the inventory, take one or add all. Filter placeholders should be in place but do not have to be functional yet. Code repository develop: https://github.com/Celludriel/InfiniteInventory/tree/develop Anyone is welcome to help in the development I will consolidate my own questions and others in this thread in the hope to keep things together and make this a successful library Release version: 1.0.2 github: https://github.com/Celludriel/InfiniteInventory/archive/1.0.2.zip pbo: http://users.telenet.be/sunspot/arma3/InfiniteInventory_102/InfiniteInventory.VR.pbo
  4. Why not make this a configuration parameter for the mission ? The chance an opfor has intel you can set it from 50, 60, 70, 80 90, 100. Then it's up to the people playing the mission how easy it is to fetch intel ? I can imagine some people don't have the patience to talk to a gazillion civs before anything happens in the mission.
  5. Hey, I was wondering if there is a solution yet since last year to give any inventory unlimited space ? I can fake it by making actions that empty an entire backpack in an inventory with addItemGlobal and such, but that is such a lousy workaround. I would love to have something like _container setInventorySize 9999999999; or something likewise. Has BI seen the light yet and given us some kind of BIS function I don't know about yet ? Would make my life so much easier :-)
  6. For the past two days now when I try to lookup a method in the script library I'm getting the maintenance fallback page. Does anyone know for how long it will stay in maintenance ? Did they release any news about it ?
  7. celludriel

    Script manual in maintenance

    hehe nothing specific now, I just need the biki for reference when I'm going to start coding :)
  8. celludriel

    [MP][CTI-COOP] Liberation (continued)

    This works but I can't test it now, I'm at work, I think this disables everything also the useful radio messages when you are not dead and the squad sees hostiles. It's up to Bohemia to fix it properly I'm afraid :(.
  9. celludriel

    [MP][CTI-COOP] Liberation (continued)

    Well the bug is that the guy taking over command keeps spamming that he is the new actual. There is the argument that when the revive system is working you aren't actually dead but incapacitated and the command role of the squad shouldn't move yet. It seems to be a BI issue though. I had a small brainfreeze on the github comment, it's all there, I must have been looking in a wrong repostiory of zbug. It's all there :). I might take a fork once I get home so I can add some convenience scripts me and my friends use and keep it synced with any changes you'll make in the future.
  10. celludriel

    [MP][CTI-COOP] Liberation (continued)

    2) There is a possible workaround. It works twofold: - Instead of giving it an order to attack the vehicle you could give it an order to move towards it. If that doesn't work either, you could get the Location from the position of the vehicle and let them approach the location that will work for sure. - When an AI is in a 5m radius of the MHQ you could write a script that blows it up and then post a message to all players "AI has found <<mhq id>> and destroyed it promptly" So technically the AI doesn't really attacks it but you simulated the destruction. You could argue it was going to happen anyhow so lets just help the AI a bit. 3) As soon as you are incapacitated the problems start once you respawn it persists for a few seconds then your avatar takes command and it stops. Your squad chooses an AI that becomes the new squad leader and he starts giving out orders. This can lead to annoying situations. What we tend to do is put tanks at possible reinforcements locations and put an AI in the gunner and commander position. However when the ai takes over command he starts getting into the driver seat and our roadblock gets messed up. Or free AI's get into our chinook and start flying our MHQ off it's just a hassle fixing it all the time. If this is the default BI revive system there must be a bug at their end. I wasn't averse to the old Farooq's revive system though. I'll add the issue to the bug tracker. Any reason why you don't put the code on the github as well ? I recommend the gitflow method should you put it on there :) https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
  11. celludriel

    [MP][CTI-COOP] Liberation (continued)

    Wyqer, Me and some friends are revisiting liberation after your first re-release from zbug. I'm glad you kept out any addons from the vanilla version and it still works without any of them. We have been playing with the three of us on our private server and have some feedback that might make the mission a bit more interesting. - The garrison script is equally a blessing as a curse. It's fun when you first start out in the town and you have to check the windows and such for snipers. However when you are down to the last one or two guys to take out it gets tedious having to force look through each building. So we have to steep to just calling in AI support to get the upper hand in the town so we don't lose hours searching each building. Especially the big cities. So here is a proposed solution if a zone stays active for x amount of time (could be configurable) The garrison units un-garrison and lay up an ambush in the center of the zone. This should be technically possible if you keep a tick count from when a zone gets active and you have the location of the center of the zone by ways of the allmarkers function. - MHQ are to safe, when you buy a hemmt MHQ and drive it up to the edge of town and don't occupy it the AI ignores it completely while you would think an MHQ is primary target. You could attach a script to the spawning of a MHQ that pings if there are enemies in a 50m maybe a 150m radius. This ping could be every 10 seconds so you don't destroy the server performance. Once AI get pinged you could give an order to that AI to go hunt that MHQ and blow it up. Also make sure to give it explosives the moment you issue the order, so they always have something to blow it up with. - M4 Scorcher spam, once you have an artillery and don't care about civilian casualties, you could technically lower entire towns to clear them out quickly. I always liked to put something in liberation that as soon as the players own an M4, the game scans for it every 10 minutes and then gives a 25% chance to spawn an airgroup of A-10's with as mission taking out the M4 scorchers on the map. This to prevent players cheesing through the map with the scorcher. - Civilian reputation gain is pretty low. Once you lose civ rep, getting it up again just by treating wounded civs is nearly impossible. I propose a new sidemission "Rescue the hostages" where for x amount of intel you can do a mission saving some hostages, giving you 25% positive civ rep. - There is a bug with the revive system when you are leader of a squad and you get incapacitated the squad keeps spamming i'm the new actual , i'm the new actual ... not sure if this bug is fixable due to abusing some engine mechanics to get the revive system working, but it would be appreciated if this could be fixed :) I'll take a look myself over the weekend how the revive system works and if it can be helped. There is still more room for improvement but these are the things I always felt the mission really needed to be more accessible for low amount of players and got give the AI a bit of extra edge. Glad to see you are still maintaining it greetings Celludriel
  12. Hey, Introduction I started this project last year in April, due to some real life stuff I had to take a break. I started again about ten days ago and got a new version ready. The setup is still the same I wanted to create a simple CTI mission that was easy to port to other maps and still be fun to play. I managed to put a few fun features in this release and I hope you all like it. A lot of the code in the mission is from shared authors on the BIForums. I couldn't have done it without them. Thanks to each of them come to mind are Shuko, Larrow, T800, KillzoneKid and others ... Mission description Stratis is under siege and taken over by CSAT forces. The UN are in "peace" talks for months now with no resolution in sight. You are part of a group of people that had it with the talking and are taking action. Thanks to a wealthy sympathizer the necessary funds is available and last night you where able to establish a foothold on a tiny island to the south of Stratis. The job is simple, take back every strategic zone on Stratis and liberate the two towns. Good luck and on to victory ! Technical features FarRevive Dynamic weather Auxillary sling loading Tactical icons Time acceleration T8 zone population LV zone population VCOM zone population Supply drops Slingable armory Arsenal spawner Respawn equipment setup TAWD visual settings Vehicle service points Simple MHQ Infinite Inventory Administrator notes The mission will ONLY run on a dedicated server. I wrote it this way not to have the headache of a server that is also a client. My last project got cancelled due to that crap. Several configuration settings including Choosing between scavenging for weapons and supply drops or a straight up arsenal Choosing between using T8 ai or LV ai Setting up occurance of supply drops and how long they stay active Saving and loading of zones, supply drops and slingable armory Time accelleration ... Current Version Version 2.2.1 Download Release : https://github.com/Celludriel/Simple_CTI/archive/2.2.1.zip PBO version : http://users.telenet.be/sunspot/arma3/SimpleCTI_221/Simple_CTI.Stratis.pbo Armaholic mirror: <not updated yet with version 2.2.1> Afterword I would really love to have some opinions on the mission itself, but also on the coding style. So any mission designers please take a look at the code. Show me mistakes or improvements, anything could help in any future projects I would do in arma 3. Feel free to experiment with the code as well, I have limited time so if you ask me stuff like can I add RHS or god knows what ... well my answer will probably be I wrote it in a modular fashion, why don't you write a module for it ? Just when you start tinkering keep in mind the core folder ... well that is my playground, you might do changes in it, but if I update my CTI template or who knows redesign it completly , your work will be for naught. Just write modules K ;) Hope you guys enjoy it !
  13. celludriel

    [COOP-10] Stratis Simple CTI

    Well after a playthrough I found two bugs that needed fixing. Fix for slingable armory being able to be damaged InfiniteInventory weapon duplication bug fix I released version 2.2.1, sorry for the quick releases but I rather have these bugs squatted ASAP
  14. celludriel

    [Release] Infinite Inventory

    After a play session in my mission where I incorporated Infinite Inventory I stumbled on another bug. If you had weapons of a complex variety in your backpack and you added them to the inventory they didn't get properly removed from the player inventory. This caused item duplication, I made release 1.0.2 fixing this bug. You find the new links in my updated post above
  15. celludriel

    [RELEASE] ColorPalette

    Nicely done Larrow, works like a charm. There is one thing that makes me cringe though. Only one functions sqf file that is over 1000 lines long brrrrrrrrrrr Extract from the clean code book: http://www.itiseezee.com/?p=119 I know not all can be applied to sqf due to the nature of the language but still :)
  16. celludriel

    Jets - HUD improvements

    Well the reason why it is green in real life is because pilots need to have 10/10 vision and they can read green in all circumstances. Us gamers on the other hand don't have 10/10 vision most of the time. In order to keep the games fun, we use other colors that our vision allows us to see and keep the games fun. I for one do not like flying into a blue sky, and not see any of my hud information and like it to be red or black to distinguis the green from the blue. So arcade-ish ... maybe, but it keeps it more fun for most of us.
  17. celludriel

    Jets - HUD improvements

    I would love it if you made the huds colorable this time around. Depending on the time of day, you sometimes can't see anything with the default color. Most flight sims I flew in the past had a way to colour the hud from green to red to black. Depending on the flight situation that helped flying the jet. So please give us the option to color the hud dynamically inflight !
  18. celludriel

    [COOP-10] Stratis Simple CTI

    Version 2.2.0 is now released. Not much of a change you might think but this had a lot of work with it. I first had to write a complete new library to handle some kind of infinite inventory and then implement it in this mission. Still we now have a nice fully functional armory that can contain an unlimited amount of items. Infinite Inventory implemented for slingable armories
  19. celludriel

    [Release] Infinite Inventory

    There is always one that skips through if you do your own Q&A :( There was a bug when you took an item from the inventory that controls stayed locked. This only occured when ran on a dedicated server or you where not the hosting server. It was an easy fix and version 1.0.1 is released. Sorry for the inconvenience.
  20. celludriel

    [Release] Infinite Inventory

    Version 1.0.0 is released. I just tested it by myself so I'm not sure if there are multiplayer bugs with regards to concurrency, I sure hope not. Tell me what you think and where I could improve a little. A little code review would be appreciated as well. I hope you can use this in any missions you will make.
  21. Well addons isn't an option I solved it with a workaround an ugly one. So I want to remove an attachment from a gun in my backpack fe: acc_pointer_IR. FINE: so I do the following - I fetch the weaponItems of the weapon you get something like ["arifle_MX_GL_F","","acc_pointer_IR","optic_Aco",["30Rnd_65x39_caseless_mag",30],["1Rnd_HE_Grenade_shell",1],""] - I delete the weapon from inventory with removeItem _weaponItems select 0; - Then I loop over the array adding the gun and each attachment to the backpack except the acc_pointer_IR Pro: I managed to delete the attachment from the weapon in my backpack Con: When I open my backpack now I have a disassembled weapon What I want BI to GIVE US ASAP is a method like ["acc_pointer_IR", <<weaponID>>] call BIS_fnc_removeWeaponItem;
  22. And here I thought I made a useful function Doh !
  23. Hey, I'm trying to create a simple function to determine if a weapon is primary, secondary or handgun sofar I have the following params ["_itemString"]; private ["_retValue", "_type"]; _retValue = "NO_WEAPON"; if(isClass( configFile >> "CfgWeapons" >> _itemString )) then { _type = getText( configFile >> "CfgWeapons" >> _itemString >> "type" ); diag_log format ["template type: %1", _type]; switch _type do { case "1": { _retValue = "PRIMARY"; }; case "4": { _retValue = "SECONDARY"; }; case "2": { _retValue = "HANDGUN"; }; }; }; _retValue I go the idea because of the following information: https://community.bistudio.com/wiki/CfgWeapons_Config_Reference look up the types section. I believe my path is right but _type always contains empty string. Is there another way to fetch the data from the item template ?
  24. I always find the answers right after I post. This is the right code params ["_itemString"]; private ["_retValue", "_type"]; _retValue = "NO_WEAPON"; if(isClass( configFile >> "CfgWeapons" >> _itemString )) then { _type = getNumber( configFile >> "CfgWeapons" >> _itemString >> "type" ); diag_log format ["template type: %1", _type]; switch _type do { case 1: { _retValue = "PRIMARY"; }; case 4: { _retValue = "SECONDARY"; }; case 2: { _retValue = "HANDGUN"; }; }; }; _retValue
  25. celludriel

    [Release] Infinite Inventory

    Well I got through it , but look at all this code I had to write. JUST to remove an item somewhere in the players inventory ... So unreal that a method like this isn't made by BI themselfes. I'm sure I missed some things and there could still be a bug I haven't encountered. How hard is it to look at the inventory of a player as a mini database. What do you need then, items with ID's ! and methods like updateItemWithID and deleteItemWithID ... but nooooooo a half a dozen methods that all do different things then you expect ... SOOOOOO FRUSTRATING params ["_item"]; diag_log format ["Removing _item: %1", _item]; private ["_deleteDone"]; _deleteDone = false; _detachWeaponItem = { params ["_weaponItem"]; if(typeName _weaponItem == "ARRAY") then { _weaponItem = _weaponItem select 0; }; if(_weaponItem != "") then { if(player canAdd _weaponItem) then { player addItem _weaponItem; } else { _ground = "GroundWeaponHolder" createVehicle (position player); _ground addItemCargo [_weaponItem, 1]; }; }; }; _hasAttachment = { params ["_haystack", "_needle"]; _result = false; { if(typeName _x == "ARRAY") then { if(count _x > 0) then { _x = _x select 0; } else { _x = ""; }; }; if(_needle == _x) exitWith { _result = true; }; } forEach _haystack; _result }; //check if is primary weapon if( _item == (primaryWeapon player) call Bis_fnc_BaseWeapon) exitWith { //if primary weapon and has attachments put attachments in inventory if they can't fit on the ground _weaponItems = primaryWeaponItems player; removeAllPrimaryWeaponItems player; { [_x] call _detachWeaponItem; } forEach _weaponItems; //remove primary weapon player removeWeapon (primaryWeapon player); }; //check if is secondary weapon if( _item == (secondaryWeapon player) call Bis_fnc_BaseWeapon) exitWith { //if secondary weapon and has attachements put attachments in inventory if they can't fit on the ground _weaponItems = secondaryWeaponItems player; { player removeSecondaryWeaponItem _x; } forEach _weaponItems; { [_x] call _detachWeaponItem; } forEach _weaponItems; //remove secondary weapon player removeWeapon (secondaryWeapon player); }; //check if is handgun if( _item == (handgunWeapon player) call Bis_fnc_BaseWeapon) exitWith { //if handgun and has attachements put attachements in inventory if they can't fit on the ground _weaponItems = handgunItems player; removeAllHandgunItems player; { [_x] call _detachWeaponItem; } forEach _weaponItems; //remove handgun player removeWeapon (handgunWeapon player); }; //remove weapon from uniform if present, put attachments in inventory if they can't put on the ground _uniform = uniformContainer player; if(!(isNull _uniform)) then { _weaponItems = weaponsItems _uniform; { if(_item == (_x select 0)) exitWith { { if(_forEachIndex == 0) then { player removeItemFromUniform _x; } else { [_x] call _detachWeaponItem; }; } forEach _x; _deleteDone = true; }; } forEach _weaponItems; }; if(_deleteDone) exitWith { true }; //remove weapon from vest if present, put attachments in inventory if they can't put on the ground _vest = vestContainer player; if(!(isNull _vest)) then { _weaponItems = weaponsItems _vest; { if(_item == (_x select 0)) exitWith { { if(_forEachIndex == 0) then { player removeItemFromVest _x; } else { [_x] call _detachWeaponItem; }; } forEach _x; _deleteDone = true; }; } forEach _weaponItems; }; if(_deleteDone) exitWith { true }; //remove weapon from backpack if present, put attachments in inventory if they can't put on the ground _backpack = backpackContainer player; if(!(isNull _backpack)) then { _weaponItems = weaponsItems _backpack; { if(_item == (_x select 0)) exitWith { { if(_forEachIndex == 0) then { player removeItemFromBackpack _x; } else { [_x] call _detachWeaponItem; }; } forEach _x; _deleteDone = true; }; } forEach _weaponItems; }; if(_deleteDone) exitWith { true }; //check for attachment //check if attachment on primary weapon _weaponItems = primaryWeaponItems player + primaryWeaponMagazine player; if(_weaponItems find _item >= 0) exitWith { //remove attachment from primary weapon player removePrimaryWeaponItem _item; }; //check if attachment on secondary weapon _weaponItems = secondaryWeaponItems player + secondaryWeaponMagazine player; if(_weaponItems find _item >= 0) exitWith { //remove attachment from secondary weapon player removeSecondaryWeaponItem _item; }; //check if attachment on handgun _weaponItems = handgunItems player + handgunMagazine player; if(_weaponItems find _item >= 0) exitWith { //remove attachment from handgun player removeHandgunItem _item; }; //check if attachment on any of the carried weapons in inventory _weaponItems = weaponsItems _vest; _weaponItems = _weaponItems + (weaponsItems _backpack); _weaponItems = _weaponItems + (weaponsItems _uniform); { diag_log format ["weaponitems %1", _x]; if([_x, _item] call _hasAttachment) then { diag_log format ["Attachment present %1", _x]; //delete the weapon player removeItem (_x select 0); { //only way is to fake disassembling the weapon and adding each part again except the one we don't want if(typeName _x == "ARRAY") then { _x = _x select 0; }; if(_x != _item && _x != "") then { player addItem _x; }; } forEach _x; _deleteDone = true; }; } forEach _weaponItems; if(_deleteDone) exitWith { true }; //item is only in inventory, remove it //regular item delete from inventory diag_log format ["Just removing %1", _item]; player removeItem _item; true
×