Trunk help. -
Okay, the trunk system i have makes the owner of the car control his trunk like put gun take gun But i want to make that when they type /trunk The trunk opens :
But i want to make that if that trunk is not opened they cant use the /trunk takegun or any trunk commands till they /trunk again to open it.....
Код:
if(strcmp(cmd, "/trunk", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[24];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "HINT: /trunk [name]");
SendClientMessage(playerid, COLOR_WHITE, "Available names: putgun, takegun");
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
{
SendClientMessage(playerid, COLOR_WHITE, "You can /trunk frisk as a cop");
}
return 1;
}
if(strcmp(x_nr,"info",true) == 0)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
}
case 1:
{
if(IsAnOwnableCar(result))
{
if(PlayerInfo[playerid][pPcarkey] == result) { }
else if(PlayerInfo[playerid][pPcarkey2] == result) { }
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is locked !");
return 1;
}
}
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83 || GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
SendClientMessage(playerid, COLOR_LIGHT_BLUE, "|_______ Vehicle Trunk _______|");
for(new slot = 1; slot != MAX_TRUNK_SLOTS; slot++)
{
new gunname[24];
if(vehTrunk[result][slot] != 0)
{
GetWeaponName(vehTrunk[result][slot], gunname, sizeof(gunname));
format(string, sizeof(string), "| Slot %i: %s (Ammo: %i)", slot, gunname, vehTrunkAmmo[result][slot]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
format(string, sizeof(string), "| Slot %i: Empty (Ammo: N/A)", slot);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
format(string, sizeof(string), "| Body armour: %f%", vehTrunkArmour[result]);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* %s opens the vehicle's trunk.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
return 1;
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
return 1;
}
else if(strcmp(x_nr,"putgun",true) == 0)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
}
case 1:
{
if(vehTrunkCounter[result] != (MAX_TRUNK_SLOTS-1))
{
if(IsAnOwnableCar(result))
{
if(PlayerInfo[playerid][pPcarkey] == result) { }
else if(PlayerInfo[playerid][pPcarkey2] == result) { }
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is locked !");
return 1;
}
}
if(ReduceTime[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " You need to wait 3 seconds before using this command !");
return 1;
}
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83|| GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
new buffer[128];
new gunname[24];
new gunID = GetPlayerWeapon(playerid);
new gunAmmo = GetPlayerAmmo(playerid);
if(gunID != 0 && gunAmmo != 0)
{
ReduceTime[playerid] = 1;
SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
GetWeaponName(gunID, gunname, sizeof(gunname));
vehTrunkCounter[result]++;
vehTrunk[result][vehTrunkCounter[result]] = gunID;
vehTrunkAmmo[result][vehTrunkCounter[result]] = gunAmmo;
format(buffer, sizeof(buffer), "You have put your %s (Ammo: %i) in the car's trunk.", gunname, gunAmmo);
SendClientMessage(playerid, COLOR_WHITE, buffer);
RemovePlayerWeapon(playerid, gunID);
SaveTrunk();
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Car's trunk is full");
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
return 1;
}
else if(strcmp(x_nr,"takegun",true) == 0)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
return 1;
}
case 1:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(ReduceTime[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " You need to wait 3 seconds before using this command !");
return 1;
}
if(IsAnOwnableCar(result))
{
if(PlayerInfo[playerid][pPcarkey] == result) { }
else if(PlayerInfo[playerid][pPcarkey2] == result) { }
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is locked !");
return 1;
}
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83 || GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
if(vehTrunkCounter[result] != 0)
{
ReduceTime[playerid] = 1;
SetTimerEx("ReduceTimer", 3000, false, "i", playerid);
new buffer[128];
new gunName[100];
SafeGivePlayerWeapon(playerid, vehTrunk[result][vehTrunkCounter[result]], vehTrunkAmmo[result][vehTrunkCounter[result]]);
GetWeaponName(vehTrunk[result][vehTrunkCounter[result]], gunName, sizeof(gunName));
format(buffer, sizeof(buffer), "You've taken a %s (Ammo: %i) from the vehicle.", gunName, vehTrunkAmmo[result][vehTrunkCounter[result]]);
SendClientMessage(playerid, COLOR_WHITE, buffer);
vehTrunk[result][vehTrunkCounter[result]] = '\0';
vehTrunkAmmo[result][vehTrunkCounter[result]] = '\0';
vehTrunkCounter[result]--;
SaveTrunk();
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is empty ! ");
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
return 1;
}
else if(strcmp(x_nr,"putarmour",true) == 0)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
return 1;
}
case 1:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(IsAnOwnableCar(result))
{
if(PlayerInfo[playerid][pPcarkey] == result) { }
else if(PlayerInfo[playerid][pPcarkey2] == result) { }
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is locked !");
return 1;
}
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83 || GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
new Float:plyArmour;
GetPlayerArmour(playerid, plyArmour);
if(plyArmour != 0)
{
SafeSetPlayerArmour(playerid, 0);
vehTrunkArmour[result] = plyArmour;
SaveTrunk();
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " You haven't got any armour ");
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
return 1;
}
else if(strcmp(x_nr,"takearmour",true) == 0)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
return 1;
}
case 1:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(IsAnOwnableCar(result))
{
if(PlayerInfo[playerid][pPcarkey] == result) { }
else if(PlayerInfo[playerid][pPcarkey2] == result) { }
else
{
SendClientMessage(playerid, COLOR_GREY, " Trunk is locked !");
return 1;
}
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83 || GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
if(vehTrunkArmour[result] != 0)
{
SafeSetPlayerArmour(playerid, vehTrunkArmour[result]);
vehTrunkArmour[result] = 0;
SaveTrunk();
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " There are no body armour in the trunk ! ");
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
return 1;
}
else if(strcmp(x_nr,"frisk",true) == 0)
{
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
{
new counter = 0;
new result;
new plyName[MAX_PLAYER_NAME];
GetPlayerName(playerid, plyName, MAX_PLAYER_NAME);
for(new i; i != MAX_VEHICLES; i++)
{
new dist = CheckPlayerDistanceToVehicle(3.5, playerid, i);
if(dist)
{
result = i;
counter++;
}
}
switch(counter)
{
case 0:
{
SendClientMessage(playerid, COLOR_GREY, " No cars with trunk near you");
}
case 1:
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " You can't open the trunk while you're in the car");
return 1;
}
if(IsAPlane(result) || IsABike(result) || IsAOBike(result) || IsABoat(result) || IsAPizzabike(result) || IsABus(result) || IsATowcar(result) || IsAHarvest(result) || IsADrugHarvest(result) || IsASweeper(result) || result >=78 && result <= 83 || GetVehicleModel(GetPlayerVehicleID(result)) == 523)
{
SendClientMessage(playerid, COLOR_GREY, " This vehicle doesn't have the trunk !");
return 1;
}
SendClientMessage(playerid, COLOR_LIGHT_BLUE, "|_______ Vehicle Trunk _______|");
for(new slot = 1; slot != MAX_TRUNK_SLOTS; slot++)
{
new gunname[100];
if(vehTrunk[result][slot] != 0)
{
GetWeaponName(vehTrunk[result][slot], gunname, sizeof(gunname));
format(string, sizeof(string), "| Slot %i: %s (Ammo: %i)", slot, gunname, vehTrunkAmmo[result][slot]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
format(string, sizeof(string), "| Slot %i: Empty (Ammo: N/A)", slot);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
format(string, sizeof(string), "| Body armour: %f%", vehTrunkArmour[result]);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "* %s opens the trunk and checks what is inside.", sendername);
ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
return 1;
}
default:
{
SendClientMessage(playerid, COLOR_GREY, " Found more then one car in range");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " You're not the cop ! ");
return 1;
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "HINT: /trunk [name]");
SendClientMessage(playerid, COLOR_WHITE, "Available names: info, putgun, takegun");
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
{
SendClientMessage(playerid, COLOR_WHITE, "You can /trunk frisk as a cop");
}
return 1;
}
}
return 1;
}