Показано с 1 по 2 из 2
  1. #1
    Аватар для e.kosovskij
    Проверенный
    Регистрация
    09.07.2010
    Адрес
    Украина, Харьков
    Сообщений
    3,182
    Репутация
    308

    Некие DM-зоны

    Простенькие ДМ-зоны, просто погасится.
    Описание: Администратор создает зону(/dmzona), указывает номер карты(1-3) и ид оружия для всех игроков. Игроки присоединяются к зоне(/joindm)
    На присоединение дается 20 секунд, после начинается игра, при условии что участников >= 2.
    Тот кто остается последним выжившим - победитель.

    Автор: McLuhan

    PHP код:
    new
        
    dm_status// 0 off, 1 wait timer, 2 game
        
    dm_players,
        
    dm_map,
        
    dm_gun,
        
    dm_places[50] = { -1,... },
        
    dm_name[3][15] = { "RC Battlefield""Kickstar""Fuck Map's" },
        
    dm_int[3] = { 1014},
        
    Floatdm_coord[3][50][4] = {
            {
                { -
    975.1657,1076.6517,1344.9830,347.0121 }, // 1
                
    { -976.6990,1089.7723,1344.9648,310.0481 }, // 2
                
    { -984.8397,1084.9744,1343.3719,120.4605 }, // 3
                
    { -1000.6787,1066.7200,1342.8085,138.6927 }, // 4
                
    { -1014.3192,1062.3845,1343.1182,105.8065 }, // 5
                
    { -1054.4824,1087.8796,1343.0005,206.2982 }, // 6
                
    { -1044.7474,1091.2740,1345.1617,303.2646 }, // 7
                
    { -1041.9940,1079.2516,1347.4344,192.8194 }, // 8
                
    { -1050.1090,1049.3723,1341.3516,187.5489 }, // 9
                
    { -1045.1642,1024.0060,1343.0859,148.7139 }, // 10
                
    { -1060.1998,1037.8523,1345.7549,80.5736 }, // 11
                
    { -1069.8038,1039.4471,1344.2457,80.5736 }, // 12
                
    { -1097.8187,1033.2106,1343.2885,108.1893 }, // 13
                
    { -1110.1710,1027.1119,1343.4178,106.4266 }, // 14
                
    { -1112.7407,1029.0867,1343.2291,47.6874 }, // 15
                
    { -1112.0874,1050.8613,1342.5035,3.6374 }, // 16
                
    { -1113.0701,1066.3286,1342.7172,3.6374 }, // 17
                
    { -1114.5491,1089.6108,1341.8438,3.6374 }, // 18
                
    { -1094.5481,1091.9106,1341.9229,280.2203 }, // 19
                
    { -1084.8936,1093.6515,1343.8264,280.2203 }, // 20
                
    { -1129.1992,1056.6268,1346.4141,96.9166 }, // 21
                
    { -1129.9508,1049.5111,1345.7354,175.6684 }, // 22
                
    { -1131.6450,1031.6069,1348.0155,175.6684 }, // 23
                
    { -1132.5251,1022.5214,1345.7260,172.1430 }, // 24
                
    { -1130.5690,1027.1548,1345.7249,81.8896 }, // 25
                
    { -1128.7461,1094.3881,1345.7716,58.4221 }, // 26
                
    { -1134.1047,1097.6824,1345.8103,58.4221 }, // 27
                
    { -1023.6411,1079.8506,1344.0717,193.4012 }, // 28
                
    { -1021.4136,1070.5010,1344.2285,193.4012 }, // 29
                
    { -1020.3755,1052.2540,1345.6842,172.2487 }, // 30
                
    { -1009.8916,1065.0931,1341.5649,16.7401 }, // 31
                
    { -1009.5238,1091.0402,1341.0892,359.1306 }, // 32
                
    { -983.1326,1097.3566,1343.8693,287.5001 }, // 33
                
    { -989.2128,1099.7694,1343.0552,68.3548 }, // 34
                
    { -985.0956,1022.7217,1342.0520,275.1964 }, // 35
                
    { -1000.0173,1024.1599,1341.8438,88.5467 }, // 36
                
    { -1007.3713,1024.3464,1341.3687,88.5467 }, // 37
                
    { -1016.9863,1028.0801,1343.3739,60.3434 }, // 38
                
    { -1031.7742,1042.4126,1341.9386,38.6034 }, // 39
                
    { -1066.4438,1077.3630,1342.0570,346.3274 }, // 40
                
    { -1128.4037,1053.2408,1345.7286,123.2484 }, // 41
                
    { -1111.7571,1044.4115,1342.5505,254.8813 }, // 42
                
    { -1095.7299,1039.5443,1343.0972,237.8418 }, // 43
                
    { -1089.4907,1044.3751,1347.3376,334.2030 }, // 44
                
    { -1075.5126,1071.6882,1341.7610,330.0900 }, // 45
                
    { -1062.7888,1083.5728,1342.8463,305.9997 }, // 46
                
    { -1049.4778,1094.3003,1343.3547,355.9430 }, // 47
                
    { -1048.8112,1082.5208,1343.4789,180.2777 }, // 48
                
    { -1048.7235,1064.2633,1344.3512,180.2777 }, // 49
                
    { -1053.1313,1055.5924,1341.3516,180.2777 // 50
            
    },
            {
                { -
    1384.8959,1642.2629,1052.5313,291.9339 }, // 1
                
    { -1360.5942,1646.9590,1052.5313,183.8562 }, // 2
                
    { -1356.4794,1625.1337,1052.5313,105.2088 }, // 3
                
    { -1377.0270,1605.5090,1052.5313,135.6025 }, // 4
                
    { -1378.4276,1588.8336,1052.5313,181.3496 }, // 5
                
    { -1351.7335,1593.0095,1052.5313,355.2513 }, // 6
                
    { -1357.9266,1566.9332,1052.5313,124.3458 }, // 7
                
    { -1390.9414,1561.3538,1052.5313,246.5470 }, // 8
                
    { -1416.8824,1565.4158,1052.5313,194.1473 }, // 9
                
    { -1441.8668,1573.8204,1052.5313,319.2410 }, // 10
                
    { -1426.5233,1600.5542,1052.5313,339.9212 }, // 11
                
    { -1414.6317,1619.6764,1052.5313,329.2678 }, // 12
                
    { -1439.9816,1618.6273,1052.5313,84.2622 }, // 13
                
    { -1457.2139,1603.7213,1052.7500,126.8759 }, // 14
                
    { -1474.5079,1590.2734,1052.5313,148.1828 }, // 15
                
    { -1486.6001,1569.5503,1052.5313,292.3175 }, // 16
                
    { -1485.8320,1557.7253,1052.5313,126.8760 }, // 17
                
    { -1492.4733,1578.2441,1052.5313,28.6334 }, // 18
                
    { -1487.5701,1600.2288,1052.5313,322.3744 }, // 19
                
    { -1490.8757,1629.5386,1052.5313,7.4949 }, // 20
                
    { -1486.6483,1631.9830,1056.5469,12.8215 }, // 21
                
    { -1487.6771,1652.6146,1052.5313,5.3014 }, // 22
                
    { -1469.7289,1639.2842,1052.5313,240.3037 }, // 23
                
    { -1450.4954,1651.8843,1052.5313,276.6508 }, // 24
                
    { -1420.6538,1653.6265,1052.5313,276.3373 }, // 26
                
    { -1429.6686,1627.9772,1052.5313,117.7891 }, // 25
                
    { -1435.3691,1591.9514,1052.5313,184.2164 }, // 27
                
    { -1397.0638,1583.1741,1052.5313,277.5906 }, // 28
                
    { -1380.9996,1574.4780,1052.5313,237.1703 }, // 29
                
    { -1384.9451,1594.2000,1052.5313,5.9515 }, // 30
                
    { -1383.5696,1613.9320,1052.5313,353.1047 }, // 31
                
    { -1372.5792,1627.1321,1052.5313,306.1042 }, // 32
                
    { -1371.0444,1613.8735,1052.5313,166.9104 }, // 33
                
    { -1362.3322,1617.0038,1053.1710,344.9579 }, // 34
                
    { -1363.2859,1603.8507,1052.5313,339.3178 }, // 35
                
    { -1408.0198,1585.6403,1052.5313,115.3057 }, // 36
                
    { -1458.9176,1582.6206,1052.7500,128.7792 }, // 37
                
    { -1467.5092,1596.9178,1055.8848,20.6781 }, // 38
                
    { -1397.1965,1620.5980,1052.5313,263.4902 }, // 39
                
    { -1411.4546,1649.9233,1055.6920,206.1005 }, // 40
                
    { -1452.4192,1631.8557,1052.5313,80.8385 }, // 41
                
    { -1438.6155,1560.0994,1052.5313,282.6271 }, // 42
                
    { -1402.9203,1575.0898,1052.5313,269.4670 }, // 43
                
    { -1393.7357,1600.5668,1052.5313,346.2344 }, // 44
                
    { -1386.9440,1635.3340,1052.5313,16.9414 }, // 45
                
    { -1478.9492,1652.9297,1052.5313,68.6418 }, // 46
                
    { -1472.3538,1601.3414,1052.7500,61.6759 }, // 47
                
    { -1481.9603,1594.4515,1052.7092,26.2689 }, // 48
                
    { -1457.9281,1640.4481,1052.5313,92.7687 }, // 49
                
    { -1362.8604,1563.3708,1052.5313,20.0981 // 50
            
    },
            {
                { 
    221.0023,-181.5228,1016.9656,334.7147 }, // 1
                
    221.7982,-164.2208,1016.9656,356.9615 }, // 2
                
    222.0565,-144.1154,1016.9656,357.2749 }, // 3
                
    222.6538,-128.8099,1016.9656,359.7816 }, // 4
                
    222.6359,-113.6192,1016.9656,0.0949 }, // 5
                
    222.6102,-98.1817,1016.9656,0.0949 }, // 6
                
    234.7920,-89.9391,1016.9656,265.1540 }, // 7
                
    254.2398,-89.4138,1016.9656,269.5407 }, // 8
                
    268.4057,-89.5273,1016.9656,269.5407 }, // 9
                
    288.1363,-89.7933,1016.9656,269.2274 }, // 10
                
    308.0599,-90.4487,1016.9656,267.9740 }, // 11
                
    328.8202,-91.1831,1016.9656,267.9740 }, // 12
                
    348.0960,-91.8650,1016.9656,267.9740 }, // 13
                
    362.8827,-92.3882,1016.9656,267.9740 }, // 14
                
    362.0814,-107.6728,1016.9656,176.4798 }, // 15
                
    361.7623,-126.0460,1016.9656,179.2998 }, // 16
                
    361.6867,-146.0545,1016.9656,181.4932 }, // 17
                
    363.1667,-167.4684,1016.9656,175.8531 }, // 18
                
    362.1295,-183.0443,1016.9656,56.1587 }, // 19
                
    342.6755,-182.1259,1016.9656,88.4323 }, // 20
                
    320.7205,-181.2084,1016.9656,87.8056 }, // 21
                
    295.9077,-180.2574,1016.9656,87.8056 }, // 22
                
    273.6739,-179.3615,1016.9656,88.4323 }, // 23
                
    253.7044,-178.8152,1017.1844,88.4323 }, // 24
                
    238.7184,-178.4052,1016.9656,88.4323 }, // 25
                
    246.3237,-128.5385,1016.9656,359.4449 }, // 26
                
    239.6576,-113.8205,1016.9656,344.7180 }, // 27
                
    261.6289,-105.2002,1016.9656,353.1780 }, // 28
                
    283.1660,-110.0098,1016.9656,255.7304 }, // 29
                
    305.7404,-101.9614,1021.0761,272.6505 }, // 30
                
    348.0807,-107.7125,1016.9656,109.0888 }, // 31
                
    351.8338,-119.7675,1016.9656,121.6223 }, // 32
                
    351.3845,-138.0286,1017.0219,132.2758 }, // 33
                
    344.2757,-159.0853,1016.9656,140.4226 }, // 34
                
    346.3752,-175.6509,1016.9656,73.3686 }, // 35
                
    320.9658,-163.9455,1016.9656,100.6289 }, // 36
                
    308.0956,-158.6447,1016.9656,85.2754 }, // 37
                
    283.2036,-162.4855,1020.2330,180.8429 }, // 38
                
    298.2223,-132.0120,1027.4531,48.7109 }, // 39
                
    338.4583,-146.2136,1022.1131,261.0568 }, // 40
                
    321.1865,-104.5987,1016.9656,182.1195 }, // 41
                
    246.2364,-95.4244,1016.9656,259.5136 }, // 42
                
    227.8654,-137.5948,1020.5901,180.2395 }, // 43
                
    227.9371,-154.8071,1021.0142,180.2395 }, // 44
                
    227.9123,-110.5193,1020.5901,0.4079 }, // 45
                
    243.0599,-113.6610,1020.8031,186.8195 }, // 46
                
    265.4186,-120.3247,1018.0790,293.0405 }, // 47
                
    265.4057,-171.9780,1017.1844,4.1444 }, // 48
                
    359.1091,-113.5064,1016.9656,82.4782 }, // 49
                
    347.9229,-102.7202,1016.9656,68.3781 // 50
            
    }
        }

    PHP код:
    CMD:dmzona(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Logged")) return true;
        if(
    PlayerInfo[playerid][pAdmin] < 3) return error(playerid"Нет доступа.");
        if(
    dm_status != 0) return error(playerid"Зона уже открыта.");
        new 
    mapgun;
        if(
    sscanf(params"ii"mapgun)) return error(playerid"Используйте: /dmzona [map 1-3] [gun: 9, 10, 16, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 42]");
        if(
    map 3) return error(playerid"Используйте: /dmzona [map 1-3] [gun: 9, 10, 16, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 42]");
        switch(
    gun)
        {
            case 
    910162324252627282930313234353842: { }
            default: 
    gun = -1;
        }
        if(
    gun == -1) return error(playerid"Используйте: /dmzona [map 1-3] [gun: 9, 10, 16, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 42]");
        for(new 
    050i++)
        {
            
    dm_places[i] = -1;
        }
        
    dm_status 1;
        
    dm_map map;
        
    dm_gun gun;
        
    dm_players 0;
        new 
    str[1+110+24+32+24], gunname[32];
        
    GetWeaponNameEx(gungunname32);
        
    format(strsizeof str"» {FF3333}Администратор %s открыл(а) | DM-ЗОНУ | Оружие: %s | Карта: %s | Для участия, введите: /joindm |"PlayerInfo[playerid][pName], gunnamedm_name[map-1]);
        
    SendClientMessageToAll(0x0033FFFFstr);
        
    SetTimerEx("dmzona_start"10000false"i"10);
        return 
    1;
    }

    CMD:clearzona(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 3) return error(playerid"Нет доступа.");
        for(new 
    i50i++)
        {
            if(
    dm_places[i] == -1) continue;
            new 
    id dm_places[i];
            
    SetPlayerSkin(idPlayerInfo[id][pSkin]);
            
    SpawnPlayer(id);
            
    dm_places[GetPVarInt(id"dmzona")-1] = -1;
            
    DeletePVar(id"dmzona");
        }
        
    dm_players 0;
        
    dm_status 0;
        
    dm_map 0;
        
    dm_gun 0;
        
    SCM(playerid0xFF0000FF"»» {CC3300}Зона очищена!");
        return 
    1;
    }

    CMD:joindm(playeridparams[])
    {
        if(
    dm_status == 0) return error(playerid"Зона не была открыта администратором.");
        if(
    dm_status == 2) return error(playerid"Зона закрыта для присоединения, успеете в следующий раз.");
        if(
    PlayerInfo[playerid][pWanted] > 0) return error(playerid,"Вы в розыске");
        if(
    GetPVarInt(playerid"dmzona")) return error(playerid"Вы уже на DM-зоне.");
        new 
    place dmzona_findFreePlace();
        if(
    place == -1) return error(playerid"Зона заполнена.");
        
    SetPlayerVirtualWorld(playeriddm_map);
        
    dm_places[place] = playerid;
        
    dm_players++;
        
        
    SetPlayerPos(playeriddm_coord[dm_map-1][place][0], dm_coord[dm_map-1][place][1], dm_coord[dm_map-1][place][2]);
        
    SetPlayerSkin(playerid230);
        
    SetPlayerColor(playerid0x3FE65C80);
        
    SetHP(playerid123.0);
        
    SetArm(playerid0.0);
        
    SetPlayerInterior(playeriddm_int[dm_map-1]);
        
    TogglePlayerControllable(playerid0);

        
    SetPVarInt(playerid"dmzona"place+1);

        
    SCM(playerid0x0033FFFF"» {FF3333}Вы были телепортированы на DM-Зона, ожидайте старта!");
        
    SCM(playerid0xFFFFFFFF"На время зоны ваш скин изменен.");
        return 
    1;
    }

    CMD:leavedm(playeridparams[])
    {
        if(
    GetPVarInt(playerid"dmzona"))
        {
            
    dm_players--;
            
    SetPlayerSkin(playeridPlayerInfo[playerid][pSkin]);
            
    SpawnPlayer(playerid);
            
    dm_places[GetPVarInt(playerid"dmzona")-1] = -1;
            
    DeletePVar(playerid"dmzona");
            
    SCM(playerid0xCC3300FF"Вы покинули DM-зону.");
        }
        else 
    error(playerid"Вы не в зоне.");
        return 
    1;

    PHP код:
    stock dmzona_findFreePlace()
    {
        new 
    freeplace = -1;
        for(new 
    050i++)
        {
            if(
    dm_places[i] != -1) continue;
            
    freeplace i;
            break;
        }
        return 
    freeplace;
    }
    stock SCMDMZONA(text[])
    {
        for(new 
    050i++)
        {
            if(
    dm_places[i] == -1) continue;
            
    SCM(dm_places[i], -1text);
        }
    }
    stock GetWeaponNameEx(weaponidweapon[], len sizeof(weapon))
    {
        switch(
    weaponid)
        {
            case 
    18strcat(weapon"Molotov Cocktail"len);
            case 
    44strcat(weapon"Night Vision Goggles"len);
            case 
    45:  strcat(weapon"Thermal Goggles"len);
            default: 
    GetWeaponName(weaponidweaponlen);
        }
        return 
    weapon;
    }

    forward dmzona_start(dmzona_time);
    public 
    dmzona_start(dmzona_time)
    {
        if(
    dmzona_time == 10)
        {
            
    SetTimerEx("dmzona_start"5000false"i"5);
            
    SendClientMessageToAll(0x0033FFFF"» {FF3333}Игра начнется через 10 секунд: Чтобы принять участие, введите: /joindm");
        }
        if(
    dmzona_time == 5)
        {
            
    SetTimerEx("dmzona_start"5000false"i"1);
            
    SendClientMessageToAll(0x0033FFFF"» {FF3333}Игра начнется через 5 секунд: Чтобы принять участие, введите: /joindm");
        }
        if(
    dmzona_time == 1)
        {
            if(
    dm_players && dm_status == 1)
            {
                for(new 
    050i++)
                {
                    if(
    dm_places[i] == -1) continue;
                    new 
    id dm_places[i];
                      
    SetPlayerSkin(idPlayerInfo[id][pSkin]);
                    
    SpawnPlayer(id);
                    
    dm_places[GetPVarInt(id"dmzona")-1] = -1;
                    
    DeletePVar(id"dmzona");
                }
                   
    dm_players 0;
                
    dm_status 0;
                
    dm_map 0;
                
    dm_gun 0;
                
    SendClientMessageToAll(0xFF0000FF"» {FF3333}Не набралось необходимое количество участников. Зона закрыта! (минимум: 2 участника)");
            }
            else
            {
                for(new 
    050i++)
                {
                    if(
    dm_places[i] != -1)
                    {
                        
    TogglePlayerControllable(dm_places[i], 1);
                        
    ResetPlayerWeapons(dm_places[i]);
                        
    GiveWeapon(dm_places[i], dm_gun999);
                        
    SCM(dm_places[i], 0x0033FFFF"» {00CCFF}Игра началась, удачи вам!");
                    }
                }
                
    dm_status 2;
            }

        }
        return 
    1;

    PHP код:
    // OnPlayerDisconnect
        
    if(GetPVarInt(playerid"dmzona"))
        {
            
    dm_places[GetPVarInt(playerid"dmzona")-1] = -1;
            
    DeletePVar(playerid"dmzona");
            
    dm_players--;
        } 
    PHP код:
    // OnPlayerDeath
        
    if(GetPVarInt(playerid"dmzona"))
        {
            
    SCM(playerid0x990000FF"Вас убили на DM-зоне, вернутся нельзя!");
            
    SetPlayerSkin(playeridPlayerInfo[playerid][pSkin]);
            
    SpawnPlayer(playerid);
            
    dm_places[GetPVarInt(playerid"dmzona")-1] = -1;
            
    DeletePVar(playerid"dmzona");
            
    dm_players--;
            
    SCM(playerid, -1"[DEBUG] Code: OnPlayerDeath.1 (сообщите об этом разработчику)");
        } 
    PHP код:
    // timer, interval: 1sec
                
    if(GetPVarInt(i"dmzona") && dm_players == && dm_status == 2)
                {
                    if(
    dm_places[GetPVarInt(i"dmzona")-1] == i)
                    {
                        
    SetPlayerSkin(iPlayerInfo[i][pSkin]);
                        
    SpawnPlayer(i);
                        
    dm_places[GetPVarInt(i"dmzona")-1] = -1;
                        
    DeletePVar(i"dmzona");
                    }
                    new 
    str[1+47+24];
                    
    format(strsizeof str"» {66CC33}Победителем DM-Зоны становится - %s!"PlayerInfo[i][pName]);
                    
    SendClientMessageToAll(0x0033FFFFstr);
                    
    SCM(i0x0033FFFF"» {00CCFF}Поздравляем, вы стали победителем DM-ЗОНЫ!");
                       
    dm_players 0;
                    
    dm_status 0;
                } 

  2. 3 пользователей сказали cпасибо e.kosovskij за это полезное сообщение:

    MYSTERYMAN (01.11.2015), vasyok28 (01.11.2015), Меша (01.11.2015)

  3. #2

    Пользователь
    Регистрация
    01.06.2015
    Возраст
    24
    Сообщений
    1
    Репутация
    10
    норм


 

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •