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

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

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

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

Мануал Ферма льна v2 | Arizona RP

KoTT

Начинающий
Пользователь
Регистрация
23 Сен 2016
Сообщения
16
Лучшие ответы
0
Репутация
9
Копия фермы льна с Arizona RP.
Отличия от данной системы:
PHP:
1. Обновлены цвета у текста и переписан некоторый текст (full copy arizona)
2. Добавлена анимация при сборе
3. Теперь нужно УДЕРЖИВАТЬ пробел, если отпустить - сбор прекратится
4. Сделаны 3 стадии роста, у каждой стадии свой объект [full copy arizona]
5. Теперь не будет флудить если хлопок ещё не вырос, а игрок пытается собрать его
6. Исправлен баг с инструментом, теперь размер нормальный
7. Бот перенесён на новое место [full copy arizona]
8. Вместо хлопка сделан лён, т.к на аризоне на том поле растёт лён.
9. Добавлен GameText "LINEN +1" при сборе
10. Скин бота переделан на 132 и бота теперь зовут Эмилио [full copy arizona]
11. На территории всей фермы создана динамическая зона, при покидании которой грабли будут пропадать
В будущем сделаю ферму хлопка на втором поле.




Итак, приступим.
В начало мода добавляем:
PHP:
new bool:farmstart[MAX_PLAYERS];
new timerferm[MAX_PLAYERS];
new FarmCotton;
new OBJECT_RAKE[MAX_PLAYERS];
const MAX_LINEN_OBJECT = 11;

