13.05.2013, 05:22
Всем привет. У меня такой вот вопрос. Сделал выбор скинов через новую систему 0.3х и всё работает. Но для TDM режима надо сделать так, чтобы на определённой странице отображались определённые скины (в разных количествах)
То есть сейчас на одной странице такой системы отображается 21 скин (3 строки, по 7 скинов в каждой). А мне надо чтобы на первой странице отображалось, например, 4 скина, на второй - 7, на третьей - 3 и т.д.
Все мои умозаключения дошли до того, что за распределение скинов по странице отвечает вот этот код
Но знаний не хватает для того, чтобы переделать его под мои нужны.
---
Функция немного переделана. Все отличия в этом куске
В общем, как реализовать задуманное, может кто подсказать?
P.S. Код взят из FS "skinchanger", идущего вместе с дефолтным сервером SA-MP
UPD: Извиняюсь, если подобная тема была. Просто не представляю как надо задать вопрос, чтобы выйти на такую тему =)
То есть сейчас на одной странице такой системы отображается 21 скин (3 строки, по 7 скинов в каждой). А мне надо чтобы на первой странице отображалось, например, 4 скина, на второй - 7, на третьей - 3 и т.д.
Все мои умозаключения дошли до того, что за распределение скинов по странице отвечает вот этот код
PHP код:
ShowPlayerModelPreviews(playerid)
{
new x=0;
new Float:BaseX = DIALOG_BASE_X;
new Float:BaseY = DIALOG_BASE_Y - (SPRITE_DIM_Y * 0.33); // down a bit
new linetracker = 0;
new itemat = GetPVarInt(playerid, "skinc_page") * SELECTION_ITEMS;
// Destroy any previous ones created
DestroyPlayerModelPreviews(playerid);
while(x != SELECTION_ITEMS && itemat < gTotalItems)
{
if(linetracker == 0)
{
BaseX = DIALOG_BASE_X + 25.0;
BaseY += SPRITE_DIM_Y + 1.0;
}
if(PlayerInFirstWorld[playerid]==1)
{
gSelectionItemsW1[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemListW1[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
gSelectionItemsTagW1[playerid][x] = gItemListW1[itemat];
}
else if(PlayerInSecondWorld[playerid]==1)
{
gSelectionItemsW2[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemListW2[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
gSelectionItemsTagW2[playerid][x] = gItemListW2[itemat];
}
BaseX += SPRITE_DIM_X + 1.0; // move on the X for the next sprite
linetracker++;
if(linetracker == ITEMS_PER_LINE) linetracker = 0;
itemat++;
x++;
}
}
---
Функция немного переделана. Все отличия в этом куске
PHP код:
if(PlayerInFirstWorld[playerid]==1)
{
gSelectionItemsW1[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemListW1[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
gSelectionItemsTagW1[playerid][x] = gItemListW1[itemat];
}
else if(PlayerInSecondWorld[playerid]==1)
{
gSelectionItemsW2[playerid][x] = CreateModelPreviewTextDraw(playerid, gItemListW2[itemat], BaseX, BaseY, SPRITE_DIM_X, SPRITE_DIM_Y);
gSelectionItemsTagW2[playerid][x] = gItemListW2[itemat];
}
P.S. Код взят из FS "skinchanger", идущего вместе с дефолтным сервером SA-MP
UPD: Извиняюсь, если подобная тема была. Просто не представляю как надо задать вопрос, чтобы выйти на такую тему =)