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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±

    Система фракционного чата

    Прошу натолкнуть меня на мысль: как сделать так, чтобы каждому типу фракции показывалось свое сообщение, но два человека с одинаковым типом видели одинаковые сообщения? Максимум делал чат для администраторов, но там все просто - итератор администраторов, при загрузке акков в него добавляется администратор, и перебор игроков foreach, а с фракцией и ее типами все сложнее.

    В голову приходит только это:

    1. stock FractionChat(colorid, const str[])
    2. {
    3. foreach(new i: iter_fraction)
    4. {
    5. switch(frac[i][f_type])
    6. {
    7. case -1: return false;
    8. case 0: SCM(i, colorid, str);
    9. case 1: SCM(i, colorid, str);
    10. // etc
    11. }
    12. }
    13. }
    Последний раз редактировалось SteveStage; 01.12.2019 в 22:35.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так а что за типы фракций? Судя по твоему коду - отличий между сообщениями для разных типов фракций никакого нет.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так а что за типы фракций? Судя по твоему коду - отличий между сообщениями для разных типов фракций никакого нет.
    Есть переменная f_type, в которую из бд загружаются типы фракций (полиция, банды и т.д.), а надо сделать так, чтобы тип фракции 1 не видел сообщения типа фракции 2, а только типа фракции 1, тоесть 1 тип фракции объединяют то, что они все видят одинаковые сообщения

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Ну передавай в FractionChat нужный тип фракции и уже сравнивай его со значением переменной f_type.
    UPD: Как-то так
    1. stock FractionChat(type, colorid, const str[])
    2. {
    3. foreach(new i: iter_fraction)
    4. {
    5. if(frac[i][f_type] != type)
    6. continue;
    7. SCM(i, colorid, str);
    8. }
    9. }


    Хотя если итератор iter_fraction хранит в себе номера фракций, то после проверки нужен ещё один итератор, который будет перебирать игроков из полученной фракции.

    Ну и да: гораздо практичнее было бы прописать фракции вручную, а не такими проверками. Список и тип фракций практически не будет видоизменяться после написания мода, а лишнее время на подобные условия и циклы тратится будет.
    Последний раз редактировалось DeimoS; 02.12.2019 в 18:10.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  5. #5
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Хотя если итератор iter_fraction хранит в себе номера фракций, то после проверки нужен ещё один итератор, который будет перебирать игроков из полученной фракции.
    Он хранит в себе только игроков, состоящих в какой-либо фракции для сокращения перебора

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну и да: гораздо практичнее было бы прописать фракции вручную, а не такими проверками. Список и тип фракций практически не будет видоизменяться после написания мода, а лишнее время на подобные условия и циклы тратится будет.
    Прописать код фракции вручную? Объясни смысл этого предложения

    Если что, то тип фракции - целочисленное значение, которое обозначает конкретную фракцию, например тип фракции 1 - лспд и т.д.

  6. #6
    Аватар для kennytowN
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.09.2019
    Сообщений
    2
    Репутация:
    0 ±
    Разве в итераторе тогда не нужно указать к какой фракции ты обращаешься, если он хранит фракционных игроков абсолютно для всех фракций?

  7. #7
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от kennytowN Посмотреть сообщение
    Разве в итераторе тогда не нужно указать к какой фракции ты обращаешься, если он хранит фракционных игроков абсолютно для всех фракций?
    Смотри: есть коп в лспд, есть администратор, есть гетто ящер и есть обычный бизнесмен. Из них итератором будут выбраны только ящер и коп, там нету разделения на подвиды фракций (ящеры попадают в одну часть цикла foreach, копы в другую и т.д.)

    Он сделан, чисто чтобы уменьшить размер цикла, упрощая работу с ним - ибо все те, кто не ящер и не коп уже отсеяны от цикла

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

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



    Прописать код фракции вручную? Объясни смысл этого предложения

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

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

    Steve Pavlina

  9. #9
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну и да: гораздо практичнее было бы прописать фракции вручную, а не такими проверками. Список и тип фракций практически не будет видоизменяться после написания мода, а лишнее время на подобные условия и циклы тратится будет.
    Хотелось бы узнать, о чем идет речь. Как это - прописать фракции вручную?

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    Хотелось бы узнать, о чем идет речь. Как это - прописать фракции вручную?
    Возможно он имел ввиду создать массив итераторов где будет храниться количество игроков каждой фракции, а не хранить всех игроков состоящих во фракции в одном итераторе.

 

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

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

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

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

Ваши права

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