Проверка, находится ли игрок в кубе.
Параметры:
Code: Select all
(playerid, MinX, MaxX, MinY, MaxY, MinZ, MaxZ);
playerid - id игрока, для которого проверяется нахождение в кубе;
MinX - минимальная координата по оси X;
MaxX - максимальная координата по оси X;
MinY - минимальная координата по оси Y;
MaxY - максимальная координата по оси Y;
MinZ - минимальная координата по оси Z;
MaxZ - максимальная координата по оси Z.
Code: Select all
stock IsPlayerInCube(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy, Float:minz, Float:maxz)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(x > minx && x < maxx && y > miny && y < maxy && z > minz && z < maxz) return 1;
return 0;
}
Пример:
Code: Select all
if(IsPlayerInCube(playerid, 1358.6932, -48.9437, 1000.9324, 1419.7643, 7.0937, 1008.1563))
{
//если игрок в этом кубе, то выполним
...
}
Как узнать координаты.
Встаем в левый нижний угол создаваемой вами зоны, получаем координаты командой (/save). Далее встаем в правый верхний угол и снова получаем координаты. Допустим, мы уже получили вот такие координаты:
AddPlayerClass(0,2021.0109,1343.0779,10.8130,256.6816,0,0,0,0,0,0);
AddPlayerClass(0,2038.6593,1343.9640,10.3990,180.1545,0,0,0,0,0,0);
Берем из этих координат минимальную X-координату - 2021.0109 и ставим ее первой в скобках.
Затем, через запятую минимальную Y-координату - 1343.0779
Потом минимальную Z-координату – 10.3990
Дальше то же самое, но уже максимальные координаты. Должно получиться так:
IsPlayerInCube(playerid, 2021.0109,1343.0779, 10.3990, 1419.7643, 7.0937, 1008.1563)