PDA

Просмотр полной версии : [Вопрос] ID пикапов



Vano_Glad
27.10.2015, 12:55
Всем привет! Дело в том, что когда почти закончил делать систему домов, то когда встаю на пикап дома, то выводит совершенно не тот ID дома. Допустим встаю на ID Дома 5, а выводит в чат 25, встаю на 6, выводит 23 и т.д

Вот сам цикл:


for(new h = 0; h < sizeof(House); h++)
{
if(pickupid == House[h][hPickup])
{
f("Номер дома: %d", h);
SCM(playerid, COLOR_WHITE, string);
}
}

Перепробовал много способов, но все тщетно. Если есть мысли - пишите

Daniel_Cortez
27.10.2015, 13:16
Как создаёте пикапы?

Vano_Glad
27.10.2015, 14:07
CMD:setpos(playerid, params[])
{
if(Player[playerid][pAdmin] < 8) return ESCM;
Adm2;
Adm1;
new string[128];
new query[128];
if(sscanf(params, "i", params[0])) return SCM(playerid, COLOR_WHITE, "Введите: /setpos [ID дома]");
if(params[0] < 0 || params[0] > 594) return SCM(playerid, COLOR_GREY, "ID дома не может быть меньше 0 или больше 594!");
new Float: X;
new Float: Y;
new Float: Z;
GetPlayerPos(playerid, X, Y, Z);
House[params[0]][hX][0] = X;
House[params[0]][hY][0] = Y;
House[params[0]][hZ][0] = Z;
UpdateHouse(params[0]);
mysql_format(Connection, query, sizeof(query), "UPDATE `house` SET ");
f("`Pickup X`= '%f',", House[params[0]][hX][0]);
strcat(query, string, sizeof(query));
f("`Pickup Y`= '%f',", House[params[0]][hY][0]);
strcat(query, string, sizeof(query));
f("`Pickup Z`= '%f'", House[params[0]][hZ][0]);
strcat(query, string, sizeof(query));
f("WHERE ID = '%d'", House[params[0]][hID]);
strcat(query, string, sizeof(query));
mysql_function_query(Connection, query, true, "", "");
f("Координаты дома №%d успшно изменены", params[0]);
SCM(playerid, COLOR_WHITE, string);
return true;
}


stock UpdateHouse(h)
{
DestroyDynamicMapIcon(House[h][hIcon]);
DestroyDynamicPickup(House[h][hPickup]);
if(strcmp(House[h][hPlayer],"None",true) == 0)
{
House[h][hPickup] = CreateDynamicPickup(1273, 23, House[h][hX][0], House[h][hY][0], House[h][hZ][0]);
House[h][hIcon] = CreateDynamicMapIcon(House[h][hX][0], House[h][hY][0], House[h][hZ][0], 31, 0, -1, -1, -1, 200.0);
}
else
{
House[h][hPickup] = CreateDynamicPickup(1272, 23, House[h][hX][0], House[h][hY][0], House[h][hZ][0]);
House[h][hIcon] = CreateDynamicMapIcon(House[h][hX][0], House[h][hY][0], House[h][hZ][0], 32, 0, -1, -1, -1, 200.0);
}
}

Daniel_Cortez
27.10.2015, 15:19
Я так понимаю, вы обрабатываете события в коллбэке для стандартных пикапов (OnPlayerPickUpPickup).
Так вот, для динамических пикапов в стримере есть коллбэк OnPlayerPickUpDynamicPickup.
То же самое правило работает ещё и для динамических объектов и чекпоинтов.

Vano_Glad
27.10.2015, 15:47
Daniel_Cortez

Все верно. Спасибо за информацию. Не знал. Тема закрыта