Линка

Эксперт
  • Публикации

    714
  • Зарегистрирован

  • Посещение


Изменения репутации

  1. Нравится
    Линка изменил репутацию RedFox в Обновления.   
    Сделай такую античит систему - у тебя ее с руками оторвут!
    Ксс ники всего мира тебе памятник при жизни поставят)
    А если серьзно - ее нельзя сделать. На текущий момент можно только отключить моды - все, в то числе на оружие и скины игроков  - что неприемлимо. 
  2. Нравится
    Линка изменил репутацию bullet28 в Проблема с AutoUpdater помогите   
    Файл AutoUpdater.exe можно скачать отсюда: s1.playbcm.net:81/l4dupdater3/AutoUpdater.exe
    Но чтобы он больше не исчезал лучше позаботиться о программах которые его удаляют (нехорошие антивирусы )
     
  3. Нравится
    Линка изменил репутацию SibirskaYazva в Несправедливость   
    Отличный отзыв.
    Благодаря серверу нашла, много друзей.
    Желаю вам процветания!!!
     
  4. Нравится
    Линка изменил репутацию bullet28 в Несправедливость   
    Спасибо за защиту) На самом деле недовольные вонючки бросаются в глаза не так, как куда большее количество благодарных людей. Сервера бесплатные, и конечно "требуемые 1000 рублей в месяц" в пожертвованиях расходы серверов не покроют, однако к счастью из-за VIP оплачивать всё не представляется проблемой, оплачиваю всегда с запасом. Для тех кто ненавидит сервера по своим скрытым проблемам я недавно сделал специальное правило:


    По поводу остальных живущих по модели неблагодарного потребления, то лучше не обращай на них внимания, ты ещё не раз разочаруешься в людях за свою жизнь
  5. Нравится
    Линка изменил репутацию (-NEXT-) в Несправедливость   
    В данной теме я хочу высказать свой протест людям, которые закидывают непотребством ГА. Я не придумал ничего лучше, чем оставить это здесь.
     
    Товарищи, давайте представим ситуацию что к вам домой пришли гости, которых вы приглашаете к столу и подаете им их любимое блюдо, которое вы сделали своими руками просто потому, что вы такой добрый и гостеприимный человек. И вот, в самом разгаре трапезы некоторые из ваших гостей начинают говорить, что какое же плохое это блюдо, что его надо подавать не так, готовмить по другому рецепту и вообще что вы гомно безрукое, не можете уже приготовить еду. При этом эти гости остаются, продолжают уминать за обе щеки и продолжают на вас гнать. Как вы себя почувствуете? Вам будет приятно? Точно та-же ситуация и здесь, на игровых серверах. Человек ради вас старается, купил железо/взял в аредну, оплатил канал, настроил сервера, все для вас дорогие гости, играйте. Так нет же, надо все и везде заговнить и всем показать какие ГА плохие люди - вон, посмотрите, у него сервера есть бесплатные, он плохой, давайте его какашками закидаем. Противно уже бывает на форум заходить, сообщения уже чуть ли не под копирку пишите. Если вам что-то не нравится, но у вас есть дельное предложение как это изменить - вынесите это на публичное обсуждение. Если вам в корне все не нравится - что вы тут забыли? Вот что? Вам не нравится что читеры могут откупиться - ок, но за свет/аренду и каналы связи + раскрутку надо платить. А где эти деньги взять? Если вы хотите что бы читеры больше не возвращались сюда никогда - скиньтесь на поддержку серверов Человеку, и, думаю, он не будет против этого! Но нет же, мы хотим бесплатно и повозмущаться еще, какой плохой ГА, читеров разбанивает.
     
    В общем, для меня очень непонятна такая модель поведения. Может это из зависти? Или просто из-за пустоты в голове? Или что-то изменилось в этом мире, и это такая мера выражения благодарности? Объясните мне, пожалуйста!
     
    P.S. Накипело просто уже. Надеюсь, мой посыл будет понятен и вызовет адекватную реакцию.
  6. Нравится
    Линка изменил репутацию bullet28 в Обновленный форум   
    Как вы не могли не заметить наш форум свежо преобразился) Некоторые считают, что сменилось оформление но на самом деле был переезд на более новую версию, из-за чего старое оформление более не могло оставаться, пришлось искать и долепливать новое) Результат, лично меня, радует) Как выглядел наш форум до обновления:
     

     
    Вроде бы даже и как-то поуютнее, но все таки стиль более классический, а мы ведь проект игровой

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

    Голосуйте выше нравятся ли вам эти изменения
  7. Нравится
    Линка изменил репутацию bullet28 в Не могу зайти на сервера   
    Линка спасибо за напоминание) Обновил файл с биндами и заменил F5-F8 на кастомы, как в примере выше. Раньше они были под версусы. Файл сам не обновится, нужно нажать кнопочку "Обновить игру" в лаунчере (не займет более 30 сек).
  8. Нравится
    Линка получил репутацию от RedFox в Не могу зайти на сервера   
    Если честно, не помню, какого числа заменили серверы (или просто пересадили кастомы на один IP с коопом), может у ТСа и не в этом проблема была, но люди недавно спрашивали, почему не могут подключиться через F-ки. Так вот, в конфиге клиента для подключения указаны домены:
     
    s1.playbcm.net (для коопов)
    и
    s2.playbcm.net (для кастомов)
     
    Ну и соответствующие серверам порты, но не суть...
     
    Первый домен резольвился в IP 178.54.193.10
    А второй домен резольвится в IP 178.54.142.4
    Но так как сервера теперь "сидят" на одном и том же IP, а именно на 178.54.193.10, то на кооп вы сможете зайти в любом случае, т.к. IP не изменился для него, а вот при подключении на кастом клиент начинает ломиться по старому IP адресу 178.54.142.4
     
    Решить проблемку можно разными способами. Либо Владу перевесить кастомовский домен на новый IP, либо вы можете вручную переписать конфиг заменив s2.playbcm.net на s1.playbcm.net, примерно вот так:
     
    bind "F1" "connect s1.playbcm.net:1101"
    bind "F2" "connect s1.playbcm.net:1102"
    bind "F3" "connect s1.playbcm.net:1103"
    bind "F4" "connect s1.playbcm.net:1104"
    bind "F5" "connect s1.playbcm.net:1105"
    bind "F6" "connect s1.playbcm.net:1106"
    bind "F7" "connect s1.playbcm.net:1107"
    bind "F8" "connect s1.playbcm.net:1108"
    bind "F9" "connect s1.playbcm.net:1301"
    bind "F10" "connect s1.playbcm.net:1302"
    bind "F11" "connect s1.playbcm.net:1303"
    bind "F12" "connect s1.playbcm.net:1304"
  9. Нравится
    Линка изменил репутацию bullet28 в протест   
    Дружище, ты не просто злой админ, ты маньяк! Давненько я мутов за "мля" не видал.
  10. Нравится
    Линка получил репутацию от RedFox в Не могу зайти на сервера   
    Если честно, не помню, какого числа заменили серверы (или просто пересадили кастомы на один IP с коопом), может у ТСа и не в этом проблема была, но люди недавно спрашивали, почему не могут подключиться через F-ки. Так вот, в конфиге клиента для подключения указаны домены:
     
    s1.playbcm.net (для коопов)
    и
    s2.playbcm.net (для кастомов)
     
    Ну и соответствующие серверам порты, но не суть...
     
    Первый домен резольвился в IP 178.54.193.10
    А второй домен резольвится в IP 178.54.142.4
    Но так как сервера теперь "сидят" на одном и том же IP, а именно на 178.54.193.10, то на кооп вы сможете зайти в любом случае, т.к. IP не изменился для него, а вот при подключении на кастом клиент начинает ломиться по старому IP адресу 178.54.142.4
     
    Решить проблемку можно разными способами. Либо Владу перевесить кастомовский домен на новый IP, либо вы можете вручную переписать конфиг заменив s2.playbcm.net на s1.playbcm.net, примерно вот так:
     
    bind "F1" "connect s1.playbcm.net:1101"
    bind "F2" "connect s1.playbcm.net:1102"
    bind "F3" "connect s1.playbcm.net:1103"
    bind "F4" "connect s1.playbcm.net:1104"
    bind "F5" "connect s1.playbcm.net:1105"
    bind "F6" "connect s1.playbcm.net:1106"
    bind "F7" "connect s1.playbcm.net:1107"
    bind "F8" "connect s1.playbcm.net:1108"
    bind "F9" "connect s1.playbcm.net:1301"
    bind "F10" "connect s1.playbcm.net:1302"
    bind "F11" "connect s1.playbcm.net:1303"
    bind "F12" "connect s1.playbcm.net:1304"
  11. Нравится
    Линка получил репутацию от RedFox в Не могу зайти на сервера   
    Если честно, не помню, какого числа заменили серверы (или просто пересадили кастомы на один IP с коопом), может у ТСа и не в этом проблема была, но люди недавно спрашивали, почему не могут подключиться через F-ки. Так вот, в конфиге клиента для подключения указаны домены:
     
    s1.playbcm.net (для коопов)
    и
    s2.playbcm.net (для кастомов)
     
    Ну и соответствующие серверам порты, но не суть...
     
    Первый домен резольвился в IP 178.54.193.10
    А второй домен резольвится в IP 178.54.142.4
    Но так как сервера теперь "сидят" на одном и том же IP, а именно на 178.54.193.10, то на кооп вы сможете зайти в любом случае, т.к. IP не изменился для него, а вот при подключении на кастом клиент начинает ломиться по старому IP адресу 178.54.142.4
     
    Решить проблемку можно разными способами. Либо Владу перевесить кастомовский домен на новый IP, либо вы можете вручную переписать конфиг заменив s2.playbcm.net на s1.playbcm.net, примерно вот так:
     
    bind "F1" "connect s1.playbcm.net:1101"
    bind "F2" "connect s1.playbcm.net:1102"
    bind "F3" "connect s1.playbcm.net:1103"
    bind "F4" "connect s1.playbcm.net:1104"
    bind "F5" "connect s1.playbcm.net:1105"
    bind "F6" "connect s1.playbcm.net:1106"
    bind "F7" "connect s1.playbcm.net:1107"
    bind "F8" "connect s1.playbcm.net:1108"
    bind "F9" "connect s1.playbcm.net:1301"
    bind "F10" "connect s1.playbcm.net:1302"
    bind "F11" "connect s1.playbcm.net:1303"
    bind "F12" "connect s1.playbcm.net:1304"
  12. Нравится
    Линка получил репутацию от RedFox в Не могу зайти на сервера   
    Если честно, не помню, какого числа заменили серверы (или просто пересадили кастомы на один IP с коопом), может у ТСа и не в этом проблема была, но люди недавно спрашивали, почему не могут подключиться через F-ки. Так вот, в конфиге клиента для подключения указаны домены:
     
    s1.playbcm.net (для коопов)
    и
    s2.playbcm.net (для кастомов)
     
    Ну и соответствующие серверам порты, но не суть...
     
    Первый домен резольвился в IP 178.54.193.10
    А второй домен резольвится в IP 178.54.142.4
    Но так как сервера теперь "сидят" на одном и том же IP, а именно на 178.54.193.10, то на кооп вы сможете зайти в любом случае, т.к. IP не изменился для него, а вот при подключении на кастом клиент начинает ломиться по старому IP адресу 178.54.142.4
     
    Решить проблемку можно разными способами. Либо Владу перевесить кастомовский домен на новый IP, либо вы можете вручную переписать конфиг заменив s2.playbcm.net на s1.playbcm.net, примерно вот так:
     
    bind "F1" "connect s1.playbcm.net:1101"
    bind "F2" "connect s1.playbcm.net:1102"
    bind "F3" "connect s1.playbcm.net:1103"
    bind "F4" "connect s1.playbcm.net:1104"
    bind "F5" "connect s1.playbcm.net:1105"
    bind "F6" "connect s1.playbcm.net:1106"
    bind "F7" "connect s1.playbcm.net:1107"
    bind "F8" "connect s1.playbcm.net:1108"
    bind "F9" "connect s1.playbcm.net:1301"
    bind "F10" "connect s1.playbcm.net:1302"
    bind "F11" "connect s1.playbcm.net:1303"
    bind "F12" "connect s1.playbcm.net:1304"
  13. Нравится
    Линка изменил репутацию RedFox в Частичный сброс статистики   
    Вип статус не дает решающего преимущества, хотя конечно облегчает задачу набора очков статистики.
    Не все випы гонятся за статой и есть примеры игроков игравших без вип и адм и державшихся в первой десятке топа.
     
    Критические баги статы исправлены, wipe проведен. Madx переживает рестайлинг, исправляются баги версусов.
    В целом стоит признать факт - жизнь на playbcm налаживается)
  14. Нравится
    Линка получил репутацию от KitKat в Статистика   
    Кому не интересен анализ кода - в самый низ, пожалуйста)
     

    stock addPoints(client, Float:initialPoints) { //Функция складывания очков в пределах раунда для статы/рекордов     new Float:points = initialPoints;     //Очки(points) инициализируется базовыми очками за какое-либо действие     points = multiplyByDifficulty(points);     //Очки умножаются на множитель сложности игры          recordsPointsEarned[client] += points;     //Здесь очки копятся для рекордов в течении раунда     //(с учётом сложности, но без остальных множителей)          if (isMultiplyingAction(lastAction[client])) {         if (cachedPoints[client] > 0.0) {         //Если очки игрока в стате > 0, то...                      new bool:pointsPlus = points > 0.0;             //проверяем, штрафом или прибавкой является текущее действие                          // Уменьшаем пенальти в любом случае             if (!pointsPlus) points = points / 1.5;                     //Если штраф, то уменьшаем его в 1.5 раза                          // Помогаем нубам набрать базовые очки             if (cachedPoints[client] < 20000.0) {             //Если очки игрока меньше 20000...                              if (pointsPlus) {                 //и если это прибавка, то                                      new Float:completedPercent = (cachedPoints[client] / 20000.0) * 100.0;                     //Вычисляем в % очки игрока по отношению к планке 20000                                          new Float:incompletedPercent = 100.0 - completedPercent;                     //Вычисляем сколько % вам осталось до 20000                                          new Float:multiplier = (2.5 * incompletedPercent) / 100.0;                     /*Вычисляем множитель помощи нубам, и вот здесь кроется подводный камень,                     я раньше точно так же упиралась в потолок, только он был 5000,                     и всё не могла понять, в чём же дело, т.к. не видела кода.                     Сейчас вот поняла. Я так понимаю, задумывалось умножать очки нубам                     в 2.5 раза на старте, и постепенно уменьшать множитель до 1                     при приближении к 20000. Но по этой формуле получается,                     что с приближением к 20000 множитель уменьшается не до 1, а до 0.                     Допустим у вас 19500 очков, тогда получаемые очки будут умножаться                     всего лишь на 0.0625, а штрафы будут снимать намного больше.                     Поэтому чтобы перепрыгнуть планку 20000, надо будет пройти раунд                     (скорее всего не один) вообще не падая и не получая повреждений,                     и при этом набирать бешенное кол-во очков (по базе),                     я думаю в формулу выше надо добавить единицу:                                          new Float:multiplier = 1 + (slopeModifier * incompletedPercent) / 100.0;                                          Тогда по приближению к 20000 множитель очков будет снижаться                     от стартового значения до 1, а крутизна спада будет задаваться                     как slopeModifier + 1, т.е. если на старте надо множить очки на 2.5,                     то slopeModifier будет 1.5, если надо на 10, то slopeModifier будет 9.                     В результате очки будут правильно набираться и до и после 20000,                     и никто больше не будет вопить, что не могут перепрыгнуть 20000*/                                          points = points * multiplier;                     //Очки умножаются на множитель помощи нубам                 }             }                          // Затрудняем рост\падение очков по мере их количества             else {                 new Float:excessMultiplier = cachedPoints[client] / 20000.0;                 points = points / excessMultiplier;             /*Если очки 20000 и более, то множитель начинает падать уже от 1 до 0,             но это будет очень долгий процесс. Например, имея в 5 раз больше очков             относительно планки 20000, вы будете получать соответственно в 5 раз меньше*/             }         }     }     statsPoints[client] += points;     //Накопление очков, которые пойдут в стату, с учётом всех множителей          cachedPoints[client] += points;                                                             if (cachedPoints[client] < 0.0) {         cachedPoints[client] = 0.0;         statsPoints[client] = 0.0; //Эти строки, так понимаю, чтобы игрок не ушёл в минус в стате,     //т.е. меньше 0 очков в стате у вас не может быть     }     lastPointsChange[client] = points;     //Хранит значение последнего изменения очков в ту или иную сторону          if (points > 0.0) statsRank[client] += points;     //statsRank учитывает только прибавки, но для чего она     //и в какой раздел статы пишет значения - не догадываюсь          recordsPointsIncome[client] += points;     //Здесь очки тоже копятся для рекордов, но с учётом всех множителей. Хмм, зачем?)          //LogMessage("> %N (%0.1f) got %0.2f for event %d", client, cachedPoints[client], points, lastAction[client]);     //Ну а это просто лог произведенных операций, отключенный комментарием) }Итого:Единственный косячок я нашла в формуле планки 20000, из-за которого её практически нереально перепрыгнуть, но это легко исправить (описание причины и фикса где-то в середине, множитель помощи нубам). А так, в общем, я не вижу тут никаких багов, позволяющих конкретным лицам без напряга перепрыгивать 20000, или способствующих росту очков. Перепрыгнуть можно при большом везении и чрезмерной аккуратности, нужно очень постараться не получать звездюлей. Также админам/випам перепрыгнуть её проще, чем простым смертным.
     
    P.S. Если что-то не верно, сильно не бейте, пожалуйста)
  15. Нравится
    Линка изменил репутацию Че Гевара в Частичный сброс статистики   
    Да,рыгала как зальёт,так уж зальёт.Зелёный экран блин,аж в ботинках хлюпае.)))
  16. Нравится
    Линка получил репутацию от KitKat в Статистика   
    Кому не интересен анализ кода - в самый низ, пожалуйста)
     

    stock addPoints(client, Float:initialPoints) { //Функция складывания очков в пределах раунда для статы/рекордов     new Float:points = initialPoints;     //Очки(points) инициализируется базовыми очками за какое-либо действие     points = multiplyByDifficulty(points);     //Очки умножаются на множитель сложности игры          recordsPointsEarned[client] += points;     //Здесь очки копятся для рекордов в течении раунда     //(с учётом сложности, но без остальных множителей)          if (isMultiplyingAction(lastAction[client])) {         if (cachedPoints[client] > 0.0) {         //Если очки игрока в стате > 0, то...                      new bool:pointsPlus = points > 0.0;             //проверяем, штрафом или прибавкой является текущее действие                          // Уменьшаем пенальти в любом случае             if (!pointsPlus) points = points / 1.5;                     //Если штраф, то уменьшаем его в 1.5 раза                          // Помогаем нубам набрать базовые очки             if (cachedPoints[client] < 20000.0) {             //Если очки игрока меньше 20000...                              if (pointsPlus) {                 //и если это прибавка, то                                      new Float:completedPercent = (cachedPoints[client] / 20000.0) * 100.0;                     //Вычисляем в % очки игрока по отношению к планке 20000                                          new Float:incompletedPercent = 100.0 - completedPercent;                     //Вычисляем сколько % вам осталось до 20000                                          new Float:multiplier = (2.5 * incompletedPercent) / 100.0;                     /*Вычисляем множитель помощи нубам, и вот здесь кроется подводный камень,                     я раньше точно так же упиралась в потолок, только он был 5000,                     и всё не могла понять, в чём же дело, т.к. не видела кода.                     Сейчас вот поняла. Я так понимаю, задумывалось умножать очки нубам                     в 2.5 раза на старте, и постепенно уменьшать множитель до 1                     при приближении к 20000. Но по этой формуле получается,                     что с приближением к 20000 множитель уменьшается не до 1, а до 0.                     Допустим у вас 19500 очков, тогда получаемые очки будут умножаться                     всего лишь на 0.0625, а штрафы будут снимать намного больше.                     Поэтому чтобы перепрыгнуть планку 20000, надо будет пройти раунд                     (скорее всего не один) вообще не падая и не получая повреждений,                     и при этом набирать бешенное кол-во очков (по базе),                     я думаю в формулу выше надо добавить единицу:                                          new Float:multiplier = 1 + (slopeModifier * incompletedPercent) / 100.0;                                          Тогда по приближению к 20000 множитель очков будет снижаться                     от стартового значения до 1, а крутизна спада будет задаваться                     как slopeModifier + 1, т.е. если на старте надо множить очки на 2.5,                     то slopeModifier будет 1.5, если надо на 10, то slopeModifier будет 9.                     В результате очки будут правильно набираться и до и после 20000,                     и никто больше не будет вопить, что не могут перепрыгнуть 20000*/                                          points = points * multiplier;                     //Очки умножаются на множитель помощи нубам                 }             }                          // Затрудняем рост\падение очков по мере их количества             else {                 new Float:excessMultiplier = cachedPoints[client] / 20000.0;                 points = points / excessMultiplier;             /*Если очки 20000 и более, то множитель начинает падать уже от 1 до 0,             но это будет очень долгий процесс. Например, имея в 5 раз больше очков             относительно планки 20000, вы будете получать соответственно в 5 раз меньше*/             }         }     }     statsPoints[client] += points;     //Накопление очков, которые пойдут в стату, с учётом всех множителей          cachedPoints[client] += points;                                                             if (cachedPoints[client] < 0.0) {         cachedPoints[client] = 0.0;         statsPoints[client] = 0.0; //Эти строки, так понимаю, чтобы игрок не ушёл в минус в стате,     //т.е. меньше 0 очков в стате у вас не может быть     }     lastPointsChange[client] = points;     //Хранит значение последнего изменения очков в ту или иную сторону          if (points > 0.0) statsRank[client] += points;     //statsRank учитывает только прибавки, но для чего она     //и в какой раздел статы пишет значения - не догадываюсь          recordsPointsIncome[client] += points;     //Здесь очки тоже копятся для рекордов, но с учётом всех множителей. Хмм, зачем?)          //LogMessage("> %N (%0.1f) got %0.2f for event %d", client, cachedPoints[client], points, lastAction[client]);     //Ну а это просто лог произведенных операций, отключенный комментарием) }Итого:Единственный косячок я нашла в формуле планки 20000, из-за которого её практически нереально перепрыгнуть, но это легко исправить (описание причины и фикса где-то в середине, множитель помощи нубам). А так, в общем, я не вижу тут никаких багов, позволяющих конкретным лицам без напряга перепрыгивать 20000, или способствующих росту очков. Перепрыгнуть можно при большом везении и чрезмерной аккуратности, нужно очень постараться не получать звездюлей. Также админам/випам перепрыгнуть её проще, чем простым смертным.
     
    P.S. Если что-то не верно, сильно не бейте, пожалуйста)
  17. Нравится
    Линка получил репутацию от KitKat в Статистика   
    Кому не интересен анализ кода - в самый низ, пожалуйста)
     

    stock addPoints(client, Float:initialPoints) { //Функция складывания очков в пределах раунда для статы/рекордов     new Float:points = initialPoints;     //Очки(points) инициализируется базовыми очками за какое-либо действие     points = multiplyByDifficulty(points);     //Очки умножаются на множитель сложности игры          recordsPointsEarned[client] += points;     //Здесь очки копятся для рекордов в течении раунда     //(с учётом сложности, но без остальных множителей)          if (isMultiplyingAction(lastAction[client])) {         if (cachedPoints[client] > 0.0) {         //Если очки игрока в стате > 0, то...                      new bool:pointsPlus = points > 0.0;             //проверяем, штрафом или прибавкой является текущее действие                          // Уменьшаем пенальти в любом случае             if (!pointsPlus) points = points / 1.5;                     //Если штраф, то уменьшаем его в 1.5 раза                          // Помогаем нубам набрать базовые очки             if (cachedPoints[client] < 20000.0) {             //Если очки игрока меньше 20000...                              if (pointsPlus) {                 //и если это прибавка, то                                      new Float:completedPercent = (cachedPoints[client] / 20000.0) * 100.0;                     //Вычисляем в % очки игрока по отношению к планке 20000                                          new Float:incompletedPercent = 100.0 - completedPercent;                     //Вычисляем сколько % вам осталось до 20000                                          new Float:multiplier = (2.5 * incompletedPercent) / 100.0;                     /*Вычисляем множитель помощи нубам, и вот здесь кроется подводный камень,                     я раньше точно так же упиралась в потолок, только он был 5000,                     и всё не могла понять, в чём же дело, т.к. не видела кода.                     Сейчас вот поняла. Я так понимаю, задумывалось умножать очки нубам                     в 2.5 раза на старте, и постепенно уменьшать множитель до 1                     при приближении к 20000. Но по этой формуле получается,                     что с приближением к 20000 множитель уменьшается не до 1, а до 0.                     Допустим у вас 19500 очков, тогда получаемые очки будут умножаться                     всего лишь на 0.0625, а штрафы будут снимать намного больше.                     Поэтому чтобы перепрыгнуть планку 20000, надо будет пройти раунд                     (скорее всего не один) вообще не падая и не получая повреждений,                     и при этом набирать бешенное кол-во очков (по базе),                     я думаю в формулу выше надо добавить единицу:                                          new Float:multiplier = 1 + (slopeModifier * incompletedPercent) / 100.0;                                          Тогда по приближению к 20000 множитель очков будет снижаться                     от стартового значения до 1, а крутизна спада будет задаваться                     как slopeModifier + 1, т.е. если на старте надо множить очки на 2.5,                     то slopeModifier будет 1.5, если надо на 10, то slopeModifier будет 9.                     В результате очки будут правильно набираться и до и после 20000,                     и никто больше не будет вопить, что не могут перепрыгнуть 20000*/                                          points = points * multiplier;                     //Очки умножаются на множитель помощи нубам                 }             }                          // Затрудняем рост\падение очков по мере их количества             else {                 new Float:excessMultiplier = cachedPoints[client] / 20000.0;                 points = points / excessMultiplier;             /*Если очки 20000 и более, то множитель начинает падать уже от 1 до 0,             но это будет очень долгий процесс. Например, имея в 5 раз больше очков             относительно планки 20000, вы будете получать соответственно в 5 раз меньше*/             }         }     }     statsPoints[client] += points;     //Накопление очков, которые пойдут в стату, с учётом всех множителей          cachedPoints[client] += points;                                                             if (cachedPoints[client] < 0.0) {         cachedPoints[client] = 0.0;         statsPoints[client] = 0.0; //Эти строки, так понимаю, чтобы игрок не ушёл в минус в стате,     //т.е. меньше 0 очков в стате у вас не может быть     }     lastPointsChange[client] = points;     //Хранит значение последнего изменения очков в ту или иную сторону          if (points > 0.0) statsRank[client] += points;     //statsRank учитывает только прибавки, но для чего она     //и в какой раздел статы пишет значения - не догадываюсь          recordsPointsIncome[client] += points;     //Здесь очки тоже копятся для рекордов, но с учётом всех множителей. Хмм, зачем?)          //LogMessage("> %N (%0.1f) got %0.2f for event %d", client, cachedPoints[client], points, lastAction[client]);     //Ну а это просто лог произведенных операций, отключенный комментарием) }Итого:Единственный косячок я нашла в формуле планки 20000, из-за которого её практически нереально перепрыгнуть, но это легко исправить (описание причины и фикса где-то в середине, множитель помощи нубам). А так, в общем, я не вижу тут никаких багов, позволяющих конкретным лицам без напряга перепрыгивать 20000, или способствующих росту очков. Перепрыгнуть можно при большом везении и чрезмерной аккуратности, нужно очень постараться не получать звездюлей. Также админам/випам перепрыгнуть её проще, чем простым смертным.
     
    P.S. Если что-то не верно, сильно не бейте, пожалуйста)
  18. Нравится
    Линка изменил репутацию bullet28 в Статистика   
    Линка, круто, молодец!) Сегодня исправлю результат своей плохой математики :)
    statsRank это очки ранга для звания. Они идут только в плюс, в отличии от statsPoints. recordsPointsEarned это заработанные очки без модификатора, тогда как recordsPointsIncome с модификатором. Первые будут сражаться за MVP в раунде, вторые будут отображаться в графике результатов игры на странице игрока
  19. Нравится
    Линка получил репутацию от KitKat в Статистика   
    Кому не интересен анализ кода - в самый низ, пожалуйста)
     

    stock addPoints(client, Float:initialPoints) { //Функция складывания очков в пределах раунда для статы/рекордов     new Float:points = initialPoints;     //Очки(points) инициализируется базовыми очками за какое-либо действие     points = multiplyByDifficulty(points);     //Очки умножаются на множитель сложности игры          recordsPointsEarned[client] += points;     //Здесь очки копятся для рекордов в течении раунда     //(с учётом сложности, но без остальных множителей)          if (isMultiplyingAction(lastAction[client])) {         if (cachedPoints[client] > 0.0) {         //Если очки игрока в стате > 0, то...                      new bool:pointsPlus = points > 0.0;             //проверяем, штрафом или прибавкой является текущее действие                          // Уменьшаем пенальти в любом случае             if (!pointsPlus) points = points / 1.5;                     //Если штраф, то уменьшаем его в 1.5 раза                          // Помогаем нубам набрать базовые очки             if (cachedPoints[client] < 20000.0) {             //Если очки игрока меньше 20000...                              if (pointsPlus) {                 //и если это прибавка, то                                      new Float:completedPercent = (cachedPoints[client] / 20000.0) * 100.0;                     //Вычисляем в % очки игрока по отношению к планке 20000                                          new Float:incompletedPercent = 100.0 - completedPercent;                     //Вычисляем сколько % вам осталось до 20000                                          new Float:multiplier = (2.5 * incompletedPercent) / 100.0;                     /*Вычисляем множитель помощи нубам, и вот здесь кроется подводный камень,                     я раньше точно так же упиралась в потолок, только он был 5000,                     и всё не могла понять, в чём же дело, т.к. не видела кода.                     Сейчас вот поняла. Я так понимаю, задумывалось умножать очки нубам                     в 2.5 раза на старте, и постепенно уменьшать множитель до 1                     при приближении к 20000. Но по этой формуле получается,                     что с приближением к 20000 множитель уменьшается не до 1, а до 0.                     Допустим у вас 19500 очков, тогда получаемые очки будут умножаться                     всего лишь на 0.0625, а штрафы будут снимать намного больше.                     Поэтому чтобы перепрыгнуть планку 20000, надо будет пройти раунд                     (скорее всего не один) вообще не падая и не получая повреждений,                     и при этом набирать бешенное кол-во очков (по базе),                     я думаю в формулу выше надо добавить единицу:                                          new Float:multiplier = 1 + (slopeModifier * incompletedPercent) / 100.0;                                          Тогда по приближению к 20000 множитель очков будет снижаться                     от стартового значения до 1, а крутизна спада будет задаваться                     как slopeModifier + 1, т.е. если на старте надо множить очки на 2.5,                     то slopeModifier будет 1.5, если надо на 10, то slopeModifier будет 9.                     В результате очки будут правильно набираться и до и после 20000,                     и никто больше не будет вопить, что не могут перепрыгнуть 20000*/                                          points = points * multiplier;                     //Очки умножаются на множитель помощи нубам                 }             }                          // Затрудняем рост\падение очков по мере их количества             else {                 new Float:excessMultiplier = cachedPoints[client] / 20000.0;                 points = points / excessMultiplier;             /*Если очки 20000 и более, то множитель начинает падать уже от 1 до 0,             но это будет очень долгий процесс. Например, имея в 5 раз больше очков             относительно планки 20000, вы будете получать соответственно в 5 раз меньше*/             }         }     }     statsPoints[client] += points;     //Накопление очков, которые пойдут в стату, с учётом всех множителей          cachedPoints[client] += points;                                                             if (cachedPoints[client] < 0.0) {         cachedPoints[client] = 0.0;         statsPoints[client] = 0.0; //Эти строки, так понимаю, чтобы игрок не ушёл в минус в стате,     //т.е. меньше 0 очков в стате у вас не может быть     }     lastPointsChange[client] = points;     //Хранит значение последнего изменения очков в ту или иную сторону          if (points > 0.0) statsRank[client] += points;     //statsRank учитывает только прибавки, но для чего она     //и в какой раздел статы пишет значения - не догадываюсь          recordsPointsIncome[client] += points;     //Здесь очки тоже копятся для рекордов, но с учётом всех множителей. Хмм, зачем?)          //LogMessage("> %N (%0.1f) got %0.2f for event %d", client, cachedPoints[client], points, lastAction[client]);     //Ну а это просто лог произведенных операций, отключенный комментарием) }Итого:Единственный косячок я нашла в формуле планки 20000, из-за которого её практически нереально перепрыгнуть, но это легко исправить (описание причины и фикса где-то в середине, множитель помощи нубам). А так, в общем, я не вижу тут никаких багов, позволяющих конкретным лицам без напряга перепрыгивать 20000, или способствующих росту очков. Перепрыгнуть можно при большом везении и чрезмерной аккуратности, нужно очень постараться не получать звездюлей. Также админам/випам перепрыгнуть её проще, чем простым смертным.
     
    P.S. Если что-то не верно, сильно не бейте, пожалуйста)
  20. Нравится
    Линка получил репутацию от KitKat в Статистика   
    Кому не интересен анализ кода - в самый низ, пожалуйста)
     

    stock addPoints(client, Float:initialPoints) { //Функция складывания очков в пределах раунда для статы/рекордов     new Float:points = initialPoints;     //Очки(points) инициализируется базовыми очками за какое-либо действие     points = multiplyByDifficulty(points);     //Очки умножаются на множитель сложности игры          recordsPointsEarned[client] += points;     //Здесь очки копятся для рекордов в течении раунда     //(с учётом сложности, но без остальных множителей)          if (isMultiplyingAction(lastAction[client])) {         if (cachedPoints[client] > 0.0) {         //Если очки игрока в стате > 0, то...                      new bool:pointsPlus = points > 0.0;             //проверяем, штрафом или прибавкой является текущее действие                          // Уменьшаем пенальти в любом случае             if (!pointsPlus) points = points / 1.5;                     //Если штраф, то уменьшаем его в 1.5 раза                          // Помогаем нубам набрать базовые очки             if (cachedPoints[client] < 20000.0) {             //Если очки игрока меньше 20000...                              if (pointsPlus) {                 //и если это прибавка, то                                      new Float:completedPercent = (cachedPoints[client] / 20000.0) * 100.0;                     //Вычисляем в % очки игрока по отношению к планке 20000                                          new Float:incompletedPercent = 100.0 - completedPercent;                     //Вычисляем сколько % вам осталось до 20000                                          new Float:multiplier = (2.5 * incompletedPercent) / 100.0;                     /*Вычисляем множитель помощи нубам, и вот здесь кроется подводный камень,                     я раньше точно так же упиралась в потолок, только он был 5000,                     и всё не могла понять, в чём же дело, т.к. не видела кода.                     Сейчас вот поняла. Я так понимаю, задумывалось умножать очки нубам                     в 2.5 раза на старте, и постепенно уменьшать множитель до 1                     при приближении к 20000. Но по этой формуле получается,                     что с приближением к 20000 множитель уменьшается не до 1, а до 0.                     Допустим у вас 19500 очков, тогда получаемые очки будут умножаться                     всего лишь на 0.0625, а штрафы будут снимать намного больше.                     Поэтому чтобы перепрыгнуть планку 20000, надо будет пройти раунд                     (скорее всего не один) вообще не падая и не получая повреждений,                     и при этом набирать бешенное кол-во очков (по базе),                     я думаю в формулу выше надо добавить единицу:                                          new Float:multiplier = 1 + (slopeModifier * incompletedPercent) / 100.0;                                          Тогда по приближению к 20000 множитель очков будет снижаться                     от стартового значения до 1, а крутизна спада будет задаваться                     как slopeModifier + 1, т.е. если на старте надо множить очки на 2.5,                     то slopeModifier будет 1.5, если надо на 10, то slopeModifier будет 9.                     В результате очки будут правильно набираться и до и после 20000,                     и никто больше не будет вопить, что не могут перепрыгнуть 20000*/                                          points = points * multiplier;                     //Очки умножаются на множитель помощи нубам                 }             }                          // Затрудняем рост\падение очков по мере их количества             else {                 new Float:excessMultiplier = cachedPoints[client] / 20000.0;                 points = points / excessMultiplier;             /*Если очки 20000 и более, то множитель начинает падать уже от 1 до 0,             но это будет очень долгий процесс. Например, имея в 5 раз больше очков             относительно планки 20000, вы будете получать соответственно в 5 раз меньше*/             }         }     }     statsPoints[client] += points;     //Накопление очков, которые пойдут в стату, с учётом всех множителей          cachedPoints[client] += points;                                                             if (cachedPoints[client] < 0.0) {         cachedPoints[client] = 0.0;         statsPoints[client] = 0.0; //Эти строки, так понимаю, чтобы игрок не ушёл в минус в стате,     //т.е. меньше 0 очков в стате у вас не может быть     }     lastPointsChange[client] = points;     //Хранит значение последнего изменения очков в ту или иную сторону          if (points > 0.0) statsRank[client] += points;     //statsRank учитывает только прибавки, но для чего она     //и в какой раздел статы пишет значения - не догадываюсь          recordsPointsIncome[client] += points;     //Здесь очки тоже копятся для рекордов, но с учётом всех множителей. Хмм, зачем?)          //LogMessage("> %N (%0.1f) got %0.2f for event %d", client, cachedPoints[client], points, lastAction[client]);     //Ну а это просто лог произведенных операций, отключенный комментарием) }Итого:Единственный косячок я нашла в формуле планки 20000, из-за которого её практически нереально перепрыгнуть, но это легко исправить (описание причины и фикса где-то в середине, множитель помощи нубам). А так, в общем, я не вижу тут никаких багов, позволяющих конкретным лицам без напряга перепрыгивать 20000, или способствующих росту очков. Перепрыгнуть можно при большом везении и чрезмерной аккуратности, нужно очень постараться не получать звездюлей. Также админам/випам перепрыгнуть её проще, чем простым смертным.
     
    P.S. Если что-то не верно, сильно не бейте, пожалуйста)
  21. Нравится
    Линка изменил репутацию RedFox в На VIP отсутствует- быстрее ползать при падении, убийство адреналином,   
    UPD. Дополнительно уточнил у Влада, цена 100 дней, как я и писал.
  22. Нравится
    Линка изменил репутацию Алиса ДваЧе в Дали БАН за 3 прыжок. Ник: JustSmile.   
    Как раз таки в лефте она еще полезнее, с помощью нее можно много где сокращать пути, снимать замедления по воде и от низкого хп, но она сложнее в реализации, чем в ксс
  23. Нравится
    Линка изменил репутацию Aleksa в Мут. Причина не ясна.   
    Не поленилась прочла чат ваш за 13 число. С ее стороны оскорблений не было. А с твоей были. Мут верен. В снятие отказано.
  24. Нравится
    Линка изменил репутацию RedFox в Мут. Причина не ясна.   
    Действительно на тебя поступила жалоба. Почитав логи чата увидел завуалированные оскорбления, мут выдал на след. день, когда время появилось. Поскольку это 3е нарушение то срок 2е суток, в соответствии с правилами.Вопрос, где тут коррупция??
  25. Нравится
    Линка изменил репутацию bullet28 в Замечания по серверам   
    Тысячу раз писал, что сервера никогда себя не пытались поставить как какие-то профессиональные, наоборот в открытую говорю, что они для откровенных нубов и здесь ничего не приспособлено для обратного. Тот же кик, за который вы так теперь хватаетесь появился там совершенно случайно, создал я этот плагин для CS:S, и в один день случайно его закинул на версус, а потом ещё раз, и ещё. Каждый раз я после его убирал, когда узнавал, что он там есть. Как вы можете заметить у нас никогда не проводилось турниров, и это потому что, я вам могу сказать в лицо - Лефт казуалка не имеющая ничего общего с киберспортом ввиду своей несбалансированости, в competitive у нее нет настоящего, и тем более, будущего. В том числе разработчики игры никак это не поощрают, не умудрившись сделать тот же Source TV для наблюдения за игрой, и всё остальное. Это игра для фана, и наши сервера это поддерживают. Но вы со своими киками противоположность моим взглядам, и тем, в каком направлении движутся мои сервера. Целевая аудитория этого сервера должны быть Саньки, Сталкеры, Юли_228рус которые разговаривают о жизни в перерывах попивая пивалду. И поверьте, они бы все получили удовольствие от игры, потому что так было очень долгое время, но теперь они лишь могут увидеть надпись "Игроки проголосовали за ваш кик" и всё что им остается нажать ОК и пойти на другой сервер, потому что нормальным людям после такого плевка в лицо возвращаться не захочется. Вы посылаете его на кооп, а если человек хочет поиграть версус, то что? Получается какой-то условный гарри_г решает, что наш сервер им не подходит. Хотя многие игроки преданы нашему порталу, и скорее всего предпочтут не лазить долго в поисках другого сервера. Итог игрок лишен возможности играть этот режим, и научится чтобы вы ему дали это разрешение как итог тоже. Но знаете, как игрок попадает впервые на наш версус? Он скачивает игру в интернете и пытается понять "что это". Нет, представьте, они не приходят с солярисов и дедсайленс. Этот сервер очень выделяется из остальных BCM серверов, потому что только здесь сформировалась аудитория которая решает имеешь ли ты право здесь играть. Мне это не интересно..