/siren problem
#8

Indentation fixed, errors solved.
pawn Код:
new Siren[MAX_VEHICLES];
new SirenObject[MAX_VEHICLES];

CMD:siren(playerid, params[])
{
    if(AccInfo[playerid][Level] >= 1 || AccInfo[playerid][pVip] >= 1)
    {
        new string[128], type;
        new VID = GetPlayerVehicleID(playerid);
        if(sscanf(params, "d", type)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]") &&
        SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
        switch(type)
        {
            case 1:
            {
                if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                new sendername[MAX_PLAYER_NAME];
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
                format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(ProxDetector(30.0, playerid, i) && IsPlayerConnected(i))
                    {
                        SendClientMessage(i,COLOR_PURPLE,string);
                    }
                }
                return 1;
            }
            case 2:
            {
                if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                Siren[VID] = 1;
                new sendername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                AttachObjectToVehicle(SirenObject[VID], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0);
                format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(ProxDetector(30.0, playerid, i) && IsPlayerConnected(i))
                    {
                        SendClientMessage(i,COLOR_PURPLE,string);
                    }
                }
                return 1;
            }
            case 3:
            {
                if(Siren[VID] == 0) return SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                Siren[VID] = 0;
                new sendername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                format(string, sizeof(string), "* %s takes down the siren.", sendername);
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                    if(ProxDetector(30.0, playerid, i) && IsPlayerConnected(i))
                    {
                        SendClientMessage(i,COLOR_PURPLE,string);
                    }
                }
                return 1;
            }
            default:
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
            }
        }
    }
    else return SendClientMessage(playerid, COLOR_GREY, "You're not authorised to use this command.");
    return 1;
}

forward ProxDetector(Float:radi, playerid, targetid);
public ProxDetector(Float:radi, playerid, targetid)
{
    if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    {
        new Float:posx, Float:posy, Float:posz;
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        GetPlayerPos(targetid, posx, posy, posz);
        tempposx = (oldposx -posx);
        tempposy = (oldposy -posy);
        tempposz = (oldposz -posz);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return 1;
        }
    }
    return 0;
}
Reply


Messages In This Thread
/siren problem - by kbalor - 25.08.2012, 10:08
Re: /siren problem - by justinnater - 25.08.2012, 10:11
Re: /siren problem - by kbalor - 25.08.2012, 10:33
Re: /siren problem - by CentyPoo - 25.08.2012, 10:40
Re: /siren problem - by [MM]RoXoR[FS] - 25.08.2012, 10:42
Re: /siren problem - by kbalor - 25.08.2012, 10:45
Re: /siren problem - by kbalor - 25.08.2012, 10:48
Re: /siren problem - by clarencecuzz - 25.08.2012, 11:05
Re: /siren problem - by kbalor - 25.08.2012, 11:29
Re: /siren problem - by clarencecuzz - 25.08.2012, 11:34

Forum Jump:


Users browsing this thread: 1 Guest(s)