Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Система аксессуаров - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Система аксессуаров
Оценка: -----

#1
Пользователь офлайн   GUMBALL_FAMILY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Всем привет, сливаю свою систему специально созданную для Pawn-Wiki :steep:
При загрузке этого материала, на другие форума, просьба указывать мое авторское право: GUMBALL FAMILY
Скриншоты системы: click me <3
Этап 1 - Добавление кода в #define

#define MAX_SLOTS_ACS_PLAYER                (6) // Это отвечает сколько ячеек будет для игрока где будут храниться надетые аксессуары
#define MAX_SLOTS_INV_PLAYER                (8) // Это отвечает сколько ячеек в самом "Инвентаре для аксессуаров", где будут храниться аксессуары


Этап 2 - Добавление переменных

new Text:Inventory_TD[16];
new PlayerText:AcsSlotsPlayer[MAX_PLAYERS][MAX_SLOTS_ACS_PLAYER];
new PlayerText:AcsInvSlotsPlayer[MAX_PLAYERS][MAX_SLOTS_INV_PLAYER];
new PlayerText:SkinForPlayer[MAX_PLAYERS];

new OpenAcsInv[MAX_PLAYERS char];
new SlotsInvAcs[MAX_PLAYERS][MAX_SLOTS_INV_PLAYER];
new SlotsAcs[MAX_PLAYERS][MAX_SLOTS_INV_PLAYER];
new PlayerInvAcs[MAX_PLAYERS][MAX_SLOTS_INV_PLAYER];
new PlayerAcs[MAX_PLAYERS][MAX_SLOTS_INV_PLAYER];
new SlotsPlayer[MAX_PLAYERS];
new SlotsAcsPlayer[MAX_PLAYERS];
new SlotClicked[MAX_PLAYERS][2];
enum items{
    IDSlot,
    ItemID,
    ItemName[24],
    ItemInfo[128],
    Float:ItemPosX,
    Float:ItemPosY,
    Float:ItemPosZ,
    Float:ItemPosC
}
new ItemsAcs[][items] = {
        {0, 1649, 	"Пустота", 			"О данном предмете нету информации на данный момент :(", 														0.0000, 0.0000, 0.0000, 0.0000},
	{1, 11704, 	"Маска демона", 	"Данный {F4CA16}аксессуар{FFFFFF} можно надеть на лицо...\nтем самым изменив вид вашего персонажа!", 			0.0000, 0.0000, 180.0000, 1.0000},
	{2, 11737,	"Rockstar Case",	"Данный {F4CA16}аксессуар{FFFFFF} можно надеть на правую руку...\nтем самым изменив вид вашего персонажа!", 	-90.0000, 0.0000, 180.0000, 1.0000},
	{3, 18637, 	"Щит на спину", 	"Данный {F4CA16}аксессуар{FFFFFF} можно надеть на спину...\nтем самым изменив вид вашего персонажа!", 			-90.0000, 0.0000, 180.0000, 1.0000}
};


Этап 3 - Функции/команды для открытие инвентаря с аксессуарами и добавления аксессуара

if(newkeys == KEY_YES) SHAcsInv(playerid, 1);  // Если хотим чтобы открывался инвентарь с аксессуарами на клавишу "Y"
CMD:acsinv(playerid){ // Если хотим чтобы открывался инвентарь с аксессуарами через команду [/acsinv]
	if(!OpenAcsInv{playerid}) SHAcsInv(playerid, 1);
	else SHAcsInv(playerid, 0);
}
CMD:additem(playerid, params[]){ // Команда которая даёт аксессуар в инвентарь
	new id, itemid, str[256];
	if(sscanf(params,"ud",id, itemid)) return SendError(playerid, "Используйте команду: /additem [playerid] [id]");
	if(!IsPlayerConnected(id)) return SendError(playerid, "Игрок не в сети!");
	if(!SlotsPlayer[id]) return SendError(playerid, "У игрока нету свободного слота для аксессуара!");
	AddAcs(id, itemid);
	format(str, sizeof(str), "Вы успешно выдали предмет: %s", ItemsAcs[itemid][ItemName]);
	return SendClientMessage(playerid, -1, str);
}



Этап 4 - Сердце системы (stock)

