Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 5 из 133 ПерваяПервая ... 3 4 5 6 7 15 55 105 ... ПоследняяПоследняя
Показано с 41 по 50 из 1325
  1. #41
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Вот я без переменной создал таймер допустим:
    PHP код:
    SetTimerEx("PublicTimer",1000,false,"i",playerid); 
    Вопрос: Он одноразовый, но допустим его игрок создаёт несколько раз, он же получается не удаляется?
    То есть какой то его(или нескольких таймеров) дух остается в том playerid в котором был запущен.

    Я к чему так спрашиваю, был случай с одним таймером:
    PHP код:
    //Создавался этот тайм при коннекте
    SetTimerEx("TimerID",1000,true,"i",playerid);
    //playerid вышел, зашёл на его место другой и так человек 10
    //и только по логам увидел что таймеры суммируются
    //нуб ещё в этом был =D 
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, данные таймеры никак не привязаны к playerid. В них ты просто передаёшь ID игрока как параметр. Это во-первых.
    Во-вторых, в первом случае таймер будет существовать ровно секунду (то бишь, ровно то время, сколько ему отведено было при создании). Далее уже новый таймер займёт следующий ID таймера и будет являться совершенно самостоятельной единицей, как в случае, если бы ты создал 2 таймера и передавал в них разные ID (то есть, "создавал их для разных игроков", как ты выражаешься)
    Во-втором же случае у тебя таймер будет жить пока ты не убьёшь серверный процесс и немудрено, что после выхода предыдущего игрока и входа нового (а создание таймера, как я понимаю, происходило при входе/авторизации) у тебя уже получалось два таймера, передающего одни и те же данные. Такой таймер нужно убивать тогда, когда в нём больше нет надобности. Это как к SetTimer, так и к SetTimerEx относится.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    116
    Репутация:
    10 ±
    Как отключить кнопки Spawn < > и как изменить цвет ника игроку.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от newbie01 Посмотреть сообщение
    Как отключить кнопки Spawn < > и как изменить цвет ника игроку.
    В шапке темы написано же пользоваться поиском по форуму :\
    1) Чпок или чпок
    2) SetPlayerColor
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, данные таймеры никак не привязаны к playerid. В них ты просто передаёшь ID игрока как параметр. Это во-первых.
    Во-вторых, в первом случае таймер будет существовать ровно секунду (то бишь, ровно то время, сколько ему отведено было при создании). Далее уже новый таймер займёт следующий ID таймера и будет являться совершенно самостоятельной единицей, как в случае, если бы ты создал 2 таймера и передавал в них разные ID (то есть, "создавал их для разных игроков", как ты выражаешься)
    Во-втором же случае у тебя таймер будет жить пока ты не убьёшь серверный процесс и немудрено, что после выхода предыдущего игрока и входа нового (а создание таймера, как я понимаю, происходило при входе/авторизации) у тебя уже получалось два таймера, передающего одни и те же данные. Такой таймер нужно убивать тогда, когда в нём больше нет надобности. Это как к SetTimer, так и к SetTimerEx относится.
    Ну а то что таймеры с false будут плодиться не чего страшного, id'ы если забиваться будут так скажем?
    Не будет лажи какой?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Ну а то что таймеры с false будут плодиться не чего страшного, id'ы если забиваться будут так скажем?
    Не будет лажи какой?
    Всё можно узнать самому. Не бойся экспериментировать.
    PHP код:
    public OnGameModeInit()
    {
        new 
    timer_id SetTimerEx("DeimoS"100000"i"100);
        for(new 
    i10000i++) SetTimerEx("DeimoS"100000"i"100);
        
    printf("Первый ID - %d | Последний ID - %d"timer_idSetTimerEx("DeimoS"100000"i"100));
        return 
    1;

    Компилируй, запусти сервер, открой диспетчер задач, найди в нём процесс сервера (samp-server.exe) и запомни где он находится. Теперь закрой консоль с сервером (выключи его), заново открой (включи) и смотри как изменяются показатели памяти.

      Открыть/закрыть

      Открыть/закрыть

    Собственно, ели проанализировать оба скрина, можно узреть следующее:
    1) ЦП: Если сравнить показания обоих скринов, то можно заметить, что таймеры сами по себе очень слабо нагружают ЦП (от 10000 таймеров нагрузка всего от 0.2% до 1% в моменты вызова функции)
    Но так же хочу заметить, что больше 40% не удаётся нагрузить ЦП. Видимо, тут срабатывают какие-то ограничения со стороны самого сервера (40% я получил создав 1.000.000 таймеров. Думаю, этого хватит с лихвой), а остальная нагрузка идёт на память
    2) Основной "удар" таймеров идёт как раз на память. Но, опять же, ты сам можешь посмотреть сколько памяти заняли 10000 одновременно работающих таймеров.

    Но стоит таймерам выполнится, они сразу удаляются с памяти сервера и нагрузка на ЦП исчезает. А уж если тебя пугает, что сервер запоминает последний созданный ID таймера - тут ничего страшного нет, ибо так, видимо, Куй просто решил перестраховаться, дабы не париться с сортировкой таймеров (работает по принципу AUTO_INCREMENT в MySQL)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    vovandolg (29.02.2016)
  8. #47
    Аватар для BadPawn
    Пользователь

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

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от BadPawn Посмотреть сообщение
    Если одинаковых интерьеров будет не малое кол-во, то как мы будем присваивать интерьеру виртуальный мир, дабы 2 игрока не проснулись в одной кровати? :)))
    PHP код:
    SetPlayerVirtualWorld(playerid1000+houseid); 
    ?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    BadPawn (01.03.2016)
  11. #49
    Аватар для Blood
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    Как через коммандную строку скомплировать мод на pawno.exe ?

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Вот такой вопрос, в этом коде:
    PHP код:
    foreach(Player,i)
    {
        new 
    summaAmmo 0;
        for(new 
    sl 0ammo 0sl 13sl++)
        {
            
    GetPlayerWeaponData(islammoammo);
            
    summaAmmo += ammo;
        }

    (Как видно уже не первый раз этот этот ошмёток гоняю по форуму)
    В общем этот кусок кода в переборе лежит и считывает патроны для каждого игрока,
    но я тут наткнулся на summaAmmo, она общая переменная как бы же,
    как то вариант её сделать не глобальной и для каждого игрока отдельно?

    Потому как у меня проблемы с этим перерасчётом и вечно откуда то берётся лишний ammo, хотя по сути при коннекте и спавне да и везде лишнего не чего не выдаёт(авось в клиенте встроено чего что выдаёт 1 аммо с 0 слота или хз)
    Последний раз редактировалось vovandolg; 02.03.2016 в 02:33.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 
Страница 5 из 133 ПерваяПервая ... 3 4 5 6 7 15 55 105 ... ПоследняяПоследняя

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

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

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

Ваши права

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