trevison123
Умник
проблема заключается в том, что иногда, когда игрок заходит в пикап, её телепортирует и сразу же срабатывает второй пикап
код:
код:
Код:
new Float:gTeleports[TELEPORTS_COUNT][2][4] =
{
{ //Цех оружия
{-1006.6297,-696.1597,32.0078,6.6875},
{2576.8445,-1289.9153,1044.1250,86.4804}
},
и т.д.
Код:
if(areaid >= gTeleportAreas[0][0] && areaid <= gTeleportAreas[TELEPORTS_COUNT-1][1])
{
if(pTemp[playerid][pJustTP]) return pTemp[playerid][pJustTP] = false;
new id,subid;
for(new i;i<TELEPORTS_COUNT;i++)
{
if(areaid == gTeleportAreas[i][0]) {id = i; subid = 1;}
if(areaid == gTeleportAreas[i][1]) {id = i; subid = 0;}
}
if(id == 1 && pTemp[playerid][pChangingSkin])
{
pTemp[playerid][pChangingSkin] = false;
SetPlayerSkin(playerid,pData[playerid][pSkin]);
}
if(id == 2) //Автошкола
{
if(pTemp[playerid][pWaitingExam])
{
SendInf(playerid, "Вы были сняты с экзамена.");
pTemp[playerid][pWaitingExam] = false;
pTemp[playerid][pExamCandidate] = INVALID_PLAYER_ID;
pTemp[playerid][pOnExam] = false;
}
}
if(id == 34 || id == 35 || id == 39 || id == 40 || id == 41 || id == 42 || id == 43 || id == 18 || id == 20 || id == 22)
{
if(!propusk[playerid]) return SendErr(playerid, "Вы не можете зайти в участок без пропуска");
}
if(id == 49)
{
if(pData[playerid][pFraction] != 11) return SendErr(playerid, "Вход доступен только для сотрудников Правительства");
}
if((id == 3 || id == 4 || id == 5) && subid == 0)
{
if(pData[playerid][pHealth] < 80.0) return SendErr(playerid, "Вы не можете выйти из больницы, пока не вылечетесь.");
pTemp[playerid][pInHospital] = false;
if(GetPVarInt(playerid,"HospitalBedUse") == 1)
{
for(new hbn = 0; hbn < 14; hbn++)
{
for(new hbvw = 0; hbvw < 3; hbvw++)
{
if(hospbed[hbvw][hbn] != playerid) continue;
UpdateHospitalBed(hbvw,hbn,false,INVALID_PLAYER_ID);
break;
}
}
DeletePVar(playerid,"HospitalBedUse");
}
}
if((id == 3 || id == 4 || id == 5) && subid == 1) pTemp[playerid][pInHospital] = true;
if(id >= 16 && id <= 24 && subid == 0)
{
if(pTemp[playerid][pCuffee] == playerid) return SendErr(playerid, "Вы не можете выйти из участка в наручниках");
}
if(id == 11)
{
if(GetPVarInt(playerid,"carrygun"))
{
ClearAnimations(playerid);
ApplyAnimation(playerid,"CARRY","liftup",1.0,0,1,1,0,0,1);
SetTimerEx("CarryDelay",1000,false,"i",playerid);
}
}
FreezePlayer(playerid, 1);
pTemp[playerid][pJustTP] = true;
SetPlayerVirtualWorld(playerid,gTeleportData[id][subid][0]);
SetPlayerInterior(playerid,gTeleportData[id][subid][1]);
SetPlayerPosEx(playerid,gTeleports[id][subid][0],gTeleports[id][subid][1],gTeleports[id][subid][2],0);
SetPlayerFacingAngle(playerid,gTeleports[id][subid][3]);
SetCameraBehindPlayer(playerid);
}
Код:
for(new i;i<TELEPORTS_COUNT;i++)
{
CreateDynamicPickup(19132,1,gTeleports[i][0][0],gTeleports[i][0][1],gTeleports[i][0][2],gTeleportData[i][0][0]);
CreateDynamicPickup(19132,1,gTeleports[i][1][0],gTeleports[i][1][1],gTeleports[i][1][2],gTeleportData[i][1][0]);
gTeleportAreas[i][0] = CreateDynamicSphere(gTeleports[i][0][0],gTeleports[i][0][1],gTeleports[i][0][2],2.0,gTeleportData[i][0][0],gTeleportData[i][0][1]);
gTeleportAreas[i][1] = CreateDynamicSphere(gTeleports[i][1][0],gTeleports[i][1][1],gTeleports[i][1][2],2.0,gTeleportData[i][1][0],gTeleportData[i][1][1]);
}
