PDA

Просмотр полной версии : [Вопрос] Не там создаются 3д тексты



#NickName
19.09.2016, 03:21
Сделал систему больницы, чтобы можно было лежать на койке.
Но есть 2 бага на койке 3 хп не прибавляется, и 3дтекст создаются на разных койках, помогите 4 дня решаю не могу найти почему.


new HospitalBed[12];
В дисконект


for(new i; i < 11; i++)
{
if(HospitalBed[i] != playerid) continue;
else
{
HospitalBed[i] = INVALID_PLAYER_ID;
break;
}
}
В OnGameModeInit


HospitalBed[0] = INVALID_PLAYER_ID;
HospitalBed[1] = INVALID_PLAYER_ID;
HospitalBed[2] = INVALID_PLAYER_ID;
HospitalBed[3] = INVALID_PLAYER_ID;
HospitalBed[4] = INVALID_PLAYER_ID;
HospitalBed[5] = INVALID_PLAYER_ID;
HospitalBed[6] = INVALID_PLAYER_ID;
HospitalBed[7] = INVALID_PLAYER_ID;
HospitalBed[8] = INVALID_PLAYER_ID;
HospitalBed[9] = INVALID_PLAYER_ID;
HospitalBed[10] = INVALID_PLAYER_ID;
HospitalBed[11] = INVALID_PLAYER_ID;
SetTimer("HPheck", 1000, true);
Сам паблик


publics: HPheck(playerid)
{
if(PlayerInfo[playerid][pBerth1] == 1 || PlayerInfo[playerid][pBerth2] == 1 || PlayerInfo[playerid][pBerth3] == 1 ||
PlayerInfo[playerid][pBerth4] == 1 || PlayerInfo[playerid][pBerth5] == 1 || PlayerInfo[playerid][pBerth6] == 1 ||
PlayerInfo[playerid][pBerth7] == 1 || PlayerInfo[playerid][pBerth8] == 1 || PlayerInfo[playerid][pBerth9] == 1 ||
PlayerInfo[playerid][pBerth10] == 1 || PlayerInfo[playerid][pBerth11] == 1 || PlayerInfo[playerid][pBerth12] == 1)
{
new Float:health;
GetPlayerHealth(playerid, health);
if(health < 95)SetPlayerHealthAC(playerid, health + 5.0);
else
{
if(PlayerInfo[playerid][pBerth1] == 1 || PlayerInfo[playerid][pBerth2] == 1 || PlayerInfo[playerid][pBerth3] == 1 ||
PlayerInfo[playerid][pBerth4] == 1 || PlayerInfo[playerid][pBerth5] == 1 || PlayerInfo[playerid][pBerth6] == 1 ||
PlayerInfo[playerid][pBerth7] == 1 || PlayerInfo[playerid][pBerth8] == 1 || PlayerInfo[playerid][pBerth9] == 1 ||
PlayerInfo[playerid][pBerth10] == 1 || PlayerInfo[playerid][pBerth11] == 1 || PlayerInfo[playerid][pBerth12] == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Курс лечения завершён!");
TogglePlayerControllable(playerid, 1);
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,0,1000,1);
PlayerInfo[playerid][pBerth1] = 0;
PlayerInfo[playerid][pBerth2] = 0;
PlayerInfo[playerid][pBerth3] = 0;
PlayerInfo[playerid][pBerth4] = 0;
PlayerInfo[playerid][pBerth5] = 0;
PlayerInfo[playerid][pBerth6] = 0;
PlayerInfo[playerid][pBerth7] = 0;
PlayerInfo[playerid][pBerth8] = 0;
PlayerInfo[playerid][pBerth9] = 0;
PlayerInfo[playerid][pBerth10] = 0;
PlayerInfo[playerid][pBerth11] = 0;
PlayerInfo[playerid][pBerth12] = 0;
PlayerInfo[playerid][pHospital] = 0;
for(new d; d < 11; d++)
{
if(HospitalBed[d] != playerid) continue;
else
{
HospitalBed[d] = INVALID_PLAYER_ID;
break;
}
}
}
}
}
return 1;
}

И команда


