I made a little script:
function OnRequestGame(IP: string;State: integer):integer;
var
pass: string;
begin
pass:=ReadINI('soldat.ini','NETWORK','Game_Password','*ERROR*');
if(Password=pass)and(State=3) then State:=1;
Result:=State;
end;
Basically, if current password matches the one specified in the soldat.ini then if someone joins the server with wrong password script should let them in. I've checked the Result at the end, it is set to '1' when that 'if..then' is true. The problem is that the players can't join anyway. It seems the server is sending back Result=3 - wrong password, despite the fact that it had been changed to 1.
Any ideas on how to fix that?