stock LoadInvTextDraws(){
    new currenttime = GetTickCount();
	Inventory_TD[0] = TextDrawCreate(517.7056, 174.2498, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[0], 116.0000, 81.0000);
	TextDrawAlignment(Inventory_TD[0], 1);
	TextDrawColor(Inventory_TD[0], 589505535);
	TextDrawBackgroundColor(Inventory_TD[0], 255);
	TextDrawFont(Inventory_TD[0], 4);
	TextDrawSetProportional(Inventory_TD[0], 0);
	TextDrawSetShadow(Inventory_TD[0], 0);

	Inventory_TD[1] = TextDrawCreate(446.3880, 134.0498, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[1], 70.0000, 175.0000);
	TextDrawAlignment(Inventory_TD[1], 1);
	TextDrawColor(Inventory_TD[1], 589505535);
	TextDrawBackgroundColor(Inventory_TD[1], 255);
	TextDrawFont(Inventory_TD[1], 4);
	TextDrawSetProportional(Inventory_TD[1], 0);
	TextDrawSetShadow(Inventory_TD[1], 0);

	Inventory_TD[2] = TextDrawCreate(446.4175, 133.9497, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[2], 70.0000, 14.0000);
	TextDrawAlignment(Inventory_TD[2], 1);
	TextDrawColor(Inventory_TD[2], 831318015);
	TextDrawBackgroundColor(Inventory_TD[2], 255);
	TextDrawFont(Inventory_TD[2], 4);
	TextDrawSetProportional(Inventory_TD[2], 0);
	TextDrawSetShadow(Inventory_TD[2], 0);

	Inventory_TD[3] = TextDrawCreate(517.9760, 160.6831, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[3], 115.7499, 14.0000);
	TextDrawAlignment(Inventory_TD[3], 1);
	TextDrawColor(Inventory_TD[3], 831318015);
	TextDrawBackgroundColor(Inventory_TD[3], 255);
	TextDrawFont(Inventory_TD[3], 4);
	TextDrawSetProportional(Inventory_TD[3], 0);
	TextDrawSetShadow(Inventory_TD[3], 0);

	Inventory_TD[4] = TextDrawCreate(447.4826, 135.8168, "particle:shad_car"); // ?????
	TextDrawTextSize(Inventory_TD[4], 69.0000, 11.0500);
	TextDrawAlignment(Inventory_TD[4], 1);
	TextDrawColor(Inventory_TD[4], 85);
	TextDrawBackgroundColor(Inventory_TD[4], 255);
	TextDrawFont(Inventory_TD[4], 4);
	TextDrawSetProportional(Inventory_TD[4], 0);
	TextDrawSetShadow(Inventory_TD[4], 0);

	Inventory_TD[5] = TextDrawCreate(516.0761, 162.6333, "particle:shad_car"); // ?????
	TextDrawTextSize(Inventory_TD[5], 119.0000, 11.0000);
	TextDrawAlignment(Inventory_TD[5], 1);
	TextDrawColor(Inventory_TD[5], 85);
	TextDrawBackgroundColor(Inventory_TD[5], 255);
	TextDrawFont(Inventory_TD[5], 4);
	TextDrawSetProportional(Inventory_TD[5], 0);
	TextDrawSetShadow(Inventory_TD[5], 0);

	Inventory_TD[6] = TextDrawCreate(482.7824, 137.4167, "PLAYER"); // ?????
	TextDrawLetterSize(Inventory_TD[6], 0.1685, 0.7716);
	TextDrawAlignment(Inventory_TD[6], 2);
	TextDrawColor(Inventory_TD[6], -1);
	TextDrawBackgroundColor(Inventory_TD[6], 255);
	TextDrawFont(Inventory_TD[6], 1);
	TextDrawSetProportional(Inventory_TD[6], 1);
	TextDrawSetShadow(Inventory_TD[6], 0);

	Inventory_TD[7] = TextDrawCreate(575.1762, 163.9499, "ACCESSORIES"); // ?????
	TextDrawLetterSize(Inventory_TD[7], 0.1685, 0.7716);
	TextDrawAlignment(Inventory_TD[7], 2);
	TextDrawColor(Inventory_TD[7], -1);
	TextDrawBackgroundColor(Inventory_TD[7], 255);
	TextDrawFont(Inventory_TD[7], 1);
	TextDrawSetProportional(Inventory_TD[7], 1);
	TextDrawSetShadow(Inventory_TD[7], 0);

	Inventory_TD[8] = TextDrawCreate(464.0881, 132.0498, "::"); // ?????
	TextDrawLetterSize(Inventory_TD[8], 0.4000, 1.6000);
	TextDrawAlignment(Inventory_TD[8], 1);
	TextDrawColor(Inventory_TD[8], -1);
	TextDrawBackgroundColor(Inventory_TD[8], 255);
	TextDrawFont(Inventory_TD[8], 1);
	TextDrawSetProportional(Inventory_TD[8], 1);
	TextDrawSetShadow(Inventory_TD[8], 0);

	Inventory_TD[9] = TextDrawCreate(549.4644, 159.0664, "::"); // ?????
	TextDrawLetterSize(Inventory_TD[9], 0.4000, 1.6000);
	TextDrawTextSize(Inventory_TD[9], -8.0000, 0.0000);
	TextDrawAlignment(Inventory_TD[9], 1);
	TextDrawColor(Inventory_TD[9], -1);
	TextDrawBackgroundColor(Inventory_TD[9], 255);
	TextDrawFont(Inventory_TD[9], 1);
	TextDrawSetProportional(Inventory_TD[9], 1);
	TextDrawSetShadow(Inventory_TD[9], 0);

	Inventory_TD[10] = TextDrawCreate(520.0587, 260.4833, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[10], 36.0000, 20.0000);
	TextDrawAlignment(Inventory_TD[10], 1);
	TextDrawColor(Inventory_TD[10], 858993663);
	TextDrawBackgroundColor(Inventory_TD[10], 255);
	TextDrawFont(Inventory_TD[10], 4);
	TextDrawSetProportional(Inventory_TD[10], 0);
	TextDrawSetShadow(Inventory_TD[10], 0);
	TextDrawSetSelectable(Inventory_TD[10], true);

	Inventory_TD[11] = TextDrawCreate(557.8698, 260.5665, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[11], 36.0000, 20.0000);
	TextDrawAlignment(Inventory_TD[11], 1);
	TextDrawColor(Inventory_TD[11], 858993663);
	TextDrawBackgroundColor(Inventory_TD[11], 255);
	TextDrawFont(Inventory_TD[11], 4);
	TextDrawSetProportional(Inventory_TD[11], 0);
	TextDrawSetShadow(Inventory_TD[11], 0);
	TextDrawSetSelectable(Inventory_TD[11], true);

	Inventory_TD[12] = TextDrawCreate(595.4924, 260.5833, "LD_SPAC:white"); // ?????
	TextDrawTextSize(Inventory_TD[12], 36.0000, 20.0000);
	TextDrawAlignment(Inventory_TD[12], 1);
	TextDrawColor(Inventory_TD[12], 858993663);
	TextDrawBackgroundColor(Inventory_TD[12], 255);
	TextDrawFont(Inventory_TD[12], 4);
	TextDrawSetProportional(Inventory_TD[12], 0);
	TextDrawSetShadow(Inventory_TD[12], 0);
	TextDrawSetSelectable(Inventory_TD[12], true);

	Inventory_TD[13] = TextDrawCreate(538.3878, 265.1330, "USE"); // ?????
	TextDrawLetterSize(Inventory_TD[13], 0.2343, 1.0048);
	TextDrawAlignment(Inventory_TD[13], 2);
	TextDrawColor(Inventory_TD[13], -1);
	TextDrawBackgroundColor(Inventory_TD[13], 255);
	TextDrawFont(Inventory_TD[13], 1);
	TextDrawSetProportional(Inventory_TD[13], 1);
	TextDrawSetShadow(Inventory_TD[13], 0);

	Inventory_TD[14] = TextDrawCreate(575.5985, 265.1330, "INFO"); // ?????
	TextDrawLetterSize(Inventory_TD[14], 0.2343, 1.0048);
	TextDrawAlignment(Inventory_TD[14], 2);
	TextDrawColor(Inventory_TD[14], -1);
	TextDrawBackgroundColor(Inventory_TD[14], 255);
	TextDrawFont(Inventory_TD[14], 1);
	TextDrawSetProportional(Inventory_TD[14], 1);
	TextDrawSetShadow(Inventory_TD[14], 0);

	Inventory_TD[15] = TextDrawCreate(613.8989, 265.1330, "DROP"); // ?????
	TextDrawLetterSize(Inventory_TD[15], 0.2343, 1.0048);
	TextDrawAlignment(Inventory_TD[15], 2);
	TextDrawColor(Inventory_TD[15], -1);
	TextDrawBackgroundColor(Inventory_TD[15], 255);
	TextDrawFont(Inventory_TD[15], 1);
	TextDrawSetProportional(Inventory_TD[15], 1);
	TextDrawSetShadow(Inventory_TD[15], 0);
	/* Òåêñòäðàâ Vote */
	Vote_TD[0] = TextDrawCreate(197.2351, 121.1666, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[0], 264.0000, 234.0000);
	TextDrawAlignment(Vote_TD[0], 1);
	TextDrawColor(Vote_TD[0], 858993663);
	TextDrawBackgroundColor(Vote_TD[0], 255);
	TextDrawFont(Vote_TD[0], 4);
	TextDrawSetProportional(Vote_TD[0], 0);
	TextDrawSetShadow(Vote_TD[0], 0);

	Vote_TD[1] = TextDrawCreate(188.7644, 133.4167, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[1], 282.0000, 209.0000);
	TextDrawAlignment(Vote_TD[1], 1);
	TextDrawColor(Vote_TD[1], 858993663);
	TextDrawBackgroundColor(Vote_TD[1], 255);
	TextDrawFont(Vote_TD[1], 4);
	TextDrawSetProportional(Vote_TD[1], 0);
	TextDrawSetShadow(Vote_TD[1], 0);

	Vote_TD[2] = TextDrawCreate(184.9880, 115.9167, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[2], 25.0000, 33.0000);
	TextDrawAlignment(Vote_TD[2], 1);
	TextDrawColor(Vote_TD[2], 858993663);
	TextDrawBackgroundColor(Vote_TD[2], 255);
	TextDrawFont(Vote_TD[2], 4);
	TextDrawSetProportional(Vote_TD[2], 0);
	TextDrawSetShadow(Vote_TD[2], 0);

	Vote_TD[3] = TextDrawCreate(184.9880, 326.8500, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[3], 25.0000, 33.0000);
	TextDrawAlignment(Vote_TD[3], 1);
	TextDrawColor(Vote_TD[3], 858993663);
	TextDrawBackgroundColor(Vote_TD[3], 255);
	TextDrawFont(Vote_TD[3], 4);
	TextDrawSetProportional(Vote_TD[3], 0);
	TextDrawSetShadow(Vote_TD[3], 0);

	Vote_TD[4] = TextDrawCreate(449.8586, 115.7333, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[4], 25.0000, 33.0000);
	TextDrawAlignment(Vote_TD[4], 1);
	TextDrawColor(Vote_TD[4], 858993663);
	TextDrawBackgroundColor(Vote_TD[4], 255);
	TextDrawFont(Vote_TD[4], 4);
	TextDrawSetProportional(Vote_TD[4], 0);
	TextDrawSetShadow(Vote_TD[4], 0);

	Vote_TD[5] = TextDrawCreate(450.0880, 327.3332, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[5], 25.0000, 33.0000);
	TextDrawAlignment(Vote_TD[5], 1);
	TextDrawColor(Vote_TD[5], 858993663);
	TextDrawBackgroundColor(Vote_TD[5], 255);
	TextDrawFont(Vote_TD[5], 4);
	TextDrawSetProportional(Vote_TD[5], 0);
	TextDrawSetShadow(Vote_TD[5], 0);

	Vote_TD[6] = TextDrawCreate(282.3292, 106.5998, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[6], 25.0000, 32.0000);
	TextDrawAlignment(Vote_TD[6], 1);
	TextDrawColor(Vote_TD[6], 831318015);
	TextDrawBackgroundColor(Vote_TD[6], 255);
	TextDrawFont(Vote_TD[6], 4);
	TextDrawSetProportional(Vote_TD[6], 0);
	TextDrawSetShadow(Vote_TD[6], 0);

	Vote_TD[7] = TextDrawCreate(295.2174, 111.5332, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[7], 68.0000, 22.0000);
	TextDrawAlignment(Vote_TD[7], 1);
	TextDrawColor(Vote_TD[7], 831318015);
	TextDrawBackgroundColor(Vote_TD[7], 255);
	TextDrawFont(Vote_TD[7], 4);
	TextDrawSetProportional(Vote_TD[7], 0);
	TextDrawSetShadow(Vote_TD[7], 0);

	Vote_TD[8] = TextDrawCreate(351.1762, 106.6498, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[8], 25.0000, 32.0000);
	TextDrawAlignment(Vote_TD[8], 1);
	TextDrawColor(Vote_TD[8], 831318015);
	TextDrawBackgroundColor(Vote_TD[8], 255);
	TextDrawFont(Vote_TD[8], 4);
	TextDrawSetProportional(Vote_TD[8], 0);
	TextDrawSetShadow(Vote_TD[8], 0);

	Vote_TD[9] = TextDrawCreate(292.2940, 117.0833, "particle:lamp_shad_64"); // ïóñòî
	TextDrawTextSize(Vote_TD[9], 75.0000, 16.0000);
	TextDrawAlignment(Vote_TD[9], 1);
	TextDrawColor(Vote_TD[9], -154);
	TextDrawBackgroundColor(Vote_TD[9], 255);
	TextDrawFont(Vote_TD[9], 4);
	TextDrawSetProportional(Vote_TD[9], 0);
	TextDrawSetShadow(Vote_TD[9], 0);

	Vote_TD[10] = TextDrawCreate(312.3587, 115.1333, "VOTE"); // ïóñòî
	TextDrawLetterSize(Vote_TD[10], 0.4000, 1.6000);
	TextDrawAlignment(Vote_TD[10], 1);
	TextDrawColor(Vote_TD[10], -1);
	TextDrawBackgroundColor(Vote_TD[10], 255);
	TextDrawFont(Vote_TD[10], 1);
	TextDrawSetProportional(Vote_TD[10], 1);
	TextDrawSetShadow(Vote_TD[10], 0);

	Vote_TD[11] = TextDrawCreate(454.7056, 121.2331, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[11], 15.0000, 18.0000);
	TextDrawAlignment(Vote_TD[11], 1);
	TextDrawColor(Vote_TD[11], 831318015);
	TextDrawBackgroundColor(Vote_TD[11], 255);
	TextDrawFont(Vote_TD[11], 4);
	TextDrawSetProportional(Vote_TD[11], 0);
	TextDrawSetShadow(Vote_TD[11], 0);
	TextDrawSetSelectable(Vote_TD[11], true);

	Vote_TD[12] = TextDrawCreate(459.8118, 125.4333, "X"); // ïóñòî
	TextDrawLetterSize(Vote_TD[12], 0.2569, 0.9291);
	TextDrawAlignment(Vote_TD[12], 1);
	TextDrawColor(Vote_TD[12], -1);
	TextDrawBackgroundColor(Vote_TD[12], 255);
	TextDrawFont(Vote_TD[12], 1);
	TextDrawSetProportional(Vote_TD[12], 1);
	TextDrawSetShadow(Vote_TD[12], 0);

	Vote_TD[13] = TextDrawCreate(330.4704, 141.0000, "Administrator_Nick_Name_created_the_vote"); // ïóñòî
	TextDrawLetterSize(Vote_TD[13], 0.2235, 1.0225);
	TextDrawAlignment(Vote_TD[13], 2);
	TextDrawColor(Vote_TD[13], -1);
	TextDrawBackgroundColor(Vote_TD[13], 255);
	TextDrawFont(Vote_TD[13], 1);
	TextDrawSetProportional(Vote_TD[13], 1);
	TextDrawSetShadow(Vote_TD[13], 0);

	Vote_TD[14] = TextDrawCreate(330.9410, 151.6503, "\"Kto_kryche\""); // ïóñòî
	TextDrawLetterSize(Vote_TD[14], 0.2235, 1.0225);
	TextDrawAlignment(Vote_TD[14], 2);
	TextDrawColor(Vote_TD[14], 831318015);
	TextDrawBackgroundColor(Vote_TD[14], 255);
	TextDrawFont(Vote_TD[14], 1);
	TextDrawSetProportional(Vote_TD[14], 1);
	TextDrawSetShadow(Vote_TD[14], 0);

	Vote_TD[15] = TextDrawCreate(238.6471, 191.7500, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[15], 19.0000, 118.0000);
	TextDrawAlignment(Vote_TD[15], 1);
	TextDrawColor(Vote_TD[15], 831318015);
	TextDrawBackgroundColor(Vote_TD[15], 255);
	TextDrawFont(Vote_TD[15], 4);
	TextDrawSetProportional(Vote_TD[15], 0);
	TextDrawSetShadow(Vote_TD[15], 0);
	TextDrawSetSelectable(Vote_TD[15], true);

	Vote_TD[16] = TextDrawCreate(248.8293, 313.6666, "Nick_Name"); // ïóñòî
	TextDrawLetterSize(Vote_TD[16], 0.2141, 1.0341);
	TextDrawAlignment(Vote_TD[16], 2);
	TextDrawColor(Vote_TD[16], -1);
	TextDrawBackgroundColor(Vote_TD[16], 255);
	TextDrawFont(Vote_TD[16], 1);
	TextDrawSetProportional(Vote_TD[16], 1);
	TextDrawSetShadow(Vote_TD[16], 0);

	Vote_TD[17] = TextDrawCreate(247.3470, 325.3333, "0_player's"); // ïóñòî
	TextDrawLetterSize(Vote_TD[17], 0.1717, 0.9991);
	TextDrawAlignment(Vote_TD[17], 2);
	TextDrawColor(Vote_TD[17], -2122219009);
	TextDrawBackgroundColor(Vote_TD[17], 255);
	TextDrawFont(Vote_TD[17], 1);
	TextDrawSetProportional(Vote_TD[17], 1);
	TextDrawSetShadow(Vote_TD[17], 0);

	Vote_TD[18] = TextDrawCreate(400.2230, 323.6498, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[18], 25.0000, 32.0000);
	TextDrawAlignment(Vote_TD[18], 1);
	TextDrawColor(Vote_TD[18], 831318015);
	TextDrawBackgroundColor(Vote_TD[18], 255);
	TextDrawFont(Vote_TD[18], 4);
	TextDrawSetProportional(Vote_TD[18], 0);
	TextDrawSetShadow(Vote_TD[18], 0);

	Vote_TD[19] = TextDrawCreate(401.2230, 325.3998, "LD_BEAT:chit"); // ïóñòî
	TextDrawTextSize(Vote_TD[19], 23.0000, 29.0000);
	TextDrawAlignment(Vote_TD[19], 1);
	TextDrawColor(Vote_TD[19], 858993663);
	TextDrawBackgroundColor(Vote_TD[19], 255);
	TextDrawFont(Vote_TD[19], 4);
	TextDrawSetProportional(Vote_TD[19], 0);
	TextDrawSetShadow(Vote_TD[19], 0);

	Vote_TD[20] = TextDrawCreate(412.5353, 332.3332, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[20], 1.0000, 9.0000);
	TextDrawAlignment(Vote_TD[20], 1);
	TextDrawColor(Vote_TD[20], 831318015);
	TextDrawBackgroundColor(Vote_TD[20], 255);
	TextDrawFont(Vote_TD[20], 4);
	TextDrawSetProportional(Vote_TD[20], 0);
	TextDrawSetShadow(Vote_TD[20], 0);

	Vote_TD[21] = TextDrawCreate(412.5353, 341.8666, "LD_SPAC:white"); // ïóñòî
	TextDrawTextSize(Vote_TD[21], 6.0000, -1.0000);
	TextDrawAlignment(Vote_TD[21], 1);
	TextDrawColor(Vote_TD[21], 831318015);
	TextDrawBackgroundColor(Vote_TD[21], 255);
	TextDrawFont(Vote_TD[21], 4);
	TextDrawSetProportional(Vote_TD[21], 0);
	TextDrawSetShadow(Vote_TD[21], 0);

	Vote_TD[22] = TextDrawCreate(439.6881, 327.8332, "1"); // ïóñòî
	TextDrawLetterSize(Vote_TD[22], 0.4000, 1.6000);
	TextDrawAlignment(Vote_TD[22], 2);
	TextDrawColor(Vote_TD[22], -1);
	TextDrawBackgroundColor(Vote_TD[22], 255);
	TextDrawFont(Vote_TD[22], 1);
	TextDrawSetProportional(Vote_TD[22], 1);
	TextDrawSetShadow(Vote_TD[22], 0);

	Vote_TD[23] = TextDrawCreate(440.0175, 340.2833, "minutes"); // ïóñòî
	TextDrawLetterSize(Vote_TD[23], 0.1599, 0.8999);
	TextDrawAlignment(Vote_TD[23], 2);
	TextDrawColor(Vote_TD[23], -1);
	TextDrawBackgroundColor(Vote_TD[23], 255);
	TextDrawFont(Vote_TD[23], 1);
	TextDrawSetProportional(Vote_TD[23], 1);
	TextDrawSetShadow(Vote_TD[23], 0);

	return printf("[SURVERS LOADING]: LoadInvTextDraws óñïåøíî çàãðóçèëñÿ! Âðåìÿ: %d ms", GetTickCount() - currenttime);
}
stock DeleteInvDateForPlayer(playerid){
    OpenAcsInv{playerid} = false;
    VoteTDOpen{playerid} = false;
    for(new i; i < MAX_SLOTS_INV_PLAYER; i++) SlotsInvAcs[playerid][i] = ItemsAcs[0][ItemID];
    for(new i; i < MAX_SLOTS_ACS_PLAYER; i++) SlotsAcs[playerid][i] = ItemsAcs[0][ItemID];
    for(new i; i < MAX_SLOTS_INV_PLAYER; i++) PlayerInvAcs[playerid][i] = 0;
    for(new i; i < MAX_SLOTS_ACS_PLAYER; i++) PlayerAcs[playerid][i] = 0;
    for(new i; i < 2; i++) SlotClicked[playerid][i] = 0;
   	for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++){
		if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i);
	}
	SlotsPlayer[playerid] = 8;
	SlotsAcsPlayer[playerid] = 6;
	return CancelSelectTextDraw(playerid);
}
stock SHAcsInv(playerid, type = 0){
	switch(type){
	    case 0:{
	        OpenAcsInv{playerid} = false;
	        for(new i; i < sizeof(Inventory_TD); i++) TextDrawHideForPlayer(playerid, Inventory_TD[i]);
	        for(new i; i < MAX_SLOTS_ACS_PLAYER; i++) PlayerTextDrawDestroy(playerid, AcsSlotsPlayer[playerid][i]);
	        for(new i; i < MAX_SLOTS_INV_PLAYER; i++) PlayerTextDrawDestroy(playerid, AcsInvSlotsPlayer[playerid][i]);
	        PlayerTextDrawHide(playerid, SkinForPlayer[playerid]);
	    }
	    case 1:{
	        OpenAcsInv{playerid} = true;
	        SelectTextDraw(playerid, 0x369AFFFF);
	        for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, Inventory_TD[i]);
	        CreateSlots(playerid);
	    }
	}
	return true;
}
stock CreateSlots(playerid){
	new Float:sX = 0, Float:sY = 0;
	new Float:iX = 0, Float:iY = 0;
	/* Ñëîòû â ïóíêòå "PLAYER" */
	for(new i; i < MAX_SLOTS_ACS_PLAYER; i++){
	    new item = PlayerAcs[playerid][i];
	    AcsSlotsPlayer[playerid][i]  				=	CreatePlayerTextDraw(playerid, 451.7117 + (sX * 20), 242.5000 + (sY * 25), "");
		PlayerTextDrawTextSize						(playerid, AcsSlotsPlayer[playerid][i], 19.0000, 24.0000);
		PlayerTextDrawAlignment						(playerid, AcsSlotsPlayer[playerid][i], 1);
		PlayerTextDrawColor							(playerid, AcsSlotsPlayer[playerid][i], -1);
		PlayerTextDrawBackgroundColor				(playerid, AcsSlotsPlayer[playerid][i], 831318015);
		PlayerTextDrawFont							(playerid, AcsSlotsPlayer[playerid][i], 5);
		PlayerTextDrawSetProportional				(playerid, AcsSlotsPlayer[playerid][i], 0);
		PlayerTextDrawSetShadow						(playerid, AcsSlotsPlayer[playerid][i], 0);
		PlayerTextDrawSetSelectable					(playerid, AcsSlotsPlayer[playerid][i], true);
		PlayerTextDrawSetPreviewModel				(playerid, AcsSlotsPlayer[playerid][i], SlotsAcs[playerid][i]);
		PlayerTextDrawSetPreviewRot					(playerid, AcsSlotsPlayer[playerid][i], ItemsAcs[item][ItemPosX], ItemsAcs[item][ItemPosY], ItemsAcs[item][ItemPosZ], ItemsAcs[item][ItemPosC]);
		
  		if( ++ sX >= 3) {
            sX = 0;
            sY ++;
        }
		
		PlayerTextDrawShow(playerid, AcsSlotsPlayer[playerid][i]);
	}
	/* Ñëîòû â ïóíêòå "ACCESSORIES" */
	for(new i; i < MAX_SLOTS_INV_PLAYER; i++){
	    new item = PlayerInvAcs[playerid][i];
	    AcsInvSlotsPlayer[playerid][i]  				=	CreatePlayerTextDraw(playerid, 520.4179 + (iX * 28), 178.3332 + (iY * 35), "");
		PlayerTextDrawTextSize						(playerid, AcsInvSlotsPlayer[playerid][i], 26.0000, 33.0000);
		PlayerTextDrawAlignment						(playerid, AcsInvSlotsPlayer[playerid][i], 1);
		PlayerTextDrawColor							(playerid, AcsInvSlotsPlayer[playerid][i], -1);
		PlayerTextDrawBackgroundColor				(playerid, AcsInvSlotsPlayer[playerid][i], 831318015);
		PlayerTextDrawFont							(playerid, AcsInvSlotsPlayer[playerid][i], 5);
		PlayerTextDrawSetProportional				(playerid, AcsInvSlotsPlayer[playerid][i], 0);
		PlayerTextDrawSetShadow						(playerid, AcsInvSlotsPlayer[playerid][i], 0);
		PlayerTextDrawSetSelectable					(playerid, AcsInvSlotsPlayer[playerid][i], true);
		PlayerTextDrawSetPreviewModel				(playerid, AcsInvSlotsPlayer[playerid][i], SlotsInvAcs[playerid][i]);
		PlayerTextDrawSetPreviewRot					(playerid, AcsInvSlotsPlayer[playerid][i], ItemsAcs[item][ItemPosX], ItemsAcs[item][ItemPosY], ItemsAcs[item][ItemPosZ], ItemsAcs[item][ItemPosC]);
  		if( ++ iX >= 4) {
            iX = 0;
            iY ++;
        }

		PlayerTextDrawShow(playerid, AcsInvSlotsPlayer[playerid][i]);
	}
	/* Ñëîò ïîä ñêèíà */
 	SkinForPlayer[playerid] = CreatePlayerTextDraw(playerid, 434.8822, 149.7500, ""); // ?????
	PlayerTextDrawTextSize(playerid, SkinForPlayer[playerid], 90.0000, 90.0000);
	PlayerTextDrawAlignment(playerid, SkinForPlayer[playerid], 1);
	PlayerTextDrawColor(playerid, SkinForPlayer[playerid], -1);
	PlayerTextDrawBackgroundColor(playerid, SkinForPlayer[playerid], 0x00000000);
	PlayerTextDrawFont(playerid, SkinForPlayer[playerid], 5);
	PlayerTextDrawSetProportional(playerid, SkinForPlayer[playerid], 0);
	PlayerTextDrawSetShadow(playerid, SkinForPlayer[playerid], 0);
	PlayerTextDrawSetPreviewModel(playerid, SkinForPlayer[playerid], 0);
	PlayerTextDrawSetPreviewRot(playerid, SkinForPlayer[playerid], 0.0000, 0.0000, 0.0000, 1.0000);
	
	return PlayerTextDrawShow(playerid, SkinForPlayer[playerid]);
}
stock SendError(playerid, text[128]){
	new str[18 + sizeof(text)];
	format(str, sizeof(str), "[Îøèáêà]: {FFFFFF}%s", text);
	return SendClientMessage(playerid, 0xEB4C42FF, str);
}
stock AddSlotAcs(playerid, itemid){
	new slot;
	switch(itemid){
	    case 1: slot = 0;
	    case 2: slot = 1;
	    case 3: slot = 2;
	}
	if(SlotsAcs[playerid][slot] != 1649){
	    AddAcs(playerid, PlayerAcs[playerid][slot]);
	    
   		PlayerTextDrawSetPreviewModel(playerid, AcsSlotsPlayer[playerid][slot], ItemsAcs[itemid][ItemID]);
		PlayerTextDrawSetPreviewRot(playerid, AcsSlotsPlayer[playerid][slot], ItemsAcs[itemid][ItemPosX], ItemsAcs[itemid][ItemPosY], ItemsAcs[itemid][ItemPosZ], ItemsAcs[itemid][ItemPosC]);
		PlayerTextDrawShow(playerid, AcsSlotsPlayer[playerid][slot]);

		SlotsAcs[playerid][slot] = ItemsAcs[itemid][ItemID];
		PlayerAcs[playerid][slot] = ItemsAcs[itemid][IDSlot];

		SlotsAcsPlayer[playerid] --;
	}
	else{
		PlayerTextDrawSetPreviewModel(playerid, AcsSlotsPlayer[playerid][slot], ItemsAcs[itemid][ItemID]);
		PlayerTextDrawSetPreviewRot(playerid, AcsSlotsPlayer[playerid][slot], ItemsAcs[itemid][ItemPosX], ItemsAcs[itemid][ItemPosY], ItemsAcs[itemid][ItemPosZ], ItemsAcs[itemid][ItemPosC]);
		PlayerTextDrawShow(playerid, AcsSlotsPlayer[playerid][slot]);

		SlotsAcs[playerid][slot] = ItemsAcs[itemid][ItemID];
		PlayerAcs[playerid][slot] = ItemsAcs[itemid][IDSlot];

		SlotsAcsPlayer[playerid] --;
	}
}
stock AddAcs(playerid, itemid){
	new str[256];
    if(!OpenAcsInv{playerid}) SHAcsInv(playerid, 1);
	for(new i; i < MAX_SLOTS_INV_PLAYER; i++){
 		if(SlotsInvAcs[playerid][i] == 1649){
			PlayerTextDrawSetPreviewModel(playerid, AcsInvSlotsPlayer[playerid][i], ItemsAcs[itemid][ItemID]);
			PlayerTextDrawSetPreviewRot(playerid, AcsInvSlotsPlayer[playerid][i], ItemsAcs[itemid][ItemPosX], ItemsAcs[itemid][ItemPosY], ItemsAcs[itemid][ItemPosZ], ItemsAcs[itemid][ItemPosC]);
	  		PlayerTextDrawShow(playerid, AcsInvSlotsPlayer[playerid][i]);

			SlotsInvAcs[playerid][i] = ItemsAcs[itemid][ItemID];
			PlayerInvAcs[playerid][i] = ItemsAcs[itemid][IDSlot];

			SlotsPlayer[playerid] --;
			format(str, sizeof(str), "Âàì áûë äîáàâëåí àêñåññóàð %s. ×òîáû îòêðûòü èíâåíòàðü ñ àêñåññóàðàìè - Y èëè [/acsinv]", ItemsAcs[itemid][ItemName]);
			SendClientMessage(playerid, 0xF4CA16FF, str);
			break;
		}
	}
}
stock UpdateColorSlot(playerid, slot){
	if(SlotClicked[playerid][1] == -1) SlotClicked[playerid][0] = 0;
	else SlotClicked[playerid][0] = SlotClicked[playerid][0] = SlotClicked[playerid][1];
    SlotClicked[playerid][1] = slot;
	PlayerTextDrawBackgroundColor(playerid, AcsInvSlotsPlayer[playerid][SlotClicked[playerid][0]], 831318015);
	PlayerTextDrawBackgroundColor(playerid, AcsInvSlotsPlayer[playerid][SlotClicked[playerid][1]], 0xFF0000FF);

	PlayerTextDrawShow(playerid, AcsInvSlotsPlayer[playerid][SlotClicked[playerid][0]]);
	PlayerTextDrawShow(playerid, AcsInvSlotsPlayer[playerid][SlotClicked[playerid][1]]);
	for(new y = 10; y < 17; y++) TextDrawShowForPlayer(playerid, Inventory_TD[y]);
	return 1;
}
stock ClearSlotsInv(playerid, slot){
	SlotsInvAcs[playerid][slot] = 1649;
	PlayerInvAcs[playerid][slot] = ItemsAcs[0][IDSlot];
	SlotsPlayer[playerid] ++;
	SHAcsInv(playerid, 0);
	return SHAcsInv(playerid, 1);
}
stock ClearSlotsAcs(playerid, slot){
	SlotsAcs[playerid][slot] = 1649;
	PlayerAcs[playerid][slot] = ItemsAcs[0][IDSlot];
	SlotsAcsPlayer[playerid] ++;
	SHAcsInv(playerid, 0);
	return SHAcsInv(playerid, 1);
}
stock SetPlayerAttach(playerid, id){
	switch(id){
	    case 1: SetPlayerAttachedObject(playerid,0,11704,2,0.057999,0.102999,-0.015000,174.199996,92.100013,0.000000,
0.324000,0.495999,0.455000);
	    case 2: SetPlayerAttachedObject(playerid,1,11737,6,0.277000,0.067999,0.039000,89.699966,0.000000,98.500000,0.
574000,0.515000,6.558998);
	    case 3: SetPlayerAttachedObject(playerid,2,18637,1,0.114999,-0.063999,0.103000,89.500000,0.300000,-104.600028,
0.813000,0.946000,1.000000);
	}
}


