15.03.2012, 17:25
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.....
Edit: the /trunk commands
Код:
if(strcmp(cmd,"/trunk", true) == 0) { new car = GetPlayerVehicleID(playerid); new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(car, engine, lights, alarm, doors, bonnet, boot, objective); if(boot == 0) { SetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,1,objective); } else { SetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,0,objective); } return 1; }
Edit: the /trunk commands
Код:
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; }