Scratch idea for my server.
#7

Made one quick, you may modify and tweak it.

pawn Код:
new
    bool:g_Infected[MAX_PLAYERS],
    bool:g_IsZombie[MAX_PLAYERS],
    InfectedTimer[MAX_PLAYERS]
;

public OnPlayerSpawn(playerid)
{
    KillTimer( InfectedTimer[playerid] );
    g_Infected[playerid = false;
    return true;
}

public OnPlayerDisconnect(playerid, reason)
{
    KillTimer( InfectedTimer[playerid] );
    g_Infected[playerid = false;
    return true;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if( newkeys & KEY_FIRE && GetPlayerWeapon(playerid) == 0 )
    {
        if(g_IsZombie[playerid])
        {
            new Float:P[3];
            GetPlayerPos(playerid, P[0], P[1], P[2]);
            GetXYInFrontOfPlayer(playerid, P[0], P[1], 1);
            for(new i=0; i<MAX_PLAYERS; i++)
            {
                if( IsPlayerConnected(i) && !IsPlayerNPC(i) )
                {
                    if(i != playerid && !g_IsZombie[i] && !g_Infected[i] && IsPlayerInRangeOfPoint(i, 1, P[0], P[1], P[2]))
                    {
                        g_Infected[i] = true;
                        SendClientMessage(i, 0xFF0000FF, "You are attacked & infected by a Zombie! You are losing your health!");
                        SendClientMessage(i, 0xFF0000FF, "You need to use a Pill to before you die..");
                        InfectedTimer[i] = SetTimerEx("ReducePlayerHealth", 5000, true, "df", i, 5.0);
                        return true;
                    }
                }
            }
        }
    }
    return true;
}

CMD:zombie(playerid, cmdtext[] )
{
    if(g_IsZombie[playerid])
    {
        g_IsZombie[playerid] = false;
        SendClientMessage(playerid, 0x00FF00FF, "You're no longer a Zombie.");
    } else {
        g_IsZombie[playerid] = true;
        SendClientMessage(playerid, 0x00FF00FF, "You're a Zombie!");
    }
    return true;
}

stock ReducePlayerHealth(playerid, Float:amount)
{
    if(amount > 100.0) return false;
    new Float:HP; GetPlayerHealth(playerid, HP);
    if(HP <= amount) SetPlayerHealth(playerid, 0.0);
    SetPlayerHealth(playerid, HP-amount);
    return true;
}

GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{                                                 // Created by ******

    new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a);
    if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); }
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
}
Reply


Messages In This Thread
Scratch idea for my server. - by Shockey HD - 07.08.2011, 22:36
Re: Scratch idea for my server. - by PrawkC - 07.08.2011, 22:39
Re: Scratch idea for my server. - by iPLEOMAX - 07.08.2011, 22:42
Re: Scratch idea for my server. - by Shockey HD - 07.08.2011, 22:50
Re: Scratch idea for my server. - by iPLEOMAX - 07.08.2011, 22:55
Re: Scratch idea for my server. - by Shockey HD - 07.08.2011, 22:56
Re: Scratch idea for my server. - by iPLEOMAX - 07.08.2011, 23:24
Re: Scratch idea for my server. - by dowster - 07.08.2011, 23:28
Re: Scratch idea for my server. - by Shockey HD - 08.08.2011, 01:57
Re: Scratch idea for my server. - by iiKyle - 08.08.2011, 02:31

Forum Jump:


Users browsing this thread: 1 Guest(s)