Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для phpadmin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±

    Это правильная конструкция?

    ко всем new
    PHP код:
    new hacksystem[MAX_PLAYERS char]; 
    PHP код:
    forward vzlom(playerid);
    public 
    vzlom(playerid)
    {
         foreach(new 
    iPlayer)
        {
            if(
    hacksystem{i} == 1)
            {
                
    scma(-1,"{57A8E5}[Новости]: Внимание, на данный момент хакер(ы) атаковали главный сервер HG!");
                
    scma(-1,"{57A8E5}[Новости]: Если хакеры получат доступ к разным видам функционала сервера -");
                
    scma(-1,"{57A8E5}[Новости]: Это нанесет ущерб штату | Следите за дальнейшими новостями! - Новости «24/7»");
                
    hacksystem{i} = 2;
                
    SetTimer("vzlom"50000);
            }
            else if(
    hacksystem{i} == 2)
            {
                switch(
    random(41))
                {
                    case 
    0..9:
                    
    scm(playerid,-1,"{30C4AB}[Hackerman]: HGcom смогла отбить ддос атаку, подключите пакеты заного!"),
                    
    hacksystem{playerid} = 0;
                    case 
    10..21:
                    
    scm(playerid,-1,"{D0A629}[Hackermen]: Ваш ноутбук не выдержал нагрузку и сгорел!"),
                    
    s_player[playerid][pMac] = 0,
                    
    hacksystem{playerid} = 0;
                    case 
    22..32:
                    
    scm(playerid,-1,"{D0A629}[Самозащита]: бомба в радиусе дата-центра активировалась!"),
                    
    CreateExplosion(-960.64081,1925.87598,9.42932,7,6.0),
                    
    CreateExplosion(-959.6226,1931.3419,9.0000,7,6.0),
                    
    CreateExplosion(-959.3530,1936.3002,9.0000,7,6.0),
                    
    CreateExplosion(-959.4214,1944.1563,9.0000,7,6.0),
                    
    hacksystem{playerid} = 0;
                    case 
    33..40:
                    
    scm(playerid,-1,"{5AB150}[Hackerman]: {2AC819}Success! {5AB150}Open Delete Server | ---> /hack"),
                    
    hacksystem{i} = 3,
                    
    SetTimer("vzlom"600000);
                }
            }
            else if(
    hacksystem{i} == 3)
            {
                
    scma(-1,"{57A8E5}[Новости]: Внимание, хакеры нанесли огромный ущерб бюджету штата HG!");
                
    scma(-1,"{57A8E5}[Новости]: Но нам похуй, ведь штат на грани разрыва между добром и злом!");
                
    scma(-1,"{57A8E5}[Новости]: Делайте что хотите, всем похуй!");
                
    hacksystem{i} = 0;
            }
        }

    На лесенку не подавайте внимание, у меня все нормально.
    Дело в том что хочу создать систему которая активирует таймер для всех игроков. Ну как сказать щас!

    Например любой игрок активирует таймер и что бы дальнейшие функции таймера работало для всех игроков. А не для того кто активировал. А именно для всех.
    там где {i} - был {playerid} но я её убрал потому что работало система лишь для id 0, у игрока с id 1 активировалась лишь вот это

    Самый начальный таймер который пускает ход событий остальных.
    PHP код:
    if(IsPlayerInRangeOfPoint(playerid,0.5,-960.1935,1925.9014,9.0000) && s_player[playerid][pMac] >= && hacksystem{playerid} == 0)
                    {
                        
    scm(playerid,-1,"[HackerMan]: Идет подключение к пакетам...");
                        
    scm(playerid,-1,"[HackerMan]: Идет подключение к главному серверу дата центра!");
                        
    scm(playerid,-1,"[HackerMan]: Передача пакетов начата, не прекращайте работу компьютера!");
                        
    hacksystem{playerid} = 1;
                        
    SetTimer("vzlom"100000);
                    }
                    else if(
    hacksystem{playerid} >= 1)
                    {
                        
    scm(playerid,-1,"Процесс занят, попробуйте позже!");
                    } 
    У других игроков кроме id 0 срабатывает лишь это часть, дальше ничего не происходит. А у 0 id всё работает, но с {i} ещё не проверял на других. Как это организовать объясните на примерах, или как вообще нужно.
    Последний раз редактировалось phpadmin; 28.06.2017 в 14:22.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Зачем в функции "vzlom" аргумент playerid, если ты через таймер всем запускаешь таймер?

    И что это за ужасные записи?
    PHP код:
                    case 22..32:
                    
    scm(playerid,-1,"{D0A629}[Самозащита]: бомба в радиусе дата-центра активировалась!"),
                    
    CreateExplosion(-960.64081,1925.87598,9.42932,7,6.0),
                    
    CreateExplosion(-959.6226,1931.3419,9.0000,7,6.0),
                    
    CreateExplosion(-959.3530,1936.3002,9.0000,7,6.0),
                    
    CreateExplosion(-959.4214,1944.1563,9.0000,7,6.0),
                    
    hacksystem{playerid} = 0;
                    case 
    33..40
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для phpadmin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±
    эти записи в каком смысле ужасные, ужасные в плане оптимизации или в плане красоты?

    Таймер запускать должен любой игрок из сервера если захочет, и все действия таймера потом должен работать для остальных игроков. К пример по таймеру допустим открывается общак игроком и открывается доступ к какой-то команде и ею смогли бы пользоваться все игроки. Пока действие таймера не вернет к началу hacksystem{i} = 0;

    2 вопрос: Тогда какой аргумент надо ставить? vzlom() ?? (никакой?)


    Можно спросить ещё: изначально там где {i} был {playerid} в чем их функция можешь разъяснить? в for заменяется playerid на i тоесть он просчитывает всех игроков на сервере и ставит для них срабатываемую функцию в таймерах? или я что-то не так сделал? или обратно поставить {playerid}?
    Последний раз редактировалось phpadmin; 28.06.2017 в 17:18.

  4. #4
    Аватар для phpadmin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±
    Я проанализировал логикой, если сверху я написал все правильно на счет {i} типа для всех игроков применяется действие таймера. То в vzlom(playerid) нужен для того что бы во время 4 исходов к примеру если исход рандома будет равен тому что
    PHP код:
    case 10..21:
                    
    scm(playerid,-1,"{D0A629}[Hackermen]: Ваш ноутбук не выдержал нагрузку и сгорел!"),
                    
    s_player[playerid][pMac] = 0,
                    
    hacksystem{i} = 0
    то у инициатора таймера должен исчезнуть комп (обнулиться) а если поставить i где s_player[playerid][pMac] = 0 то комп же исчезнет у всех игроков которые на сервере, нет?

    Первым действие таймера запускает любой игрок дальше тамер vzlom начинает работу. Мне нужно знать все ли построено так как нужно? Сейчас сам проверить не могу просто

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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