Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

[FS] 0.2.2 Class Slection Style

OKStyle

Адвокат по делам семейным
Administrator
Wiki Team
Регистрация
4 Мар 2011
Сообщения
7,094
Лучшие ответы
226
Репутация
2,455
Награды
11
Как один из старожилов SA-MP'а, я помню, каков был интерфейс выбора класса в старых версиях клиентов. Мне он очень нравился, и я решил его восстановить.

Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


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;
}
Автор: OKStyle
 
Сверху Снизу