I made the changes that you recommended and it fixed the first problem with the missing ini files.
I use:
Win7 64 bit SP1
i7 950 CPU
6 gigs ram
GeForce GTX 460 graphics
DBP U7.7 RC6
Tortoise SVN 1.6.15 64 bit
Here is my exact issue:
The server runs perfect.
When I run the client, it detects the connection fine.
The client crashes to the desktop when it executes mediaClientRegisterNew().
My server log looks like this:
[SYSTEM] INFO 2011/04/10 08:50:49 :: SERVER ID FOUND : 1
[SYSTEM] INFO 2011/04/10 08:50:49 :: ROOT table is tables with tableid: 100
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 101. input
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 102. gui
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 103. guidata
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 104. library
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 105. library_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 106. assets
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 107. loader
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 108. terrain
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 109. terrain_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 110. netServer
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 111. netShared
[SYSTEM] INFO 2011/04/10 08:50:49 :: New table 112. templates/template_player
[SYSTEM] INFO 2011/04/10 08:50:50 :: New table 113. language/english
[SYSTEM] INFO 2011/04/10 08:50:50 :: New table 114. extensions
[SYSTEM] INFO 2011/04/10 08:50:50 :: New table 115. playerShared
[SYSTEM] INFO 2011/04/10 08:50:50 :: New table 116. playerServer
[SYSTEM] WARN 2011/04/10 08:50:51 :: Server name not set, attempting search...
[SYSTEM] INFO 2011/04/10 08:50:51 :: Search mode set to 1, searching on LAN...
[SYSTEM] INFO 2011/04/10 08:50:51 :: New table 117. client
[SYSTEM] INFO 2011/04/10 08:50:51 :: New table 118. client_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:51 :: 192.168.3.100 listening on port 9669 with profile 54872552 as instance 0
[SYSTEM] INFO 2011/04/10 08:50:51 :: Clients/Instance set to 50
[SYSTEM] INFO 2011/04/10 08:50:51 :: UDP Max Operations set to 2
[SYSTEM] INFO 2011/04/10 08:50:51 :: UDP Mode set to 2
[SYSTEM] INFO 2011/04/10 08:50:51 :: Press spacebar to quit.
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 1. 1
[SYSTEM] INFO 2011/04/10 08:50:56 :: Connect from 192.168.3.100, port:54094, clientID:1
[SYSTEM] INFO 2011/04/10 08:50:56 :: NETS_MANIFEST sent to clientID 1
[SYSTEM] INFO 2011/04/10 08:50:59 :: Connection dropped from clientID 1
[SYSTEM] INFO 2011/04/10 08:50:59 :: Deleted Table 1. 1
My client log looks like this
(I added more log messages to find exactly where it fails):
[SYSTEM] INFO 2011/04/10 08:50:56 :: ROOT table is tables with tableid: 100
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 101. input
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 102. gui
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 103. guidata
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 104. library
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 105. library_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 106. assets
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 107. loader
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 108. terrain
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 109. terrain_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 110. keyboardClient
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 111. netClient
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 112. netShared
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 113. playerClient
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 114. templates/template_player
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 115. language/english
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 116. RPGIDLookup
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 117. RPGIDLookup_REVERSE
[SYSTEM] INFO 2011/04/10 08:50:56 :: RPGID table is RPGIDLookup with tableid: 116
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 118. extensions
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 119. meshClient
[SYSTEM] INFO 2011/04/10 08:50:56 :: New table 120. playerShared
[SYSTEM] WARN 2011/04/10 08:50:56 :: Server name not set, attempting search...
[SYSTEM] INFO 2011/04/10 08:50:56 :: Search mode set to 1, searching on LAN...
[SYSTEM] INFO 2011/04/10 08:50:56 :: CONNECT START: 192.168.3.100:9669, Profile: 101861872
[SYSTEM] INFO 2011/04/10 08:50:56 :: Net Connect Successful. Mode TCP Added.
[SYSTEM] INFO 2011/04/10 08:50:56 :: Net Max UDP Clients set to 50
[SYSTEM] INFO 2011/04/10 08:50:56 :: Net Max UDP Operations set to 2
[SYSTEM] INFO 2011/04/10 08:50:56 :: NETS_MANIFEST received
[SYSTEM] INFO 2011/04/10 08:50:56 :: mediaClientRegisterNew: 6 media paths will be synchronized...
[SYSTEM] INFO 2011/04/10 08:50:56 :: mediaClientRegisterNew: Path is now data/materials/
It may be worth noting that the data/materials/ folder is empty except for the hidden .svn file.
I tried deleting the .svn file, but it didn't make any difference.
Here is the exact code snippet that I have. All I've changed from the SVN Download are the changes you advised above, and the new log messages here:
function mediaClientRegisterNew()
REM SEARCH MEDIA PATHS
REM AND SEE IF THERE ARE ANY NEW ASSETS THAT
REM NEED TO BE REGISTERED
REM FIRST WE NEED THE LIBRARY TABLE ID
libraryTableID = DATA_LIBRARY_TABLEID
REM PRESERVE THE SPLIT INTO A TEMP ARRAY
REM SO THAT SPLIT STRING CAN BE USED LATER
split string MEDIA_PATHS, DATA_ARGSEP
dim myPaths(split count()) as string
for i = 1 to split count()
myPaths(i) = get split word$(i)
next
debugWrite(DEBUGINFO,"mediaClientRegisterNew: " + str$(split count()) + " media paths will be synchronized...")
for i = 1 to array count(myPaths())
path$ = myPaths(i)
if path exist(path$)
cd path$
debugWrite(DEBUGINFO,"mediaClientRegisterNew: Path is now " + path$)
perform checklist for files
debugWrite(DEBUGINFO,"mediaClientRegisterNew: checking " + str$(checklist quantity()) + " files under path " + path$)
for j = 1 to checklist quantity()
filename$ = checklist string$(j)
REM IGNORE HIDDEN FILES AND CURRENT/PARENT DIR
if fast left$(filename$,1) <> "."
split string filename$, "." : ext$ = get split word$(split count())
REM CHECK TO SEE IF EXTENSION IS REGISTERED
REM AS A VALID MEDIA TYPE
myMediaType$ = dataSharedGetField(DATA_TABLE_MEDIA, ext$, DATA_KEY_UNDEFINED, DATA_NO_CREATE)
if myMediaType$ <> DATA_KEY_UNDEFINED
REM VALID MEDIA TYPE FOUND, CHECK TO SEE
REM IF IT IS ALREADY REGISTERED IN THE LOCAL LIBRARY
`debugWrite(DEBUGINFO,"mediaClientRegisterNew: registered extension found: " + ext$ + "=" + myMediaType$)
pathfilename$ = path$ + filename$
rpgid = intval(dataSharedGetField(DATA_TABLE_LIBRARY + DATA_REVERSE_SUFFIX, pathfilename$, str$(DATA_FUNCTION_FAIL), DATA_NO_CREATE))
if rpgid = DATA_FUNCTION_FAIL
REM NOT REGISTERED YET, ASK THE SERVER FOR AN ASSETID
debugWrite(DEBUGINFO,"mediaClientRegisterNew: " + pathfilename$ + " not registered in local library, requesting assetID from server.")
netClientSendAssetIDRequest(pathfilename$)
endif
endif
REM HERE WE COULD DO SPECIAL HANDLING
REM FOR VARIOUS MEDIA TYPES USING EITHER
REM THE GENERIC myMediaType$ OR THE EXACT ext$
endif
next
empty checklist
cd (dir exe())
else
debugWrite(DEBUGINFO,"mediaClientRegisterNew: Path " + path$ + "does not exist!")
endif
next
endfunction
As you can see from that code snippet and the log file it writes before it crashes, the following line is responsible:
Quote: "perform checklist for files"
The confusing part for me is that I can run test scripts that use the checklist commands just fine and everything else seems to work.
It is something specific about the mediaClient script that crashes when it tries to access the checklist.
I tried adding in a command to empty the checklist first, but it crashed on the empty checklist command instead.
If it is an SVN issue, that would go a long way toward saving my sanity.
Edited for clarity