Просмотр полной версии : [Вопрос] Проверка
Вообщем делаю цент купли-продажи, делаю покупку домов. Смысл заключается в том что когда нажимаешь дом,
Тебя отправляет камера на первый свободный дом.
Если свободных домов на сервере нету, нужно что бы сообщение выводило.
Помогите сделать проверку, я чет пытался, но не понял как правильнее будет сделать.
P.S. Додумался.
case dStateHouse:
{
new test = 0;
for(new houseid = 1; houseid <= TotalHouse; houseid++) if(HouseInfo[houseid][hOwned] == 0) test++;
if(test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
if(test > 0)
{
for(new i = 1; i <= TotalHouse; i++)
{
if(HouseInfo[i][hOwned] == 0)
{
SetPlayerCameraPos(playerid, HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]+5);
SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]);
}
}
return true;
}
}
Мужики, как сделать что бы камера всегда ровно была направлена на иконку дома ? Что бы не зависело где стоит дом.
Так же, у кого нибудь есть идеи по оптимизации моего кода выше?)
for(new houseid = 1; houseid <= TotalHouse; houseid++) if(HouseInfo[houseid][hOwned] == 0) test++;
if(test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
if(test > 0)
{
for(new i = 1; i <= TotalHouse; i++)
{
Ты серьезно?
Зачем 2 цикла?
new test;
for(new i = 1; i <= TotalHouse; i++)
{
if(HouseInfo[i][hOwned]) continue;
SetPlayerCameraPos(playerid, HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]+5);
SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]);
test++;
break;
}
if(test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
Мужики, как сделать что бы камера всегда ровно была направлена на иконку дома ? Что бы не зависело где стоит дом.
Так же, у кого нибудь есть идеи по оптимизации моего кода выше?)
А здесь на каждый дом нужно сохранять координаты.
enum HouseCord =
{
Float:Pos[6],
}
static const Float:HouseCoordination[MAX_HOUSE][HouseCord] =
{
{{x,y,z, x2,y2,z2}}
}
SetPlayerCameraPos(playerid, HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
SetPlayerCameraLookAt(playerid,HouseCoordination[i][Pos][3], HouseCoordination[i][Pos][4], HouseCoordination[i][Pos][5]);
SetPlayerPos(playerid,HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
Ты серьезно?
Зачем 2 цикла?
new test;
for(new i = 1; i <= TotalHouse; i++)
{
if(HouseInfo[i][hOwned]) continue;
SetPlayerCameraPos(playerid, HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]+5);
SetPlayerCameraLookAt(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
SetPlayerPos(playerid,HouseInfo[i][hEntrancex] -10.0, HouseInfo[i][hEntrancey] -15.0, HouseInfo[i][hEntrancez]);
test++;
break;
}
if(test == 0) return SendClientMessage(playerid,COLOR_WHITE,"В данный момент на сервере нету свободных домов!");
А здесь на каждый дом нужно сохранять координаты.
enum HouseCord =
{
Float:Pos[6],
}
static const Float:HouseCoordination[MAX_HOUSE][HouseCord] =
{
{{x,y,z, x2,y2,z2}}
}
SetPlayerCameraPos(playerid, HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
SetPlayerCameraLookAt(playerid,HouseCoordination[i][Pos][3], HouseCoordination[i][Pos][4], HouseCoordination[i][Pos][5]);
SetPlayerPos(playerid,HouseCoordination[i][Pos][0], HouseCoordination[i][Pos][1], HouseCoordination[i][Pos][2]);
Я так понимаю что по позиции пикапа дома нельзя сделать камеру? (Что бы ровно шла) ?
Я так понимаю что по позиции пикапа дома нельзя сделать камеру? (Что бы ровно шла) ?
Не-а, по объектам можно было бы, а по пикапам/чекпоинтам нельзя, разве что дом сверху показывать, либо показывать интерьер дома.
Не-а, по объектам можно было бы, а по пикапам/чекпоинтам нельзя, разве что дом сверху показывать, либо показывать интерьер дома.
Если пикап заменить на объект, тогда возможно было бы?
Если пикап заменить на объект, тогда возможно было бы?
Если создавать через CreateDynamicObject, то вполне, но нужно устанавливать все объекты спиной к двери.
Используя координату rY можно узнавать угол поворота объекта, туда и направлять камеру
Если создавать через CreateDynamicObject, то вполне, но нужно устанавливать все объекты спиной к двери.
Используя координату rY можно узнавать угол поворота объекта, туда и направлять камеру
Кхм, спасибо. Пример создание камеры с верным углом поворота rY можно?
Допустим координаты: rx: 969.434, ry:-1309.21, rz: 13.555
но нужно устанавливать все объекты спиной к двери.
Забудь.. Устанавливай лицом к двери.
Тогда получится примерно вот так:
SetPlayerCameraPos(playerid, x+15.0, y, z);
SetPlayerCameraLookAt(playerid, 969.434, -1309.21, 13.555);
На практике не проверял, но попробуй..
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot