Junior Member
Join Date: May 2020
Location: California
|
05-13-2020
, 18:56
Re: Suggestions on how to further debug my crashing server that has no error
|
#9
|
Quote:
Originally Posted by Alber9091
Post Source Code if possible (lets see what it precaches) and associated files you uplaoded, Logs at the time of crash?
+ Again try to upload models, sprites, sounds etc, may be you missed any !! If not compare your files from plugin source code, probably your archive might be missing any file.
|
So I checked which file seems to handle prechaching and came up with war3craft.inl.
Here's the snippet of code that seems to handle the prechaching:
Code:
public WC3_Precache()
{
// Precache wc3.css (if it exists!)
if ( !file_exists( "wc3.css" ) )
{
WC3_Log( true, "[ERROR] Missing file 'wc3.css'" );
set_fail_state( "A required file is missing, unable to load plugin" );
}
else
{
precache_generic( "wc3.css" );
}
copy( g_szSounds[SOUND_VENGEANCE] , 63, "warcraft3/MiniSpiritPissed1.wav" ); // Warden's Ultimate
copy( g_szSounds[SOUND_SUICIDE] , 63, "ambience/particle_suck1.wav" ); // Undead's Ultimate
copy( g_szSounds[SOUND_BANISH] , 63, "warcraft3/banishcaster.wav" ); // Banish
copy( g_szSounds[SOUND_LOCUSTSWARM] , 63, "warcraft3/locustswarmloop.wav" ); // Locust Swarm
copy( g_szSounds[SOUND_SHADOWSTRIKE] , 63, "warcraft3/shadowstrikebirth.wav" ); // Shadow Strike
copy( g_szSounds[SOUND_CARRION] , 63, "warcraft3/carrionswarmlaunch1.wav" ); // Carrion Beetles
copy( g_szSounds[SOUND_IMPALE] , 63, "warcraft3/impalehit.wav" ); // Impale
copy( g_szSounds[SOUND_VOODOO] , 63, "warcraft3/divineshield.wav" ); // Big Bad Voodoo
copy( g_szSounds[SOUND_FLAMESTRIKE] , 63, "warcraft3/flamestriketargetwavenonloop1.wav" ); // Flame Strike
copy( g_szSounds[SOUND_ENTANGLING] , 63, "warcraft3/entanglingrootstarget1.wav" ); // Entangling Roots
copy( g_szSounds[SOUND_LIGHTNING] , 63, "warcraft3/lightningbolt.wav" ); // Chain Lightning
copy( g_szSounds[SOUND_TELEPORT] , 63, "warcraft3/massteleporttarget.wav" ); // Teleport
copy( g_szSounds[SOUND_BLINK] , 63, "warcraft3/blinkarrival.wav" ); // Blink Teleport
copy( g_szSounds[SOUND_LEVELUP] , 63, "warcraft3/levelupcaster.wav" ); // Level up
copy( g_szSounds[SOUND_PICKUPITEM] , 63, "warcraft3/pickupitem.wav" ); // Buy / Pick up item
copy( g_szSounds[SOUND_TOME] , 63, "warcraft3/Tomes.wav" ); // Tome of Experience
copy( g_szSounds[SOUND_ULTIMATESCAN] , 63, "turret/tu_ping.wav" ); // Ultimate Beep
copy( g_szSounds[SOUND_ULTIMATEREADY] , 63, "warcraft3/resurrecttarget.wav" ); // Ultimate Beep
copy( g_szSounds[SOUND_ANNIHILATION] , 63, "warcraft3/PurgeTarget1.wav" ); // Orb of Annihilation
copy( g_szSounds[SOUND_CONCOCTION_CAST] , 63, "warcraft3/PossessionMissileLaunch1.wav" ); // Unstable Concoction Cast
copy( g_szSounds[SOUND_CONCOCTION_HIT] , 63, "warcraft3/PossessionMissileHit1.wav" ); // Unstable Concoction Hit
copy( g_szSounds[SOUND_HEX] , 63, "warcraft3/PolymorphDone.wav" ); // Hex
copy( g_szSounds[SOUND_IMMOLATE] , 63, "warcraft3/ImmolationDecay1.wav" ); // Immolate
copy( g_szSounds[SOUND_IMMOLATE_BURNING], 63, "ambience/flameburst1.wav" ); // Immolate Burning
copy( g_szSounds[SOUND_REINCARNATION] , 63, "warcraft3/soundpack/reincarnation.wav" ); // Weapon Reincarnation/Ankh
copy( g_szSounds[SOUND_ANTEND] , 63, "warcraft3/antend.wav" ); // Sound played when you try to shoot a chameleoned teammate
copy( g_szSounds[SOUND_ERROR] , 63, "warcraft3/bonus/Error.wav" ); // Sound played on errors
copy( g_szSounds[SOUND_DISPELL] , 63, "warcraft3/DispelMagicTarget.wav" ); // Dispell an ultimate - played on caster
copy( g_szSounds[SOUND_SPELLSHIELD] , 63, "warcraft3/SpellShieldImpact1.wav" ); // Dispell an ultimate - played on blocker
// Lets make sure we have all of the sound files!!!
new i, szTmp[128], bool:bError = false;
for ( i = 0; i < MAX_SOUNDS; i++ )
{
// We only need to look for warcraft3 files (other files should be w/base HLDS installation)
if ( containi( g_szSounds[i], "warcraft3" ) != -1 )
{
formatex( szTmp, 127, "sound/%s", g_szSounds[i] );
if ( !file_exists( szTmp ) )
{
WC3_Log( true, "[ERROR] Missing sound file '%s'", szTmp );
bError = true;
}
}
}
// All sound files exist!! Lets continue!
if ( !bError )
{
// Precache all files
for ( i = 0; i < MAX_SOUNDS; i++ )
{
precache_sound( g_szSounds[i] );
}
}
// We need to throw a runtime error :/
else
{
set_fail_state( "Sound files are missing, unable to load plugin" );
}
bError = false;
// Copy the sprite files to the array
copy( g_szSprites[SPR_BANISH] , 63, "sprites/nhth1.spr" );
copy( g_szSprites[SPR_SHADOWSTRIKE] , 63, "sprites/animglow01.spr" );
copy( g_szSprites[SPR_FIRE] , 63, "sprites/explode1.spr" );
copy( g_szSprites[SPR_BURNING] , 63, "sprites/xfire.spr" );
copy( g_szSprites[SPR_BEETLE] , 63, "sprites/agrunt1.spr" );
copy( g_szSprites[SPR_FIREBALL] , 63, "sprites/zerogxplode.spr" );
copy( g_szSprites[SPR_BEAM] , 63, "sprites/zbeam4.spr" );
copy( g_szSprites[SPR_TRAIL] , 63, "sprites/smoke.spr" );
copy( g_szSprites[SPR_SHOCKWAVE] , 63, "sprites/shockwave.spr" );
copy( g_szSprites[SPR_LIGHTNING] , 63, "sprites/lgtning.spr" );
copy( g_szSprites[SPR_FLARE] , 63, "sprites/blueflare2.spr" );
copy( g_szSprites[SPR_WAVE] , 63, "sprites/gwave1.spr" );
copy( g_szSprites[SPR_IMMOLATE] , 63, "sprites/warcraft3/fireball.spr" );
// Store race sprite names
copy( g_szRaceSprites[RACE_NONE] , 63, "sprites/warcraft3/races/wc3_none_01.spr" );
copy( g_szRaceSprites[RACE_UNDEAD] , 63, "sprites/warcraft3/races/wc3_undead_01.spr" );
copy( g_szRaceSprites[RACE_HUMAN] , 63, "sprites/warcraft3/races/wc3_human_01.spr" );
copy( g_szRaceSprites[RACE_ORC] , 63, "sprites/warcraft3/races/wc3_orc_01.spr" );
copy( g_szRaceSprites[RACE_ELF] , 63, "sprites/warcraft3/races/wc3_elves_01.spr" );
copy( g_szRaceSprites[RACE_BLOOD] , 63, "sprites/warcraft3/races/wc3_bloodmage_01.spr" );
copy( g_szRaceSprites[RACE_SHADOW] , 63, "sprites/warcraft3/races/wc3_shadow_01.spr" );
copy( g_szRaceSprites[RACE_WARDEN] , 63, "sprites/warcraft3/races/wc3_warden_01.spr" );
copy( g_szRaceSprites[RACE_CRYPT] , 63, "sprites/warcraft3/races/wc3_cryptlord_01.spr" );
copy( g_szRaceSprites[RACE_CHAMELEON] , 63, "sprites/warcraft3/races/wc3_chameleon_01.spr" );
// Store level sprite names
for ( i = 0; i < 11; i++ )
{
formatex( g_szLevelSprites[i], 63, "sprites/warcraft3/level/a_level_%d.spr", i );
}
// Precache models
if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
{
if ( g_MOD == GAME_CZERO )
{
precache_model( "models/player/spetsnaz/spetsnaz.mdl" );
precache_model( "models/player/militia/militia.mdl" );
}
precache_model( "models/player/gign/gign.mdl" );
precache_model( "models/player/sas/sas.mdl" );
precache_model( "models/player/gsg9/gsg9.mdl" );
precache_model( "models/player/urban/urban.mdl" );
precache_model( "models/player/arctic/arctic.mdl" );
precache_model( "models/player/leet/leet.mdl" );
precache_model( "models/player/guerilla/guerilla.mdl" );
precache_model( "models/player/terror/terror.mdl" );
copy( g_szSprites[SPR_SMOKE] , 63, "sprites/steam1.spr" );
copy( g_szSprites[SPR_SNOW] , 63, "sprites/snow.spr" );
}
else if ( g_MOD == GAME_DOD )
{
precache_model( "models/player/axis-inf/axis-inf.mdl" );
precache_model( "models/player/axis-para/axis-para.mdl" );
precache_model( "models/player/brit-inf/brit-inf.mdl" );
precache_model( "models/player/us-inf/us-inf.mdl" );
precache_model( "models/player/us-para/us-para.mdl" );
copy( g_szSprites[SPR_SNOW] , 63, "sprites/warcraft3/snow.spr" );
}
// Now lets make sure the sprites exist
for ( i = 0; i < MAX_SPRITES; i++ )
{
// We only need to look for warcraft3 files (other files should be w/base HLDS installation)
if ( containi( g_szSprites[i], "warcraft3" ) != -1 )
{
if ( !file_exists( g_szSprites[i] ) )
{
WC3_Log( true, "[ERROR] Missing sprite file '%s'", g_szSprites[i] );
bError = true;
}
}
}
// Check the race sprites
for ( i = 0; i <= MAX_RACES; i++ )
{
if ( !file_exists( g_szRaceSprites[i] ) )
{
WC3_Log( true, "[ERROR] Missing sprite file '%s'", g_szRaceSprites[i] );
bError = true;
}
}
// Check the level sprites
for ( i = 0; i <= MAX_LEVELS; i++ )
{
if ( !file_exists( g_szLevelSprites[i] ) )
{
WC3_Log( true, "[ERROR] Missing sprite file '%s'", g_szLevelSprites[i] );
bError = true;
}
}
// All sprite files exist!! Lets continue!
if ( !bError )
{
// Precache all common sprites
for ( i = 0; i < MAX_SPRITES; i++ )
{
if ( g_szSprites[i][0] )
{
g_iSprites[i] = precache_model( g_szSprites[i] );
}
}
// Precache others if allowed
if ( g_MOD == GAME_CSTRIKE || g_MOD == GAME_CZERO )
{
new szMapName[32];
get_mapname( szMapName, 31 );
if ( !equali( szMapName, "de_inferno_cz" ) && !equali( szMapName, "fun_matrix_reloaded" ) && !equali( szMapName, "de_rats-xl" ) )
{
g_bExtraSpritesEnabled = true;
// Precache race sprites
for ( i = 0; i <= MAX_RACES; i++ )
{
g_iRaceSprites[i] = precache_model( g_szRaceSprites[i] );
}
// Precache level sprites
for ( i = 0; i <= MAX_LEVELS; i++ )
{
g_iLevelSprites[i] = precache_model( g_szLevelSprites[i] );
}
}
}
}
// We need to throw a runtime error :/
else
{
set_fail_state( "Sprite files are missing, unable to load plugin" );
}
}
I compared all of the relevant files listed in that code to files in my server's folders, and found my snow.spr was in the wrong place. I moved it from ..\sprites\warcraft3\snow.spr to cstrike\sprites\snow.spr. I did a little extra testing and you can also put the file in hlds\valve\spites\snow.spr and have it work.
So, IT'S FIXED! I'll leave my logs here as well for anyone that google's for a fix.
qconsole.log
Code:
Protocol version 48
Exe version 1.1.2.7 (cstrike)
Exe build: 15:17:10 Jul 24 2019 (8308)
Server IP address 192.168.50.172:27020
Metamod version 1.21-am Copyright (c) 2001-2013 Will Day <[email protected]>
Metamod comes with ABSOLUTELY NO WARRANTY; for details type `meta gpl'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `meta gpl' for details.
AMX Mod X version 1.9.0.5263 Copyright (c) 2004-2015 AMX Mod X Development Team
AMX Mod X comes with ABSOLUTELY NO WARRANTY; for details type `amxx gpl'.
This is free software and you are welcome to redistribute it under
certain conditions; type 'amxx gpl' for details.
L 05/13/2020 - 15:02:43: -------- Mapchange to de_dust2 --------
L20200513.log
Code:
L 05/13/2020 - 15:02:43: -------- Mapchange to de_dust2 --------
HUGE thanks to Alber9091 for thinking about checking the source code for precache!
|
|