Sziasztok.
Nemtudom kitalálni, miért nem lyukasztja ki azokat a járműveket amik áthaladnak a szögesdróton?
if(strcmp(cmd, \"/szögesdrót\", true) == 0 || strcmp(cmd, \"/szg\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 18 || PlayerInfo[playerid][pMember] == 18)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /szögesdrót [lerak/felvesz]\");
return 1;
}
if(strcmp(x_nr,\"lerak\",true) == 0 || strcmp(x_nr,\"lerak\",true) == 0)
{
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, \"Kocsiból nem rakhatod le.\");
for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
{
if(SzogesdrotInfo[szogesdrot][Van] == 0)
{
GetPlayerFacingAngle(playerid, SzogesdrotInfo[szogesdrot][Fordulas]);
GetPlayerPos(playerid, SzogesdrotInfo[szogesdrot][PosX], SzogesdrotInfo[szogesdrot][PosY], SzogesdrotInfo[szogesdrot][PosZ]);
SzogesdrotInfo[szogesdrot][Object1] = CreateDynamicObject(2892, SzogesdrotInfo[szogesdrot][PosX], SzogesdrotInfo[szogesdrot][PosY], SzogesdrotInfo[szogesdrot][PosZ]-1, 0.0, 0.0, SzogesdrotInfo[szogesdrot][Fordulas]);
SzogesdrotInfo[szogesdrot][Van] = 1;
format(string, sizeof(string), \"Leraktál egy szögesdrótot. ID: %d\", szogesdrot);
SendClientMessage(playerid, COLOR_GREEN, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(stringx, sizeof(stringx), \"* %s lerakott egy szögesdrótot.\", sendername);
ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
break;
}
}
}
if(strcmp(x_nr,\"felvesz\",true) == 0 || strcmp(x_nr,\"felvesz\",true) == 0)
{
for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
{
if(SzogesdrotInfo[szogesdrot][Van] == 1)
{
new Float:szzx, Float:szzy, Float:szzz;
GetDynamicObjectPos(SzogesdrotInfo[szogesdrot][Object1], szzx, szzy, szzz);
if(IsPlayerInRangeOfPoint(playerid, 3.0, szzx, szzy, szzz))
{
DestroyDynamicObject(SzogesdrotInfo[szogesdrot][Object1]);
format(string, sizeof(string), \"Felszedtél egy szögesdrotot. | ID: %d\", szogesdrot);
SzogesdrotInfo[szogesdrot][Van] = 0;
SzogesdrotInfo[szogesdrot][PosX] = 0;
SzogesdrotInfo[szogesdrot][PosY] = 0;
SzogesdrotInfo[szogesdrot][PosZ] = 0;
SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(stringx, sizeof(stringx), \"* %s felvett egy szogesdrótot.\", sendername);
ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
break;
}
}
}
}
} else SendClientMessage(playerid, COLOR_GRAD2, \"{0048ff}[FCRPG]{ffffff} Nem vagy rendvédelem tagja.\");
}
return 1;
}
Igen, közbe rájöttem , hogy azt is kéne.
OnPlayerUpdate alá tettem be.
new Float:x, Float:y, Float:z;
new vehicleid = GetPlayerVehicleID(playerid);
new panels, ajtok, lampak, tires;
for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
{
if(SzogesdrotInfo[szogesdrot][Van] == 1)
{
GetObjectPos(SzogesdrotInfo[szogesdrot][Object1], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
{
GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, 15);
break;
}
}
}
GetObjectPos(foutobject[49], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
{
GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, 15);
}
new Float:x, Float:y, Float:z;
new vehicleid = GetPlayerVehicleID(playerid);
new panels, ajtok, lampak, tires;
for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
{
if(SzogesdrotInfo[szogesdrot][Van] == 1)
{
GetObjectPos(SzogesdrotInfo[szogesdrot][Object1], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
{
GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, encode_tires(1, 1, 1, 1));
break;
}
}
}
encode_tires(tire1, tire2, tire3, tire4)
{
return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
}
https://wiki.sa-mp.com/wiki/DamageStatus