Regarding the first question: Use Add Event: Split Menu -patch. Then you need to event the conditionals: if option A was chosen, you get item 1, if option B was chosen, you get item 2 etc.
As for the second question, I’m not sure if it will work, but you could try using the patch “Add Event: get number of units matching a specific condition” in conjunction with Check if deployed -command.
While I was writing and translating the text, the perfect answer was written first.
However, since I wrote it, I will post it.
There is no event command in vanilla to count the number of players.
However, it is possible to count by using the following patches.
This patch is intended to count the number of units that have a particular class or item, but you can count the number of player units by using only AFFILIATION as your affiliation.
NAME.en=Add Event: Get the number of units matching a specific condition.
INFO.en=This event is counts the number of units matching specific conditions for the unit currently deployed on the map and returns it to memory slot C.
EVENTSCRIPT:2.en=40050100XXXX000040050200YYYY000040050300ZZZZ000040050400WWWW0000400D0000{$L1:Get_Count_of_Unit.dmp} Get the number of units that match specific conditions[XXXX:UNIT:CheckUnit 00=ANY][YYYY:CLASS:CheckClass 00=ANY][ZZZZ:ITEM:CheckItem 00=ANY][WWWW:WMAPAFFILIATION:FF=ANY] {COND}
or
NAME.en=AddEvent: Get the number of Count number of units in a specific range
INFO.en=Count the number of units that match the conditions.
EVENTSCRIPT:2.en=40050100XXXX000040050200YYYY000040050300ZZZZ000040050400WWWW000040050500PPPPPPPP40050600RRRRRRRR400D0000{$L1:COUNT_RANGE.dmp} Get the number of Count number of units in a specific range If Cond conditions[XXXX:UNIT:CheckUnit 00=ANY][YYYY:CLASS:CheckClass 00=ANY][ZZZZ:ITEM:CheckItem 00=ANY][WWWW:WMAPAFFILIATION:FF=ANY]in[PP:MAPXY:StartRange][RR:MAPXY:EndRange 00=ANY] {COND}