Этап 5 - Клики по текстдравам в инвентаре для аксессуаров

public OnPlayerClickTextDraw(playerid, Text:clickedid){
	new slot = PlayerInvAcs[playerid][SlotClicked[playerid][1]];
	if(clickedid == Text:INVALID_TEXT_DRAW){
		if(OpenAcsInv{playerid}) SHAcsInv(playerid, 0);
	}
	if(clickedid == Inventory_TD[10]){
	    if(SlotsAcsPlayer[playerid]){
	        SetPlayerAttach(playerid, slot);
	        ClearSlotsInv(playerid, SlotClicked[playerid][1]);
	        AddSlotAcs(playerid, slot);
		}
		else SendError(playerid, "Âñå ñëîòû ïîä àêñåññóàðû çàíÿòû!");
	}
	if(clickedid == Inventory_TD[11]){
	    new str[512], str2[512];
	    format(str2, sizeof(str2), "{FFFFFF}- Àêñåññóàð: {F4CA16}%s\n", ItemsAcs[slot][ItemName]);
	    strcat(str, str2);
	    format(str2, sizeof(str2), "{FFFFFF}- Îïèñàíèå: {F4CA16}%s\n", ItemsAcs[slot][ItemInfo]);
	    strcat(str, str2);
	    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, !"{FFFFFF}Èíôîðìàöèÿ îá || {F4CA16}Àêñåññóàðå", str, !"Çàêðûòü", !"");
	}
	if(clickedid == Inventory_TD[12]){
	    new str[148];
	    format(str, sizeof(str), "[Èíôîðìàöèÿ]: {FFFFFF}Âû âûêèíóëè àêñåññóàð %s!", ItemsAcs[slot][ItemName]);
	    SendClientMessage(playerid, 0xF4E14EFF, str);
	    ClearSlotsInv(playerid, SlotClicked[playerid][1]);
	}
	return 1;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid){
	for(new i; i < MAX_SLOTS_INV_PLAYER; i++){
		if(playertextid == AcsInvSlotsPlayer[playerid][i]){
 			if(SlotsInvAcs[playerid][i] != 1649) UpdateColorSlot(playerid, i);
			break;
		}
	}
	for(new i; i < MAX_SLOTS_ACS_PLAYER; i++){
		if(playertextid == AcsSlotsPlayer[playerid][i]){
		    if(SlotsAcs[playerid][i] != 1649){
		        AddAcs(playerid, PlayerAcs[playerid][i]);
		        ClearSlotsAcs(playerid, i);
	 			RemovePlayerAttachedObject(playerid, i);
		    }
			break;
		}
	}
	return 1;
}


