Jump to content

barbolani

Member
  • Content Count

    1197
  • Joined

  • Last visited

  • Medals

Everything posted by barbolani

  1. Idea: What if you use this? https://community.bistudio.com/wiki/AGLToASL Pick a position which you know it's land as reference (position player). Make a loop of searching for psitions in several (at least 4) angles from the reference position in a distance of lets say 150 mts. If surfaceIsWater returns true, you know now there is wáter nearby and on which relative angle. Now we have to loop on that angle, increasing distances from the reference position. On each iteration you have the position in _pos: _pos set [2,0]; _posASL = AGLtoASL _pos; if (_posASL select 2 < 3) exitWith {hint "The wáter is 3mts Depth so here my boat wont get stuck";}; Untested, made while I'm bored at the office.
  2. You may unPBO Antistasi and you Will find under REINF\FIAaddVeh.sqf or garaje scripts some code for boat in wáter spawning. But I had more or less the same problema, sometimes boats spawn on land...
  3. Hi! Mind if I add some snippets of the script to Antistasi? I would like to add this for the PvP players, so the rebels can use their owned radio towers as jammers for NATO. Of course I Will credit you.
  4. Hi! For building some kind of "dynamic headless client assignator" on which a unit spawning script can me called from any client to the idelest client, I have the issue that commands such as owner or groupOwner are server only. Which means only the server can know in real time which client is running more AIs and select the one with less of them. My workaround is to make some kind of server side scheduler which you remoteExec from any client, the scheduler checks the idlest client and sends the real script and params to the right client. So syntax could be something like: [arrayofParams,scriptVariableName] remoteExec ["scheduler",2] Example: [[targetPosition,numberOfGroups,typeOfAttack],spawningAttackScriptVarName] remoteExec ["scheduler",2] Got the idea? Ok, my doubt is related to the script variable name: what is passed through the network, just the var name or the whole code behind it? Because behind that variable I may have a thousand lines of code.... I ask you because I find very difficult to test this and know what's happening in the engine. Thanks in advance!
  5. Yes, thats the idea, to make a load balancing. But I want to make it without ownership transfer because the script that spawns AI does a lot of stuff on them, and some stuff may be using local commands. "scheduler" was my script name. Anyway I found the solution, which is to pass the function name as string, which is not problematic because remoteExec also uses the function name as string. So for example, instead of: [_markerPos,10] remoteExec ["spawnscript",_someClientID] I will do this: [[_markerpos,10],"spawnScript"] remoteExec ["myHCbalancer",2] And from the server, in myHCbalancer function, once I have the client ID with less AI: _this select 0 remoteExec [_this select 1,_someClientID];
  6. Antistasi - Warlords of the Pacific A Dynamic Sandbox Mission for Resistance, SP, MP Coop and Infantry Lovers the REAL Arma Experience Following successfull A3- Antistasi Altis, Warlords of the Pacific is the newest sequel of the guerrilla simulator. Those who enjoyed Antistasi will find the landscape in Tanoa as the most suitable for the war they like. WARNING: Mission is on OPEN BETA STAGE. Some showstoppers CAN appear. If you want a 100% full functional version, I recommend you to go back to Altis. A Persistent Whole Map mission, for SP or MP Coop, focused on Resistance Infantry and Guerrilla Tactics. Features: - Foreign Politics / Civil Support System - Tanoa is in an All vs All war with the following factions fighting eachother: BLUFOR (NATO Pacific, Gendarmes, FIA as PMC), OPFOR (CSAT Pacific) and Sindykat. - MP PvP Element: Players may join a NATO SpecOp counterinsurgency squad and try to disturb Sindykat operations (WiP). - Around 18 possible Sidemissions which may happen everywhere. Assasination, Logistics, Destroy Assets, Rescue POWS, Conquer Missions in a wide variety on each type. - Possibility of Undercovered Operations, same as a Resistance soldier can do. - AI Enemy Commander which reacts to your movements and manages his resources. - Persistent Stat Save System: You won't loose game or server progress upon a game update. - Enhaced AI Squadmate control. - Playable in SP, MP, and persistent open server MP. - Up to 3Headless Client supported. - Cooperate while compete to be the commander of your side (MP Only) - Build minefields, improve bases with static weapons which AI will use. - Tano and it's forests get destroyed as long as the war evolves. - Integrated Mods: TFAR, ACE3. None of them mandatory. - Wonderful jungles to fight in. Feedback is welcome. Bug reports are VERY welcome, if done properly. Docs and manuals are still on roadmap, but Altis edition docs should be enough for almost everything. Known Issues: - The NATO PvP Option is still WiP, but definetly playable. Among other things to improve, the NATO heli taxi (Radio 0-8) uses vanilla BIS module and lack of some functionalities Antistasi needs. If in toruble, login/logout. - Tanoa is a pain in the ass for AI driving on roads. They have built a lot of small tracks which AI uses badly due to the dense jungle which surrounds them. Possible solutions are WiP. - Mission balancing is still under study. - Some features have not been heavyly tested. That's why are you here :) Please rate up the mission if you like the concept. The more players we are, the better mission we will have thanks to comments, suggestions and bug reports. Vids: [flash=]
  7. barbolani

    [SP/MP] Antistasi - Warlords of the Pacific

    And yours too! Yes, just pick the "Pulu" section and modify as you like
  8. In my experience, it shouldnt. I would bet something is wrong somewhere, in the mission or in the infra. Any misión around the scene has those 20 AIs running without killing any PC. Antistasi runs 100 AI at a time without killing an average PC and the AI behaves decently. Good advice from qucksilver because indeed I was about investigating a way to offload AI on connected clients. You saved me a ton of work :)
  9. barbolani

    [SP/MP] Antistasi - Warlords of the Pacific

    Hi there. Just a bump to this misión as it has been updated recently with several changes affecting gameplay experience, for better :)
  10. Glad to see one of the masters of this community plays Antistasi which is definetly inspired by your work :)
  11. Dear .kju I discovered some posts here asking to port Antistasi to IFA3. I have this port on roadmap, but not for the altis versión but for the Tanoa (aka Warlords of The Pacific) as new branch. It will be much more fun to fight in a war of Germans vs Ruskies vs Polish (players are Polish) than a 1vs1 faction war :) The problem: I have very Little time to code and first thing I want is to reach 1.0 in Warlords. As soon as I have it, I will start working. In any case, if you or somebody is eager to make the port, they may count with my help. Contact me via steam (barbolani). My ego is sad because I'm not seeing Antistasi in your poll but other missions which AFAIK are discontinued are there ;)
  12. barbolani

    [SP/MP] Antistasi - Warlords of the Pacific

    Thanks Reggie: It would be useful if you tell me if you could see the actions related to drop or revive to your buddy.
  13. Sorry to bump this but I have been suffering this since ages ago. If you use BIS_fnc_setT ask with all the JIP proper parameters, on JIP players may happen the following (experienced several times): - Task does not appear - Task appear in the wrong state - Task appear later on with wrong state. I have allways bet the function has some bug there, and posted in the feedback tracker with no success. I use scripted tasks because my missions are fully dynamic and scripted. No triggers, no modules. Also the nice icons :) I use setTask because several things can happen with the task, so better to use a single script which is suppose to broadcast anychange, isnt it? If anyone can enlighten me...
  14. The problem is definetly not in plane positioning scripts but in the plane itself. If the players which are on the cargo seats have not the "Eject" option, something else is happening. Try to test with the plane just fying with a simple move waypoint. Try to test with the plane landed and stopped. Try to test with another type of plane if you can. An automatic dive and crash is not normal too.
  15. Oh! Then yes, an addon with that function which broadcasts the function to all clients and executes it with remote exec.
  16. Sorry, if I understood it bad but. This may work? initServer.sqf coolFunction = {_number = _this; hint format ["The server told me this secret number: %1",_number]}; publicVariable "coolFunction"; sleep 10; (random 10) remoteExec ["coolFunction",-2];
  17. Hi Friends! I am currently working on several AI improvements. I've seen AI scripts here and there, how do they work etc. specially UPSMon and VCom AI. Regarding some features for individual units, like for example, make them move to a specific point and make them static, you have two approaches with pros and cons: - Making it on unit basis is more complex, you will have to loop constantly to know the status (alive, reached the position, unitReady, others) + you have to make the squad leader "dumb" at some points because if not, they will issue orders (enableAttack true/false) which may interfer on what you want to achieve. - Create a new group + waypoints, storing his old group. This allows you to "reset" the unit without problems, they will remain static on the position you want, if you want, and you won't need lots of checks because the engine is doing those checks for you. May require more CPU and you have to track which group "belongs" to which group. The only possible big con for the group/waypoint approach I know is the performance, and I am not sure if that's really important: the amount of units spawned may be like 150 per instance and groups around 30 with the first option and 60 with the second. Lets see this in one example: I want certain units on a group to get inside a building and stay safe, garrisoned there: - First approach: make the leader enableAttack false (which will affect some other units which maybe you want to be commanded), select the units, cancel all their orders, maybe disableAI some features, loop while they are moving to the place which checks lifestate, alive, unitReady, distance to destination, then forcespeed, stop true, maybe disableAI, another loop maybe to check conditions to make them movable again. - Second approach: créate a grup. Setvariable that group with his "father" group. [unit] joinSilent group, make waypoints, config waypoints regarding behaviour etc. give waypointStatements in case you want some additional effect, and from there, loop to check conditions to rejoin or just synch that waypoint to another from the "father" group. I am finding the second option much easier for almost everything. Dear scripting experts, what do you think?
  18. barbolani

    [SP/CO8] A 3 - Antistasi Altis.

    First I want to finish some spin offs :)
  19. barbolani

    How loop an animation ?

    And the second wont work as the variable _fncanim won't be passed inside the _EH
  20. I made lazy Reading, same as my code :)
  21. Or the easy, dirty and lazy, but maybe good enough: vehicleName setDamage (random 1);
  22. Uh uh, my first suggestion is to go here: https://community.bistudio.com/wiki/Category:Scripting_Commands_Arma_3 And see what it states about every command (execVM, nearestObject) and how to use it, because you are making a wrong use on them. Passing the car object to the script. On car init field put: [this] execVM "ridgeCar.sqf" So the car object will be passed to the script. Now lets go to the script: _car = _this select 0;//this assigns to the local variable _car the arguments you passed to the script. while {alive _car} do // we use this to loop, but we don't want the loop forever, for example, finish it when the car is destroyed { _speed = speed _car;// we check car's speed and assign it to the _speed local variable hint format ["Car speed: %1",_speed];//a hint will show current car speed and its very useful for debugging purposes, as it will tell me weird things if I made something wrong if (_speed >= 50) then {hint "Fast fast fast"};// this if statement checks if speed is more than 50 and overrides the previous hint sleep 5; //we only want to make this check every five seconds }; //from here the car has been destroyed and the loop has exit. We can do other things with the car, for example delete it: deleteVehicle _car;
×