Как один из старожилов SA-MP'а, я помню, каков был интерфейс выбора класса в старых версиях клиентов. Мне он очень нравился, и я решил его восстановить.
Автор: OKStyle
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
#include <a_samp>
// SA-MP 0.2.2 Class Selection Style by O.K.Style™
new
Text:ClassTD[20],
Text:TempClassTD[MAX_PLAYERS][4];
new ClassWeapon[8][3] = { // fillup and edited as you wish
{24, 25, 27}, // class 0
{16, 38, 21}, // class 1
{29, 13, 10}, // ...
{17, 18, 19}, // etc.
{21, 22, 23},
{26, 28, 30},
{31, 32, 33},
{34, 35, 36}
};
public OnFilterScriptInit()
{
ClassTD[0] = TextDrawCreate(17.000000, 315.000000, "S");
TextDrawBackgroundColor(ClassTD[0], -1);
TextDrawFont(ClassTD[0], 0);
TextDrawLetterSize(ClassTD[0], 0.719999, 2.799999);
TextDrawColor(ClassTD[0], 255);
TextDrawSetOutline(ClassTD[0], 1);
TextDrawSetProportional(ClassTD[0], 1);
ClassTD[1] = TextDrawCreate(34.000000, 316.000000, "a");
TextDrawBackgroundColor(ClassTD[1], -1);
TextDrawFont(ClassTD[1], 0);
TextDrawLetterSize(ClassTD[1], 0.800000, 2.100000);
TextDrawColor(ClassTD[1], 255);
TextDrawSetOutline(ClassTD[1], 1);
TextDrawSetProportional(ClassTD[1], 1);
ClassTD[2] = TextDrawCreate(44.000000, 314.000000, "n");
TextDrawBackgroundColor(ClassTD[2], -1);
TextDrawFont(ClassTD[2], 0);
TextDrawLetterSize(ClassTD[2], 0.860000, 2.100000);
TextDrawColor(ClassTD[2], 255);
TextDrawSetOutline(ClassTD[2], 1);
TextDrawSetProportional(ClassTD[2], 1);
ClassTD[3] = TextDrawCreate(56.000000, 311.000000, "A");
TextDrawBackgroundColor(ClassTD[3], -1);
TextDrawFont(ClassTD[3], 0);
TextDrawLetterSize(ClassTD[3], 0.700000, 2.100000);
TextDrawColor(ClassTD[3], 255);
TextDrawSetOutline(ClassTD[3], 1);
TextDrawSetProportional(ClassTD[3], 1);
ClassTD[4] = TextDrawCreate(73.000000, 310.000000, "n");
TextDrawBackgroundColor(ClassTD[4], -1);
TextDrawFont(ClassTD[4], 0);
TextDrawLetterSize(ClassTD[4], 0.840000, 2.100000);
TextDrawColor(ClassTD[4], 255);
TextDrawSetOutline(ClassTD[4], 1);
TextDrawSetProportional(ClassTD[4], 1);
ClassTD[5] = TextDrawCreate(85.000000, 311.000000, "d");
TextDrawBackgroundColor(ClassTD[5], -1);
TextDrawFont(ClassTD[5], 0);
TextDrawLetterSize(ClassTD[5], 0.889999, 2.100000);
TextDrawColor(ClassTD[5], 255);
TextDrawSetOutline(ClassTD[5], 1);
TextDrawSetProportional(ClassTD[5], 1);
ClassTD[6] = TextDrawCreate(96.000000, 311.000000, "r");
TextDrawBackgroundColor(ClassTD[6], -1);
TextDrawFont(ClassTD[6], 0);
TextDrawLetterSize(ClassTD[6], 0.820000, 2.100000);
TextDrawColor(ClassTD[6], 255);
TextDrawSetOutline(ClassTD[6], 1);
TextDrawSetProportional(ClassTD[6], 1);
ClassTD[7] = TextDrawCreate(105.000000, 313.000000, "e");
TextDrawBackgroundColor(ClassTD[7], -1);
TextDrawFont(ClassTD[7], 0);
TextDrawLetterSize(ClassTD[7], 0.870000, 2.100000);
TextDrawColor(ClassTD[7], 255);
TextDrawSetOutline(ClassTD[7], 1);
TextDrawSetProportional(ClassTD[7], 1);
ClassTD[8] = TextDrawCreate(115.000000, 315.000000, "a");
TextDrawBackgroundColor(ClassTD[8], -1);
TextDrawFont(ClassTD[8], 0);
TextDrawLetterSize(ClassTD[8], 0.790000, 2.100000);
TextDrawColor(ClassTD[8], 255);
TextDrawSetOutline(ClassTD[8], 1);
TextDrawSetProportional(ClassTD[8], 1);
ClassTD[9] = TextDrawCreate(125.000000, 317.000000, "s");
TextDrawBackgroundColor(ClassTD[9], -1);
TextDrawFont(ClassTD[9], 0);
TextDrawLetterSize(ClassTD[9], 0.800000, 2.100000);
TextDrawColor(ClassTD[9], 255);
TextDrawSetOutline(ClassTD[9], 1);
TextDrawSetProportional(ClassTD[9], 1);
ClassTD[10] = TextDrawCreate(40.000000, 335.000000, "MULTIPLAYER");
TextDrawBackgroundColor(ClassTD[10], 255);
TextDrawFont(ClassTD[10], 1);
TextDrawLetterSize(ClassTD[10], 0.380000, 1.100000);
TextDrawColor(ClassTD[10], -244834049);
TextDrawSetOutline(ClassTD[10], 1);
TextDrawSetProportional(ClassTD[10], 1);
ClassTD[11] = TextDrawCreate(55.000000, 347.000000, "SA-MP 0.3c");
TextDrawBackgroundColor(ClassTD[11], 255);
TextDrawFont(ClassTD[11], 1);
TextDrawLetterSize(ClassTD[11], 0.239999, 0.699999);
TextDrawColor(ClassTD[11], 698146815);
TextDrawSetOutline(ClassTD[11], 1);
TextDrawSetProportional(ClassTD[11], 1);
ClassTD[12] = TextDrawCreate(17.000000, 364.000000, "Use left and right arrow keys to select class.");
TextDrawFont(ClassTD[12], 1);
TextDrawLetterSize(ClassTD[12], 0.249999, 1.000000);
TextDrawColor(ClassTD[12], 0xFFFFFFFF);
TextDrawSetProportional(ClassTD[12], 1);
TextDrawSetShadow(ClassTD[12], 1);
ClassTD[13] = TextDrawCreate(17.000000, 374.000000, "Press SHIFT or SPAWN button when ready to spawn.");
TextDrawFont(ClassTD[13], 1);
TextDrawLetterSize(ClassTD[13], 0.249999, 1.000000);
TextDrawColor(ClassTD[13], 0xFFFFFFFF);
TextDrawSetProportional(ClassTD[13], 1);
TextDrawSetShadow(ClassTD[13], 1);
return 1;
}
public OnFilterScriptExit()
{
for(new i; i < sizeof(ClassTD); i++)
{
TextDrawHideForAll(ClassTD[i]);
TextDrawDestroy(ClassTD[i]);
}
for(new i; i < GetMaxPlayers(); i++)
{
for(new j; j < 4; j++)
{
TextDrawHideForAll(TempClassTD[i][j]);
TextDrawDestroy(TempClassTD[i][j]);
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
for(new i; i < sizeof(ClassTD); i++)
{
TextDrawHideForPlayer(playerid, ClassTD[i]);
TextDrawShowForPlayer(playerid, ClassTD[i]);
}
for(new i; i < 4; i++)
{
TextDrawHideForPlayer(playerid, TempClassTD[playerid][i]);
TextDrawDestroy(TempClassTD[playerid][i]);
}
new string[128];
format(string, sizeof(string), "Class %d Weapons:", classid);
TempClassTD[playerid][0] = TextDrawCreate(17.000000, 390.000000, string);
TextDrawFont(TempClassTD[playerid][0], 1);
TextDrawLetterSize(TempClassTD[playerid][0], 0.249999, 1.000000);
TextDrawColor(TempClassTD[playerid][0], 0xFFFFFFFF);
TextDrawSetProportional(TempClassTD[playerid][0], 1);
TextDrawSetShadow(TempClassTD[playerid][0], 1);
new WeaponName[50];
GetWeaponName(ClassWeapon[classid][0], WeaponName, sizeof(WeaponName));
format(string, sizeof(string), "- %s", WeaponName);
TempClassTD[playerid][1] = TextDrawCreate(18.000000, 400.000000, string);
TextDrawFont(TempClassTD[playerid][1], 1);
TextDrawLetterSize(TempClassTD[playerid][1], 0.249999, 1.000000);
TextDrawColor(TempClassTD[playerid][1], 0xFFFFFFFF);
TextDrawSetProportional(TempClassTD[playerid][1], 1);
TextDrawSetShadow(TempClassTD[playerid][1], 1);
GetWeaponName(ClassWeapon[classid][1], WeaponName, sizeof(WeaponName));
format(string, sizeof(string), "- %s", WeaponName);
TempClassTD[playerid][2] = TextDrawCreate(18.000000, 410.000000, string);
TextDrawFont(TempClassTD[playerid][2], 1);
TextDrawLetterSize(TempClassTD[playerid][2], 0.249999, 1.000000);
TextDrawColor(TempClassTD[playerid][2], 0xFFFFFFFF);
TextDrawSetProportional(TempClassTD[playerid][2], 1);
TextDrawSetShadow(TempClassTD[playerid][2], 1);
GetWeaponName(ClassWeapon[classid][2], WeaponName, sizeof(WeaponName));
format(string, sizeof(string), "- %s", WeaponName);
TempClassTD[playerid][3] = TextDrawCreate(18.000000, 420.000000, string);
TextDrawFont(TempClassTD[playerid][3], 1);
TextDrawLetterSize(TempClassTD[playerid][3], 0.249999, 1.000000);
TextDrawColor(TempClassTD[playerid][3], 0xFFFFFFFF);
TextDrawSetProportional(TempClassTD[playerid][3], 1);
TextDrawSetShadow(TempClassTD[playerid][3], 1);
for(new i; i < 4; i++)
{
TextDrawShowForPlayer(playerid, TempClassTD[playerid][i]);
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
for(new i; i < sizeof(ClassTD); i++)
{
TextDrawHideForPlayer(playerid, ClassTD[i]);
}
for(new i; i < 4; i++)
{
TextDrawHideForPlayer(playerid, TempClassTD[playerid][i]);
TextDrawDestroy(TempClassTD[playerid][i]);
}
return 1;
}
public OnPlayerDisconnect(playerid, reason) // FIX [if player disconnect from class selector]
{
#pragma unused reason
for(new i; i < 4; i++)
{
TextDrawHideForPlayer(playerid, TempClassTD[playerid][i]);
TextDrawDestroy(TempClassTD[playerid][i]);
}
return 1;
}