Oki, ça fait un moment aussi que je ne l'ai pas utilisé.
Ca serait bien de mettre à jour les zip du site ? (pourquoi pas au coup par coup, vérifir quand la map est DLed si le zip a été mis à jour récemment ou pas, après c'est toi le spécialiste
)
J'ai un ptit plugin qui nettoie les .res aussi, mais arkshine travaille sur un plugin bien plus complet.
Je le poste ici si ça intéresse quelqu'un (ça change aussi les '\' en '/') :
CODE
#include <amxmodx>
#define VERSION "0.0.2"
#define PLUGIN "Res Cleaner"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
register_srvcmd("amx_clean_res", "CleanAllResFiles", _, "Removes bad files from .res files")
}
public CleanAllResFiles()
{
new szMapsFolder[] = "maps"
new const szResExt[] = ".res"
new szFileName[48]
new dp = open_dir(szMapsFolder, szFileName, charsmax(szFileName))
if( !dp )
{
return PLUGIN_HANDLED
}
new iLine = -1
new iLen, iFile
new szText[256]
new Trie:tNotGenericExt = TrieCreate()
TrieSetCell(tNotGenericExt, ".wav", 1)
TrieSetCell(tNotGenericExt, ".mdl", 1)
TrieSetCell(tNotGenericExt, ".spr", 1)
TrieSetCell(tNotGenericExt, ".bsp", 1)
do
{
iLen = strlen(szFileName)
if( iLen > 4 && equali(szFileName[iLen-4], szResExt) )
{
format(szFileName, charsmax(szFileName), "maps/%s", szFileName)
iFile = fopen(szFileName, "rt")
while( !feof(iFile) )
{
iLine++
fgets(iFile, szText, charsmax(szText))
trim(szText)
if( szText[0] && szText[0] != '/' && szText[0] != ';' && szText[0] != '#' )
{
iLen = strlen(szText)
if( iLen < 5 || TrieKeyExists(tNotGenericExt, szText[iLen-4]) )
{
format(szText, charsmax(szText), "// %s", szText)
fclose(iFile)
write_file(szFileName, szText, iLine)
iFile = fopen(szFileName, "rt") // re-offseting...
iLine = -1
}
else if( contain(szText, "\") != -1 )
{
while( replace(szText, charsmax(szText), "\", "/") ) {}
// fclose(iFile)
write_file(szFileName, szText, iLine)
// iFile = fopen(szFileName, "rt") // re-offseting...
// iLine = -1
}
}
}
fclose(iFile)
}
}
while( next_file(dp, szFileName, charsmax(szFileName)) )
close_dir(dp)
TrieDestroy( tNotGenericExt )
server_print(".res files cleaned up")
return PLUGIN_HANDLED
}
Sur les serveurs avec beaucoup de maps ça va surement freeze à un moment ou à un autre et il faudra relancer le serveur et relancer plusieurs fois la commande, mais ça fait son boulot au final.