Этап 6 - Загрузки/удаления

DeleteInvDateForPlayer(playerid); // Добавляем в OnPlayerConnect/OnPlayerDisconnect (Это отвечает что когда игрок выйдет с игры, у него удаляться аксессуары чтобы у нового игрока их не было)
LoadInvTextDraws(); // Добавляем в OnGsmeModeInit (Это загружает глобальные текстдравы)

Сообщение отредактировал GUMBALL_FAMILY: 12 мая 2022 - 16:25

1

#2
Пользователь офлайн   NiceXPlayer 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Плюс)
0

#3
Пользователь офлайн   GUMBALL_FAMILY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNiceXPlayer (19 мая 2022 - 11:19) писал:

Плюс)

Спасибо, рад что тебе понравилась система :3
0

#4
Пользователь офлайн   Perdolinka 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Научись выделять память рационально, потому что массивы, длиною в 512, 256, 128 ячеек сведут твой стек на нет. Всему есть место, нужно к этому делу соответственно относится
0

#5
Пользователь офлайн   GUMBALL_FAMILY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияPerdolinka (20 мая 2022 - 16:13) писал:

Научись выделять память рационально, потому что массивы, длиною в 512, 256, 128 ячеек сведут твой стек на нет. Всему есть место, нужно к этому делу соответственно относится

Я над этим и учусь
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика