В теме 6 сообщений

ищу адекватную систему аксессуаров, может у кого есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этап 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 (Это загружает глобальные текстдравы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rayan взять и скопировать с другого форума могу и я, мне нужны аксессуары без инвентаря на тд

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@hokageud Ты попросил систему акксов, я тебе дал, этой системой я пользуюсь, но сейчас нет так как я решил создать свой мод

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Rayan дай угадаю, ты наверное её на mysql перевёл?)

Заметка от Cawfee , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@hokageud Нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

    • Max Luilchack
      От Max Luilchack
      Нужен человек который сможет сделать примерную карту Украины для сервера crmp mobile. Если есть желающие пишите в дс: lamarlml
    • Yashich
      От Yashich
      Возникла проблема, не работает команда /giverank Что здесь может работать не так? Заранее спасибо за ответ)
      Вот строки кода связанные с этой командой (мод Аризона)
       
      CMD:giverank(playerid, params[]) {     if(PI[playerid][pMember]<=0)return 0;     if(PI[playerid][pRank] < 9 && PI[playerid][pLeader] == 0) return SCM(playerid, COLOR_RED, !"Отказано в доступе!");     if(sscanf(params,"ud",params[0],params[1])) return SCM(playerid, COLOR_RED, !"Используйте: /giverank [id] [rank]");     if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY, !"Вы должны находиться рядом с игроком!");     if(PI[params[0]][pLeader] > 0 ) return SCM(playerid, COLOR_RED, !"Вы не можете изменять ранг лидеру");     if(params[1] < 1) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(Clother[params[0]]!=-1)return 0;     if(GetPlayerVirtualWorld(playerid)!=GetPlayerVirtualWorld(params[0]))return 0;     if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, !"Игрок не найден");     if(PI[playerid][pRank] <= PI[params[0]][pRank]) return SCM(playerid, COLOR_GREY, !"Вы не можете повысить/понизить этого игрока");     if(PI[playerid][pRank] == 9 && params[1] > 8) return SCM(playerid, COLOR_RED, !"Нельзя выдать ранг больше 8");     if(params[1] > 9) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(PI[params[0]][pMember] != PI[playerid][pMember]) return SCM(playerid, COLOR_GREY, !"Игрок находиться в другой организации!");     str_1[0] = EOS;     f(str_1,100,"Лидер %s %s до %i ранга",PN(playerid),PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),params[1]);     SCM(params[0],COLOR_LIGHTBLUE,str_1);     f(str_1,100,"Вы %sи игрока %s до %i ранга",PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),PN(params[0]),params[1]);     SCM(playerid,COLOR_LIGHTBLUE,str_1);     PI[params[0]][pRank] = params[1];     UpdatePlayerDataInt(params[0], "Rank", params[1]);     if(PI[params[0]][pSex] == 2) if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],GOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     else if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],MOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     return 1; }