Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

[ARZ] Система стадии смерти

Дек
357
191
Пользователь
Хай, сливаю систему стадии смерти. Система не фулл, так как не хочу чтобы она быстро обесценилась

пуфн:
//В конец

stock pizdaigroky(playerid)
{
    f(global_str, sizeof(global_str), "Сразу отправиться в больницу\nДождаться врачей ({C8FF46}%d BTC{FFFFFF})\n", pTemp[playerid][playerDeathFree] ? 0 : 100000);
    if(playerItemCount(playerid, 1723))
        strcat(global_str, "Поставить укол с адреналина и встать на ноги");
    return SPD(playerid, 1599, DIALOG_STYLE_LIST, !"Вы на грани смерти!", global_str, !"Выбрать", !"");
}


cmd:test(playerid) return pizdaigorky(playerid);


//в OnDialogResponse



        case 1599:
        {
            if(listitem == 1 && playerItemCount(playerid, 1811) >= (!pTemp[playerid][playerDeathFree] ? 100000 : 0))
            {
                pTemp[playerid][playerDeathDoctors] = 1;
                pTemp[playerid][playerDeathTime] = Global_Time + 300;

                if(pTemp[playerid][playerDeathFree]) pTemp[playerid][playerDeathFree]--;
                else removePlayerItem(playerid, 1811, 100000);

                return true;
            }

            pTemp[playerid][playerDeath] = false;

            return BackToBolka(playerid);
        }
 
Активный из Python
Мар
858
1,553
Активный
лучший так можно и свой мод написать!
 
Активный из Python
Мар
858
1,553
Активный
2.14. Запрещено флудить, оффтопить, заниматься флеймом.
окак stock pizdaigroky(playerid)
 
Авг
30
35
Пользователь
В enum _temp_
_temp_:
playerDeath,
playerDeathTime,
playerDeathFree,
playerDeathDoctors,
Float:playerDeathPosition[3],

В stock ClearPlayerData
ClearPlayerData:
pTemp[playerid][playerDeath] =
pTemp[playerid][playerDeathDoctors] =
pTemp[playerid][playerDeathTime] = 0;
pTemp[playerid][playerDeathFree] = 5;

В любое место
Stock:
stock ShowPlayerDeathDialog(playerid)
{
    f(global_str, sizeof(global_str), "Сразу отправиться в больницу\nДождаться врачей ({C8FF46}%d BTC{FFFFFF})\n", pTemp[playerid][playerDeathFree] ? 0 : 100000);

    if(playerItemCount(playerid, 1723))
        strcat(global_str, "Поставить укол с адреналина и встать на ноги");

    return SPD(playerid, 1599, DIALOG_STYLE_LIST, !"Вы на грани смерти!", global_str, !"Выбрать", !"");
}

В stock UpdatePlayers()
UpdatePlayers:
if(pTemp[playerid][playerDeath])
{
    if(pTemp[playerid][playerDeathTime] > Global_Time)
        GameTextForPlayerf(playerid, 500, 3, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~r~%s%d SEC", pTemp[playerid][playerDeathDoctors] ? "DOCTORS WAITING: " : "", pTemp[playerid][playerDeathTime] - Global_Time);

    else ShowPlayerDeathDialog(playerid);
}

CMD для теста кому надо
CMD:
cmd:testdeath(playerid) return ShowPlayerDeathDialog(playerid);

В public OnDialogResponse
Pawn:
case 1599:
{
    if(listitem == 1 && playerItemCount(playerid, 1811) >= (!pTemp[playerid][playerDeathFree] ? 100000 : 0))
    {
        pTemp[playerid][playerDeathDoctors] = 1;
        pTemp[playerid][playerDeathTime] = Global_Time + 300;

        if(pTemp[playerid][playerDeathFree]) pTemp[playerid][playerDeathFree]--;
        else removePlayerItem(playerid, 1811, 100000);

        return true;
    }

    pTemp[playerid][playerDeath] = false;

    return BackToBolka(playerid);
}
Если нужно сравнение stock BackToBolka(playerid)
BackToBolka:
stock BackToBolka(playerid)
{
    if(!IsAArmy(playerid))
    {
        if(IsPlayerToKvadrat(playerid, -891.3302, -2950.0190, 2915.9917, 560.3257)) PI[playerid][pHospCity] = 1;
        else if(IsPlayerToKvadrat(playerid, -2929.6589, -2889.1660, -1326.9077, 1493.1770)) PI[playerid][pHospCity] = 3;
        else PI[playerid][pHospCity] = 2;
    }
    else
    {
        SetPlayerVirtualWorldEx(playerid, 1);
        SetPlayerInterior(playerid, 2);
    }
    if(PI[playerid][pHospital] > 0) PI[playerid][pHospital] --;
    PI[playerid][pHeal] = 1;
    PI[playerid][pHealTime] = 0;
    PlayerLie{playerid} = false;
    TogglePlayerControllable(playerid, true);
    PlayerSpawn(playerid);
    if(IsValidDynamic3DTextLabel(DeathText[playerid])) DestroyDynamic3DTextLabel(DeathText[playerid]);
    return true;
}
 
Авг
30
35
Пользователь
слей систему /bonus:)
ID предметов поменяете сами под свои

