Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для KillStreak
    Пользователь

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

    Использование RemoveBuildingForPlayer в stock с объектами

    Есть два стока, в одном хранятся удалённые объекты в другом созданные. Можно ли как то использовать RemoveBuildingForPlayer в стоке с созданными объектами притом что технически он находится в стоке с удалёнными но визуально располагается в стоке с созданными. Это вопрос оформления кода и его расположения для более лучшей навигации.

    Код:
    #include <a_samp>
    #include <streamer>
    
    public OnGameModeInit()
    {
        LoadObjects();
        return 1;
    }
    
    public OnPlayerConnect(playerid)
    {
        LoadRemoveObjects(playerid);
        return 1;
    }
    
    stock LoadObjects()
    {
        CreateDynamicObject(1111, 1000.39999, 2000.49999, 30.59999,   0.00000, 90.00000, 90.00000);
        CreateDynamicObject(1111, 1000.39999, 2000.49999, 30.59999,   0.00000, 90.00000, 90.00000);
        CreateDynamicObject(1111, 1000.39999, 2000.49999, 30.59999,   0.00000, 90.00000, 90.00000);
    }
    
    stock LoadRemoveObjects(playerid)
    {
        RemoveBuildingForPlayer(playerid, 2222, 1000.3999, -1999.3999, 10.8999, 0.20);
        RemoveBuildingForPlayer(playerid, 2222, 1000.3999, -1999.3999, 10.8999, 0.20);
        RemoveBuildingForPlayer(playerid, 2222, 1000.3999, -1999.3999, 10.8999, 0.20);
        return 1;
    }

  2. #2
    Аватар для Nash_Brigers
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Если я верно понял вопрос, то нет, т.к. создаёшь ты объекты сразу для всех игроков (вызов один раз при загрузке мода), а удаляешь для каждого игрока индивидуально (вызов при каждом новом коннекте игрока).
    Член сообщества Green Square.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    В этом смысла мало, но вот:

    PHP код:
    #include <a_samp>
    #include <streamer>

    public OnGameModeInit()
    {
        
    LoadObjects();
        return 
    1;
    }

    public 
    OnPlayerConnect(playerid)
    {
        
    LoadObjects(playerid);
        return 
    1;
    }


    stock LoadObjects(playerid INVALID_PLAYER_ID)
    {
        if(
    playerid == INVALID_PLAYER_ID)
        {
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
        }
        else
        {
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
        }

    Гораздо лучше создать отдельную функцию для удаления объектов и дать ей название, по которому было бы понятно, что функция удаляет стандартные объекты
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    KillStreak (06.03.2017)
  5. #4
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    Если я верно понял вопрос, то нет, т.к. создаёшь ты объекты сразу для всех игроков (вызов один раз при загрузке мода), а удаляешь для каждого игрока индивидуально (вызов при каждом новом коннекте игрока).
    Это я знал, просто думал как то визуально изменить код. А можно удалять объекты не для одного игрока индивидуально а сразу для всех удалить?

    - - - Добавлено - - -

    Цитата Сообщение от DeimoS Посмотреть сообщение
    В этом смысла мало, но вот:
      Открыть/закрыть

    PHP код:
    #include <a_samp>
    #include <streamer>

    public OnGameModeInit()
    {
        
    LoadObjects();
        return 
    1;
    }

    public 
    OnPlayerConnect(playerid)
    {
        
    LoadObjects(playerid);
        return 
    1;
    }


    stock LoadObjects(playerid INVALID_PLAYER_ID)
    {
        if(
    playerid == INVALID_PLAYER_ID)
        {
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
            
    CreateDynamicObject(11111000.399992000.4999930.59999,   0.0000090.0000090.00000);
        }
        else
        {
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
            
    RemoveBuildingForPlayer(playerid22221000.3999, -1999.399910.89990.20);
        }


    Гораздо лучше создать отдельную функцию для удаления объектов и дать ей название, по которому было бы понятно, что функция удаляет стандартные объекты
    А что даст создание такой функции, внесёт ясность в код и всё? Буду придерживаться своих убеждений в этом деле, но твой вариант тоже не плохой, спасибо.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    А можно удалять объекты не для одного игрока индивидуально а сразу для всех удалить?
    Нет. Удаление объектов возможно только когда игрок подключён к серверу.


    Цитата Сообщение от KillStreak Посмотреть сообщение
    А что даст создание такой функции, внесёт ясность в код и всё? Буду придерживаться своих убеждений в этом деле, но твой вариант тоже не плохой, спасибо.
    Да.
    Помещение кода в одну функцию тоже ничего не изменит, кроме как нарушит читаемость кода (не считаешь странным то, что функция называется "загрузка объектов", но в ней происходит удаление?)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    KillStreak (06.03.2017)
  8. #6
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Помещение кода в одну функцию тоже ничего не изменит, кроме как нарушит читаемость кода (не считаешь странным то, что функция называется "загрузка объектов", но в ней происходит удаление?)
    Вертим как хотим, переименование никто не отменял.

  9. #7
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    Вертим как хотим, переименование никто не отменял.
    С таким "видением", в скрипте можно вообще одну функцию оставить, почему бы и нет?

  10. #8
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    С таким "видением", в скрипте можно вообще одну функцию оставить, почему бы и нет?
    С таким не с таким, но это относится к маппингу и разве это так важно как называется его функция по большому счёту. Удаление там происходит или создание, тот кто сделал этот маппинг и поместил его туда сам задаёт название как удобно будет.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от KillStreak Посмотреть сообщение
    С таким не с таким, но это относится к маппингу и разве это так важно как называется его функция по большому счёту. Удаление там происходит или создание, тот кто сделал этот маппинг и поместил его туда сам задаёт название как удобно будет.
    Читать код в последующем будет скриптер, а не маппер. И подобное название будет лишь вводить в заблуждение.
    Представь, что ты приходишь в магазин и просишь продать тебе булку хлеба за 20 рублей. А тебе вместо хлеба дают палку колбасы за 120 рублей, на которой написано "булка хлеба". Не очень приятно будет, да?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  12. Пользователь сказал cпасибо:
    KillStreak (07.03.2017)
  13. #10
    Аватар для KillStreak
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.03.2017
    Сообщений
    22
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Читать код в последующем будет скриптер, а не маппер. И подобное название будет лишь вводить в заблуждение.
    Это только в том случае если маппинг передаётся скриптеру. А в другом маппер может работать индивидуально с маппингом в моде без помощи скриптера. Как ты мне сам еще и писал, закинул в инклуд и забыл.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Представь, что ты приходишь в магазин и просишь продать тебе булку хлеба за 20 рублей. А тебе вместо хлеба дают палку колбасы за 120 рублей, на которой написано "булка хлеба". Не очень приятно будет, да?
    Я бы отнёс данный пример скорей к ошибочным запросам в той же БД, где на запрос получить хлеб за 20р мне выдаёт колбасу с названием хлеб за 120р. Этим примером ты скорей обозначил глупость маркетологов и производителей которые умудрились так назвать колбасу :)

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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