Просмотр полной версии : [Вопрос] Как найти квадрат из позиции игрока.
Нужно сделать создание гангзоны из того места, где стоит игрок.
Нужна функция типа GetPlayerKvadrat.
CMD:zone(playerid, params[])
{
new Float: bzX;
new Float: bzY;
new Float: bzZ;
GetPlayerPos(playerid, bzX, bzY, bzZ);
myzone[playerid] = GangZoneCreate(?, ?, ?, ?);
return 1;
}
Вроде разобрался.
CMD:bzon(playerid)
{
new Float:bzX,Float:bzY,Float:bzZ;
GetPlayerPos(playerid, bzX, bzY, bzZ);
battlezone[playerid] = CreateDynamicRectangle(bzX-100.0, bzY-100.0, bzX+100.0, bzY+100.0, 0, 0, -1);
myzone[playerid] = GangZoneCreate(bzX-100.0, bzY-100.0, bzX+100.0, bzY+100.0);
GangZoneShowForAll(myzone[playerid],COLOR_RED);
return 1;
}
Спасибо, что поделились решением.
Daniel_Cortez
07.10.2015, 02:35
Вроде разобрался.
CMD:bzon(playerid)
{
new Float:bzX,Float:bzY,Float:bzZ;
GetPlayerPos(playerid, bzX, bzY, bzZ);
battlezone[playerid] = CreateDynamicRectangle(bzX-100.0, bzY-100.0, bzX+100.0, bzY+100.0, 0, 0, -1);
myzone[playerid] = GangZoneCreate(bzX-100.0, bzY-100.0, bzX+100.0, bzY+100.0);
GangZoneShowForAll(myzone[playerid],COLOR_RED);
return 1;
}
Выглядит более-менее правильно, но в чём смысл создавать динамический регион (CreateDynamicRectangle)?
Вы его вообще как-нибудь используете? И удаляете ли вы регион при выходе игрока с сервера? (я так понимаю, именно при выходе игрока нужно убирать регион, раз индексация сделана по ID игрока, иначе каждый игрок сможет бесконтрольно создавать регионы, пока сервер не зависнет)
Да, использую регион в случае входа или выхода игрока из него вывожу ему SCM. Насчет удаления при дисконнекте, возможно не обратил бы на это должное внимание, благодарю.
Daniel_Cortez
07.10.2015, 06:59
Да, использую регион в случае входа или выхода игрока из него вывожу ему SCM. Насчет удаления при дисконнекте, возможно не обратил бы на это должное внимание, благодарю.
Чуть не забыл, во время повторного использовани команды регион тоже нужно удалять (либо вообще запретить повторное использование). Иначе ID старого региона будет перезаписан ID нового региона, а старый так и потеряется, а заодно ещё и появится возможность флудом командой насоздавать кучу регионов и повесить сервер.
Чуть не забыл, во время повторного использовани команды регион тоже нужно удалять (либо вообще запретить повторное использование). Иначе ID старого региона будет перезаписан ID нового региона, а старый так и потеряется, а заодно ещё и появится возможность флудом командой насоздавать кучу регионов и повесить сервер.
Да, спасибо ещё раз, замечал то же самое с таймерами, после освобождения из КПЗ, игрока несколько раз "освобождало" т.к. таймер выставлялся несколько раз после смерти в КПЗ. Сделал удаление и сразу повторное выставление цикличного посекундного таймера, а потом и вовсе переделал под не цикличный.
С созданием региона есть переменная на проверку - создан регион уже или нет. Пока не закончится время в таймере, нельзя создать регион повторно. Также по истечении времени регион удаляю.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot