Abima 10 Posted August 22, 2013 Guys, good morning! Good afternoon! good night! I wonder what the best way to remove the channels of communication such as: Global Channel, channel command group and other ... I'm doing a mission on the complement ACRE and something that would be like this: Team Leader = Side Channel and Direct Channel Subordinates (rifleman, grenadier, medic ... and others) = Direct Channel ... Can not create a script for it ... If anyone knows, I would be very happy!! Thanks to all. :( Share this post Link to post Share on other sites
Coding 12 Posted August 22, 2013 look into the description.ext description search for this one: disableChannels[]={0,1,2,3,4,6}; Share this post Link to post Share on other sites
Abima 10 Posted August 22, 2013 look into the description.ext descriptionsearch for this one: disableChannels[]={0,1,2,3,4,6}; Yes, this I know ... The problem of quoting him in "description.ext" is that there is a separation between team leader and subordinates ... They are all the same ... I would like to customize and separate communication ... To be well team leader speaks with a team leader ... Do you know if something is possible at this level? Share this post Link to post Share on other sites
kylania 568 Posted August 22, 2013 Why can't you tell your team leaders to "use channel X in ACRE" and your teams to "use channel Y in ACRE"? I don't understand why you'd need to disable default channels for this. If someone's on the wrong chat channel just tell them to switch. Why is this something you need to script around? Share this post Link to post Share on other sites
SavageCDN 231 Posted August 22, 2013 I think he probably wants to avoid players typing in side/global chat and limiting them to just direct. FTLs, etc would have access to sidechat. I don't know if you can do this as disableChannels affects everyone. Share this post Link to post Share on other sites
kylania 568 Posted August 22, 2013 All the unit's I've been in have handled that with a quick "hey you, stfu and get off this channel". :) Or by squad leaders keeping their squads in line. There are probably some scripts that use those channels for information or in a TvT you might have referees that need to talk to everyone so disabling them might interfere more than some guy using the wrong channel sometime. If you're having this happen often it's a problem with the people you're playing with rather than the channels people have access too. :p Share this post Link to post Share on other sites
SavageCDN 231 Posted August 22, 2013 Oh I agree but perhaps he's creating a public mission or something and wants to lock 'er down... there's always one idiot who gets shot and types it out in chat since he can't say anything in Teamspeak :p Share this post Link to post Share on other sites
Abima 10 Posted August 22, 2013 All the unit's I've been in have handled that with a quick "hey you, stfu and get off this channel". :) Or by squad leaders keeping their squads in line. There are probably some scripts that use those channels for information or in a TvT you might have referees that need to talk to everyone so disabling them might interfere more than some guy using the wrong channel sometime. If you're having this happen often it's a problem with the people you're playing with rather than the channels people have access too. :p Yes, my biggest problem is people ... For this reason I want to disable chat, having to stop the game every time someone is in the wrong channel this on my nerves!! I want a game with more realistic ... Leaders with side channel and soldiers below with only direct ... Is there any way to make such a change? If not there will even pushing his belly ... : ( Share this post Link to post Share on other sites
tonic-_- 53 Posted August 22, 2013 If you want only specific units / slots to have specific channels then you need to still use the disableChannels and with that you would use the command radioChannelCreate and assign specific units to that custom channel. west_channel = radioChannelCreate [[0, 0.95, 1, 0.8], "Side Channel", "%UNIT_NAME", [p1,p2,p3,p4,p10]]; that's just a rough example but look into the A3 Scripting commands wiki on the radioChannel commands. There are some bugs that should be noted with custom radio channels, one being when a unit dies and respawns they are removed from that channel so therefor on respawn you need to have the server detect that and re-add them. Another issue is voice communication on it isn't reliable but if you're using it for text then it works just fine. Share this post Link to post Share on other sites
Abima 10 Posted August 22, 2013 If you want only specific units / slots to have specific channels then you need to still use the disableChannels and with that you would use the command radioChannelCreate and assign specific units to that custom channel. west_channel = radioChannelCreate [[0, 0.95, 1, 0.8], "Side Channel", "%UNIT_NAME", [p1,p2,p3,p4,p10]]; where can I assign this command? In init.sqf? In the unit? or description.ext? Share this post Link to post Share on other sites
Abima 10 Posted August 22, 2013 init.sqf Thank you all. I'll try and come back with answers!!! Share this post Link to post Share on other sites
colinm9991 20 Posted August 22, 2013 Fantastic stuff Tonic, I'll have to try this out myself Share this post Link to post Share on other sites
Abima 10 Posted August 22, 2013 If you want only specific units / slots to have specific channels then you need to still use the disableChannels and with that you would use the command radioChannelCreate and assign specific units to that custom channel. west_channel = radioChannelCreate [[0, 0.95, 1, 0.8], "Side Channel", "%UNIT_NAME", [p1,p2,p3,p4,p10]]; where can I assign this command? In init.sqf? In the unit? or description.ext? Tonic... Everything worked ... Is there any way to repeat the initial config init. For with reappearance of the soldier, the custom channel not appear. How can I solve this? Share this post Link to post Share on other sites
tonic-_- 53 Posted August 24, 2013 Well as I said when a unit dies / becomes null he no longer exists in the radio channel. A work around is something like this, this is only an example but should give you an example. First initialize these functions for the server: if(isServer) then { radio_channel_1 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio One", "%UNIT_NAME", []]; radio_channel_2 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio Two", "%UNIT_NAME", []]; radio_channel_3 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio Three", "%UNIT_NAME", []]; RADIO_fnc_manage = { private["_unit","_channel","_bool"]; _unit = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; _bool = [_this,1,false,[false]] call BIS_fnc_param; _channel = [_this,2,0,[0]] call BIS_fnc_param; //Series of checks? if(isNull _unit) exitWith {}; //Null unit if(_channel < 1) exitWith {}; //No channels below 1 should be passed. switch (_channel) do { case 1: { if(_bool) then {radio_channel_1 radioChannelAdd [_unit];} else {radio_channel_1 radioChannelRemove [_unit];};}; case 2: { if(_bool) then {radio_channel_2 radioChannelAdd [_unit];} else {radio_channel_2 radioChannelRemove [_unit];};}; case 3: { if(_bool) then {radio_channel_3 radioChannelAdd [_unit];} else {radio_channel_3 radioChannelRemove [_unit];};}; }; }; }; Now lets say you want the client to be added to channel 1, then the client needs to execute: [[player,true,1],"RADIO_fnc_manage",false,false] spawn BIS_fnc_MP; And if you wanted him into 2 then you would change the 1 to a 2 and so fourth. Basically every time your client is initializing / joining you would do your checks and add him to a channel if he is allowed to be in it, repeat for death if you are running respawns. Also if you wanted to remove them from it at any time then you would have them execute: [[player,false,1],"RADIO_fnc_manage",false,false] spawn BIS_fnc_MP; The code usage examples are meant for the client to execute to tell the server, tracking client events on the actual client is much easier but obviously if you had the server tracking the players status then you'd just do [unit,true,1] call RADIO_fnc_manage; It's all just code examples so you know how to do the work around. Although we shouldn't have to jump through hoops like this if BIS would fix the radioChannel commands.. Obviously to track if a player has respawned you would use either the eventHandler or the Respawn template system (google is your friend). Share this post Link to post Share on other sites
Abima 10 Posted August 26, 2013 Well as I said when a unit dies / becomes null he no longer exists in the radio channel. A work around is something like this, this is only an example but should give you an example.First initialize these functions for the server: if(isServer) then { radio_channel_1 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio One", "%UNIT_NAME", []]; radio_channel_2 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio Two", "%UNIT_NAME", []]; radio_channel_3 = radioChannelCreate [[0, 0.95, 1, 0.8], "Radio Three", "%UNIT_NAME", []]; RADIO_fnc_manage = { private["_unit","_channel","_bool"]; _unit = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; _bool = [_this,1,false,[false]] call BIS_fnc_param; _channel = [_this,2,0,[0]] call BIS_fnc_param; //Series of checks? if(isNull _unit) exitWith {}; //Null unit if(_channel < 1) exitWith {}; //No channels below 1 should be passed. switch (_channel) do { case 1: { if(_bool) then {radio_channel_1 radioChannelAdd [_unit];} else {radio_channel_1 radioChannelRemove [_unit];};}; case 2: { if(_bool) then {radio_channel_2 radioChannelAdd [_unit];} else {radio_channel_2 radioChannelRemove [_unit];};}; case 3: { if(_bool) then {radio_channel_3 radioChannelAdd [_unit];} else {radio_channel_3 radioChannelRemove [_unit];};}; }; }; }; Now lets say you want the client to be added to channel 1, then the client needs to execute: [[player,true,1],"RADIO_fnc_manage",false,false] spawn BIS_fnc_MP; And if you wanted him into 2 then you would change the 1 to a 2 and so fourth. Basically every time your client is initializing / joining you would do your checks and add him to a channel if he is allowed to be in it, repeat for death if you are running respawns. Also if you wanted to remove them from it at any time then you would have them execute: [[player,false,1],"RADIO_fnc_manage",false,false] spawn BIS_fnc_MP; The code usage examples are meant for the client to execute to tell the server, tracking client events on the actual client is much easier but obviously if you had the server tracking the players status then you'd just do [unit,true,1] call RADIO_fnc_manage; It's all just code examples so you know how to do the work around. Although we shouldn't have to jump through hoops like this if BIS would fix the radioChannel commands.. Obviously to track if a player has respawned you would use either the eventHandler or the Respawn template system (google is your friend). Thanks Tonic!!!! I think is answered. Can close!! Share this post Link to post Share on other sites
Kumeda 6 Posted August 27, 2013 (edited) This will work however coustom channels are probably still buged! Im working on a script for adding coustom channels look here for more information also on the bugs . Unfortunately my script doesnt support class only channels yet and is still in testing but you are able to select and deselect any coustom channels. Edited August 27, 2013 by Kumeda Share this post Link to post Share on other sites