CMD:health(playerid)
{
new Float:health,
str[50];
GetPlayerHealth(playerid, health);
if(health >= 99.0) return 1;
if(PlayerInfo[playerid][pBerth1] == 1 || PlayerInfo[playerid][pBerth2] == 1 || PlayerInfo[playerid][pBerth3] == 1 ||
PlayerInfo[playerid][pBerth4] == 1 || PlayerInfo[playerid][pBerth5] == 1 || PlayerInfo[playerid][pBerth6] == 1 ||
PlayerInfo[playerid][pBerth7] == 1 || PlayerInfo[playerid][pBerth8] == 1 || PlayerInfo[playerid][pBerth9] == 1 ||
PlayerInfo[playerid][pBerth10] == 1 || PlayerInfo[playerid][pBerth11] == 1 || PlayerInfo[playerid][pBerth12] == 1)return SendClientMessage(playerid, COLOR_RED, "Вы уже лежите в больнице!");
{
if(PlayerToPoint(3.0, playerid, 905.75378, -1290.82129, 998.25958))//1
{
if(HospitalBed[0] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 1 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 1 койку!");
HospitalBed[0] = playerid;
PlayerInfo[playerid][pBerth1] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,893.6427,-1274.9749,999.9067,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 910.14984, -1279.21716, 998.26111))//2
{
if(HospitalBed[1] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 2 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 2 койку!");
HospitalBed[1] = playerid;
PlayerInfo[playerid][pBerth2] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,893.9003,-1278.1630,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 916.04840, -1279.21313, 998.26190))//3
{
if(HospitalBed[2] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 3 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 3 койку!");
HospitalBed[2] = playerid;
PlayerInfo[playerid][pBerth1] = 3;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,892.9685,-1282.5905,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 913.19598, -1279.21716, 998.26123))//4
{
if(HospitalBed[3] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 4 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 4 койку!");
HospitalBed[3] = playerid;
PlayerInfo[playerid][pBerth1] = 4;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,895.8279,-1282.6334,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 916.28546, -1280.23486, 998.26123))//5
{
if(HospitalBed[4] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 5 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 5 койку!");
HospitalBed[4] = playerid;
PlayerInfo[playerid][pBerth5] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,898.8099,-1282.6639,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 910.37219, -1280.23486, 998.26123))//6
{
if(HospitalBed[5] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 6 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 6 койку!");
HospitalBed[5] = playerid;
PlayerInfo[playerid][pBerth6] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,916.6170,-1276.9943,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 913.16748, -1280.23486, 998.26123))//7
{
if(HospitalBed[6] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 7 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 7 койку!");
HospitalBed[6] = playerid;
PlayerInfo[playerid][pBerth7] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,913.4777,-1277.0863,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 899.11810, -1280.20752, 998.25922))//8
{
if(HospitalBed[7] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 8 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 8 койку!");
HospitalBed[7] = playerid;
PlayerInfo[playerid][pBerth8] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,910.2390,-1277.1738,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 893.27924, -1280.20605, 998.25922))//9
{
if(HospitalBed[8] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 9 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 9 койку!");
HospitalBed[8] = playerid;
PlayerInfo[playerid][pBerth9] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,910.1337,-1283.0668,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 896.21667, -1280.20752, 998.25922))//10
{
if(HospitalBed[9] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 10 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 10 койку!");
HospitalBed[9] = playerid;
PlayerInfo[playerid][pBerth10] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,913.0986,-1282.2367,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 896.04327, -1275.12598, 998.25922))//11
{
if(HospitalBed[10] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 11 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 11 койку!");
HospitalBed[10] = playerid;
PlayerInfo[playerid][pBerth11] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,916.0704,-1282.5214,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
else if(PlayerToPoint(3.0, playerid, 896.04327, -1278.15625, 998.25922))//12
{
if(HospitalBed[11] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Койка под номером 12 уже занята!");
SendClientMessage(playerid, COLOR_GREY, "Поздравляем вы заняли 12 койку!");
HospitalBed[11] = playerid;
PlayerInfo[playerid][pBerth12] = 1;
TogglePlayerControllable(playerid, 0);
format(str, sizeof(str), "Последний пациент: %s", PlayerInfo[playerid][pNames]);
Create3DTextLabel(str,COLOR_RED,907.7652,-1290.8945,999.2600,15.0, 0, 1);
ApplyAnimation(playerid,"BEACH","Lay_Bac_Loop",4.1,0,1,1,1,1,1);
return 1;
}
}
return 1;
}

Помогите срочно прошу помощи.К примеру лёг на койке 2, а создался на другой койке 3дтекст.

Saibot
19.09.2016, 23:12
Проверьте правильно ли Вы указали координаты для Create3DTextLable.

Но вот прикола с PlayerInfo[playerid][pBerth1], я так и не понял, зачем было создавать 12 перечислений?
если одного будет достаточно.


new HospitalBed[12];
//------
publics: HPheck(playerid)
{
if PlayerInfo[playerid][pBerth1] == 1
|| PlayerInfo[playerid][pBerth2] == 1
|| PlayerInfo[playerid][pBerth3] == 1
|| PlayerInfo[playerid][pBerth4] == 1
|| PlayerInfo[playerid][pBerth5] == 1
|| PlayerInfo[playerid][pBerth6] == 1
|| PlayerInfo[playerid][pBerth7] == 1
|| PlayerInfo[playerid][pBerth8] == 1
|| PlayerInfo[playerid][pBerth9] == 1
|| PlayerInfo[playerid][pBerth10] == 1
|| PlayerInfo[playerid][pBerth11] == 1
|| PlayerInfo[playerid][pBerth12] == 1 *then
{
new Float: health;
GetPlayerHealth(playerid, health);
if floatcmp(health, 95) >= 0 *then
SetPlayerHealthAC(playerid, health + 5.0);

else
{
SendClientMessage(playerid, COLOR_YELLOW, !"Курс лечения завершён!");
TogglePlayerControllable(playerid, 1);
ApplyAnimation(playerid, !"PED", !"IDLE_CHAT", 4.1, 0, 1, 1, 0, 1000, 1);

PlayerInfo[playerid][pBerth1] =
PlayerInfo[playerid][pBerth2] =
PlayerInfo[playerid][pBerth3] =
PlayerInfo[playerid][pBerth4] =
PlayerInfo[playerid][pBerth5] =
PlayerInfo[playerid][pBerth6] =
PlayerInfo[playerid][pBerth7] =
PlayerInfo[playerid][pBerth8] =
PlayerInfo[playerid][pBerth9] =
PlayerInfo[playerid][pBerth10] =
PlayerInfo[playerid][pBerth11] =
PlayerInfo[playerid][pBerth12] =
PlayerInfo[playerid][pHospital] = 0;

for(new i = sizeof(HospitalBed); i-- != 0;)
{
if HospitalBed[i] != playerid *then
continue;

HospitalBed[i] = INVALID_PLAYER_ID;
break;
}
}
}
return 1;
}
//------
CMD:health(playerid)
{
new Float: health;

GetPlayerHealth(playerid, health);

if floatcmp(health, 99) >= 0 *then
return 1;

if PlayerInfo[playerid][pBerth1] == 1
|| PlayerInfo[playerid][pBerth2] == 1
|| PlayerInfo[playerid][pBerth3] == 1
|| PlayerInfo[playerid][pBerth4] == 1
|| PlayerInfo[playerid][pBerth5] == 1
|| PlayerInfo[playerid][pBerth6] == 1
|| PlayerInfo[playerid][pBerth7] == 1
|| PlayerInfo[playerid][pBerth8] == 1
|| PlayerInfo[playerid][pBerth9] == 1
|| PlayerInfo[playerid][pBerth10] == 1
|| PlayerInfo[playerid][pBerth11] == 1
|| PlayerInfo[playerid][pBerth12] == 1 *then
return SendClientMessage(playerid, COLOR_RED, !"Вы уже лежите в больнице!");

static const Float: position_bed [12] [6]
{
{905.75378, -1290.82129, 998.25958, 893.6427, -1274.9749, 999.9067},
{910.14984, -1279.21716, 998.26111, 893.9003, -1278.1630, 999.2600},
{916.04840, -1279.21313, 998.26190, 892.9685, -1282.5905, 999.2600},
{913.19598, -1279.21716, 998.26123, 895.8279, -1282.6334, 999.2600},
{916.28546, -1280.23486, 998.26123, 898.8099, -1282.6639, 999.2600},
{910.37219, -1280.23486, 998.26123, 916.6170, -1276.9943, 999.2600},
{913.16748, -1280.23486, 998.26123, 913.4777, -1277.0863, 999.2600},
{899.11810, -1280.20752, 998.25922, 910.2390, -1277.1738, 999.2600},
{893.27924, -1280.20605, 998.25922, 910.1337, -1283.0668, 999.2600},
{896.21667, -1280.20752, 998.25922, 913.0986, -1282.2367, 999.2600},
{896.04327, -1275.12598, 998.25922, 916.0704, -1282.5214, 999.2600},
{896.04327, -1278.15625, 998.25922, 907.7652, -1290.8945, 999.2600}
};
new bed_str[19 + MAX_PLAYER_NAME] = "Последний пациент: ";
for(new i = sizeof(position_bed); i-- != 0;)
{
if IsPlayerInRangeOfPoint(playerid, 2.0
,
position_bed[i][0],
position_bed[i][1],
position_bed[i][2]
*then
{
if(HospitalBed[i] != INVALID_PLAYER_ID)
return SendClientMessage(playerid, COLOR_GREY, !"Эта койка занята!");

HospitalBed[i] = playerid;

strcat(bed_str, PlayerInfo[playerid][pNames]);
Create3DTextLabel(bed_str, COLOR_RED
,
position_bed[i][3],
position_bed[i][4],
position_bed[i][5],
15.0, 0, 1
);
SendClientMessage(playerid, COLOR_GREY, !"Поздравляем вы заняли койку!");
switch(i)
{
case 1: PlayerInfo[playerid][pBerth1] = 1;
case 2: PlayerInfo[playerid][pBerth2] = 1;
case 3: PlayerInfo[playerid][pBerth3] = 1;
case 4: PlayerInfo[playerid][pBerth4] = 1;
case 5: PlayerInfo[playerid][pBerth5] = 1;
case 6: PlayerInfo[playerid][pBerth6] = 1;
case 7: PlayerInfo[playerid][pBerth7] = 1;
case 8: PlayerInfo[playerid][pBerth8] = 1;
case 9: PlayerInfo[playerid][pBerth9] = 1;
case 10: PlayerInfo[playerid][pBerth10] = 1;
case 11: PlayerInfo[playerid][pBerth11] = 1;
case 12: PlayerInfo[playerid][pBerth12] = 1;
}
}
}
return 1;
}

#NickName
21.09.2016, 05:16
Проверьте правильно ли Вы указали координаты для Create3DTextLable.

Но вот прикола с PlayerInfo[playerid][pBerth1], я так и не понял, зачем было создавать 12 перечислений?
если одного будет достаточно.


new HospitalBed[12];
//------
publics: HPheck(playerid)
{
if PlayerInfo[playerid][pBerth1] == 1
|| PlayerInfo[playerid][pBerth2] == 1
|| PlayerInfo[playerid][pBerth3] == 1
|| PlayerInfo[playerid][pBerth4] == 1
|| PlayerInfo[playerid][pBerth5] == 1
|| PlayerInfo[playerid][pBerth6] == 1
|| PlayerInfo[playerid][pBerth7] == 1
|| PlayerInfo[playerid][pBerth8] == 1
|| PlayerInfo[playerid][pBerth9] == 1
|| PlayerInfo[playerid][pBerth10] == 1
|| PlayerInfo[playerid][pBerth11] == 1
|| PlayerInfo[playerid][pBerth12] == 1 *then
{
new Float: health;
GetPlayerHealth(playerid, health);
if floatcmp(health, 95) >= 0 *then
SetPlayerHealthAC(playerid, health + 5.0);

else
{
SendClientMessage(playerid, COLOR_YELLOW, !"Курс лечения завершён!");
TogglePlayerControllable(playerid, 1);
ApplyAnimation(playerid, !"PED", !"IDLE_CHAT", 4.1, 0, 1, 1, 0, 1000, 1);

PlayerInfo[playerid][pBerth1] =
PlayerInfo[playerid][pBerth2] =
PlayerInfo[playerid][pBerth3] =
PlayerInfo[playerid][pBerth4] =
PlayerInfo[playerid][pBerth5] =
PlayerInfo[playerid][pBerth6] =
PlayerInfo[playerid][pBerth7] =
PlayerInfo[playerid][pBerth8] =
PlayerInfo[playerid][pBerth9] =
PlayerInfo[playerid][pBerth10] =
PlayerInfo[playerid][pBerth11] =
PlayerInfo[playerid][pBerth12] =
PlayerInfo[playerid][pHospital] = 0;

for(new i = sizeof(HospitalBed); i-- != 0;)
{
if HospitalBed[i] != playerid *then
continue;

HospitalBed[i] = INVALID_PLAYER_ID;
break;
}
}
}
return 1;
}
//------
CMD:health(playerid)
{
new Float: health;

GetPlayerHealth(playerid, health);

if floatcmp(health, 99) >= 0 *then
return 1;

if PlayerInfo[playerid][pBerth1] == 1
|| PlayerInfo[playerid][pBerth2] == 1
|| PlayerInfo[playerid][pBerth3] == 1
|| PlayerInfo[playerid][pBerth4] == 1
|| PlayerInfo[playerid][pBerth5] == 1
|| PlayerInfo[playerid][pBerth6] == 1
|| PlayerInfo[playerid][pBerth7] == 1
|| PlayerInfo[playerid][pBerth8] == 1
|| PlayerInfo[playerid][pBerth9] == 1
|| PlayerInfo[playerid][pBerth10] == 1
|| PlayerInfo[playerid][pBerth11] == 1
|| PlayerInfo[playerid][pBerth12] == 1 *then
return SendClientMessage(playerid, COLOR_RED, !"Вы уже лежите в больнице!");

static const Float: position_bed [12] [6]
{
{905.75378, -1290.82129, 998.25958, 893.6427, -1274.9749, 999.9067},
{910.14984, -1279.21716, 998.26111, 893.9003, -1278.1630, 999.2600},
{916.04840, -1279.21313, 998.26190, 892.9685, -1282.5905, 999.2600},
{913.19598, -1279.21716, 998.26123, 895.8279, -1282.6334, 999.2600},
{916.28546, -1280.23486, 998.26123, 898.8099, -1282.6639, 999.2600},
{910.37219, -1280.23486, 998.26123, 916.6170, -1276.9943, 999.2600},
{913.16748, -1280.23486, 998.26123, 913.4777, -1277.0863, 999.2600},
{899.11810, -1280.20752, 998.25922, 910.2390, -1277.1738, 999.2600},
{893.27924, -1280.20605, 998.25922, 910.1337, -1283.0668, 999.2600},
{896.21667, -1280.20752, 998.25922, 913.0986, -1282.2367, 999.2600},
{896.04327, -1275.12598, 998.25922, 916.0704, -1282.5214, 999.2600},
{896.04327, -1278.15625, 998.25922, 907.7652, -1290.8945, 999.2600}
};
new bed_str[19 + MAX_PLAYER_NAME] = "Последний пациент: ";
for(new i = sizeof(position_bed); i-- != 0;)
{
if IsPlayerInRangeOfPoint(playerid, 2.0
,
position_bed[i][0],
position_bed[i][1],
position_bed[i][2]
*then
{
if(HospitalBed[i] != INVALID_PLAYER_ID)
return SendClientMessage(playerid, COLOR_GREY, !"Эта койка занята!");

HospitalBed[i] = playerid;

strcat(bed_str, PlayerInfo[playerid][pNames]);
Create3DTextLabel(bed_str, COLOR_RED
,
position_bed[i][3],
position_bed[i][4],
position_bed[i][5],
15.0, 0, 1
);
SendClientMessage(playerid, COLOR_GREY, !"Поздравляем вы заняли койку!");
switch(i)
{
case 1: PlayerInfo[playerid][pBerth1] = 1;
case 2: PlayerInfo[playerid][pBerth2] = 1;
case 3: PlayerInfo[playerid][pBerth3] = 1;
case 4: PlayerInfo[playerid][pBerth4] = 1;
case 5: PlayerInfo[playerid][pBerth5] = 1;
case 6: PlayerInfo[playerid][pBerth6] = 1;
case 7: PlayerInfo[playerid][pBerth7] = 1;
case 8: PlayerInfo[playerid][pBerth8] = 1;
case 9: PlayerInfo[playerid][pBerth9] = 1;
case 10: PlayerInfo[playerid][pBerth10] = 1;
case 11: PlayerInfo[playerid][pBerth11] = 1;
case 12: PlayerInfo[playerid][pBerth12] = 1;
}
}
}
return 1;
}

Вставил я команду
CMD:health(playerid)
{
new Float: health;

GetPlayerHealth(playerid, health);

if floatcmp(health, 99) >= 0 *then
return 1;

if(PlayerInfo[playerid][pBerth1] == 1
|| PlayerInfo[playerid][pBerth2] == 1
|| PlayerInfo[playerid][pBerth3] == 1
|| PlayerInfo[playerid][pBerth4] == 1
|| PlayerInfo[playerid][pBerth5] == 1
|| PlayerInfo[playerid][pBerth6] == 1
|| PlayerInfo[playerid][pBerth7] == 1
|| PlayerInfo[playerid][pBerth8] == 1
|| PlayerInfo[playerid][pBerth9] == 1
|| PlayerInfo[playerid][pBerth10] == 1
|| PlayerInfo[playerid][pBerth11] == 1
|| PlayerInfo[playerid][pBerth12] == 1)
return SendClientMessage(playerid, COLOR_RED, !"Вы уже лежите в больнице!");

static const Float: position_bed[12][6]=
{
{905.75378, -1290.82129, 998.25958, 893.6427, -1274.9749, 999.9067},
{910.14984, -1279.21716, 998.26111, 893.9003, -1278.1630, 999.2600},
{916.04840, -1279.21313, 998.26190, 892.9685, -1282.5905, 999.2600},
{913.19598, -1279.21716, 998.26123, 895.8279, -1282.6334, 999.2600},
{916.28546, -1280.23486, 998.26123, 898.8099, -1282.6639, 999.2600},
{910.37219, -1280.23486, 998.26123, 916.6170, -1276.9943, 999.2600},
{913.16748, -1280.23486, 998.26123, 913.4777, -1277.0863, 999.2600},
{899.11810, -1280.20752, 998.25922, 910.2390, -1277.1738, 999.2600},
{893.27924, -1280.20605, 998.25922, 910.1337, -1283.0668, 999.2600},
{896.21667, -1280.20752, 998.25922, 913.0986, -1282.2367, 999.2600},
{896.04327, -1275.12598, 998.25922, 916.0704, -1282.5214, 999.2600},
{896.04327, -1278.15625, 998.25922, 907.7652, -1290.8945, 999.2600}
};
new bed_str[19 + MAX_PLAYER_NAME] = "Последний пациент: ";
for(new i = sizeof(position_bed); i-- != 0;)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, position_bed[i][0], position_bed[i][1], position_bed[i][2]))
{
if(HospitalBed[i] != INVALID_PLAYER_ID)
return SendClientMessage(playerid, COLOR_GREY, !"Эта койка занята!");

HospitalBed[i] = playerid;

strcat(bed_str, PlayerInfo[playerid][pNames]);
Create3DTextLabel(bed_str, COLOR_RED
,
position_bed[i][3],
position_bed[i][4],
position_bed[i][5],
15.0, 0, 1
);
SendClientMessage(playerid, COLOR_GREY, !"Поздравляем вы заняли койку!");
switch(i)
{
case 1: PlayerInfo[playerid][pBerth1] = 1;
case 2: PlayerInfo[playerid][pBerth2] = 1;
case 3: PlayerInfo[playerid][pBerth3] = 1;
case 4: PlayerInfo[playerid][pBerth4] = 1;
case 5: PlayerInfo[playerid][pBerth5] = 1;
case 6: PlayerInfo[playerid][pBerth6] = 1;
case 7: PlayerInfo[playerid][pBerth7] = 1;
case 8: PlayerInfo[playerid][pBerth8] = 1;
case 9: PlayerInfo[playerid][pBerth9] = 1;
case 10: PlayerInfo[playerid][pBerth10] = 1;
case 11: PlayerInfo[playerid][pBerth11] = 1;
case 12: PlayerInfo[playerid][pBerth12] = 1;
}
}
}
return 1;
}

Сейчас вообще не у какой койки не пашет