Lord
Новичок
Здравствуйте. Вот у меня такая проблема: добавляю в команду "продажи машины игрока, другому игроку" проверку, что если у игрока, которому продают авто меньше лвл, чем у самой машины, то ему машина не продается, вот у меня эта команда срабатывает только когда игрок в авто, но если он выйдет из машины, то сможет продать авто.
if (strcmp(cmd, "/sellcar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pLevel] < 4)
{
SendClientMessage(playerid, COLOR_RED, " Вы должны быть по крайней мере уровнем 4!");
return 1;
}
if(PlayerInfo[playerid][pCarKey2] == 0 && PlayerInfo[playerid][pCarKey] == 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"У вас нет тачки");
return 1;
}
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
if(PlayerToKvadrat(playerid, 2317.9458,1449.4711,10.8203,1.0828) ||
PlayerToKvadrat(playerid, 2313.2183,1452.4572,18.1462,16.4363) ||
PlayerToKvadrat(playerid, 2313.2183,1452.4572,25.7171,28.1747) ||
PlayerToKvadrat(playerid, 2313.2183,1452.4572,36.1188,171.8277) ||
PlayerToKvadrat(playerid, 2788.7844, -1467.7683, 2820.6284, -1425.3816) ||
PlayerToKvadrat(playerid, 293.7184, -1549.3483, 304.6124, -1477.7850) ||
PlayerToKvadrat(playerid, 2642.7,-1901.2,2842.1,-1668.1) ||
PlayerToKvadrat(playerid, 1417.6780,2786.3059,1532.8566,2788.3418) ||
PlayerToKvadrat(playerid, 2313.2183,1452.4572,43.8835,171.8277))
{
if(IsPlayerInAnyVehicle(playerid))
{
new cari = GetPlayerVehicleID(playerid);
if(cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey])
{
RemovePlayerFromVehicle(playerid);
SetTimerEx("AntiRemovePlayerFromVehicle" , 4800, false, "i", playerid);
TogglePlayerControllable(playerid, 1);
new Float:xcar, Float:ycar, Float:zcar, Float:ancar;
new mods = GetVehicleModel(cari);
GetVehicleZAngle(cari, ancar);
GetVehiclePos(cari,xcar,ycar,zcar);
DestroyVehicle(cari);
CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS);
AutoInfo[cari][aAutoX] = xcar;
AutoInfo[cari][aAutoY] = ycar;
AutoInfo[cari][aAutoZ] = zcar;
AutoInfo[cari][aAutoAngle] = ancar;
AutoInfo[cari][aStats] = 0;
new ptem[64];
format(ptem,sizeof(ptem),"The State");
strmid(AutoInfo[cari][aOwner], ptem, 0, strlen(ptem), 255);
new manyy = AutoInfo[cari][aPrice] / 2;
ConsumingMoney[playerid] = 1;
GiveMoney(playerid,manyy);
SaveAuto();
gCarLock[cari] = 0;
UnLockCar(cari);
new nal = (manyy*13) / 10;
PlayerInfo[playerid][pNalog] += nal;
format(string,sizeof(string),"{FFA500}Транспорт продается\n{FFA500}Уровень: {FFFFFF}%d\n{FFA500}Стоимость: {FFFFFF}%d",AutoInfo[cari][aKey],AutoInfo[cari][aPrice]);
UpdateDynamic3DTextLabelText(nomer[cari],0xFFFFFFFF,string);
if(cari == PlayerInfo[playerid][pCarKey2])
{
PlayerInfo[playerid][pCarKey2] = 0;
}
else if(cari == PlayerInfo[playerid][pCarKey])
{
PlayerInfo[playerid][pCarKey] = 0;
}
return 1;
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Вы не в своей купленной тачке");
}
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Вы не в тачке");
}
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Продать транспорт можно на авторынке /gps, или другому игроку.");
}
}
else
{
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"/sellcar [id игрока] [сумма] либо /sellcar на авторынке");
return 1;
}
new babkis = strval(tmp);
if(PlayerInfo[giveplayerid][pCarKey2] != 0 && PlayerInfo[giveplayerid][pCarKey] != 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"У него уже есть транспорт");
return 1;
}
new cari = GetPlayerVehicleID(playerid);
if(AutoInfo[cari][aKey] > PlayerInfo[giveplayerid][pLevel])
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"У него маленький лвл");
return 1;
}
if(AutoInfo[cari][aKey] > PlayerInfo[playerid][pLevel])
{
SendClientMessage(giveplayerid,COLOR_LIGHTRED2,"Ваш лвл не совпадает с лвлом автомобиля");
return 1;
}
if(babkis < 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Цена не меньше 0");
return 1;
}
if(babkis > GetSRVMoney(giveplayerid))
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"У игрока не хватает денег");
return 1;
}
if(!ProxDetectorS(10.0, playerid, giveplayerid))
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Вы слишком далеко от игрока");
return 1;
}
if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey])&& CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Около вас находится оба транспорта! Уйдите от того, который не хотите продавать");
return 1;
}
if(!CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey]) && !CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
SendClientMessage(playerid,COLOR_LIGHTRED2,"Вы слишком далеко от автомобиля");
return 1;
}
if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey]))
{
predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey];
}
else if(CheckPlayerDistanceToVehicle(10.0, playerid, PlayerInfo[playerid][pCarKey2]))
{
predlogidcar[giveplayerid] = PlayerInfo[playerid][pCarKey2];
}
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
predlogid[giveplayerid] = playerid;
predlogmoney[giveplayerid] = babkis;
new kfjsdh = predlogidcar[giveplayerid];
format(string,sizeof(string),"%s предлагает вам купить %s за %d$ (/accept buycar)",sendername,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis);
SendClientMessage(giveplayerid,COLOR_LIGHTBLUE,string);
format(string,sizeof(string),"Вы предложили %s купить %s за %d$",giveplayer,VehicleNames[GetVehicleModel(kfjsdh)-400],babkis);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
}
}
return 1;
}