В любое место
Stock:
stock ShowBonusMenu(playerid, type)
{
    global_str = "{FFDB8B}Награда\t{FFDB8B}Необходимо отыграть\t{FFDB8B}Статус";
    for(new i, s; i < sizeof(BonusInfo); i++)
    {
        if(BonusInfo[i][bonusType] != type) continue;
        if(type) s++;
        strcat(global_str, (str_f("\n{F6AB2F}[%d]{bfbbba} %s\t%i часов\t%s", !type ? i + 1 : s, BonusInfo[i][bonusName], BonusInfo[i][bonusTime], BonusInfo[i][bonusTime] > BonusTime[playerid][type] ? "{bfbbba}Недоступно" : BonusTake[playerid][type][i] ? "{FFDB8B}Награда уже получена" : "{A8E4A0}Награду можно получить")));
        spdList(playerid, !type ? i : s - 1, i);
    }
    return spdList(playerid, 0, type), SPD(playerid, 27136, DIALOG_STYLE_TABLIST_HEADERS, !"{F6AB2F}Бонусное меню", global_str, !"Далее", !"Отмена");
}

Куда нибудь вверх
bonusInfo:
enum bonusInfo
{
    bonusType,
    bonusName[50],
    bonusTime,
    bonusPrize_type, // 0 - item | 1 - vip | 2 - admin | 3 - rubles
    bonusPrize,
    bonusPrize_amount,
    bonusPrize_enchant
}
new BonusInfo[][bonusInfo] =
{
    {0, "25 AZ RUB", 1, 3, 25, 0, 0},
    {0, "50 AZ RUB", 2, 3, 50, 0, 0},
    {0, "75 AZ RUB", 3, 3, 75, 0, 0},
    {0, "100 AZ RUB", 6, 3, 100, 0, 0},
    {0, "100.000 BTC", 8, 0, 1811, 100000, 0},
    {0, "150.000 BTC", 10, 0, 1811, 150000, 0},
    {0, "200.000 BTC", 13, 0, 1811, 200000, 0},
    {0, "Неоновая подстветка", 15, 0, 6518, 1, 0},
    {0, "Бронежилет «Гравити Фолз»", 20, 0, 6560, 1, 0},
    {0, "Mercedes GT63", 30, 0, 1417, 1, 0},
    {0, "400 AZ RUB", 35, 0, 3, 400, 0},
    {0, "2 запечатанных сертификата на т/с", 40, 0, 4581, 2, 0},
    {0, "500 AZ RUB", 52, 3, 500, 0, 0},
    {0, "Грузовой автомобиль \"Volvo 460\"", 56, 0, 4813, 1, 0},
    {0, "Уникальный транспорт \"Mercedes Vision AVTR\"", 61, 0, 3984, 1, 0},
    {0, "10 Разрешений на номера", 65, 0, 7035, 10, 0},
    {0, "Цепь махинатора", 70, 0, 6313, 1, 0},
    {0, "RGB чемодан", 80, 0, 6269, 1, 0},
    {0, "Нимб всевластия", 90, 0, 8298, 1, 0},
    {0, "Аркана ИО", 100, 0, 8302, 1, 0},
    {1, "Ларец Водителя Автобуса [30шт.]", 3, 0, 3992, 30, 0},
    {1, "Ларец дальнобойщика [30шт.]", 5, 0, 3623, 30, 0},
    {1, "Ларец Олигарха [30шт.]", 7, 0, 2149, 30, 0},
    {1, "Ларец кастомных аксессуаров [30шт.]", 10, 0, 2187, 30, 0},
    {1, "Ларец пилота [75шт.]", 20, 0, 4792, 75, 0},
    {1, "Ларец организации [150шт.]", 25, 0, 3559, 150, 0},
    {1, "Дрон Рабочий [+10]", 30, 0, 5443, 1, 10},
    {1, "Дрон 320 [+12]", 40, 0, 5445, 1, 12},
    {1, "Дрон Диджей [+10]", 50, 0, 5444, 1, 10},
    {1, "Бронежилет [1] [+10]", 60, 0, 3518, 1, 10},
    {1, "Бронежилет [2] [+10]", 70, 0, 3519, 1, 10},
    {1, "Бронежилет [3] [+10]", 80, 0, 3520, 1, 10},
    {2, "50 AZ RUB", 5, 3, 50, 0, 0},
    {2, "100 AZ RUB", 10, 3, 100, 0, 0},
    {2, "150 AZ RUB", 15, 3, 150, 0, 0},
    {2, "200 AZ RUB", 20, 3, 200, 0, 0},
    {2, "250 AZ RUB", 25, 3, 250, 0, 0},
    {2, "300 AZ RUB", 30, 3, 300, 0, 0},
    {2, "350 AZ RUB", 35, 3, 350, 0, 0},
    {2, "400 AZ RUB", 40, 3, 400, 0, 0},
    {2, "450 AZ RUB", 45, 3, 450, 0, 0},
    {2, "500 AZ RUB", 50, 3, 500, 0, 0}
}, BonusTake[MAX_PLAYERS][3][sizeof(BonusInfo)], BonusTime[MAX_PLAYERS][3];

CMD для bonus
CMD:
cmd:bonus(playerid)
{
    static const bonusType_name[][] = {"Общедоступный", "Фракционный", "Ежедневный"};
    mysql_string[0] = EOS;
    for(new i; i < sizeof(bonusType_name); i++)
        strcat(mysql_string, (str_f("\n{F6AB2F}[%d]{ffffff} %s", i + 1, bonusType_name[i])));
    return SPD(playerid, 27135, DIALOG_STYLE_LIST, !"{F6AB2F}Выборочное бонусное меню", mysql_string, !"Выбор", !"Отмена");
}

В public OnDialogResponse
Pawn:
case 27135:
{
      if(!response) return false;
      return ShowBonusMenu(playerid, listitem);
}
 
Сверху