An advanced spawn protection
block load
{
es_xset SpawnProtectionTime 10 // how long the Spawnprotection is on
es_math SpawnProtectionTime + server_var(mp_freezetime)
es_xset spawnprotvers "1"
es_xmakepublic spawnprotvers
es_xset counter 0
}
block unload
{
repeat delete startrep
}
event round_start
{
es foreach player tempid #all "es_doblock spawnprot/saveHP"
es_xset protan 1
es_xmsg #multi #lightgreen[SpawnProt]#green SpawnProt Enabled
repeat create startrep "es_xdoblock spawnprot/perio"
es_delayed 0.1 repeat start startrep 1 server_var(SpawnProtectionTime)
es_xset counter 0
es_xmsg #multi #lightgreen[SpawnProt]#green You are protected from spawn attacking!
es_xcentermsg You are protected from spawn attacking!
}
block perio
{
es_xmath counter + 1
if (server_var(counter) == server_var(SpawnProtectionTime)) do
{
es_xset protan 0
es_msg #multi #lightgreen[SpawnProt]#green SpawnProt Disabled
es foreach player tempid #all "es_doblock spawnprot/setHP"
}
}
block saveHP
{
es_xset tempHP 0
es_getplayerprop tempHP server_var(tempid) CCSPlayer.baseclass.m_iHealth
es playervar set server_var(tempid) HP server_var(tempHP)
es_math tempHP + 1024
es_setplayerprop server_var(tempid) CCSPlayer.baseclass.m_iHealth server_var(tempHP)
}
block setHP
{
es_xset tempHP 0
es playervar get tempHP server_var(tempid) HP
es_setplayerprop server_var(tempid) CCSPlayer.baseclass.m_iHealth server_var(tempHP)
}
event player_hurt
{
if (server_var(protan) == 1) do
{
es_xset tempHP 0
es playervar get tempHP event_var(userid) HP
if (event_var(attacker) == 0) do
{
es_math tempHP - event_var(dmg_health)
es playervar set event_var(userid) HP server_var(tempHP)
}
else do
{
if (event_var(attacker) == event_var(userid)) do
{
es_math tempHP - event_var(dmg_health)
es playervar set event_var(userid) HP server_var(tempHP)
}
else do
{
es_xset tempArmor 0
es_set tempArmor event_var(armor)
es_math tempArmor + event_var(dmg_armor)
es_setplayerprop event_var(userid) CCSPlayer.m_ArmorValue server_var(tempArmor)
es_sexec event_var(attacker) kill
es_msg #multi #lightgreen[SpawnProt]#default event_var(es_attackername)#greenhas been slayn for spawn attacking
}
}
if (server_var(tempHP) <= 0) do
{
es_sexec event_var(userid) kill
}
else do
{
es_math tempHP + 1024
es_setplayerprop event_var(userid) CCSPlayer.baseclass.m_iHealth server_var(tempHP)
}
}
}
A spawnprotection which is better than all the others because: - It saves the HP (works well with RPGMods) - Falldamage isnt disabled (you can die by falling from too high although spawn protection is on) - You can see how much HP you have left till you would die (by falling, selfdamage) - Restores armor - Also slays the attacker
Just check it out :D



