Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 11 из 133 ПерваяПервая ... 9 10 11 12 13 21 61 111 ... ПоследняяПоследняя
Показано с 101 по 110 из 1325
  1. #101
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Расскажите пожалуйста, как пользоваться итераторами? Да и вообще, понятие итераторов. Я просил урок об этом создать, но на это много времени уйдет. Тут хоть ссылку дадут.

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

    Цитата Сообщение от vovandolg Посмотреть сообщение
    Такой вопрос, если сделать макрос какой нибудь и он будет использоваться во многих участках кода,
    то он как то повлияет на быстродействие компилирования или быстродействие в самой игре?
    Нет, а иначе не использовали бы. логично?)

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

    Цитата Сообщение от vovandolg Посмотреть сообщение
    Такой вопрос, если сделать макрос какой нибудь и он будет использоваться во многих участках кода,
    то он как то повлияет на быстродействие компилирования или быстродействие в самой игре?
    Нет, а иначе не использовали бы. логично?)

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Обязательно ли индивидуальным таймерам задавать переменную с массивом, а то вот видел такой пример:
    PHP код:
    new timer;
    timer SetTimerEx("PublicTimer",5000,0,"i",playerid); 
    Будут ли баги если несколько игроков разом заюзают такой таймер?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Обязательно ли индивидуальным таймерам задавать переменную с массивом, а то вот видел такой пример:
    PHP код:
    new timer;
    timer SetTimerEx("PublicTimer",5000,0,"i",playerid); 
    Будут ли баги если несколько игроков разом заюзают такой таймер?
    Если понадобится убить таймер, то будет проблема, ибо в переменную timer запишется id последнего запущенного таймера. Если же не нужно убивать, то и переменную, собственно, нет смысла делать.
    Последний раз редактировалось Nash_Brigers; 08.03.2016 в 12:50.

  4. #104
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    в переменную timer запишется id последнего запущенного таймера
    нет. В переменную запишется возвращаемый этим таймером id.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Обязательно ли индивидуальным таймерам задавать переменную с массивом, а то вот видел такой пример:
    PHP код:
    new timer;
    timer SetTimerEx("PublicTimer",5000,0,"i",playerid); 
    Будут ли баги если несколько игроков разом заюзают такой таймер?
    Зачем вообще записывать ID таймера в переменную, если таймер не рекурсивный?

    Цитата Сообщение от BadPawn Посмотреть сообщение
    Расскажите пожалуйста, как пользоваться итераторами? Да и вообще, понятие итераторов. Я просил урок об этом создать, но на это много времени уйдет. Тут хоть ссылку дадут.
    Эмм, создаёшь массив
    PHP код:
    new Iterator:blabla<число_ячеек>; 
    Добавление нового значения в массив
    PHP код:
    Iter_Add(blablaзначение); 
    Удаление:
    PHP код:
    Iter_Remove(blablaзначение); 
    Использование
    PHP код:
    foreach (new blabla

    Цитата Сообщение от vovandolg Посмотреть сообщение
    Такой вопрос, если сделать макрос какой нибудь и он будет использоваться во многих участках кода,
    то он как то повлияет на быстродействие компилирования или быстродействие в самой игре?

    Только на компиляцию, ибо все макросы заменяются на код во время препроцессинга. Но это очень маленький период времени

    Цитата Сообщение от Kazoox Посмотреть сообщение
    menu1.txt сам удаляется из папки scriptfiles, вероятнее всего после рестарта, но точно не ясно. Как исправить?
    Весь код работы с файлом предоставь

    Цитата Сообщение от Alexok Посмотреть сообщение
    Никакого, я полагаю. Просто я думаю, как же всё же лучше хранить его, в PVar или в массиве. Его ведь надо удалить при выходе игрока с сервера. Таймеры работ, я полагаю, можно хранить в PVar, а вот уже секундный таймер игрока в массиве, верно?
    В pVar хранишь всю информацию, которая будет востребована определённый промежуток времени (например, телепорт к игроку через нажатия на его ник в ТАВ. Тут глупо создавать гломальный массив ради того, чтоб раз в час в него записывать данные и через минуту отчищать. А вот pVar как раз подойдёт).



    РАУНД!
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Сообщений
    121
    Репутация:
    3 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Конечно. Ты избавляешься от лишних итераций, избавляешься от проверок IsPlayerConnected и IsPlayerNPC.
    Кстати, если ты планируешь использовать NPC, то использование GetPlayerPoolSize вообще теряет смысл, так как ID у NPC начинаются с последнего.

    Более того, foreach - это не просто перебор игроков, это целая библиотека, которая позволяет создавать новые итераторы. Вот, например, перебор транспорта: http://pro-pawn.ru/showthread.php?13...нспорта
    Вот так я использую foreach для работы со слотами банды:
    PHP код:
    static
        
    Iterator:LoadedGangs<MAX_GANG>

    stock Gang_IsActive(gangid)
    {
        return 
    Iter_Contains(LoadedGangsgangid);
    }

    stock Gang_SetActiveStatus(gangidbool:statusbool:safe false, &next_value 0)
    {
        if (
    status) {
            
    Iter_Add(LoadedGangsgangid);
        } else {
            if (
    safe) {
                
    Iter_SafeRemove(LoadedGangsgangidnext_value);
            } else {
                
    Iter_Remove(LoadedGangsgangid);
            }
        }
    }

    stock Gang_GetFreeSlot()
    {
        return 
    Iter_Free(LoadedGangs);

    Так с членами банды:
    PHP код:
    new
        
    Iterator:LoadedGangMembers[MAX_GANGS]<MAX_GANG_SIZE>;

    GangMember_OnGameModeInit()
    {
        
    Iter_Init(LoadedGangMembers);
    }

    stock GangMember_IsActive(gangidmemberid)
    {
        return 
    Iter_Contains(LoadedGangMembers[gangid], memberid);
    }

    stock GangMember_SetActiveStatus(gangidmemberidbool:statusbool:safe false, &next_value 0)
    {
        if (
    status) {
            
    Iter_Add(LoadedGangMembers[gangid], memberid);
        } else {
            if (
    safe) {
                
    Iter_SafeRemove(LoadedGangMembers[gangid], memberidnext_value);
            } else {
                
    Iter_Remove(LoadedGangMembers[gangid], memberid);
            }
        }
    }

    stock GangMember_GetFreeSlot(gangid)
    {
        return 
    Iter_Free(LoadedGangMembers[gangid]);

    Применений масса.
    Тем не менее OkStyle доказывает обратное, вот его ответ на мой вопрос зачем он при оптимизации мода убирает использование foreach и использует циклы с GetPlayerPoolSize, цитирую: "Затем, что это лишний инклюд и цикл с багами. Всё и без него работает отлично."

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Kazoox Посмотреть сообщение
    Тем не менее OkStyle доказывает обратное, вот его ответ на мой вопрос зачем он при оптимизации мода убирает использование foreach и использует циклы с GetPlayerPoolSize, цитирую: "Затем, что это лишний инклюд и цикл с багами. Всё и без него работает отлично."
    Доказывает? Где? Он использует то, что ему больше нравится, его право.

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

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    нет. В переменную запишется возвращаемый этим таймером id.
    Если честно, я не понял разницы.. Может "возвращаемый id таймера"? В чём разница?)
    Последний раз редактировалось Nash_Brigers; 09.03.2016 в 02:22.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    Если честно, я не понял разницы.. Может "возвращаемый id таймера"? В a_samp.inc, на сколько я в курсе, это называется timerid, в чём разница?)
    Он говорит о том, что если ты создашь 1 переменную и запишешь в неё создание 3-х таймеров, в переменной будет хранится ID 3-его таймера, а не всех 3-х.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    То есть если этот таймер юзает не один игрок, то и смысла переменной(без массива с игроками) нету?
    Глобальная переменная у индивидуального таймера
    Либо переменная с массивом
    Либо без переменной
    так?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 
Страница 11 из 133 ПерваяПервая ... 9 10 11 12 13 21 61 111 ... ПоследняяПоследняя

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

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

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

Ваши права

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