Quote: "FPSC Classic does not use remote servers at all, it is all run by opening a host game on one machine and connecting from others using the IP address of the host machine."
And yet in the source code (reminder that I use v1.17) we have the following code in the source...
_ai_gamelist_add:
`
rem server adds to gamelist, uses addip$ and addname$
action$="action=add&"
serverid$="server_id="+guniquegamecode$+"&"
ip$="ip="+addip$+"&" : ipfromadd$=ip$
title$="title="+addname$+"&"
data$="data=none"
HTTP CONNECT strarr$(619)
tryattempts=10
repeat
tryagain=0
idfromadd$=HTTP REQUEST DATA("POST", "gamehost/index.php",action$+serverid$+ip$+title$+data$)
if val(idfromadd$)=0 then tryagain=1
dec tryattempts
until tryagain=0 or tryattempts<=0
HTTP DISCONNECT
`
return
_ai_gamelist_delete:
`
rem server deletes from gamelist
HTTP CONNECT strarr$(619)
tryattempts=10
repeat
tryagain=0
action$="action=delete&"
serverid$="server_id="+guniquegamecode$+"&"
return$=HTTP REQUEST DATA("POST", "gamehost/index.php",action$+serverid$+ipfromadd$+"id="+idfromadd$)
if return$="1" then serverhasremoveditselffromonlinelist=1
if return$<>"1" then tryagain=1
dec tryattempts
until tryagain=0 or tryattempts<=0
HTTP DISCONNECT
`
return
_ai_gamelist_keepalive:
`
rem send this to keep game item listed in database
HTTP CONNECT strarr$(619)
action$="action=keepalive&"
serverid$="server_id="+guniquegamecode$+"&"
return$=HTTP REQUEST DATA("POST", "gamehost/index.php",action$+serverid$+ipfromadd$+"id="+idfromadd$)
HTTP DISCONNECT
`
return
_ai_gamelist_refresh:
`
rem client views gamelist choices, fill array
HTTP CONNECT strarr$(619)
tryattempts=10
repeat
tryagain=0
action$="action=list&"
serverid$="server_id="+guniquegamecode$
return$=HTTP REQUEST DATA("POST", "gamehost/index.php",action$+serverid$)
if return$<>""
c=1 : hudiplistmax=-1 : fromc=0
repeat
if asc(mid$(return$,c))=10
if fromc>0
thudiplist$=left$(return$,c-1)
thudiplist$=right$(thudiplist$,len(thudiplist$)-fromc)
else
thudiplist$=left$(return$,c-1)
endif
for c1=1 to len(thudiplist$)
if mid$(thudiplist$,c1)="," then exit
next c1
thudiplist1$=left$(thudiplist$,c1-1)
thudiplist$=right$(thudiplist$,len(thudiplist$)-(c1))
for c2=1 to len(thudiplist$)
if mid$(thudiplist$,c2)="," then exit
next c2
thudiplist2$=left$(thudiplist$,c2-1)
thudiplist$=right$(thudiplist$,len(thudiplist$)-(c2))
for c3=1 to len(thudiplist$)
if mid$(thudiplist$,c3)="," then exit
next c3
thudiplist3$=left$(thudiplist$,c3-1)
thudiplist$=right$(thudiplist$,len(thudiplist$)-(c3))
for c4=1 to len(thudiplist$)
if mid$(thudiplist$,c4)="," then exit
next c4
thudiplist4$=left$(thudiplist$,c4-1)
thudiplist$=right$(thudiplist$,len(thudiplist$)-(c4))
` if thudiplist1$=thisgamecode$
inc hudiplistmax
hudiplist$(hudiplistmax,0)=thudiplist4$
hudiplist$(hudiplistmax,1)=thudiplist3$
` endif
fromc=c+1
else
rem skip char, finding end
endif
inc c
until c>len(return$)
else
tryagain=1
dec tryattempts
endif
until tryagain=0 or tryattempts<=0
HTTP DISCONNECT
`
return
_ai_gamelist_checkforfirewall:
`
rem FSCV105RC2 - server has a script to give is the real machine IP
`http://www.fpscreator.com/gamehost/whatismyip.php
serveripaddress$=""
`
rem added for 090307
rem check three times to connect to FPSC gamelist server
HTTP CONNECT strarr$(619)
tryattempts=3
repeat
action$=""
return$=HTTP REQUEST DATA("POST", "gamehost/whatismyip.php",action$)
errorcodestring$=return$
return$=lower$(return$)
checkfor$="error code"
if return$<>""
for n=0 to len(return$)-len(checkfor$)-1
if left$(right$(return$,(len(return$)-n)),len(checkfor$))=checkfor$
rem error code returned when attempted to access HTTP command
errorcode$=errorcodestring$
endif
next n
if errorcode$="" and len(return$)>0
rem FPSCV105RC2 - 100307 - puts the actual HOSTable IP address in serveripaddress$
serveripaddress$=return$
tryattempts=0
endif
endif
dec tryattempts
until tryattempts<=0 or len(errorcode$)=0
HTTP DISCONNECT
`
rem if fail, report and exit
if errorcode$<>""
s$="Failed to establish a connection with the gamelist server. "
s$=s$+"This could be caused by loss of internet connectivity, or the presence of a firewall."
exit prompt s$,errorcode$
end
endif
`
return
I had assumed on the multiplayer side that the game will connect to FPS Creator site to validate/verify the IP address and send the proper response back. It is specifically pointing to "gamehost/index.php" and "gamehost/whatismyip.php". The error the OP has outlined is the exact error we now receive on a development that has been out for over a year now.
Quote: "What I suggest is you disable your firewalls and add an exception for FPSC in any security software you have. Multiplayer was never a focus with FPSC Classic and is not very advanced or reliable.
"
Unfortunately, a school will not/cannot disable their firewalls or security software. The OP also stated...
Quote: "This error appear around 04.february.2015! Before this date the multiplayer games works fine for me and other people. I don't have active firewall"
As far as "exceptions", can you be more specific as to what "exception" would need to be added, as the documentation on MP side is a little vague.
Quote: "Multiplayer was never a focus with FPSC Classic and is not very advanced or reliable."
And yet it *is* a feature and it *had* been working before with no issues.
Perhaps Lee himself (or Scene Commander) could explain exactly how/why this is occurring as they have worked on the source before. Since I work on my own source, I could (if need be) create my own fix, but I'm going to bat for users that cannot/do not mod their own source.
**Additional**
Quote: "FPSC is no longer supported so there won't be any official bug fixes if it is found to be a bug."
With that said, what is the purpose of having the Bug Report section in FPSC then open to post bugs if there is no longer any support? While this area served its purpose when Classic was alive and thriving to report/solve issues, it seems kind of pointless to have users post their issues in hopes of having a solution presented. Maybe that should be in big letters on the pages where model packs for Classic are still sold, so that people don't get excited only to have their hopes dashed by something like "there is no support".
There's no problem that can't be solved without applying a little scripting.