if(strcmp(cmd, "/siren", true) == 0)
{
if(!IsValidObject(Siren[playerid]))
{
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 3)
{
new siren[65];
new VID = GetPlayerVehicleID(playerid);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /siren [inside, roof, nothing]");
SendClientMessage(playerid, COLOR_GREY, "[INFO]: 'nothing' will remove the item from your vehicle!");
return 1;
}
strmid(siren, tmp, 0, strlen(cmdtext), 255);
if(strcmp(siren, "inside", true, strlen(siren)) == 0)
{
if(Siren[playerid] != INVALID_OBJECT_ID)
{
// if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // If he's not in a Premier...
GetPlayerName(playerid, sendername, sizeof(sendername));
Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0); // Inside - Premier
format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
} else { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
}
else if(strcmp(siren, "roof", true, strlen(siren)) == 0)
{
if( Siren[playerid] != INVALID_OBJECT_ID )
{
// if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // If he's not in a Premier...
GetPlayerName(playerid, sendername, sizeof(sendername));
Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
AttachObjectToVehicle(Siren[playerid], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0); // tak - Premier
format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
} else { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
}
else if(strcmp(siren, "nothing", true, strlen(siren)) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
DestroyObject(Siren[playerid]);
format(string, sizeof(string), "* %s takes down the siren.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
} else { SendClientMessage(playerid, COLOR_GREY, "[INFO]: Are you a cop?"); }
}
return 1;
}
Try putting this line above your DestroyObject. Pawno can be a little glitchy sometimes.
AttachObjectToVehicle(Siren[playerid]),car,0.0,0.0,0.6,0.0,0.0,0.0); |
if(strcmp(cmd, "/siren", true) == 0)
{
if(!IsValidObject(Siren[playerid]))
{
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 3)
{
new siren[65];
new VID = GetPlayerVehicleID(playerid);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /siren [inside, roof, nothing]");
SendClientMessage(playerid, COLOR_GREY, "[INFO]: 'nothing' will remove the item from your vehicle!");
return 1;
}
strmid(siren, tmp, 0, strlen(cmdtext), 255);
if(strcmp(siren, "inside", true, strlen(siren)) == 0)
{
if(Siren[playerid] != -1)
{
// if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // If he's not in a Premier...
GetPlayerName(playerid, sendername, sizeof(sendername));
Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0); // Inside - Premier
format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
} else { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
}
else if(strcmp(siren, "roof", true, strlen(siren)) == 0)
{
if(Siren[playerid] != -1)
{
// if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // If he's not in a Premier...
GetPlayerName(playerid, sendername, sizeof(sendername));
Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
AttachObjectToVehicle(Siren[playerid], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0); // tak - Premier
format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
} else { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
}
else if(strcmp(siren, "nothing", true, strlen(siren)) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
DestroyObject(Siren[playerid]);
Siren[playerid] = -1;
format(string, sizeof(string), "* %s takes down the siren.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
} else { SendClientMessage(playerid, COLOR_GREY, "[INFO]: Are you a cop?"); }
}
return 1;
}
But don't forget to set the Siren[playerid] to -1 at onplayerconnect.
|
OnPlayerConnect(playerid)
{
Siren[playerid] = -1;
}
CMD:siren(playerid, params[]) {
if(PlayerInfo[playerid][pGroup]][gGroupType] == 1 || PlayerInfo[playerid][pGroup]][gGroupType] == 2 || PlayerInfo[playerid][pGroup]][gGroupType] == 4) {
new string[128], type;
new VID = GetPlayerVehicleID(playerid);
if(sscanf(params, "d", type))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
SendClientMessage(playerid, COLOR_GREY, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
return 1;
}
switch(type)
{
case 1:
{
if(Siren[VID] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
return 1;
}
Siren[VID] = 1;
GetRPName(playerid, szPlayerName, MAX_PLAYER_NAME);
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.", szPlayerName);
nearByMessage(playerid, COLOR_PURPLE, string);
return 1;
}
case 2:
{
if(Siren[VID] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
return 1;
}
Siren[VID] = 1;
GetRPName(playerid, szPlayerName, MAX_PLAYER_NAME);
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.", szPlayerName);
nearByMessage(playerid, COLOR_PURPLE, string);
return 1;
}
case 3:
{
if(Siren[VID] == 0)
{
SendClientMessage(playerid, COLOR_GREY, "This vehicle doesn't have a siren on it!");
return 1;
}
Siren[VID] = 0;
GetRPName(playerid, szPlayerName, MAX_PLAYER_NAME);
DestroyObject(SirenObject[VID]);
format(string, sizeof(string), "* %s takes down the siren.", szPlayerName);
nearByMessage(playerid, COLOR_PURPLE, string);
return 1;
}
default:
{
SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
SendClientMessage(playerid, COLOR_GREY, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
}
}
}
else SendClientMessage(playerid, COLOR_GREY, "You're not authorised to use this command.");
return 1;
}