enum cInfo
{
    cStatus,
    Float:cPosX,
    Float:cPosY,
    Float:cPosZ,
    cObject,
    Text3D:cLabel,
    cScore,
    cSecund,
    cTimer,
    cStatusTimer
}
new LinenInfo[MAX_LINEN_OBJECT][cInfo] =
{
    {true, -264.8821,-1393.6427,11.4850},
    {true, -288.1983,-1396.1859,12.2953},
    {true, -310.4437,-1416.4810,15.0943},
    {true, -290.1641,-1416.4885,13.1366},
    {true, -265.3173,-1415.6331,10.4779},
    {true, -239.7378,-1413.1207,8.4944},
    {true, -214.3640,-1411.2096,6.3158},
    {true, -189.4012,-1408.9705,4.3835},
    {true, -189.3507,-1388.5031,5.8134},
    {true, -213.2893,-1389.5488,7.4410},
    {true, -240.2519,-1391.7345,10.5762}
};
В OnGameModeInit:
PHP:
    CreateActor(132, -257.3548,-1363.2465,9.4872,218.9699);
    CreateDynamic3DTextLabel(!"{FFFFFF}Эмилио{73B461}\nДля взаимодействия нажмите ALT", -1, -257.3548,-1363.2465,9.4872, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID);
    FarmCotton = CreateDynamicSphere(-273.5564,-1403.6481,11.5328,140,-1,-1);

    for(new i; i != MAX_LINEN_OBJECT; i++)
    {
        new string[74];
        LinenInfo[i][cScore] = 10;
        LinenInfo[i][cStatus] = 2;
        LinenInfo[i][cObject] = CreateDynamicObject(865, LinenInfo[i][cPosX], LinenInfo[i][cPosY], LinenInfo[i][cPosZ]-1.2, 0.000000, 0.000000, 90.000000, -1, -1, -1, STREAMER_OBJECT_SD, 150.0);

        format(string, sizeof(string), "Лён (%d из 10)\n{73B461}Для сбора урожая\n{FFFFFF}нажмите 'ПРОБЕЛ'", LinenInfo[i][cScore]);
        LinenInfo[i][cLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, LinenInfo[i][cPosX], LinenInfo[i][cPosY], LinenInfo[i][cPosZ], 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, 0);
    }
    // Маппинг фермы
    new farm_azrp;
    CreateDynamicObject(3276, -324.248871, -1338.489868, 9.282586, 0.000000, -0.300000, 270.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(3276, -326.009003, -1366.793091, 10.448864, 0.000000, -2.400001, 270.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(669, -317.035706, -1356.585571, 8.132521, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(3276, -319.998993, -1372.605347, 10.160301, 0.000000, 4.599997, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    SetDynamicObjectMaterial(farm_azrp, 4, 2047, "cj_ammo_posters", "cj_flag2", 0xFFFFFFFF);
    CreateDynamicObject(3276, -294.049957, -1371.605103, 8.795693, 0.000000, -4.300000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(708, -288.738342, -1327.096069, 6.905965, 0.000000, 0.000000, 50.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -310.055206, -1417.200562, 14.555190, -1.799998, -0.720000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(3250, -277.783966, -1331.443359, 6.792580, 3.299999, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 2
    SetDynamicObjectMaterial(farm_azrp, 4, 13206, "ce_ground10", "des_shingles", 0);
    SetDynamicObjectMaterial(farm_azrp, 0, 13364, "cetown3cs_t", "pierboards_la", 0);
    farm_azrp = CreateDynamicObject(16305, -288.515442, -1395.778442, 11.706110, -9.060000, 2.700000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16302, -274.729523, -1357.945557, 6.548377, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 3374, "ce_farmxref", "forestfloorbranch256", 0);
    CreateDynamicObject(3276, -269.219757, -1370.931763, 10.030830, 0.000000, -1.000000, 7.799999, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -289.005005, -1416.015991, 12.579700, -2.519999, 7.500000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -266.379333, -1392.968262, 11.032858, -5.460000, -0.539990, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(669, -256.063873, -1323.828735, 8.318888, 0.000000, 0.000000, -73.599998, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(17063, -255.192978, -1355.916260, 7.572071, -5.300000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 3, 13364, "cetown3cs_t", "pierboards_la", 0);
    farm_azrp = CreateDynamicObject(16302, -248.939499, -1339.825562, 3.498378, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 3374, "ce_farmxref", "forestfloorbranch256", 0);
    farm_azrp = CreateDynamicObject(16305, -266.433777, -1414.776123, 10.202580, -1.500000, 6.420000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(3425, -240.765533, -1355.677612, 18.124165, -5.599997, 1.800001, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(3356, -234.708176, -1335.677856, 11.944602, 4.099997, -4.799999, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 2
    SetDynamicObjectMaterial(farm_azrp, 7, 13206, "ce_ground10", "des_shingles", 0);
    SetDynamicObjectMaterial(farm_azrp, 0, 13364, "cetown3cs_t", "pierboards_la", 0);
    farm_azrp = CreateDynamicObject(16305, -240.551025, -1392.222412, 9.909584, 3.420000, 2.460000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(3276, -232.473694, -1369.253906, 8.570076, 0.000000, 7.699997, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -317.102173, -1490.061035, 12.487838, 2.940000, 5.039999, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -240.022232, -1412.442139, 8.084218, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(3276, -220.809814, -1369.253906, 6.993060, 0.000000, 7.699997, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(708, -218.488449, -1351.295532, 5.965968, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -293.829956, -1491.952881, 8.470080, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(3246, -210.021271, -1330.735474, 9.267799, -7.199999, 4.500000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 2
    SetDynamicObjectMaterial(farm_azrp, 2, 13206, "ce_ground10", "des_shingles", 0);
    SetDynamicObjectMaterial(farm_azrp, 0, 13364, "cetown3cs_t", "pierboards_la", 0);
    farm_azrp = CreateDynamicObject(16305, -214.392532, -1390.972656, 7.086150, 3.240000, 4.320000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(17119, -226.960907, -1253.906250, 7.881198, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 400.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 17079, "cuntwland", "stones256", 0);
    farm_azrp = CreateDynamicObject(16302, -202.969528, -1348.605591, 4.238377, 10.799997, 10.399999, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 3374, "ce_farmxref", "forestfloorbranch256", 0);
    farm_azrp = CreateDynamicObject(16305, -316.441742, -1516.374268, 12.487838, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -213.860077, -1411.107300, 5.766038, 7.739998, 4.800000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -269.331573, -1490.492920, 5.324130, -1.080000, -4.860000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -293.433838, -1516.105347, 8.510080, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(3286, -187.612244, -1324.631836, 10.842894, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 2
    SetDynamicObjectMaterial(farm_azrp, 9, 16322, "a51_stores", "des_ghotwood1", 0);
    SetDynamicObjectMaterial(farm_azrp, 0, 16322, "a51_stores", "des_ghotwood1", 0);
    CreateDynamicObject(3276, -188.276016, -1361.726440, 4.150177, 0.000000, 2.999998, 18.299995, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(669, -186.135712, -1311.691528, 5.148883, 0.000000, 0.000000, -13.900007, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -247.564545, -1490.073975, 6.638070, -3.900010, -3.359998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -189.505157, -1389.050903, 5.130838, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -315.316437, -1540.809937, 12.686738, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -268.822510, -1514.668823, 5.404119, -1.080000, -4.860000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(3276, -181.143005, -1303.527222, 4.890498, 0.000000, -4.299999, -167.200027, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -188.429825, -1407.477173, 4.123670, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(669, -177.833572, -1341.540894, 2.539572, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -292.730377, -1539.755493, 8.390110, 3.420000, 4.559998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -225.978333, -1489.831055, 7.678588, -3.900010, -3.359998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -247.170044, -1515.323120, 6.967268, 2.339988, -5.940000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    CreateDynamicObject(3276, -164.135315, -1325.072388, 2.963485, 0.000000, -0.600000, 82.899994, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    CreateDynamicObject(3276, -162.680588, -1313.393555, 3.086738, 0.000000, -0.600000, 82.899994, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 0
    farm_azrp = CreateDynamicObject(16305, -268.249237, -1538.322754, 4.484189, -1.019999, -0.479999, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -225.845047, -1515.922852, 7.389840, 1.919988, 2.339998, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(16305, -244.245865, -1539.854614, 5.641980, 9.239998, -1.080000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
    farm_azrp = CreateDynamicObject(17122, -211.953094, -1543.382813, 4.412398, 0.000000, 0.000000, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 400.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 12866, "ce_ground07", "sw_crops", 0);
    farm_azrp = CreateDynamicObject(7301, -145.711517, -1425.857300, 12.389650, -0.000039, 0.000007, -27.800179, -1, -1, -1, STREAMER_OBJECT_SD, 250.0); // 2
    SetDynamicObjectMaterial(farm_azrp, 1, 18996, "mattextures", "sampwhite", 0);
    SetDynamicObjectMaterial(farm_azrp, 0, 18996, "mattextures", "sampwhite", 0);
    CreateDynamicObject(1259, -144.085922, -1425.350220, 6.729643, -0.000034, -0.000024, -72.900055, -1, -1, -1, STREAMER_OBJECT_SD, 250.0); // 0
    farm_azrp = CreateDynamicObject(16305, -226.324707, -1539.836548, 7.010488, 4.139998, -0.059999, 0.000000, -1, -1, -1, STREAMER_OBJECT_SD, 600.0); // 1
    SetDynamicObjectMaterial(farm_azrp, 0, 10756, "airportroads_sfse", "stones256128", 0);
В public OnPlayerLeaveDynamicArea(playerid, areaid):
PHP:
if(areaid == FarmCotton)
{
    OBJECT_RAKE[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 9);
}
В OnDialogResponse:
PHP:
case 550:
{
    if(!response) return 1;
    if(OBJECT_RAKE[playerid]) return SendClientMessage(playerid, -1, !"У Вас уже есть инструменты");
    if(pData[playerid][pMoney] < 4000) return SendClientMessage(playerid,-1,"У вас недостаточно средств!");
    GiveMoney(playerid,-4000);
    OBJECT_RAKE[playerid] = 1;
    SetPlayerAttachedObject(playerid,9,18890,6,0.04,-0.05,0.01,0.00,0.00,0.00,1.00,0.99,0.43);
    SendClientMessage(playerid, 0x42B02CFF, !"[Подсказка] Чтобы собрать урожай, дождитесь созревания урожая");
    SendClientMessage(playerid, 0x42B02CFF, !"[Подсказка] После того как урожай созреет, подойдите к грядке нажмите ПРОБЕЛ и удерживайте до окончания сбора");
}
В OnPlayerKeyStateChange:
PHP:
if(newkeys == KEY_WALK && IsPlayerInRangeOfPoint(playerid, 2.0, -257.3548,-1363.2465,9.4872)) return ShowPlayerDialog(playerid, 550, DIALOG_STYLE_MSGBOX, !" ", !"{FFFFFF}Вы хотите купить инструмент за $4000?", !"Купить", !"Отмена");
    if(RELEASED(KEY_SPRINT) && farmstart[playerid] == true)
    {
        ClearAnimations(playerid);
        farmstart[playerid] = false;
        KillTimer(timerferm[playerid]);
        SendClientMessage(playerid, 0x73B461FF, !"[Информация] {FFFFFF}Для добычи полезного ископаемого нужно ЗАЖАТЬ 'ПРОБЕЛ'.");
    }
    if(PRESSED(KEY_SPRINT) && farmstart[playerid] == false)
    {
        for(new i; i != MAX_LINEN_OBJECT; i++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 3.0, LinenInfo[i][cPosX], LinenInfo[i][cPosY], LinenInfo[i][cPosZ]))
            {
                if(!OBJECT_RAKE[playerid]) return SendClientMessage(playerid, 0x42B02CFF, !"[Подсказка] Чтобы добыть урожай, нужно купить у Эмилио инструмент (/gps - Разное - Ферма)");
                if(LinenInfo[i][cStatusTimer]) return 1;
                ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 1, 1, 1, 1, 0, 1);
				timerferm[playerid] = SetTimerEx("FarmStatusNone",4000 + random(7099),0,"d",playerid);
				farmstart[playerid] = true;
            }
        }
    }
В конец мода:
PHP:
forward FarmStatusNone(playerid);
public FarmStatusNone(playerid)
{
    for(new i; i != MAX_LINEN_OBJECT; i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, LinenInfo[i][cPosX], LinenInfo[i][cPosY], LinenInfo[i][cPosZ]))
        {
            if(!OBJECT_RAKE[playerid]) return SendClientMessage(playerid, 0x42B02CFF, !"[Подсказка] Чтобы добыть урожай, нужно купить у Эмилио инструмент (/gps - Разное - Ферма)");
            if(LinenInfo[i][cStatusTimer]) return 1;
            if(LinenInfo[i][cStatus] != 2) continue;
            new string[74];
            farmstart[playerid] = false;
            GameTextForPlayer(playerid, "LINEN + 1", 2500, 1);
            pData[playerid][pLinen] += 1;
            LinenInfo[i][cScore] --;

            format(string, sizeof(string), "Лён (%d из 10)\n{73B461}Для сбора урожая\n{FFFFFF}нажмите 'ПРОБЕЛ'", LinenInfo[i][cScore]);
            UpdateDynamic3DTextLabelText(LinenInfo[i][cLabel], -1, string);
            ClearAnimations(playerid);
            if(LinenInfo[i][cScore] <= 0)
            {
                DestroyDynamicObject(LinenInfo[i][cObject]);
                LinenInfo[i][cObject] = CreateDynamicObject(865, LinenInfo[i][cPosX], LinenInfo[i][cPosY], LinenInfo[i][cPosZ]-1.2, 0.000000, 0.000000, 90.000000, -1, -1, -1, STREAMER_OBJECT_SD, 150.0);
        		SetDynamicObjectMaterial(LinenInfo[i][cObject], 0, 812, !"gta_proc_grassland", "oak2b", 0);
                LinenInfo[i][cStatus] = 0;

                LinenInfo[i][cSecund] = 180;
                LinenInfo[i][cStatusTimer] = 1;
                format(string, sizeof(string), "{73B461}Лён в процессе роста\nОсталось {FFFFFF}%s", ConvertTimeAllT(LinenInfo[i][cSecund]));
                UpdateDynamic3DTextLabelText(LinenInfo[i][cLabel], -1, string);
                LinenInfo[i][cTimer] = SetTimerEx("@__CottonProgressGrow", 1000, true, "d", i);
                return 1;
            }
        }
	}
	return 1;
}
forward @__CottonProgressGrow(cottonid);
public @__CottonProgressGrow(cottonid)
{
	new string[74];
	LinenInfo[cottonid][cSecund]--;
	format(string, sizeof(string), "{73B461}Лён в процессе роста\nОсталось {FFFFFF}%s", ConvertTimeAllT(LinenInfo[cottonid][cSecund]));
	UpdateDynamic3DTextLabelText(LinenInfo[cottonid][cLabel], -1, string);
    if(LinenInfo[cottonid][cSecund] <= 0)
    {
        if(LinenInfo[cottonid][cStatus] == 0)
        {
            DestroyDynamicObject(LinenInfo[cottonid][cObject]);
            LinenInfo[cottonid][cObject] = CreateDynamicObject(865, LinenInfo[cottonid][cPosX], LinenInfo[cottonid][cPosY], LinenInfo[cottonid][cPosZ]-1.2, 0.000000, 0.000000, 90.000000, -1, -1, -1, STREAMER_OBJECT_SD, 150.0);
    		SetDynamicObjectMaterial(LinenInfo[cottonid][cObject], 0, 817, "gta_procflowers", "gras07Si", 0);
            LinenInfo[cottonid][cStatus] = 1;

            LinenInfo[cottonid][cSecund] = 180;
            LinenInfo[cottonid][cStatusTimer] = 1;
            format(string, sizeof(string), "{73B461}Лён в процессе роста\nОсталось {FFFFFF}%s", ConvertTimeAllT(LinenInfo[cottonid][cSecund]));
            UpdateDynamic3DTextLabelText(LinenInfo[cottonid][cLabel], -1, string);
        }
        else if(LinenInfo[cottonid][cStatus] == 1)
        {
	        DestroyDynamicObject(LinenInfo[cottonid][cObject]);
	        LinenInfo[cottonid][cObject] = CreateDynamicObject(865, LinenInfo[cottonid][cPosX], LinenInfo[cottonid][cPosY], LinenInfo[cottonid][cPosZ]-1.2, 0.000000, 0.000000, 90.000000, -1, -1, -1, STREAMER_OBJECT_SD, 150.0);
			LinenInfo[cottonid][cStatus] = 2;
			LinenInfo[cottonid][cScore] = 10;
			LinenInfo[cottonid][cStatusTimer] = 0;

			format(string, sizeof(string), "Лён (%d из 10)\n{73B461}Для сбора урожая\n{FFFFFF}нажмите 'ПРОБЕЛ'", LinenInfo[cottonid][cScore]);
			UpdateDynamic3DTextLabelText(LinenInfo[cottonid][cLabel], -1, string);
			KillTimer(LinenInfo[cottonid][cTimer]);
		}
    }
    return 1;
}
stock ConvertTimeAllT(time)
{
	new str[20];
    if(time > 60 && time < 3600)
    {
	    new Float:TimeM,TimeS;
	    TimeM = time / 60;
	    TimeS = time % 60;
	    format(str,sizeof(str),"%.0f:%02d",TimeM,TimeS);
    }
    else if(time < 60) format(str,sizeof(str),"0:%02d",time);
    return str;
}
Дополнительно:
PHP:
#define PRESSED(%0) 															(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0)															(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
pData[playerid][pLinen] - переменная, в которой будет хранится весь лён игрока
pData[playerid][pMoney] - переменная с деньгами игрока
GiveMoney(playerid,-4000); - отнимаем деньги у игрока
 
Последнее редактирование:
Сверху Снизу