Jump to content

basstard

Member
  • Content Count

    22
  • Joined

  • Last visited

  • Medals

Everything posted by basstard

  1. Custom Combat Patrol is a lightweight addon that brings you the ability to fully customize your Combat Patrol scenario. Main features: Play as Blufor, Independant and even Opfor. Play with your favorite faction/vehicles addons. Define your own ennemy units and vehicles. Play new and exclusive objectives. Modify your loadout inside the 3den editor, it will be restored upon respawn. Respawn at insertion point and never get spawn killed again and again. Extend the insertion radius and never get engaged as soon as you spawn in. How to: The process of creating a customized Combat Patrol mission is pretty straightforward. Open the editor and follow these simple steps: Select your favorite map. Place 12 playable units on the map. You can add more units but the Combat Patrol scenario is balanced for 12 players. Nevertheless it is possible to raise the ennemy units count with a proper configuration of the init.sqf file. Go to System (F5) > Modules > Combat Patrol and place a Custom Combat Patrol Initialization module near your playable units. Save your scenario. Open your @CustomCombatPatrol folder and copy the init.sqf and descritpion.ext files contained in the Samples folder. Then paste them in your mission folder. Read carefully the init.sqf file and tweak it to your needs. Save and export your scenario. Enjoy. Please take notice that the provided init.sqf file is not usable as is because it contains multiple instances of the same variable initialization. The aim is to provide several examples and let people choose what they prefer. I won't provide support about how to tweak this file because it is very basic Arma coding knowledge. On the other hand, if you have issues/bugs related to Custom Combat Patrol you are welcome to report them. As in any user made Combat Patrol scenario you will notice that there are some selectable locations that are not desirable for an operation (eg. tiny village with only few houses). The process of removing them is pretty straightforward too. You simply need to edit your mission and place a Location Remove module on the city you want to blacklist. This module is located in System (F5) > Modules > Combat Patrol. You can notice as well that some clickable icons on the location selection map appear misaligned with the city name. You can also fix things up with a Repositioning module located in System (F5) > Modules > Combat Patrol. Simply use the 2D map to place your module icon perfectly centered on the city name. Limitations: In the kill HVT mission, the officer and his squad are still Vanilla Arma 3 assets. In the destroy supply trucks mission the trucks are still Vanilla Arma 3 assets. These limitations have been addressed in v0.1.0 published on 07/01/2017 (mm/dd/yyyy). Download links: Steam Workshop: Addon: Custom Combat Patrol Demo mission: COOP 12 - Custom Combat Patrol Takistan - USA vs Insurgents Google Drive: Addon: Custom Combat Patrol v0.3.3 Demo mission: COOP 12 - Custom Combat Patrol Takistan - USA vs Insurgents Recommended addons: JBAD. It adds more enterable buildings on maps ported form Arma 2. This addon focuses on Middle Eastern buildings, so it's ideal for missions on Porto, Zaragbad, Sahrani, or Fallujah. DS Houses. It adds more enterable buildings on maps ported form Arma 2. This addon focuses on Eastern Europe buildings, so it's ideal for missions on Chernarus or any map that and uses these kind of buildings. Enhanced movement. It allows you to jump and climb, a must have. JSRS Soundmod. It adds a lot to the immersion and the atmosphere, another must have. Credits: I don't take credit for the Combat Patrol game mode. My addon is just a slight modification of BIS devs work. A big thanks to them for their amazing Arma series and all the possibilities they offer to modify the game content. Changelogs: Changelog for v0.1.0 published on 07/01/2017 (mm/dd/yyyy): [Added] Server key. Files are now signed. [Added] Mission parameters are back in descritpion.ext, except for ennemy faction. Ennemy faction is always OPFOR. You must update your description.ext accordingly to the example file provided in the "samples" folder. [Added] Respawn at insertion point. You can disable it through mission parameters. Default = enabled. You must update your description.ext accordingly to the example file provided in the "samples" folder. [Added] Localization for a few things related to Custom Combat Patrol. Supported languages are French and English only at the moment. [Added] Ability to customize the trucks in the "Sabotage vehicles" objective. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Added] Ability to customize the HVT in the "Eliminate HVT" objective. His guards are randomly picked in the BIS_CP_enemyTroops array. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Added] Ability to disable the area showing where the HVT is patroling in the AO. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Fixed] The antenna in the "Sabotage comms" objective could appear tilted on non Arma 3 maps. It occured a lot on Takistan and it should now be fixed. [Modified] The "Eliminate HVT" objective has been overhauled. While playing this mission I found several occurences where I was sitting at the car from a hill, simply waiting for AI being dumb like the HVT goes first in the vehicle and becomes a perfect target because he waits for his guards. Now when you are detected by the ennemies, the HVT will hide in a building waiting his guards to go for the vehicle and come pick him up. Meanwhile, a sentry group is sent to defend the building where the HVT is hidden. To spice things up a little more, when the HVT is a civilian, he is able to pickup a weapon on the ground, but this behaviour has some restrictions. The HVT will only pickup the weapon of one of his dead guard. If he is hidden when the guard is killed, it won't happen. If he is on his way to his hideout, it will happen only if the weapon is closer from his position than his destination. Changelog for v0.2.0 published on 07/08/2017 (mm/dd/yyyy): [Added] Ability to disable fatigue and stamina through a single mission parameter. You must update your description.ext accordingly to the example file provided in the "samples" folder. [Added] A few translations now support more languages than French and English. It's Google Trad so it can be pretty inaccurate, sorry for the inconvenience. Feel free to get in touch with me if you want to contribute. [Added] First iteration of the fourth objective, which is an hostage rescue mission. A group of insurgents is entrenched in a building with an hostage to negotiate the liberation of their comrades. For this one you have to be quick and make the good decisions. Some of these fanatics have equipped explosive stuffed vests and won't hesitate to detonate their charge if you try to kill them. On the other hand, the less commited to their cause can potentially surrender and you should spare their lives to prevent an escalation of the situation. To make this new objective available you must update your description.ext accordingly to the example file provided in the "samples" folder. [Added] Ability to customize the hostage class name. His guards are randomly picked in the BIS_CP_enemyTroops array. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Added] Ability to tweak the probability to have suicide bombers in the hostage takers crew. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Added] Ability to customize the sound played by suicide bombers before they detonate their charge. You must update your init.sqf AND you descritpion.ext accordingly to the example files provided in the "samples" folder. [Added] Ability to display or not an area on the map showing where the hostage is hidden like in the "Eliminate HVT" objective. You must update your init.sqf accordingly to the example file provided in the "samples" folder. [Fixed] Script error that caused mision to stall when using array definitions rather than group definition for variables like BIS_CP_enemyGrp_sentry, BIS_CP_enemyGrp_fireTeam and BIS_CP_enemyGrp_rifleSquad Changelog for Hotfix v0.2.1 published on 07/08/2017 (mm/dd/yyyy): [Fixed] The client setup was stalled when playing on a dedicated server which was leading to an endless black screen. Changelog for v0.2.2 published on 07/09/2017 (mm/dd/yyyy): [Added] Hostage takers crew now adapts to players count. [Added] More translations. [Fixed] The hostage could leave the player's group. [Fixed] The hostage was supposed to grab his guard's weapon after he is released but he didn't. Sometimes the action is performed but fails, it should be addressed. [Fixed] Possible client side mission stall when playing on an area with very few buildings. [Modified] Lowered requirements to place an AI guarding doors of the building where the hostage is retained. The real issue is not yet addressed but you should see more AI guarding the doors. Changelog for v0.2.3 published on 07/14/2017 (mm/dd/yyyy): [Fixed] Fatigue deactivation was not persistent upon respawn. [Fixed] Customized loadout was not persistent upon respawn. You can now edit your characters' loadout inside the 3den editor, it will be kept on respawn. [Fixed] The "Hostage Rescue" objective was never selected when the "objective" mission parameter was set on random. [Fixed] The action to release the hostage in the "Hostage Rescue" objective now has the proper localization. [Fixed] Script error in the "Eliminate HVT" objective when the HVT was searching for a building where he can hide. If the nearest building had no positions it triggered an error. [Modified] How units are placed in front of doors in the "Hostage rescue" objective. You will see more doors guarded. [Modified] The BIS_CP_enemyVeh_Truck variable in the init.sqf file now support class name definition. It is highly recommended to switch from CfgGroups entry to class name for the reinforcements system to work as intended. CfgGroups entry definition has been removed from the variable descritpion but the compatibility has been kept for people who don't read the patch notes. [Modified] The reinforcements system was behaving very badly with some addons, especially with CUP. Now it should work as intended with the vast majority of faction/vehicles mods. Changelog for v0.3.0 published on 07/31/2017 (mm/dd/yyyy): [Added] Ability to play as independant and opfor in addition to blufor. [Added] Some old A2 buildings are replaced with new, high quality buildings on A2 maps. Requires the JBAD addon. [Added] New objective "Stop the propaganda" inspired from the Just Cause serie. Find and destroy all Opfor propaganda assets. To make this new objective available you must update your description.ext accordingly to the example file provided in the "samples" folder. [Added] New variable in the init.sqf file to customize the sounds played by the loudspeakers. You must update your init.sqf file accordingly to the example file provided in the "samples" folder. [Fixed] Some reinforcements vehicles would spawn partially buried on certain maps. [Modified] The initServer.sqf file provided in the "samples" folder is renamed to init.sqf. It allows to use efficiently the Open Chernarus Project addon. If you use it you MUST rename your initServer.sqf file to init.sqf and add "if !(isServer) exitWith {};" as the first line of code (w/o the quotation marks). Changelog for v0.3.1 published on 07/31/2017 (mm/dd/yyyy): [Added] Mission parameter to extend the insertion radius (thanks to grollig for the suggestion). You must update your description.ext accordingly to the example file provided in the "samples" folder. [Fixed] Occurrences of enemies killing each others (thanks to namrewob1 and grollig for reporting it). [Fixed] Potential issue with reinforcements never being sent in certain objectives. [Fixed] Laptop self-destruction in the "Sabotage comms" objective. Not a 100% sure fix but it should be better. Changelog for v0.3.2 published on 07/31/2017 (mm/dd/yyyy): [Fixed] A script error that was disabling the sound playback on each loudspeaker. Changelog for v0.3.3 published on 08/13/2017 (mm/dd/yyyy): [Added] A dynamic sandstorm effect. The sandstorm is generated in correlation with the wind speed and direction. When the wind exceeds a certain speed, some bush/tree debris are flying around. Note that sandstorm adapts to any change in speed and/or direction of the wind. [Added] A mission parameter to enable the sandstorm effect. Default: disabled. You must update your description.ext accordingly to the example file provided in the "samples" folder to benefit from this new addition. [Fixed] An issue related to the new insertion radius multiplier parameter. You must update your description.ext accordingly to the example file provided in the "samples" folder. [Fixed] An issue with the building replacement script on dedicated server. [Fixed] An issue with the HVT escape position being the map origin on tiny maps like Porto or Zargabad for example. [Fixed] An issue with reinforcement vehicles spawning system, they could spawn sunken in the ground and have their wheels destroyed or explode. Hopefully this issue is 100% addressed this time. [Modified] How the loudspeakers are placed in the "Propaganda" objective. No more floating loudspeakers. [Modified] How the data terminal is placed in the "Sabotage comms" objective. Less terminals on fancy locations. [Modified] The reinforcement system now check for wrecks or frozen vehicle before spawning another reinforcement vehicle. [Modified] The AI sentry groups are now randomly choosing to patrol clockwise or counter-clockwise around the AO (thanks to grollig for the suggestion).
  2. basstard

    DS Houses

    Hi, I tested this addon and it is a nice one. The new open buildings have plenty of memory points for the buildingPos command. While walking around in Chernarus I noticed 3 issues so far: The "Land_HouseV_1L2" building has only 3 buildingPos, and only one is inside. In front of the doors of "Land_HouseV_3I3", there is some invisible geometry that prevent you from entering unless you vault. Another building (forgot to note the class name) seems to have a different placement from its CUP counterpart. Take a look at the pictures below. Notice how the Fuel tank collides with the house: This one is the same and we see the dirt which corresponds to the original building placement: Here we see that it overlaps the sidewalk: Anyway this addon looks very promising, keep up the good work guys !
  3. basstard

    Custom Combat Patrol

    Hey guys, The mod has been updated, nothing fancy, mostly bug fixes and improvements. This update features the addition of a sandstorm effect which can be enabled/disabled through the mission parameters. It is based on the BIS_fnc_sandstorm function that I have reworked. Also people who have updated their description.ext to benefit from the latest "insertion radius multiplier" parameter must update their description.ext accordingly to the description.ext file provided in the add-on "samples" folder. Sorry for the inconvenience.
  4. I don't know if it has already been reported but, even though OCP adds very high quality buildings with nice and detailed interiors, most of them don't have any building position. I was very excited about this mod in the first glance but since I've discovered this issue it seems pretty useless. Not being rude but in fact, most of the scripts to spawn units or loots use the buildingPos command.
  5. basstard

    Custom Combat Patrol

    @grollig Your issue comes from the BIS_CP_enemyTroops variable, I bet it's set to nil, isn't it ? When you set BIS_CP_enemyGrp_rifleSquad with an array you should always do the same for BIS_CP_enemyTroops. Simply edit your init.sqf with the following code: BIS_CP_enemyTroops = BIS_CP_enemyGrp_rifleSquad; or BIS_CP_enemyTroops = +BIS_CP_enemyGrp_rifleSquad; Thank you for pointing out the repeatability of the patrols, I will take a look.
  6. basstard

    Custom Combat Patrol

    namrewob1 and grollig please ignore my previous request. I have made a quick mission on my own and I have been able to reproduce the behaviour you described. I have published an update which include a fix for the ennemies killing each others. I have tested it a few times on different objectives and it seems to works like a charm. Update your Custom Combat Patrol to the latest version and tell me if you are still experiencing issues. I have also added a mission parameter to extend the insertion radius, like grollig suggested. Don't be too greedy, times 2 is already big enough and don't forget it will have an impact on the extraction position, so if you don't want to spend a lot of time walking don't abuse it. Feel free to change the default value to your linking in "class BAS_CCP_insRadiusMul" in the description.ext file.
  7. basstard

    Custom Combat Patrol

    Hey guys, The mod has been updated, take a look at the changelog in the first post. The DDL links on Google Drive are up-to-date. The biggest part of the update is the addition of a new objective which is inspired from the Just Cause serie. There are several propaganda assets spreaded on the area of operation, you have to find them and destroy them. If you like it, you are free to use it even outside of Custom Combat Patrol, share it, modify it or build upon it, if you apply the following restrictions: You are NOT allowed to alter the file header, you can only add stuff to it, like if you added substantial modifications (eg. new function parameter, code revamping, etc...) you are allowed to add a line with "Modified by: your name" under the author and add your new parameter(s) so the function keeps well documented. You are NOT allowed to make money with it, in its original or any modified form, even if your server complies with the BI's monetization rules. Please note that this new objective use modded assets for the statue and the pedestal so if you want to use this mission outside of Custom Combat Patrol you will have to look at the code and adapt it. Note that the vanilla pedestal has no destruction and the statue is not affected by PhysX as opposed to my modded assets. A similar behaviour can be achieved using scripts only by assigning an explosion event handler to the pedestal, deleting it upon explosion, and moving the statue on the ground, but a simple grenade will trigger the EH. Another nice addition is the automatic replacement of some old A2 buildings with their opened equivalent when you have the JBAD addon enabled. Give it a try if you made scenarios on maps like Porto or Sahrani. Sorry to ear that some of you are experiencing troubles, and sorry for the late answer but I was on holidays and I'm back since sunday. I will take a look at your issues, but from what I see you are mainly experiencing issues that are fixed so you should start by making sure that you run the latest Custom Combat Patrol version. I used to have the same issue with mixed INDEP and OPFOR groups in the very early versions but I have removed the ennemy faction parameter from the description.ext file as it was causing troubles. Today's update completely ignores the ennemy faction parameter and set the ennemy side depending on the players side. Please namrewob1 and grollig can you post your full init.sqf or initServer.sqf ? Or better, can you upload your missions and provide a download link so I can test if I can reproduce your issues ?
  8. basstard

    Custom Combat Patrol

    Hey guys, The mod has been updated, nothing fancy, mostly bug fixing and QOL stuff. I advise you to take a look at the changelog, especially concerning the reinforcement truck. Greetings
  9. basstard

    Mogadishu Map v2

    No other mods, only those required to run Mogadishu. You can download the RPT and dump files here: click me
  10. basstard

    Mogadishu Map v2

    Crash to desktop while approaching the city is still present in the latest version. Is there a fix on the way ?
  11. basstard

    Custom Combat Patrol

    Disabling the fatigue helps a lot with weapon sway. If it's not sufficient you should search for a dedicated addon, I bet someone already did it.
  12. basstard

    Custom Combat Patrol

    Hey guys, The mod has been updated, take a look at the changelog in the first post. The DDL links on Google Drive are up-to-date. The biggest part of the update is the addition of a new objective which is an hostage rescue mission. Before going more in-depth decribing the game mechanics, I want to tell that if you like it, you are free to use it even outside of Custom Combat Patrol, share it, modify it or build upon it, if you apply the following restrictions: You are NOT allowed to alter the file header, you can only add stuff to it, like if you added substantial modifications (eg. new function parameter, code revamping, etc...) you are allowed to add a line with "Modified by: your name" under the author and add your new parameter(s) so the function keeps well documented. You are NOT allowed to make money with it, in its original or any modified form, even if your server complies with the BI's monetization rules. Now let's jump into it. So there are Opfor guys entrenched in a building with an hostage to negotiate the liberation of their fellows. There are soldiers guarding each entrance of the building (tested on Vanilla buildings but it seems to fail on buildings ported form Arma 2, I will take a look and try to fix it for the next update). When you enter the building a timer starts ticking, and after 60s all remaining soldiers (just the hostage takers not the patrols outside) will move to the hostage position and try to kill him. There is a bad guy just next to the hostage pointing his gun at him and waiting for the signal to pull the trigger. Moreover, there is a chance that some Opfor guys carry explosives with them and will try to detonate their charge if you don't kill them quick. At the contrary, the less committed to the cause will potentially surrender, you should spare their lives to prevent an escalation of the situation. Now let's go more in-depth in the mission workflow and how the AI make their decisions. So I've implemented some kind of "tension" system which works like this: each time you kill an hostage taker (aside from the guards at the entrance) it adds to the group's tension and the dice is rolled to know if they decide to kill the hostage. The tension progression is not linear, so the first kills won't weight that much in their decision and it's not likely they will kill the hostage but be warned it can happen (bad luck). The tension rise to a maximum of 50% BUT as I told you earlier, there are guys that will surrender so it's a good way to avoid escalating the tension, and at the contrary if you kill them while they are surrendering it will double the tension added to the group's tension, rising the final tension above 50% and up to 100%. The hostage takers choice to surrender or detonate their charge is based on the amount of damage they suffered and the actual group's tension, the formula is: probability to detonate or surrender = damage * 0.75 + tension. Still, there is a slight nuance between suicide bombers and other soldiers, when they take the decision to detonate they shout something so it adds a warning to the players and a time window to kill him quick so he won't explode. As far as the basic soldiers are concerned they surrender instantly when the decision is taken. As always, I added the ability to customize the objective so you can define the hostage class name, the chance to have suicide bombers, the sound played by the suicide bombers and to display or not an area where they hide the hostage like in the kill HVT objective. I hope you will enjoy playing it as much as I enjoyed designing it. All comments are welcome especially those concerning balance or constructive criticism. Greetings.
  13. basstard

    Custom Combat Patrol

    The original Combat Patrol game mode has already a built-in feature to adapt the ennemy count depending on the player count and the difficulty preset chosen in the mission parameters. If you want less ennemies make sure you select the low preset for garrison when you are in the lobby, before starting the mission. I don't know if you use CfgGroups or array in your init.sqf but there are mods where using the CfgGroups can unbalance the game because there are too much ennemies in premade groups compared to vanilla groups. If this is the case you should use array definition and put 2 class name in BIS_CP_enemyGrp_sentry, 4 class name in BIS_CP_enemyGrp_fireTeam and 8 class name in BIS_CP_enemyGrp_rifleSquad. If there are still too much ennemies, lower the number of class name in each array.
  14. basstard

    Custom Combat Patrol

    You should definitely start from the Combat Patrol code. There are only a few modified files in my mod. I don't think people are that angry, unless you copy someone's code without asking the permission to do so, without crediting the author and pretending it is your work. Which happens a lot in this community.
  15. basstard

    Custom Combat Patrol

    Sure you can achieve the same functionnality Custom Combat Patrol does with scripts only. PierreMGI did it first: PierreMGI's heavily customised Combat Patrol scenario on Takistan To achieve this on your own you have to unpack the PBOs, read and analyze the code, modifiy it and finally debug it if you messed with it. If you have good scripting skills it won't be that hard but in this community, espacially mission maker that don't script much need a turnkey solution. This is where my addon has its utility, but not only, even skilled scripters can be lazy :3 Anyway, you should give it a try, Custom Combat Patrol download size is less than 100kB. When you have downloaded several GB of mods to have custom factions, I don't think it's that painfull to download 100 more kB. Moreover, I'm already working on additionnal objectives ;)
  16. basstard

    Custom Combat Patrol

    Hi there, The mod has been updated, take a look at the changelog in the first post. The addon and the demo mission are now downloadable on Google Drive. Greetings.
  17. basstard

    Custom Combat Patrol

    I thought Steam workshop was the most convenient solution for everyone but I will consider your request.
  18. basstard

    Combat Patrol

    Hi there, For people who find it too tedious to play with PBO unpacking and code editing to change the ennemy faction in their Combat Patrol scenario, I made this lightweight and easy-to-use addon: Custom Combat Patrol Simply use my Custom Combat Patrol Init module instead of the Vanilla one and put the class names you want in the init.sqf of your mission.
  19. Unfortunately this new allocator doesn't fix the 3FPS drop issue for me. From my perspective, I thought this bug was related to a memory leak as sometimes before the game crash, Windows tells me to close Arma 3 because the system is running out of memory. FYI, I disabled the swap file (pagefile.sys) because I have a SSD as system drive.
  20. Not being rude but frankly, I think you might misunderstand what fnc_contact does. The following code snippet (from fnc_contact) actually tests if the zombie sees the player. This test is made before checking if the distance to player is within aggro radius. _a = (getPos _target select 0) - (getPos _zombie select 0); _b = (getPos _target select 1) - (getPos _zombie select 1); _targetAngle = abs(_a atan2 _b); _eyeDir = eyeDirection _zombie; _eyeAngle = abs((_eyeDir select 0) atan2 (_eyeDir select 1)); //DEBUG: Show angle towards player and angle of view //hintSilent formatText ["Angle: %1, Eyedirection: %2", _targetAngle, _eyeAngle]; //FOV of the a grown up human is about 180 degrees, but that would be unbalanced if (abs(_targetAngle - _eyeAngle) < 60) then { ... }; Nothing fancy here, just some basic Euclidean geometry calculations. But this part is broken as I pointed it out. From my point of view, this is a game breaking issue, that's why I warned the community about it, but if you are ok with that, just stick with it and ignore my comment.
  21. For those who use this script, I have identified a flaw in Shaun AI script (used for zombie AI in infected script) that leads to zombies being able to see you from behind. I've isolated the code from fnc_contact that test if the player is in zombie's FOV. From this, I've made a little mission in VR so anybody who want to check this out can easily experience this f*cked up behaviour. FYI, it only happens at certain azimuts (90 and 270, maybe at a broader range but only tested 0,90,180 and 270). Test mission download link Bonus: my script contains an implementation that seems to work well from my preliminary testings. IDK if it's 100% fail-proof but at least, it works better. To test it directly from the VR mission, simply comment #define SHAUN and uncomment #define BASSTARD and reload the mission.
  22. basstard

    The Newcomers' Introduction Thread

    Hey guys, I'm new to this community so I will introduce myself a little bit. So, I'm Joffrey, 33 years old, from France. I'm an hardware/software electronics engineer, mainly specialized in designing digital boards with microcontrollers, developing software in C language with use of real-time OS. I discovered the Arma series thanks to DayZ Mod and I have to admit I fell in love with this gameplay style, that is far more immersive than running/jumping everywhere 360 quickscoping other players :rolleyes: I joined this community because I discovered Arma scripting for 2 weeks now. It has been a lot of fun playing with cool commands and of lot of rage trying to address bugs, but after all, solving problems is one of the funniest game for the human brain. But one day or another, I know I will need some help from experienced scripters/modders, so here I am. To finish, I would like to thank BI and their amazing community for their opening, their work and the impressive knowledge base they grew up for years !
×