Jump to content

ArmAIIholic

Member
  • Content Count

    543
  • Joined

  • Last visited

  • Medals

Everything posted by ArmAIIholic

  1. I created an addon that works on SP and LAN, but it just don't wanna work on dedicated server. I searched threads on all forums, but I didn't find any instruction or template on how to make an addon to be compatible with dedicated servers... :( The addon is normally started from config.cpp Now that file start.sqf begins with: waituntil {!isnil "bis_fnc_init"}; waituntil {BIS_MPF_InitDone}; if (isDedicated) then {sleep 2; _null = [nil,nil,"per",rHINT,"Dedicated server is running."] call RE;}; and even isServer is not detected when it is about Dedicated. As I said isServer is working on SP and LAN. It simply doesn't do anything, just like it is never started on dedi. 1) Is there any way to check is the particular script executed on the dedi? 2) Is there some kind of template or framework, magical solution that will fix this? I had real trouble to find even basic layout for starting a module, and I just don't get it how such basic stuff are not sticky topics well explained. It is really frustrating to getting this thing working, and it is working like a charm on SP and LAN. Thanx in advance, I hope that some of the Gods of ArmA will show pity for me and put my miseries away.
  2. apparently the problem was grouping modules and game logics with functions' module... but it is solved now
  3. WICT v2.32 template for Takistan for Operation Arrowhead by Telson_VBAU -- download on the first page Manual is also updated with new info about setting up missions. Thank you all people, now this is one hell of the module. In the past several months I really enjoyed working with you and I am glad that this is the first module that makes possible full sandboxization of ArmA - not just random spawning and placing some spawn zones and centers, but true warfare with objectives and more important live breathing world that will fight all the time to take bases and resources. Now it is up to you, to use this extremely easy tool, there is 50 pages in the manual, but not to complicate thing, more to give you a clue what can you do with this tool and how to do it right. I will take a little break from scripting, but I will be here to answer questions. After the break I might design some missions. Best regards, ArmAIIholic
  4. Therefore we know that isServer spawn works correctly, there is a pilot, there is a plane on Dedi and you already had success with spawning aircrafts, as I understand, but for OA, right? Maybe something with templates was wrong. You said you were running WICT on CO server. Maybe the template wasn't suitable... :confused: But that spawning is ONE MORE successful step :D
  5. Yes the script is in the full version. And you are not giving me headaches, I am really really sad that you have so many problems with that. :( :( :( Because you helped me a lot, and I changed a lot of stuff, and run through scripts many many times. It helped me find the errors, and made me think about everything that could be a potential problem. I changed things I never thought I will change, rewriting some parts several times. Therefore it was very useful. But I just want to make it work, so you can really test it. Kremator let me know if this small script is working on Dedi.
  6. Version 2.32 is released: -- introduced Anti-Jam - page 30 in the manual -- added veh_spawn template -- some minor changes I hope Kremator that you will find solution - I made a very simple veh_spawn template that you can start on the dedi server and check if some particular unit or vehicle is spawning. It is simple, you don't need WICT, but it is the same template that WICT uses If it spawns with that template then I really don't know what's the problem. It works on SP/LAN and Telson_VBAU got it working on Dedi...
  7. There was still an error with spawning East aircrafts, I fixed that and uploaded it few minutes ago. Sorry :(
  8. You named it, I made it :D WICT v2.3 is released. --EDIT-- P.S. LockJaw-65- this message wasn't for you ;) It was for zapat and Telson_VBAU. Sorry :)
  9. Now, finally after spending some time making modules I have a clear angle to view all the benefits of the module. Example 1: Take this example (that was about compatibility of WICT with other modules): So let us assume that all these modules are just folders inside the mission zapat created and that he wants to upload it to a dedicated server. Now, let us assume that I want to change something, and then several days later there is a new version of ace, then in a few days zeus etc. What zapat would have to do is download these module each time and replace folders in his mission, then pbo it and upload it again on dedicated server. With modules he can rely on the modular organization and then just upload the module. Example 2: Let's assume that zapat made 20+ missions with different modules and that I update WICT. What he will have to do is to open all missions, change the folder there (and update files), then pbo the mission and upload it again. With module he can just upload it and all missions that use that module will be updated.
  10. Far units will all participate in global assault (except mounted ones), that's why I made it. I didn't want to waste units and just delete them, but to make them all participate. However it happened to me few times that spawning "jammed" at numAIg. Moreover, that is the balance that mission designer has to make. Bases must have such spatial distribution and units so that they provide both sides all the time and numAIg has to leave some room for spawning more units, even scripted ones. Whether you will make strong scripted base with defenses or you will make enemy stronger and put some artillery in his hands, that is entirely up to mission designer. And you can give a rest to the player by stopping WICT from spawning more units. Read the manual again v2.2 where I put a graphical representation of the spawning process -- you are too close to bluefor base when spawning starts. You should turn on debug mode when making mission (or playing demo) and check the hints. If it says "West base: none" that means that there is no nearest base found.
  11. Yes that can happen easily. One solution is to increase scan distance -- that way there will be always one west and one east base. The other solution is to leave some place (not to fill numAIg to 144) for spawning some scripted reinforcements. IMO the best solution is as it was in WiC -- make the enemy stronger, but give me some heavy artillery from time to time to annihilate them. I was thinking about counting units on each side and then removing all that are far away, but since there is global assault I think that some nice artillery or reinforcements (that I am building right now for you :D :bounce3:) are better solution than unrealistic removing units... Better solution is when it fills up just to give some heavy artillery on several key positions on both sides and then to continue... Or to force spawning more, to try to regain balance... What do you think zapat? P.S. How do you like video on YouTube?
  12. Wow that's nice :D Why didn't you say so? I will put that in manual. There were some minor compatibility issues reported before, but it seams nothing significant or replicate-able. P.S. I am working on speeding up the script, making it run more smooth and adding displacement for aircrafts and reinforcements option, just for the record.
  13. youtube video should now be available for all countries -- just play it from beginning, it seams that if you rewind it, it changes the track http://www.youtube.com/watch?v=-A9hq-S1Zu8 This is for all of you for inspiration Kremator I will continue to look for the solution. Telson_VBAU thanx, I am waiting the template.
  14. 1) well they can keep coming :) I was thinking about simple system, check 5-10 sec, spawn 1 until group is full, so one-by-one, some of them will survive... 2) module is my table... and this is your mission, but I am glad to help. anything beyond dynamic battlefileds is not my area of work right now. there are excellent mods for artillery, medevac etc. my job right know is to make this mode work perfectly for any type of game dynamic SP, COOP or PvP. i want to keep it clean and not to add features someone else already made. at least not for now if they are not strongly connected to this module (like Binesi's scripts) however I am willing to help you with the mission with some snippets, since your contribution to wict is great. it means a lot to me
  15. standalone UserSettings (or template) for OA would be fantastic. You can post it here and I will put it on the first page, or you can make a new thread, it is up to you. ok, I have enough data, so I will try to make such thing. --EDIT-- I have even better solution than spawning at the nearest base -- paratrooping at your position ?! :D :cool: I think that number of units is 20 -- 10 units from F1-F10, 2x for F11 and F12..... I am glad you like it
  16. Here is my modification of these scripts. Added randomization of clockwise - counterclockwise direction and added waypoint count so these waypoints just add to previous. I am using them in WICT to add patrols after the base is captured. Blue bold are my changes. /* ======================================================================================================================= Script: BIN_taskPatrol.sqf v1.2 Author(s): Binesi Partly based on original code by BIS Description: Creates a continually randomized patrol path which circles and intersects a given position. Parameter(s): _this select 0: the group to which to assign the waypoints (Group) _this select 1: the position on which to base the patrol (Array) _this select 2: the maximum distance between waypoints (Number) _this select 3: (optional) debug markers on or off (Number) _this select 4: (optional) blacklist of areas (Array) Returns: Boolean - success flag Example(s): null = [group this,(getPos this),250] execVM "BIN_taskPatrol.sqf" null = [group this,(getPos this),250,1] execVM "BIN_taskPatrol.sqf" // Same with debug markers ----------------------------------------------------------------------------------------------------------------------- Notes: Wolffy.au If anyone is interested, I've made some additions to Binesi's BIN_taskPatrol script. Random initial patrol direction - I noticed every patrol started off in the same direction, so I've randomised it. Fixed the 2D position / findSafePos errors [b][color="blue"]ArmaIIholic -- added part of JTD direction normalization function -- changed numbers for waypoints to match previous waypoints -- randomized initial direction -- Wolffy.au added only the offset which had to be reduced to 180 - however this script is making full circle from wherever it starts[/color][/b] ======================================================================================================================= */ _grp = _this select 0; _pos = _this select 1; _max_dist = _this select 2; _debug = if ((count _this) > 3) then {_this select 3} else {0}; _blacklist = if ((count _this) > 4) then {_blacklist = _this select 4} else {[]}; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["STAG COLUMN", "WEDGE", "ECH LEFT", "ECH RIGHT", "VEE", "DIAMOND"] call BIS_fnc_selectRandom; _grp setBehaviour "AWARE"; _grp setSpeedMode "LIMITED"; _grp setCombatMode _mode; _grp setFormation _formation; _center_x = (_pos) select 0; _center_y = (_pos) select 1; _center_z = (_pos) select 2; if(isNil "_center_z")then{_center_z = 0;}; _wp_count = 4 + (floor random 3) + (floor (_max_dist / 100 )); _angle = (360 / (_wp_count -1)); _newangle = 0; _wp_array = []; _slack = _max_dist / 5.5; if ( _slack < 20 ) then { _slack = 20 }; [b][color="blue"]_setdir = round (random 1); _angle_offset = random 180;[/color][/b] while {count _wp_array < _wp_count} do { private ["_x1","_y1","_wp_pos"]; _newangle = (count _wp_array * _angle) + _angle_offset; [b][color="blue"]if ((_newangle > 360) || (_newangle < 0)) then { _newangle = abs (abs (_newangle) - 360); }; if (_setdir == 1) then { _newangle = -_newangle; if ((_newangle > 360) || (_newangle < 0)) then { _newangle = abs (abs (_newangle) - 360); }; };[/color][/b] _x1 = _center_x - (sin _newangle * _max_dist); _y1 = _center_y - (cos _newangle * _max_dist); _prepos = [_x1, _y1, _center_z]; if ( isNil "_center_z" ) then { _prepos = [_x1, _y1]; }; _wp_pos = [_prepos, 0, _slack, 6, 0, 50 * (pi / 180), 0, _blacklist] call BIS_fnc_findSafePos; _wp_array = _wp_array + [_wp_pos]; sleep 0.5; }; sleep 1; [b][color="blue"]_j = count (waypoints _grp);[/color][/b] for "_i" from 1 to (_wp_count - 1) do { private ["_wp","_cur_pos","_marker","_marker_name"]; _cur_pos = (_wp_array select _i); // Create waypoints based on array of positions /* The index i is changed so it matches the FSM - j+i */ _wp = _grp addWaypoint [_cur_pos, 0]; _wp setWaypointType "MOVE"; _wp setWaypointCompletionRadius (5 + _slack); [b][color="blue"][_grp,_j+i][/color][/b] setWaypointTimeout [0, 2, 16]; // When completing waypoint have 33% chance to choose a random next wp [b][color="blue"][_grp,_j+i][/color][/b] setWaypointStatements ["true", "if ((random 3) > 2) then { group this setCurrentWaypoint [(group this), (floor (random (count (waypoints (group this)))))];};"]; if (_debug > 0) then { _marker_name = str(_wp_array select _i); _marker = createMarker[_marker_name,[_cur_pos select 0,_cur_pos select 1]]; _marker setMarkerShape "ICON"; _marker_name setMarkerType "DOT"; }; sleep 0.5; }; // End back near start point and then pick a new random point _wp1 = _grp addWaypoint [_pos, 0]; _wp1 setWaypointType "SAD"; _wp1 setWaypointCompletionRadius (random (_max_dist)); [_grp,(count waypoints _grp)] setWaypointStatements ["true", "group this setCurrentWaypoint [(group this), (round (random 2) + 1)];"]; // Cycle in case we reach the end _wp2 = _grp addWaypoint [_pos, 0]; _wp2 setWaypointType "CYCLE"; _wp2 setWaypointCompletionRadius 100; true And the other one with building search: /* ======================================================================================================================= Script: BIN_taskPatrol.sqf v1.3 Author(s): Binesi Partly based on original code by BIS Description: Creates a continually randomized patrol path which circles and intersects a given position. Parameter(s): _this select 0: the group to which to assign the waypoints (Group) _this select 1: the position on which to base the patrol (Array) _this select 2: the maximum distance between waypoints (Number) _this select 3: (optional) debug markers on or off (Number) _this select 4: (optional) blacklist of areas (Array) Returns: Boolean - success flag Example(s): null = [group this,(getPos this),250] execVM "BIN_taskPatrol.sqf" null = [group this,(getPos this),250,1] execVM "BIN_taskPatrol.sqf" // Same with debug markers ----------------------------------------------------------------------------------------------------------------------- Notes: Wolffy.au If anyone is interested, I've made some additions to Binesi's BIN_taskPatrol script. Random initial patrol direction - I noticed every patrol started off in the same direction, so I've randomised it. Fixed the 2D position / findSafePos errors Added building positions as possible patrol locations using Random Building Position Script v1.0 by Tophe of Östgöta Ops [b][color="blue"]ArmaIIholic -- added part of JTD direction normalization function -- changed numbers for waypoints to match previous waypoints -- randomized initial direction -- Wolffy.au added only the offset which had to be reduced to 180 - however this script is making full circle from wherever it starts[/color][/b] ======================================================================================================================= */ _grp = _this select 0; _pos = _this select 1; _max_dist = _this select 2; _debug = if ((count _this) > 3) then {_this select 3} else {0}; _blacklist = if ((count _this) > 4) then {_blacklist = _this select 4} else {[]}; _mode = ["YELLOW", "RED"] call BIS_fnc_selectRandom; _formation = ["STAG COLUMN", "WEDGE", "ECH LEFT", "ECH RIGHT", "VEE", "DIAMOND"] call BIS_fnc_selectRandom; _grp setBehaviour "AWARE"; _grp setSpeedMode "LIMITED"; _grp setCombatMode _mode; _grp setFormation _formation; _center_x = (_pos) select 0; _center_y = (_pos) select 1; _center_z = (_pos) select 2; if(isNil "_center_z")then{_center_z = 0;}; _wp_count = 4 + (floor random 3) + (floor (_max_dist / 100 )); _angle = (360 / (_wp_count -1)); _new_angle = 0; _wp_array = []; _slack = _max_dist / 5.5; if ( _slack < 20 ) then { _slack = 20 }; [b][color="Blue"]_setdir = round (random 1); _angle_offset = random 180;[/color][/b] while {count _wp_array < _wp_count} do { private ["_x1","_y1","_wp_pos", "_prepos","_bldgpos","_bldgs"]; _newangle = (count _wp_array * _angle) + _angle_offset; [b][color="blue"]if ((_newangle > 360) || (_newangle < 0)) then { _newangle = abs (abs (_newangle) - 360); }; if (_setdir == 1) then { _newangle = -_newangle; if ((_newangle > 360) || (_newangle < 0)) then { _newangle = abs (abs (_newangle) - 360); }; };[/color][/b] _x1 = _center_x - (sin _newangle * _max_dist); _y1 = _center_y - (cos _newangle * _max_dist); _prepos = [_x1, _y1, _center_z]; if ( isNil "_center_z" ) then { _prepos = [_x1, _y1]; }; _wp_pos = [_prepos, 0, _slack, 6, 0, 50 * (pi / 180), 0, _blacklist] call BIS_fnc_findSafePos; ////////////////////////////////////////////////////////////////// // The following code is an extract from Random Building Position Script v1.0 by Tophe of Östgöta Ops ////////////////////////////////////////////////////////////////// _bldgpos = []; _bldgs = nearestObjects [_wp_pos, ["Building"], 50]; { private["_i","_y"]; _i = 0; _y = _x buildingPos _i; while {format["%1", _y] != "[0,0,0]"} do { _bldgpos = _bldgpos + [_y]; _i = _i + 1; _y = _x buildingPos _i; }; } forEach _bldgs; if(count _bldgpos != 0) then {_wp_pos = _bldgpos call BIS_fnc_selectRandom;}; _wp_array = _wp_array + [_wp_pos]; sleep 0.5; }; sleep 1; [b][color="blue"]_j = count (waypoints _grp);[/color][/b] for "_i" from 1 to (_wp_count - 1) do { private ["_wp","_cur_pos","_marker","_marker_name"]; _cur_pos = (_wp_array select _i); // Create waypoints based on array of positions /* The index i is changed so it matches the FSM - j+i */ _wp = _grp addWaypoint [_cur_pos, 0]; _wp setWaypointType "MOVE"; _wp setWaypointCompletionRadius (5 + _slack); [b][color="blue"][_grp,_j+i][/color][/b] setWaypointTimeout [0, 2, 16]; // When completing waypoint have 33% chance to choose a random next wp [b][color="blue"][_grp,_j+i][/color][/b] setWaypointStatements ["true", "if ((random 3) > 2) then { group this setCurrentWaypoint [(group this), (floor (random (count (waypoints (group this)))))];};"]; if (_debug > 0) then { _marker_name = str(_wp_array select _i); _marker = createMarker[_marker_name,[_cur_pos select 0,_cur_pos select 1]]; _marker setMarkerShape "ICON"; _marker_name setMarkerType "DOT"; }; sleep 0.5; }; // End back near start point and then pick a new random point _wp1 = _grp addWaypoint [_pos, 0]; _wp1 setWaypointType "SAD"; _wp1 setWaypointCompletionRadius (random (_max_dist)); [_grp,(count waypoints _grp)] setWaypointStatements ["true", "group this setCurrentWaypoint [(group this), (round (random 2) + 1)];"]; // Cycle in case we reach the end _wp2 = _grp addWaypoint [_pos, 0]; _wp2 setWaypointType "CYCLE"; _wp2 setWaypointCompletionRadius 100; true Cheers A2H
  17. Yes, all files in UserSettings begin with isServer, to avoid multiple spawning - spawning take place only on the server. Playable units don't have a name.... Maybe that is the problem. Since Kremator is successfully using other module on Dedi, maybe that is my mistake since I didn't put the names... Telson_VBAU does your playable units all have a name?
  18. I just want to add that WICT shouldn't depend on running A2, OA or CO. IMO that thing considers only spawning process, but not the core files. As I told you Telson_VBAU if you are skilled enough you can provide [how to]. I don't know much about setting server. All I know is that whole WICT works only if isServer, and you just confirmed that spawning process works fine. You should also consider making a thread with that mission. It would be really nice to have first working COOP with WICT. It would be my honor to see that.
  19. If they work ok than it is not the pilot -- I had problems with turrets and seats, though not drivers and gunners etc. Probably it is conflict between starting speed and following waypoints so they get into stall speed and crash. Fingers crossed Kremator....
  20. maybe it is: 1) altitude and speed 2) badly spawned pilot 3) hit with AA I will check it
  21. That is wonderful news!!! :yay: 1) fix coming in a few days 2) I tried to avoid that and I will try again :) This is for SP/MP, so that's why I am not mixing AI with playables. But : a) I am still not sure what happens when one AI is in the group - is he a leader and does he follow the waypoint, I will test that, so maybe I will put such function, but for AI only b) I can write you a script that will: check from time to time number of units if it's below x then spawn some more (for example random from the pool, I think it is good) or add fixed group of four and join them silenthly to player Do you want that? Just send me: adding fixed or one-by-one? random choice or not? when to add? I am here to help man, ask, what ever idea you have. You see, my module will not "live" if you people don't start making some missions :cool: And I am also a busy man, but I tried to make some universal tool. Next version will come soon and it will be addon-less a.k.a. it will be the script. That won't change your mission, or anyone's else (since v2.2), but it will make distribution easier, since anyone can open pbo and have a look, anyway.
  22. sarge4267 I know that about the video, it is because of the music. I will try to upload smaller one muted for people like you. Or maybe your country will figure out it is not against copyright since it is However you can always copy url and download it with, just google keep youtube... I checked download link - it is working ok, so I am :confused:
  23. Surprise, surprise WICT v2.2 is released new stuff + trailer, check the first page
  24. Thanx bobtom and zapat, I will put that in manual. Hopefully the new version is coming in the next 24h. After several days of struggle to make it work on dedicated server, I found several error, made some parts pre-compiled, added some new features, but I didn't have success to make it work on Dedi :) The last thing I changed was making, at the end, centers for East and West Hqs, so "poor" soldier won't be needed anymore. And maybe, with some miracle, Dedi will work. However, I don't think there is any reason for procrastination with release. If, in the mean time, I find the way to revive Dedi, I will put it in the some v2.x. See you all soon, Cheers
  25. Well , I searched there, and found some post that were unanswered. I didn't find anything about dedicated server that could help me solve this. :(
×