PDA

Просмотр полной версии : [Вопрос] Отображение гангзон



Albert
14.01.2015, 17:56
Если гангзоны у меня в этом массиве, то как сделать чтобы они отображались на сервере?


new Float:GangZone[49][4] = {

{-372.2925,-1432.8495, -382.8439,-1448.6632},
{-85.6150,-1132.1643, -67.3869,-1120.7559},
{-1016.7147,-600.9866, -1125.5768,-665.6058},
{-1034.7889,-1226.8389, -1083.4275,-1136.3461},
{-1078.9882,-1612.1904, -1126.7797,-1691.0603},
{-401.6305,-1759.4034, -434.4098,-1756.0272},
{-1655.3143,-2226.2542, -1610.1273,-2265.3086},
{-2399.8899,-2168.4504, -2419.7776,-2208.2461},
{-1581.3406,-2749.1577, -1515.4321,-2746.4409},
{-302.1987,-2143.2571, -243.0864,-2207.5808},
};

L0ndl3m
14.01.2015, 18:45
Тык (http://g.zeos.in/?q=%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B3%D0%B0%D0%BD%D0%B3-%D0%B7%D0%BE%D0%BD%D1%8B%20%D0%B2%20SA%3AMP%3F).

Mazzilla
14.01.2015, 20:33
for(new i; i<sizeof(GangZone); i++)
GangZoneShowForAll(GangZoneCreate(GangZone[i][0], GangZone[i][1], GangZone[i][2], GangZone[i][3]), 0xFFFFFFAA);

Albert
14.01.2015, 21:04
for(new i; i<sizeof(GangZone); i++)
GangZoneShowForAll(GangZoneCreate(GangZone[i][0], GangZone[i][1], GangZone[i][2], GangZone[i][3]), 0xFFFFFFAA);

Огромное всем спасибо :thank_you:

- - - Добавлено - - -

А как создать цвет отдельно для каждой фракции? Т, е. у меня 4 фракции и я хочу 4 цвета. Тут 1 цвет указан

Albert
14.01.2015, 21:59
Вот так загружается база данных о том кому какая зона пренадлежит:


stock LoadGang()
{
new gang[50];

format(gang,sizeof(gang),"frack/gang.ini");
new iniFile = ini_openFile (gang);
{

ini_getInteger(iniFile,"Band1",GangsInfo[1][Band]);
ini_getInteger(iniFile,"Band2",GangsInfo[2][Band]);
ini_getInteger(iniFile,"Band3",GangsInfo[3][Band]);
ini_getInteger(iniFile,"Band4",GangsInfo[4][Band]);
ini_getInteger(iniFile,"Band5",GangsInfo[5][Band]);
ini_getInteger(iniFile,"Band6",GangsInfo[6][Band]);
ini_getInteger(iniFile,"Band7",GangsInfo[7][Band]);
ini_getInteger(iniFile,"Band8",GangsInfo[8][Band]);
ini_getInteger(iniFile,"Band9",GangsInfo[9][Band]);
ini_getInteger(iniFile,"Band10",GangsInfo[10][Band]);

ini_closeFile(iniFile);
}
return true;
}
Переменная Band - хранит ID фракции.
Как мне сделать чтобы гангзоны принимали цвет, соответствующей фракции? К примеру::

гангзона 1 принимает цвет Band1
гангзона 2 принимает цвет band2
гангзона 3 принимает цвет band3 и т. д.




Т. е. 10 зон. 4 фракции.
1 фракция: голубой цвет
2. фракция: серый цвет
3. фракций: зелёный цвет
4. фракция: красный цвет.


Как мне поступить? Я путаюсь и не знаю

L0ndl3m
14.01.2015, 22:20
static const
fraction_colors[] = {
0x0000FFFF, // синий
0xAAAAAAFF, // серый
0x00CC00FF, // зелёный
0xFF0000FF // красный
};


Используете например так:

fraction_colors[1] // вернёт серый цвет ( 0xAAAAAAFF )

Albert
14.01.2015, 22:39
куда мне константы эти вствлять?

Albert
14.01.2015, 23:21
Ребята. Я не догоняю. Я хочу понять. "тыкните мне, пожалуйста, пальцем".
Сделал по другому.


gang1 = GangZoneCreate (-372.2925,-1432.8495, -382.8439,-1448.6632);

gang2 = GangZoneCreate (-85.6150,-1132.1643, -67.3869,-1120.7559);
gang3 = GangZoneCreate (-1016.7147,-600.9866, -1125.5768,-665.6058);

gang4 = GangZoneCreate (-1034.7889,-1226.8389, -1083.4275,-1136.3461);

gang5 = GangZoneCreate (-1078.9882,-1612.1904, -1126.7797,-1691.0603);
gang6 = GangZoneCreate (-401.6305,-1759.4034, -434.4098,-1756.0272);
gang7 = GangZoneCreate (-1655.3143,-2226.2542, -1610.1273,-2265.3086);
gang8 = GangZoneCreate (-2399.8899,-2168.4504, -2419.7776,-2208.2461);
gang9 = GangZoneCreate (-1581.3406,-2749.1577, -1515.4321,-2746.4409);
gang10 = GangZoneCreate (-302.1987,-2143.2571, -243.0864,-2207.5808);

GangZoneShowForAll(gang1, 0x660000AA );
GangZoneShowForAll(gang2, 0x660000AA );
GangZoneShowForAll(gang3, 0x660000AA );
GangZoneShowForAll(gang4, 0x00EEADDF );

GangZoneShowForAll(gang5, 0x00EEADDF);
GangZoneShowForAll(gang6, 0x00EEADDF);
GangZoneShowForAll(gang7, 0xFF9900AA);

GangZoneShowForAll(gang8, 0xFF9900AA);

GangZoneShowForAll(gang9, 0xDDDD2357 );
GangZoneShowForAll(gang10, 0xDDDD2357 );


Как мне сделать следующее:
Если Band1 = 1, то gang1 принимает цвет 1
Если Band2 = 2, то gang2 принимает цвет 2
Если Band3 = 3, то gang3 принимает цвет 3
Если Ban4 = 1, то gang4 принимает цвет 1
Т. е.
1 = голубой
2 = серый
3 = зелёный
4 = красный

Лондлем написал мне


static const
fraction_colors[] = {
0x0000FFFF, // синий
0xAAAAAAFF, // серый
0x00CC00FF, // зелёный
0xFF0000FF // красный
};

и


fraction_colors[1]

А я не сообразил что это такое.
Ну видемо первое нужно ко всем переменным, а второй на место цвета в GangZoneShowForAll(gang10, 0xDDDD2357 );
К примеру:
GangZoneShowForAll(gang10, fraction_colors[1]);

А если эту зону захватит другая банда. Как переназначить цвет?
Написать в скрипте захвата что fraction_colors[1] = fraction_colors[2] ? Я не соображаю.

Мне ведь надо чтобы зоны меняли свой цвет во время игры. Я ведь потом сделаю систему захвата этих зон.

Albert
15.01.2015, 00:35
Кто ищет - тот всегда найдёт.


stock ColorGang1()
{
if (GangsInfo[1][Band] == 1)
{
GangZoneShowForAll(gang1, 0x0000FFFF);
}
else if (GangsInfo[1][Band] == 2)
{
GangZoneShowForAll(gang1, 0xAAAAAAFF);
}
else if (GangsInfo[1][Band] == 3)
{
GangZoneShowForAll(gang1, 0x00CC00FF);
}
else if (GangsInfo[1][Band] == 4)
{
GangZoneShowForAll(gang1, 0xFF0000FF);
}

}

stock ColorGang2()
{
if (GangsInfo[2][Band] == 1)
{
GangZoneShowForAll(gang2, 0x0000FFFF);
}
else if (GangsInfo[2][Band] == 2)
{
GangZoneShowForAll(gang2, 0xAAAAAAFF);
}
else if (GangsInfo[2][Band] == 3)
{
GangZoneShowForAll(gang2, 0x00CC00FF);
}
else if (GangsInfo[2][Band] == 4)
{
GangZoneShowForAll(gang2, 0xFF0000FF);
}

}

stock ColorGang3()
{
if (GangsInfo[3][Band] == 1)
{
GangZoneShowForAll(gang3, 0x0000FFFF);
}
else if (GangsInfo[3][Band] == 2)
{
GangZoneShowForAll(gang3, 0xAAAAAAFF);
}
else if (GangsInfo[3][Band] == 3)
{
GangZoneShowForAll(gang3, 0x00CC00FF);
}
else if (GangsInfo[3][Band] == 4)
{
GangZoneShowForAll(gang3, 0xFF0000FF);
}

}


stock ColorGang4()
{
if (GangsInfo[4][Band] == 1)
{
GangZoneShowForAll(gang4, 0x0000FFFF);
}
else if (GangsInfo[4][Band] == 2)
{
GangZoneShowForAll(gang4, 0xAAAAAAFF);
}
else if (GangsInfo[4][Band] == 3)
{
GangZoneShowForAll(gang4, 0x00CC00FF);
}
else if (GangsInfo[4][Band] == 4)
{
GangZoneShowForAll(gang4, 0xFF0000FF);
}

}

stock ColorGang5()
{
if (GangsInfo[5][Band] == 1)
{
GangZoneShowForAll(gang5, 0x0000FFFF);
}
else if (GangsInfo[5][Band] == 2)
{
GangZoneShowForAll(gang5, 0xAAAAAAFF);
}
else if (GangsInfo[5][Band] == 3)
{
GangZoneShowForAll(gang5, 0x00CC00FF);
}
else if (GangsInfo[5][Band] == 4)
{
GangZoneShowForAll(gang5, 0xFF0000FF);
}

}

stock ColorGang6()
{
if (GangsInfo[6][Band] == 1)
{
GangZoneShowForAll(gang6, 0x0000FFFF);
}
else if (GangsInfo[6][Band] == 2)
{
GangZoneShowForAll(gang6, 0xAAAAAAFF);
}
else if (GangsInfo[6][Band] == 3)
{
GangZoneShowForAll(gang6, 0x00CC00FF);
}
else if (GangsInfo[6][Band] == 4)
{
GangZoneShowForAll(gang6, 0xFF0000FF);
}

}

stock ColorGang7()
{
if (GangsInfo[7][Band] == 1)
{
GangZoneShowForAll(gang7, 0x0000FFFF);
}
else if (GangsInfo[7][Band] == 2)
{
GangZoneShowForAll(gang7, 0xAAAAAAFF);
}
else if (GangsInfo[7][Band] == 3)
{
GangZoneShowForAll(gang7, 0x00CC00FF);
}
else if (GangsInfo[7][Band] == 4)
{
GangZoneShowForAll(gang7, 0xFF0000FF);
}

}

stock ColorGang8()
{
if (GangsInfo[8][Band] == 1)
{
GangZoneShowForAll(gang8, 0x0000FFFF);
}
else if (GangsInfo[8][Band] == 2)
{
GangZoneShowForAll(gang8, 0xAAAAAAFF);
}
else if (GangsInfo[8][Band] == 3)
{
GangZoneShowForAll(gang8, 0x00CC00FF);
}
else if (GangsInfo[8][Band] == 4)
{
GangZoneShowForAll(gang8, 0xFF0000FF);
}

}

stock ColorGang9()
{
if (GangsInfo[9][Band] == 1)
{
GangZoneShowForAll(gang9, 0x0000FFFF);
}
else if (GangsInfo[9][Band] == 2)
{
GangZoneShowForAll(gang9, 0xAAAAAAFF);
}
else if (GangsInfo[9][Band] == 3)
{
GangZoneShowForAll(gang9, 0x00CC00FF);
}
else if (GangsInfo[9][Band] == 4)
{
GangZoneShowForAll(gang9, 0xFF0000FF);
}

}
stock ColorGang10()
{
if (GangsInfo[10][Band] == 1)
{
GangZoneShowForAll(gang10, 0x0000FFFF);
}
else if (GangsInfo[10][Band] == 2)
{
GangZoneShowForAll(gang10, 0xAAAAAAFF);
}
else if (GangsInfo[10][Band] == 3)
{
GangZoneShowForAll(gang10, 0x00CC00FF);
}
else if (GangsInfo[10][Band] == 4)
{
GangZoneShowForAll(gang10, 0xFF0000FF);
}

}

Проблемма решена. Всем спасибо. :good2:

gangzone.ini
15.01.2015, 16:26
Как по мне, так лучше сделать загрузку и сохранение через файлы/базу данных.