Hey there. Well done, here are some things you could/should change that I spotted on first look:
- StatusIcon message and HamDamage hooks are not used when ZombieSwarm is not defined. Take them out completely (not registering them at all). Especially in HamDamage there are native calls that are unnecessary when the function never does anything.
- Don't know if its just me but I think you should come up with more level names instead of just reusing them 3-5 times each.
- Store the values of is_user_connected and is_user_alive
- Maybe cache the cvars on new round.
- In HamDamage, I believe you don't have to check whether the victim is a player.
- Statics in client_printcolor and Event_StatusValue could be a good idea.
- Use formatex were applicable
- You really should implement SteamID support (maybe do a cvar to change between both).
- MySQL or SQLite support could be a good idea if you have the knowledge to implement either.
- I'm not sure
but I believe it's better to use nvault over the old vault.
LEVEL_TEXT = Name: %s^n Level: %d^n Rang: %s^n
LEVEL_TEXT2 = /gLevel - /ctr[ /y%i /ctr] /gXP - /ctr[ /y%i /g/ /y %i /ctr]
LEVEL_TEXT3 = /gWaffen Level - /ctr[ /y%s /ctr] /gRang - /ctr[ /y%s /ctr]
LEVEL_HUD_TEXT = [Level : %i] [XP : %i / %i]^n[Waffen Level : %s]^n[Rang : %s]
LEVEL_UP = /ctr%s /yerreicht Level /g%i!