Jump to content

meatball

Member
  • Content Count

    734
  • Joined

  • Last visited

  • Medals

Everything posted by meatball

  1. meatball

    =BTC= Revive

    I also did notice that I now get the "Lives Remaining" screen which I wasn't previously with my config if that helps. Just in case you need it, here's the contents of what I'm using in my init. Basically I want it set so players can spectate while unconscious, but have to be revived by other players and can't respawn themselves. ////////////////// EDITABLE \\\\\\\\\\\\\\\\\\\\\\\\\\ BTC_r_new_system = 0; //WIP - set 1 to activate it BTC_r_wait_for_revive = 1;//If BTC_r_new_system set to 1 you can choose if you want or not a revive time available after death (Similar to wounding system in ACE) BTC_r_action = 0;//[NOT IMPLEMENTED] - 0 if you don't want the healing animation (ACE style), 1 if you want the animations (You can't stop the animation) BTC_r_med_fa = 1;//0 for only first aid kit, 1 if you don't have a medikit you need a first aid kit, 2 only medikit BTC_r_cpr_time = 60; BTC_r_trans_ratio = 100; BTC_revive_time_min = 5; BTC_revive_time_max = 900; BTC_who_can_revive = ["Man"]; BTC_loop_check = 0; BTC_disable_respawn = 1; BTC_respawn_gear = 1; BTC_active_lifes = 0; BTC_lifes = 10; BTC_spectating = 2;//0 = disable; 1 = units group; 2 = side units; 3 = all units BTC_spectating_view = [0,0];//To force a view set the first number of the array to 1. The second one is the view mode: 0 = first person; 1 = behind the back; 2 = High; 3 = free BTC_s_mode_view = ["First person","Behind the back","High","Free"]; BTC_black_screen = 1;//Black screen + button while unconscious or action wheel and clear view BTC_action_respawn = 0;//if black screen is set to 0 you can choose if you want to use the action wheel or the button. Keep in mind that if you don't use the button, the injured player can use all the action, frag too.... BTC_camera_unc = 1; BTC_camera_unc_type = ["Behind the back","High","Free"]; BTC_respawn_time = 0; BTC_active_mobile = 0;//Active mobile respawn (You have to put in map the vehicle and give it a name. Then you have to add one object per side to move to the mobile (BTC_base_flag_west,BTC_base_flag_east) - (1 = yes, 0 = no)) BTC_mobile_respawn = 0;//Active the mobile respawn fnc (1 = yes, 0 = no) BTC_mobile_respawn_time = 30;//Secs delay for mobile vehicle to respawn BTC_need_first_aid = 0;//You need a first aid kit to revive (1 = yes, 0 = no) BTC_pvp = 0; //(disable the revive option for the enemy) BTC_injured_marker = 0; BTC_3d_can_see = ["Man"]; BTC_3d_distance = 50; BTC_3d_icon_size = 0.5; BTC_3d_icon_color = [1,0,0,1]; BTC_dlg_on_respawn = 1;//1 = Mobile only - 2 Leader group and mobile - 3 = Units group and mobile - 4 = All side units and mobile BTC_objects_actions_west = []; BTC_objects_actions_east = []; BTC_objects_actions_guer = []; BTC_objects_actions_civ = []; if (isServer) then { BTC_vehs_mobile_west = [];//Editable - define mobile west BTC_vehs_mobile_east = [];//Editable - define mobile east BTC_vehs_mobile_guer = [];//Editable - define mobile independent BTC_vehs_mobile_civ = [];//Editable - define mobile civilian }; ////////////////// Don't edit below \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2. meatball

    =BTC= Revive

    I did notice something strange with the new version, "BTC_disable_respawn = 1;" it used to hide the respawn button. With the new version I can see the respawn button. Also see another, empty, dropdown bar to the left of the Spectate mode drop down.
  3. meatball

    =BTC= Revive

    Awesome, thanks! You fix anything else in this version?
  4. meatball

    =BTC= Revive

    Removing those references half makes things work. If you change the line to: if (count (_gear select 11) > 0) then {{if (_x != "") then {_unit addItem _x;_unit assignItem _x;sleep 0.01;};} foreach (_gear select 11);}; Binoculars/Randfinders/Laser Designators are respawned with the player, they just are in their base inventory and not in the normally assigned gear slot on the top right.
  5. meatball

    =BTC= Revive

    I dug a bit in functions.sqf and found the following line of code: if (count (_gear select 11) > 0) then {{if (_x != "" && _x != "Binocular" && _x != "Rangefinder" && _x != "Laserdesignator") then {_unit addItem _x;_unit assignItem _x;sleep 0.01;};} foreach (_gear select 11);}; I found no other references to those items, so I'm wondering if this line is the problem since Binos, Rangefinders and LasersDesignators never get added back in anywhere else.
  6. meatball

    =BTC= Revive

    Have a few quick questions, not sure if it's A3 related or BTC related. 1) Has anyone had issues with binocs/rangefinders/etc disappearing for players that are revived? 2) Has anyone had problems with JIP players being able to revive/be revived by other JIP players, but not revive or be revived by players that are in the game from the start? 3) Is there a problem reviving someone who is submerged? We've had instances where a boat get shot up and go down. Some players get knocked unconscious and you can swim to them, try first aid and even go through the animation, but it doesn't actually revive them.
  7. meatball

    SHK_Taskmaster

    Man, that did the trick, though I don't know why all the others are working then. I may have to go back through and update every Taskmaster_upd call to use the spawn BIS_fnc_mp. Thanks!
  8. I've done something similar in previous missions using scripts that randomize starting locations, but I'm wondering if anyone knows a simple way that I can let the players choose (through parameters) one of multiple starting locations and then respawn at that location going forward.
  9. meatball

    SHK_Taskmaster

    Alright, I've run across a strange issue and wanted to see if anyone had any thoughts. I'm using Taskmaster in my latest mission and it's working great. There's over 60 tasks throughout the mission and with Taskmaster I'm able to easily create, update and add tasks on the fly without a problem. I've got one task that's really giving me some issues though and it's not set up any differently than the rest. I'm going to dive a bit into some extra details just so it's apparent what I'm doing. So here's the task, there's four bridges on western Altis north of the city of Kavala, the task is to move in and blow up those four bridges. I've got the task defined in my init.sqf as follows: ["task_40","Destroy Bridges - Kavala","A major north-south road system <marker name=""task_40"">travels north from Kavala</marker> and crosses four bridges. <marker name=""B40A"">Knock</marker> <marker name=""B40B"">out</marker> <marker name=""B40C"">all</marker> <marker name=""B40D"">four</marker> bridges to snarl enemy supply and troop transports along the west coast."] Additionally I've set up a variable in init.sqf : bridges40Down = 0; The task shows up in the list fine for everyone. Next I need to watch for the bridges to collapse. Unlike a lot of buildings, bridges need to be handled a bit differently to monitor when they are destroyed. So I have a piece of gameLogic parked on each of the four bridges that sets a variable for the bridge and then sets a secondary variable with the height of the bridge. bridge40A = nearestBuilding this;initHeightBridge40A = getPos bridge40A select 2; I then have a trigger watching each bridge to see when the height of the bridge is no longer the same as the initial height of that bridge with the following condition. getPos bridge40A select 2 != initHeightBridge40A; For the action I have: bridges40Down = bridges40Down +1; Last, but not least, I have one last trigger watching for when all four bridges go down with the following condition: bridges40Down == 4; Then in the On Action I have: nul = ["task_40","succeeded"] call SHK_Taskmaster_upd;"task_40" setmarkertype "hd_flag";"task_40" setmarkercolor "ColorBluFor"; So here's the rub. In a regularly hosted game, when the players blow up all four bridges the task updates and the marker type/color change. When the mission is hosted on a dedicated server on the other hand, I still know that last trigger fires because the marker type/color change, but the Task never updates. I'm at a bit of a loss at this point. All the other tasks are set up in a similar fashion and working fine in mission, even when hosted on a dedicated box.
  10. Instead of killing myself trying to figure this out, I finally just created a few teleport flag poles to let people move themselves to whatever starting location they wanted. Accomplishes the same thing that I was looking for.
  11. v0.60/0.61 Released Changelog: v0.61 - Disabled some AI debugging hints that had been left on. v0.6 - Updated the starting locations. There are now 3 Insertion points available, north on Atsalis island, south on Monisi island, and west near Savri island. All gear is located on Atsalis, but you can teleport from island to island using the flag pole there and your action menu and step off from any of the island with boats available on each. - Some bug fixes and tweaked missions. - Fixed a problem with some of the militarize/caching not functioning properly. - Unlocked most of the civilian vehicles on the map for players to 'liberate'. - Made ambient forces a bit more aggressive, but dropped the number of patrols around the players. (Thanks for the suggestions Shadow.D.) Known Issues: - Problem with the "Destroy Bridges" mission in Kavala. You can destroy them and the marker will update on the map showing it's succeeded, but you will not get a pop up saying it's succeeded and the task will not check itself off. Seems to be an issue with the way bridges are 'destroyed' and I'm working on it. - Many missions still not fully tested in MP/Dedicated and my not work as intended. - Players will experience a few minutes of lag as mission start as AI is setup and cached. See updated initial post for full information and download links.
  12. Trying to figure out how to fire a trigger based on the destruction of a bridge and the few old threads I've found don't seem to work. So the bridge in question is on the Altis map between Kavala and Aggelochori. Looking at the object ID's there appears to be two ID's associated with the bridge. So I've set up a game logic object next to each ID giving each object a name with the following Init: bridgeA = nearestObject [gl_bridgeA,"Land_Bridge_HighWay_PathLod_F"]; I then have a "!alive bridgeA" that spawns some debug text. Through trial and error I figured out it was the Highway bridge because the other Bridge objects would fire the trigger before the I even blew up the bridge. But...when I do blow up the bridge, the !alive trigger never fires even though I see the bridge collapse. Any thoughts? Man, it sure would be nice if there was an easy way to translate object ID's from the editor into object class names...
  13. Funny thing...I tried this exact same thing on the bridge on south Altis near Edessa and for some strange reason, when I'm on a dedicated server, the trigger fires immediately on that bridge, yet it doesn't fire with the exact same game logic/triggers for the bridges near Kavala. So, I have a game logic parked right next to the Edessa bridge with the following "bridge46A = nearestBuilding this;initHeightBridge46A = getPos bridge46A select 2;" And then a trigger that fires on "getPos bridge46A select 2 != initHeightBridge46A;" Why the trigger will fire right on mission start only in a dedicated server and not when locally hosted. And why just that trigger and not the other ones in Kavala go is beyond me. :)
  14. meatball

    AI Spawn Script Pack

    Hey guys, quick question on using simpleCache. Is there any type of limit to the # of militarize/fill houses that can be cached? Running into a problem with a larger mission of mine using it. I have a _lot_ (35) of militarize scripts that spawn around a bunch of locations on Western Altis. Have them all set to run on 'isServer' triggers and spaced out over about 90 seconds. I can actually see the militarize scripts spawn all the correct units around the proper locations. Then at about two minutes I have another 'isServer' trigger that runs the simplecache command for all of the militarize zones and it does cache all the units and they disappear. Here's the actual trigger action: nul = [[1,2,3,5,8,10,12,14,15,16,17,19,20,21,22,23,24,25,28,30,31,32,34,36,37,38,39,40,41,44,45,47,48,50,51],[fc1,fc2,fc3,fc4,fc5,fc6,fc7,fc8,fc9,fc10],1000,true,true] execVM "LV\LV_functions\LV_fnc_simpleCache.sqf"; At that point, if I close to within the range (1000m), the cached units just never come back. I've tried it on both local hosted and dedicated server setups and see the same issue on both, and I've tried both true/false settings on the keep count variable and the MP flag both with the correct player unit names in the unit array. Not sure what else it could be, anyone have any thoughts?
  15. Thanks Shadow! I'll check into it. It's a balancing act between making sure there's enough AI floating around to keep the players on their toes without having them always under fire.
  16. meatball

    randomWeather Script

    Here's some really basic scripts you can use for init.sqf to handle both JIP/Non JIP for time (assuming you have the info for selection of time in your class Params in description.ext) that has been working fine for me. // JIP Check (This code should be placed first line of init.sqf file) if (!isServer && isNull player) then {isJIP=1;} else {isJIP=0;}; if(isJIP == 0) then { //Non JIP players code curTimeHour = (paramsArray select 2); //---Read the Time if (curTimeHour == 24) then { curTimeHour = floor(random 24)}; setDate [2035, 7, 4, curTimeHour, floor(random(30))]; } else { //JIP players code waituntil {!isnull player}; }; JIP players will just synch naturally on connect with the server time.
  17. Yeah, I am delaying the JIP players code runs with a "waituntil {!isnull player};". I've been messing around with publicVariables and the sort. Even tried to force JIP players to use "respawn_west" as the spawn location because that gets moved to the actual starting point without luck so far. I'll get it eventually. :) I'm wary to mess with forcing it to happen on Spawn as I'm using BTC revive and I believe that uses the spawn calls as well.
  18. meatball

    randomWeather Script

    That's actually not that difficult to do and I have it in all my missions. Simply add another parameter to your description.ext class Params section: // paramsArray[1] class TimeofDayHour { title = "Time of Day Hour"; values[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}; texts[] = {"00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00", "12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00","Random"}; default = 7; Then in your init.sqf add the following code: curTimeHour = (paramsArray select 1); //---Read the selected time from the time parameter if (curTimeHour == 24) then { curTimeHour = floor(random 24)}; setDate [2035, 7, 4, curTimeHour, 00]; That's it, and you'll have selectable times. The only thing to be wary of is that you only want that to only run for players that are originally connected and not JIP (Join in Progress), if you also run that init.sqf code for JIP players, they'll be out of synch because their time will get reset to the one set in the parameters while the mission may have progressed a few hours since the other players started. Search the forums for JIP/nonJIP code in init.sqf or just rip apart the pbo's for one of my missions and see how I do it :)
  19. meatball

    randomWeather Script

    There are no drastic transitions that I've seen at all in mine. The only time I use skipTime at all is at mission start and the players don't see any changes, they just start with the proper starting weather. Check out the script and see if it fits what you need. During missions everything just transitions slowly over time and I've played 4+ hour missions and never noticed any choppiness or drastic changes.
  20. Yeah, I've already got code in my init to determine if the player is JIP, just no matter how I try to push the JIP player through the move, they keep spawning at the original location.
  21. Thanks. I've used Shuko's random starting position scripts before. I've been able to use that as a template for making it work by adding this to my Params classes description.ext // paramArray[4] class startingLocation { title = "Starting Location?"; values[] = {0,1}; texts[] = {"Atsalis (North)","Monisi (South)"}; default = 0; }; And then the following in my init.sqf: _startingLocation = paramsarray select 4; "respawn_west" setmarkerposlocal getmarkerpos (str _startingLocation); if (_startingLocation == 1) then { private "_fncMove"; _fncMove = { private ["_dir","_dst","_obj","_new","_old"]; _obj = _this select 0; _old = _this select 1; _new = _this select 2; _dir = ((getpos _obj select 0) - (_old select 0)) atan2 ((getpos _obj select 1) - (_old select 1)); _dst = _old distance _obj; _obj setpos [((_new select 0) + (_dst * sin _dir)),((_new select 1) + (_dst * cos _dir)),(getpos _obj select 2)]; }; _oldPos = getmarkerpos "0"; _newPos = getmarkerpos "1"; [player,_oldPos,_newPos] call _fncMove; }; Seems to work great with the exception of JIP players end up at the default location no matter what...
  22. That's part of it. That definitely moves the respawn location. I just my primary issue at this point is how do I force the units to move from their original starting location on the map to the chosen start location at the start of the game?
  23. Man..that's awesome. Works perfectly, thanks guys! That also makes sense now. When you blow up the bridge it doesn't actually seem to 'destroy' the bridge, just sink it into the ground, so a !alive will never be true, but the height comparison works great. Thanks again.
  24. Yeah, I've done that in the past, but there's a major issue with that. When you group a trigger to a building/object it groups it to the object ID #. And I've noticed that almost every patch, the ID's of the buildings change, which breaks all those triggers and they have to be redone. That's why I've found that using nearestObject with the object class name works the best, because that doesn't generally change from patch to patch. If you look in the config viewer there appears to be 4 bridge classnames. "Land_Bridge_01_PathLod_F", "Land_Bridge_Asphalt_PathLod_F", "Land_Bridge_Concrete_PathLod_F", "Land_Bridge_HighWay_PathLod_F". Setting the nearestObject to any of them but the Highway one immediately fires the trigger, and with the Highway one the trigger does not fire, which leads me to believe that that is the correct class for the bridge. I'm just not sure why the !alive trigger won't fire then when I do destroy the bridge.
  25. You would think a satchel would do at least double or triple what a plain charge does. I can think of a kludgey way to do it. Figure out how many satchels would normally blow it up. You can set up a game logic near the bunker object using nearestObject to give that specific building an object name. Then set up a trigger to watch the damage on that object and when it gets to a certain point, reset the object to full health with setDamage. So, let's say for example you have a building that can take 8000 damage (4 satchels) and you want it to hold up until 12000 damage (6 satchels) are used. After you have the game logic set up to assign the building an object name, set up a trigger to watch for "(damage objectname)>= 0.5", and on it's actions have it do a "objectname setDamage 0;" What should happen is as soon as the object hits 4000 damage (2 satchels worth), the trigger will reset it back up to 8000 and it will need 4 more to blow it up. Just takes a bit of experimenting to get things right.
×