I don't know anything about Zombie Mod but:
1. You pass id as a parameter to a fuction:
PHP Code:
public ZombieDay(id)
{ ...
and than you create new variable with the same name:
You can not do that. My sugestion is to change
PHP Code:
public ZombieDay(id)
to
PHP Code:
public ZombieDay(callingId)
where callingId will be id of a player who uses the command
2. Also I don't get this:
PHP Code:
ColorChat(0, RED, "^4%s Today Is Zombie", PREFIX)
g_ZMCount = ZMCount;
set_task( 1.0 , "ZombieCount" , _ , _ , _ , "a" , g_ZMCount );
jail_open()
this will be executed for each alive player :
if you have 10 alive players ColorChat will be printed 10 times to all players
you will have 10 tasks
you will call jail_open() 10 times.
g_ZMCount and ZMCount are always the same. You are not changing them inside the loop
Maybe it should be after the for loop?