Немножко примеров кода:
Code
function nfkLive_Register(HostName_, MapName_ : string; Players_, MaxPlayers_, GameType_ : byte ) : boolean;
begin
BNET_LOBBY_SSID := newSSID;
MainForm.NMHTTP1.body := ROOTDIR+'\system\ht.dat';
MainForm.NMHTTP1.Get(
'http://conn.ee/nfk/live/?action=register'
+'&hostname='+HostName_
+'&serverIP='+MainForm.GlobalIP
+'&dedicated='+BoolToStr(OPT_SV_DEDICATED, true)
+'&mapName='+MapName_
+'&gameType='+inttostr(GameType_)
+'&playerCount='+inttostr(Players_)
+'&playerMax='+inttostr(MaxPlayers_)
+'&timeLimit='+inttostr(MATCH_TIMELIMIT)
+'&ssid='+BNET_LOBBY_SSID
);
sleep(500);
BNET_AU_LIST.LoadFromFile(ROOTDIR+'\system\ht.dat');
if BNET_AU_LIST[0] = 'OK' then
addmessage('nfkLive: Server registered')
else begin addmessage('nfkLive: ERROR! '+BNET_AU_LIST[0]); exit; end;
result:= true;
end;
23:44:40: вот регалка нового сервака в нвклив
23:44:58: можно даже проверять, что ответил сервер
23:48:00: а на серваке лежит index.php
23:48:27: где прописано if $_GET[action] == 'register'
23:48:48: и дальше перегоняет параметры в mysql запрос
23:50:43: на время, пока сервер соединен с нфклив у него есть ssid (session id) грубо говоря сгенерированный ключ, с которым он может обновлять данные о своей записи (смена карты, кол-во игроков, и в том числе удаление из списка при выходе)
23:52:23: с каждым обновлением инфы, продлевается скрок службы этого ключа.. если сервак какое-то время не обновлял инфу - ключ устаревает и он автоматически перестает отображаться в списке активных серваков, на случай внезапного прерывания соединения