Chaos
Member-
Content Count
214 -
Joined
-
Last visited
-
Medals
Everything posted by Chaos
-
You must stand exactly over the dead unit (over his leg) and look down - changing your direction.
-
Another Bugs: - the US mech. infantry are a infantry group + stryker ATGM. Thats false. Stryker ATGM cannot carry infantry groups. There should be Stryker M2 or Stryker MK - the Stryker crews (all versions) are false model. In real life the stryker crews are normal infantryman but they have a other helmet. So it should be better to use "crewmen" as crews for Strykers. See here: German localization: - some unitnames are in german version false. So we have "Soldier" but in german its must be named "Soldat" - some weaponnames sounds not really correct. So the AT Weapons (RPG,M136) are named "M136 Granatenwerfer" but it should be named "M136 Raketenwerfer" or (better) "M136 Panzerabwehrwaffe". "Granatewerfer" are "Grenadelaunchers" like M203 or GP-25. Realistic were to name the AT Weapons "Panzerfaust" - as example "RPG Panzerfaust". That is the jaurgon used in german.
-
I think, its not feature, it is a forgotten gap in the engine. You can use Laserdesignator ideed with all tanks, apcs, cars and fixed MGs.
-
And here some other oddities: Screens 3,4,5. Missing soldier is still existing bug. After i turn a little bit right, then the RPG soldier was disappear, only his shadow was still here. After i turning left - then the body was back.
-
My absolutely favorite (Vanilla ArmA 1.11 or 1.12 shot end of april 2008): I have NForce chip and newest nvidia drivers. Another problem - i cannot play the game in fullscreen. It will get sound problems (pauses and loopings of sounds under 0.1 seconds) and so i can only play it in window. But then the screen is 40-50% darker than in fullscreen and all dark green vehicles, units and objects are looking more black than green, in the night i cannot see anything (moonlight) without NVGoggles. Look here
-
And more: And here other bugs LOD/shadows geometry: My grafic card: GeForce 8600 GT @512MB DDR2 RAM and newest NVidia driver.
-
Oh, yes. I had 4-5 times the same problem:
-
Another problem with helicopters. Because the command <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">heli land "getIn/getOut/land" doesn´t works, then i must script the heli to hover in height under 1 meter. So it can works. But here is the problem - heli will not fly exactly to his waypoint (helihempty or Logic), it will stop 50-100 meters before. So i must have 200-300 meters radius in open areal to land the heli safe. Landing on small glades or between of houses is not 100% possible
-
Well, i tested it in SP with cwr - i don´t think that cwr will something to do with it - on downhill gradient of 5-10%. My chopper (UH-60) was flying to the "helihempty" and should land on it. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> _veh land "getOut"; @ getPos _veh select 2 < 1.5 ~.25 +random .35 _cargo_men2 action ["eject",_veh] unassignvehicle _cargo_men2 ~.25 +random .45 _cargo_men1 action ["eject",_veh] So my team member and me are ejected on high lower than 1.5 meters. But immediately after ground contact the chopper is started and hovering in 10-15 meters over the ground and my team was ejected, falling down and get damage / died. Maybe this problem will come only on the downhill gradient over 5% but i think all under 30% should be ok to land a chopper and unload cargo? Same problems i have with "land" and "getIn" arguments. The chopper will land (getIn) but after the gear contact to ground it will starts and hover.
-
<span style='font-size:13pt;line-height:100%'>The commands:</span> <span style='font-size:10pt;line-height:100%'><span style='color:red'>vehicle land "land" vehicle land "getIn" and vehicle land "getOut" doesn´t works correctly</span> (chopper will start immediately after touching the ground) The <span style='color:red'>mapview objects (watch, compass, gps) cannot be fixed and scaled</span> for longer that one gameplay like in OFP. So in any new game the player must set it again to right size and position. Getting in UAZ with MG/AGS as passenger is <span style='color:red'>not possible from the passengers side</span> (right)</span>
-
<span style='color:red'>- possibly all "waypoint commands" (addWaypoint,deleteWaypoint etc.) doesn´t works - there are no commands to control Harrier VTOL starts and landings by AI - 40% of the "action" command arguments aren´t works - setUnitPosWeak is not working - the tents East/West open/close are the same (both types open) - in the "Stand small" building object from warfare crouching it will beam unit to the roof of the stand - on the side lying vehicles are jumping - vehicles like Humvee are drifting over ground (changes their direction) when they standing on a hill and some small arms projectiles will hit them.</span> I am not sure above - maybe the new static weapons aren´t part of the patch 1.14:<span style='color:red'>- there is no different weapon for "AT weapon tripod US/SLA","AA tripod US/SLA" and no "AGS-30 on tripod" whereas the US Grenadelauncher "Mk-19 on tripod" exists.</span>
-
At first - very cool update with some good new stuff and nice bugfing. What bugs i found out for a while: - sound problem in M1A1 Tank. Turning of turett sounds like an engine, the typical sound for turett turning is missed - vehiclechat command is still not working
-
I am looking for commands with which the AI can start and land a harrier vertical. Can anyone help me?
-
No, sorry. I don´t looking for pseudo solutions. I need really functions to rotate the engine pipes and start the Harrier by AI. I will see it from the near, with all details and smoke dust effects.
-
I have a little problem with asking for typeOf vehicle and checking it to array: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">? typeOf _veh in ["AV8B","AV8B2","UH60","UH60MG","A10","AH6","AH1W"] : _bas = basW; ? typeOf _veh in ["Mi17","Mi17_MG","KA50","SU34B","SU34"] : _bas = basE; This doesn´t works so.
-
Thanks, it was right. The "#" was the issue for the CTDs.
-
Well, i have actually new problems with the script. If i change it to SQF and exec it normal with exec its would not works. So i executed the function with execVM. After i do it, ArmA is CTD with following info: Sorry, i will not place complete script at this time - short before release. So i will send it to anyone as demomission with PM. Part of my script as SQF: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> //; ["vehicle",crewtype,wpCR,wp1,wp2,wp3,unit_Type] exec "APatrols.sqf"; //; ["AV8B2",1,CREPw2,wp1,wp2,wp3."soldierWpilot"] exec "APatrols.sqf"; //; #startALL if (CHALLAIRPATROLS < CHMINAIRPATROLS;) then {goTo "await";}; _vtyp = _this select 0; _crwt = _this select 1; _wp1 = _this select 2; _wp2 = _this select 3; _wp3 = _this select 4; _wp4 = _this select 5; _wp5 = _this select 6; _unit = _this select 7; _hpt = _this select 8; if (_crwt != 1 && _crwt != 2 && _crwt != 3 && _crwt != 4) then {hint "falsche Eingabe fuer crewtype. Ueberpruefe die Dokumentation."; exitWith;}; waitUntil {_wp1 distance player > 1000}; sleep (2 + random 3); if (CHALLAIRPATROLS < CHMINAIRPATROLS;) then {goTo "await";}; CHALLAIRPATROLS = CHALLAIRPATROLS -1; if (CHALLAIRPATROLS < CHMINAIRPATROLS;) then {goTo "await";}; _veh = _vtyp createVehicle getPos _hpt; _veh setPos [(getPos _hpt select 0),(getPos _hpt select 1),+1]; _veh setDir 270; _bas = objNull; sleep .25; if (typeOf _veh in CHAIR_ARRAY_W) then {_bas=basW;} else {_bas=basE;}; sleep .25; _men1 = _unit; if (_crwt > 1) then {_men2 = _unit;}; if (_crwt > 2) then {_men3 = _unit;}; if (_crwt > 3) then {_men4 = _unit;}; if (_crwt > 4) then {_men5 = _unit;}; _men1 createUnit [getPos (leader _bas),_bas,"",0.45,"sergeant"]; _ldr = (units _bas) select 1; [_ldr] join grpNull; _newgroup = group _ldr; sleep .25; if (_crwt > 1) then {_men2 createUnit [getPos _ldr,_newgroup,"",0.3,"corporal"];}; if (_crwt > 2) then {_men3 createUnit [getPos _ldr,_newgroup,"",0.28,"corporal"];}; sleep .25; if (_crwt == 1) then {leader _newgroup moveindriver _veh;}; if (_crwt == 2) then {leader _newgroup moveindriver _veh; units _newgroup select 1 moveingunner _veh;}; if (_crwt == 3) then {leader _newgroup moveindriver _veh; units _newgroup select 1 moveincargo _veh; units _newgroup select 2 moveingunner _veh;}; //if (_crwt == 4) then {leader _newgroup moveindriver _veh; units _newgroup select 1 moveincargo _veh; units _newgroup select 2 moveingunner _veh; units _newgroup select 3 moveincaptain _veh;}; //---------------------------------- if (_bas == basE) then {[_veh,FLPe] exec "flee_crw_airH.sqs";}else{[_veh,FLPe] exec "flee_crw_airH.sqs";}; _high = 50; _veh move [(getPos _veh select 0)-800,(getPos _veh select 2)-500]; _veh flyInHeight 100; if (speed _veh > 80 || getPos _veh select 2 > 10) then {_a10place = "helihempty" createvehicle [0,0,1]; _a10place setPos getPos _veh;}; if (speed _veh > 150 || getPos _veh select 2 > 10 || !canmove _veh) then {if (typeOf _veh == "A10") then {_veh setPos [(getPos _a10place select 0),(getPos _a10place select 1),(getPos _a10place select 2) +.25];};}; CHINZONE = false; waitUntil {speed _veh > 280 || (getPos _veh) select 2 > 40}; if (typeOf _veh in CHAIR_ARRAY_HELICOPTER) then {_high = 95;} else {_high = 250 +random 250;}; _veh setPos [(getPos _wp1 select 0) -random 50,(getPos _wp1 select 1) +random 50,(getPos _wp1 select 2)+_high]; The globalarrays and globalvariables are: CHINZONE = false; this variable will lock all scripts bevore the aircraft is leaving the creation area CHALLAIRPATROLS = 55; maximal free aircraft slots CHMINAIRPATROLS = 2; minimal count of aircraft slots CHAIR_ARRAY_W = ["AV8B","AV8B2","A10","UH60","UH60MG",&a mp;a mp;q uot;AH6","AH1W"]; array for west CHAIR_ARRAY_E = ["SU34","SU34B","Mi17","Mi17_MG","KA50"] ; array for east CHAIR_ARRAY_G = []; CHAIR_ARRAY_C = []; CHAIR_ARRAY_HELICOPTER = ["AH6","AH1W","Mi17","Mi17_MG","KA50",&q uot;UH60","UH60MG"]; array for choppers CHAIR_ARRAY_AIRCRAFT = ["AV8B","AV8B2","A10","SU34","SU34B"]; array for jets My another problem - when i use the script as SQS is when i will use following: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">waitUntil {_veh distance _wp5 < (600 +random 350) || !alive _veh || !canmove _veh}; instead of <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">@ _veh distance _wp5 < (600 +random 350) || !alive _veh || !canmove _veh then it will not works!? Will "waitUntil" have problems with SQS?
-
Yesss! Thank you all for soo many help. I solved it now too: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">; ["vehicle",crewtype,wpCR,wp1,wp2,wp3,unit_Type] exec "APatrols.sqs"; ; ["AV8B2",1,CREPw2,wp1,wp2,wp3."soldierWpilot"] exec "APatrols.sqs"; ; _vtyp = _this select 0; _crwt = _this select 1; _wp1 = _this select 2; _wp2 = _this select 3; _wp3 = _this select 4; _wp4 = _this select 5; _wp5 = _this select 6; _unit = _this select 7; _hpt = _this select 8; ? _crwt != 1 && _crwt != 2 && _crwt != 3 && _crwt != 4 : hint "falsche Eingabe fuer crewtype. Ueberpruefe die Dokumentation."; exit; waitUntil {_wp1 distance player > 1000}; ~1 +random 2 _veh = _vtyp createVehicle getPos _hpt; _veh setPos [(getPos _hpt select 0),(getPos _hpt select 1),+1]; _veh setDir 270; _bas = objNull; ~.25 if (typeOf _veh in ["AV8B","AV8B2","UH60","UH60MG","A10","AH6","AH1W"]) then {_bas=basW;} else {_bas=basE;}; ~.25 _men1 = _unit; ? _crwt > 1 : _men2 = _unit; ? _crwt > 2 : _men3 = _unit; ? _crwt > 3 : _men4 = _unit; ? _crwt > 4 : _men5 = _unit; _men1 createUnit [getPos (leader _bas),_bas,"",0.45,"sergeant"]; _ldr = (units _bas) select 1; [_ldr] join grpNull; _newgroup = group _ldr; ~.25 ? _crwt > 1 : _men2 createUnit [getPos _ldr,_newgroup,"",0.3,"corporal"]; ? _crwt > 2 : _men3 createUnit [getPos _ldr,_newgroup,"",0.28,"corporal"]; ~.25 ? _crwt == 1 : leader _newgroup moveindriver _veh; ? _crwt == 2 : leader _newgroup moveindriver _veh; units _newgroup select 1 moveingunner _veh; ? _crwt == 3 : leader _newgroup moveindriver _veh; units _newgroup select 1 moveincargo _veh; units _newgroup select 2 moveingunner _veh; ? _crwt == 4 : leader _newgroup moveindriver _veh; units _newgroup select 1 moveincargo _veh; units _newgroup select 2 moveingunner _veh; units _newgroup select 3 moveincaptain _veh; ;---------------------------------- if (_bas == basE)then{[_veh,FLPe] exec "flee_crw_airH.sqs";}else{[_veh,FLPe] exec "flee_crw_airH.sqs";}; _high = 50; _veh move [(getPos _veh select 0)-800,(getPos _veh select 2)-500]; _veh flyInHeight 100; @ speed _veh > 280 || getPos _veh select 2 > 50 if (typeOf _veh in ["AH6","AH1W","Mi17","Mi17_MG","KA50","UH60","UH60MG"])then{_high = 95;} else {_high = 250 +random 250;}; _veh setPos [(getPos _wp1 select 0) -random 50,(getPos _wp1 select 1) +random 50,(getPos _wp1 select 2)+_high]; but i think it is the time to learn more about the new commands for ArmA like "waituntil and so i will use it in my endproduct. The biggest problem was an logic mistake. I have created "_veh" after the "if-then-else" commands. That should be better to ask about "_vtype in array". Greetings Chaos
-
Well, here is the script: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> ; ["vehicle",crewtype,wpCR,wp1,wp2,wp3,unit_Type] exec "APatrols.sqs"; ; ["AV8B2",1,CREPw2,wp1,wp2,wp3."soldierWpilot"] exec "APatrols.sqs"; _vtyp = _this select 0; _crwt = _this select 1; _wpCR = _this select 2; _wp1 = _this select 3; _wp2 = _this select 4; _wp3 = _this select 5; _wp4 = _this select 6; _unit = _this select 7; _hpt = _this select 8; hintC format ["_vtyp - %1\n_crwt - %2\n_wpCR - %3\n_wp1 - %4\n_wp2 - %5\n_wp3 - %6\n_wp4 - %7\n_unit - %8\n_hpt - %9",_vtyp,_crwt,_wpCR,_wp1,_wp2,_wp3,_wp4,_unit,_hpt]; ? _crwt != 1 && _crwt != 2 && _crwt != 3 && _crwt != 4 : hint "falsche Eingabe fuer crewtype. Ueberpruefe die Dokumentation."; exit; ;if (_unit in ["soldierEpilot"]) then {_bas = basE} else {_bas = basW}; ;if (typeOf _unit in ["soldierEpilot"]) then {_bas = basE} else {_bas = basW}; ;{if (_x==typeOf _veh)then{_bas = basE;}} foreach ["SoldierEPilot"]; ;{if (_x==typeOf _veh)then{_bas = basE;}} foreach ["Mi17","Mi17_MG","KA50","SU34B","SU34"]; ;{if (_x==typeOf _veh)then{_bas = basW;}} foreach ["AH6","AH1W","A10","AV8B","AV8B2","UH60","UH60MG"]; if (typeOf _veh in ["AV8B","AV8B2","UH60","UH60MG","A10","AH6","AH1W"]) then {_bas=basW;} else {if (typeOf _veh in ["Mi17","Mi17_MG","KA50","SU34B","SU34"]) then {_bas=basE;};}; ;_bas = basW; _wt = 20; if (typeOf _veh in ["AV8B","AV8B2","SU34","SU34B","A10"]) then {_CreP = _wpCR; _CreP setPos [(getPos _CreP select 0),(getPos _CreP select 1),+4500];} else {_CreP = _hpt; _wt = 30;}; hintC format ["wpCR - %1\nwt - %2\nhpt - %3\nhigh wpcr - %4\nCreP = %5",_wpCR,_wt,_hpt,getPos _wpCR select 2,_CreP]; @ _wpCR distance player > 1000 ~2 +random 3 _veh = _vtyp createVehicle getPos _CreP; _veh setDir random 360; hintC format ["vehicle = %1\ncrewtype = %2\nbasisgroup = %3\nfirst waypoint = %4\ndistance = %5\ncount of crew = %6",_veh,_unit,_bas,_wpCR,_veh distance player,_crwt]; _men1 = _unit; ? _crwt > 1 : _men2 = _unit; ? _crwt > 2 : _men3 = _unit; ? _crwt > 3 : _men4 = _unit; ? _crwt > 4 : _men5 = _unit; _men1 createUnit [getPos (leader _bas),_bas,"",0.45,"sergeant"]; _ldr = (units _bas) select 1; [_ldr] join grpNull; _newgroup = group _ldr; ~.25 ? _crwt > 1 : _men2 createUnit [getPos _ldr,_newgroup,"",0.3,"corporal"]; ? _crwt > 2 : _men3 createUnit [getPos _ldr,_newgroup,"",0.28,"corporal"]; ~1 ? _crwt == 1 : leader _newgroup moveindriver _veh; ? _crwt == 2 : leader _newgroup moveindriver _veh; units _newgroup select 1 moveingunner _veh; ? _crwt == 3 : leader _newgroup moveindriver _veh; units _newgroup select 1 moveincargo _veh; units _newgroup select 2 moveingunner _veh; But i don´t know about the difference for "sqs commands" and "sqf commands". I think the only differences are ";" on the end and the ".sqf"/".sqs" endings. Now i tested (see about): <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (_unit in ["soldierEpilot"]) then {_bas = basE} else {_bas = basW}; but its had not effect. The hint will tell me again "_bas = scalar bool _CreP = scalar" etc. The command <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_bas = basE; works without problems.
-
Nothing will works - i tested all of them. Can be, that the problem is because "basE" is a name of group and not name of unit? I have "basegroup unit" for each side placed as officer on the map and wrote in the init line "basE = group this" / "basW = group this". I need the units to create of new pilot units.
-
Hmm... its still doesn´t works <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">{if (_x==typeOf _veh)then{_bas = basE;}} foreach ["Mi17","Mi17_MG","KA50","SU34B","SU34"]; {if (_x==typeOf _veh)then{_bas = basW;}} foreach ["AH6","AH1W","A10","AV8B","AV8B2","UH60","UH60MG"] and <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (typeOf _veh in ["AV8B","AV8B2","UH60","UH60MG","A10","AH6","AH1W"]) then {_bas=basW;} else {if (typeOf _veh in ["Mi17","Mi17_MG","KA50","SU34B","SU34"]) then {_bas=basE;};}; With only following: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_bas = basW; there are no probs My script: _vtyp = type of vehicle _crwt = type of crew (1-2-3-4 men) _wpCR = creation point _wp1 = waypoint #1 _wp2 = waypoint #2 _wp3 = waypoint #3 _wp4 = waypoint #4 _unit = type of unit ("soldierEpilot") _hpt = helih (when vehicle is a chopper) <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE"> _vtyp = _this select 0; _crwt = _this select 1; _wpCR = _this select 2; _wp1 = _this select 3; _wp2 = _this select 4; _wp3 = _this select 5; _wp4 = _this select 6; _unit = _this select 7; _hpt = _this select 8; hintC format ["_vtyp - %1\n_crwt - %2\n_wpCR - %3\n_wp1 - %4\n_wp2 - %5\n_wp3 - %6\n_wp4 - %7\n_unit - %8\n_hpt - %9",_vtyp,_crwt,_wpCR,_wp1,_wp2,_wp3,_wp4,_unit,_hpt]; ? _crwt != 1 && _crwt != 2 && _crwt != 3 && _crwt != 4 : hint "falsche Eingabe fuer crewtype. Ueberpruefe die Dokumentation."; exit; ;{if (_x==typeOf _veh)then{_bas = basE;}} foreach ["Mi17","Mi17_MG","KA50","SU34B","SU34"]; ;{if (_x==typeOf _veh)then{_bas = basW;}} foreach ["AH6","AH1W","A10","AV8B","AV8B2","UH60","UH60MG"]; if (typeOf _veh in ["AV8B","AV8B2","UH60","UH60MG","A10","AH6","AH1W"]) then {_bas=basW;} else {if (typeOf _veh in ["Mi17","Mi17_MG","KA50","SU34B","SU34"]) then {_bas=basE;};}; ;_bas = basW; _wt = 20; if (typeOf _veh in ["AV8B","AV8B2","SU34","SU34B","A10"]) then {_CreP = _wpCR; _CreP setPos [(getPos _CreP select 0),(getPos _CreP select 1),+4500];} else {_CreP = _hpt; _wt = 30;}; hintC format ["wpCR - %1\nwt - %2\nhpt - %3\nhigh wpcr - %4\nCreP = %5",_wpCR,_wt,_hpt,getPos _wpCR select 2,_CreP]; @ _wpCR distance player > 1000 ~2 +random 3 _veh = _vtyp createVehicle getPos _CreP; hint format says: "_CreP" and "_bas" are scalar, "_veh" (because "_CreP" is scalar) is 0x100...
-
Hmm... doesn´t works so: <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">{if (_x=typeOf _veh)then{_bas = basE}} foreach ["Mi17","Mi17_MG","KA50","SU34B","SU34"]; {if (_x=typeOf _veh)then{_bas = basW}} foreach ["AH6","AH1W","A10","AV8B","AV8B2","UH60","UH60MG"]; Bug:
-
Ach, ok - thank you
-
I will add a specified target to array. But i don´t know anymore how to do it. <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_vehlist = ["T72","BMP2","ZSU"]; _targlist =[]; #loopY ~_wt ~.25 +random .25 _candidate = typeOf (list _trg select _n); ? _candidate in _vehlist : _targlist = (list _targlist) + _candidate; Only the last line will response me a bug: "type array waiting for object". <table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">_targlist = _targlist + _candidate doesn´t works too.
-
Yes, that is exactly the problem. You cannot set Overcast or Fog at the same time. Maybe there are more problems. But in OFP that was no problem.