SA-MP Forums Archive
[GameMode] ByFly GTA: SA GangWar - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [GameMode] ByFly GTA: SA GangWar (/showthread.php?tid=602775)

Pages: 1 2


ByFly GTA: SA GangWar - OstGot - 12.03.2016

ByFly GTA: SA GangWar v3.9 (r16)

Собственно, настал тот момент, когда мне нужно было сделать что-то более глобальное, например мод.
Недолго думая я взялся делать мод в жанре TDM: копию мода того сервера, на котором я начинал играть.
И я совру, если скажу, что делал всё только по памяти и скриншотам - многие системы и маппинг я взял из паблика, хотя и существенно переработал всё это.
Итак, рад представить вам возрождение мода ByFly GTA: SA GangWar.

Важные примечания
  1. Сервер на файлах
  2. ЛАМО (двуручное оружие) запрещено
  3. Никаких систем доната, vip, покупок админки и прочего
Особенности В целом, подойдёт для основы.
По коду: стиль везде практически одинаков, с табуляцией проблем нет.
Новичкам, думаю, будет понятен.

Места Античиты
Самые основные на мой взгляд: Скриншоты Обзор
www.youtube.com/watch?v=OO5IgK_6q_w

Зависимости
Для работы мода требуются:
  1. mxINI
  2. GetVehicleColor
Все нужные библиотеки в архиве с модом.

Скачать
GitHub

Установка
  1. Распакуйте скачанный архив
  2. В server.crg измените значение maxplayers на нужное вам количество игроков
  3. В GangWar.pwn (в самом начале) измените значение MAX_PLAYERS на нужное вам количество игроков
  4. Запустите сервер, зайдите на него и зарегистрируйтесь, потом выйдите
  5. В scriptfiles\Users\[ваш никнейм].ini измените значение Admin на 10
Изменения
Code:
r1 - первый релиз

r2 - 15.03.2016
* Проверка на расстояние до воздушного шара при его запуске
* Протюнингованы все тачки в Stunt Park
* Добавлен общак бандам и возможность вызывать другие банды на поединок
* Исправлена команда /banip (баг с баном подсети)
* Добавлены сообщения об одерживании победы одной бандой над другой
* Максимальное количество игроков по умолчанию изменено на 100

r3 - 18.03.2016
* Добавлена команда /spikes (шипы)
* Добавлены новые пункты в статистику игрока (/stats)
* Улучшен антимат и добавлены новые запрещённые слова
* Добавлены новые места в меню телепортации в аэропортах
* Добавлены новые "звания" при достижении определённого количества убийств
* Теперь в общаке банды можно хранить и DM-очки

r4 - 21.03.2016
* Общак банды теперь вызывается из команды /gang
* Исправлены вылеты при компиляции на стандартном компиляторе
* Исправлено меню тюнинга для некоторых моделей авто в /tune
* Теперь управление автомобилем на клавиши не вызывает анти-спам
* Небольшая оптимизация диалогов

r5 - 28.03.2016
* Убрано большое количество машин, в основном в деревнях (было около 1900 машин, лимит 2к)

r6 - 04.06.2016
* Добавлено логирование наиболее важных действий
* Небольшая оптимизация

r7 - 30.07.2016
* Исправлен баг в PvP-системе
* Обновлен исправленный инклуд mxINI (за фикс спасибо ziggi)

r8 - 03.01.2017
* Немного доработан антимат

r9 - 16.02.2017
* Улучшена анти-реклама
* При слежке за игроком теперь также обновляется и виртуальный мир
* Улучшена защита от weapon crasher

r10 - 18.02.2017
* Оптимизация памяти

r11 - 11.06.2017
* Очистка чата теперь чистит чат на 30 сообщений
* Мелкие улучшения

r12 - 01.08.2017
* Исправлен баг в меню тюнинга, которое вызывалось для любого транспорта и с любой суммой денег

r13 - 17.12.2017
* Исправлена проверка на цветовые коды в названии банды, создаваемой игроком
* Мелкие улучшения

r14 - 15.01.2018
* Добавлено логирование всех киков и банов игрока сервером
* Подправлена команда /setname

r15 - 16.01.2018
* Улучшена проверка на цветовые коды в названии банды, создаваемой игроком

r16 - 01.06.2020
* Обновлен инклуд mxINI, вызывавший проблемы с компиляцией на стандартном компиляторе
* Мелкие улучшения
Баги
См. раздел Issues. Если нашли - пишите в эту тему.

Благодарности
Magic_York за советы и помощь
Magic_York, Andrew_York, TheHero, HeavenX, Eduard_Stream, Zoopi, Unisheld, KailloN за помощь в тесте

Использовались работы За основу был взят мод Los Santos Gang Wars by LethaL

Удачи!


Re: ByFly GTA: SA GangWar - Diman777 - 12.03.2016

- Антимат обходим. Например я пишу в чат: "Где находится барсук?" - система блокирует слово "барсук", на выходе я вижу уже: "Где находится бар***?". Пишу: "бляха", а в чате "***ха".
- Воздушный шар можно запустить где угодно, т.е. я могу его запустить вообще находясь в другом городе. На сколько я понял нужна проверка на нахождение игрока внутри шара. И вообще было бы прикольно, чтобы шар мог взлетать по нажатию клавиши (замена команде), или чтобы шар сам взлетал по таймеру.
- При выходе из дм не сохраняется прежняя позиция игрока.
- Нет скриншотов в теме.
А так в принципе неплохой мод, код аккуратен, нормально)


Re: ByFly GTA: SA GangWar - Romz - 13.03.2016

Почему античиты решил написать отдельно в моде? Почему не используешь свой античит?


Re: ByFly GTA: SA GangWar - OstGot - 13.03.2016

Quote:
Originally Posted by Diman777
View Post
- Антимат обходим. Например я пишу в чат: "Где находится барсук?" - система блокирует слово "барсук", на выходе я вижу уже: "Где находится бар***?". Пишу: "бляха", а в чате "***ха".
- Воздушный шар можно запустить где угодно, т.е. я могу его запустить вообще находясь в другом городе. На сколько я понял нужна проверка на нахождение игрока внутри шара. И вообще было бы прикольно, чтобы шар мог взлетать по нажатию клавиши (замена команде), или чтобы шар сам взлетал по таймеру.
- При выходе из дм не сохраняется прежняя позиция игрока.
- Нет скриншотов в теме.
А так в принципе неплохой мод, код аккуратен, нормально)
Почти про всё это знал, и оставил так только потому, что старался делать как можно более правдоподобную копию. Единственное, воздушный шар поправлю (проверку на расстояние запилю в следующем релизе).
Спасибо

Quote:
Originally Posted by Kolstin
View Post
Почему античиты решил написать отдельно в моде? Почему не используешь свой античит?
Мой античит реагирует даже на самые минимальные подозрения, иногда даже слишком минимальные. Потому решил сделать более щадящий античит с минимум ложных. Да и тем более далеко не все античиты из Nex-AC нужны для дм сервера.


Re: ByFly GTA: SA GangWar - OstGot - 15.03.2016

Новая версия - r2

* Проверка на расстояние до воздушного шара при его запуске
* Протюнингованы все тачки в Stunt Park
* Добавлен общак бандам и возможность вызывать другие банды на поединок
* Исправлена команда /banip (баг с баном подсети)
* Добавлены сообщения об одерживании победы одной бандой над другой
* Максимальное количество игроков по умолчанию изменено на 100


Re: ByFly GTA: SA GangWar - OstGot - 18.03.2016

Новая версия - r3

* Добавлена команда /spikes (шипы)
* Добавлены новые пункты в статистику игрока (/stats)
* Улучшен антимат и добавлены новые запрещённые слова
* Добавлены новые места в меню телепортации в аэропортах
* Добавлены новые "звания" при достижении определённого количества убийств
* Теперь в общаке банды можно хранить и DM-очки


Re: ByFly GTA: SA GangWar - OstGot - 21.03.2016

Новая версия - r4

* Общак банды теперь вызывается из команды /gang
* Исправлены вылеты при компиляции на стандартном компиляторе
* Исправлено меню тюнинга для некоторых моделей авто в /tune
* Теперь управление автомобилем на клавиши не вызывает анти-спам
* Небольшая оптимизация диалогов


Re: ByFly GTA: SA GangWar - OstGot - 28.03.2016

Новая версия - r5

* Убрано большое количество машин, в основном в деревнях (было около 1900 машин, лимит 2к)


Re: ByFly GTA: SA GangWar - TheMallard - 15.04.2016

/deleted


Re: ByFly GTA: SA GangWar - OstGot - 04.06.2016

Новая версия - r6

* Добавлено логирование наиболее важных действий
* Небольшая оптимизация


Re: ByFly GTA: SA GangWar - OstGot - 30.07.2016

Новая версия - r7

* Исправлен баг в PvP-системе
* Обновлен исправленный инклуд mxINI (за фикс спасибо ziggi)


Re: ByFly GTA: SA GangWar - OstGot - 03.01.2017

Новая версия - r8

* Немного доработан антимат


Re: ByFly GTA: SA GangWar - Bombo - 03.01.2017

Quote:
Originally Posted by OstGot
View Post
Новая версия - r8

* Немного доработан антимат
Сделал у себя на сервере замену нехороших слов на нечто вроде:
Quote:

"простите меня, я дебил"

или:
Quote:

"вот я дурак"

Желание обойти мой антимат пропадает уже после первой-второй попытки.


Re: ByFly GTA: SA GangWar - stabker - 03.01.2017

Как будто мат нужно запрещать


Re: ByFly GTA: SA GangWar - Diman777 - 03.01.2017

PHP Code:
public OnPlayerText(playeridtext[])
{
    if(!
PlayerInfo[playerid][pLogged]) return SendClientMessage(playeridCOLOR_BORDO"Чтобы писать в чат, необходимо залогиниться!"), 0;
    if(
PlayerInfo[playerid][pMute]) return SendClientMessage(playeridCOLOR_RED"Вы не можете писать в чат, Вы заглушены!"), 0;
    if(
PlayerInfo[playerid][pFloodTime] > gettime())
    {
        
PlayerInfo[playerid][pFloodCount]++;
        if(
PlayerInfo[playerid][pFloodCount] >= 3)
        {
            static 
string[145];
            
format(stringsizeof string"%s(ID: %d) был кикнут. Причина: Спам"PlayerInfo[playerid][pName], playerid);
            
SendClientMessageToAll(COLOR_BORDOstring);
            
Kick2(playerid);
            return 
0;
        }
        else if(
PlayerInfo[playerid][pFloodCount] >= 2SendClientMessage(playeridCOLOR_RED"АнтиСпам предупреждение! Дальше кик.");
        else 
SendClientMessage(playeridCOLOR_LIGHTBLUE"Администрация: не флуди!");
        return 
0;
    }
    if(
ContainsAnyIP(text))
    {
        static 
string[145];
        
format(stringsizeof string"SERVER: %s(%d) забанен на сервере. Причина: реклама"PlayerInfo[playerid][pName], playerid);
        
SendClientMessageToAll(COLOR_BORDOstring);
        
Ban2(playerid);
        return 
0;
    }
    for(new 
siposstartendsizeof Swearss++)
    {
        
pos = -1;
        while((
pos strfuzzyfind(textSwears[s], pos 1startend)) != -1)
        {
            for(
end>= start; --itext[i] = '*';
        }
    }
    if(
PlayerInfo[playerid][pCaps]) UpperToLower(text);
    
PlayerInfo[playerid][pFloodTime] = gettime() + 1;
    if(
IsEmptyMessage(text)) return 0;
    if(
text[0] == '!')
    {
        if(
IsEmptyMessage(text[1])) return 0;
        static 
string[145];
        if(
PlayerInfo[playerid][pGang])
        {
            
format(stringsizeof string"* Чат банды %s >> от %s: %s"GName[PlayerInfo[playerid][pGang]], PlayerInfo[playerid][pName], text[1]);
            
SendClientMessageToGang(PlayerInfo[playerid][pGang], GetPlayerColor(playerid), string);
        }
        else
        {
            
format(stringsizeof string"* Чат банды %s >> от %s: %s"DefaultGangNames[PlayerInfo[playerid][pTeam]], PlayerInfo[playerid][pName], text[1]);
            
SendClientMessageToTeam(PlayerInfo[playerid][pTeam], GetPlayerColor(playerid), string);
        }
        return 
0;
    }
    if(
text[0] == '#' && IsPlayerAdminEx(playerid1))
    {
        if(
IsEmptyMessage(text[1])) return 0;
        static 
string[145];
        
format(stringsizeof string"* Админский чат: %s: %s"PlayerInfo[playerid][pName], text[1]);
        
SendClientMessageToAdmins(COLOR_LIMEstring);
        return 
0;
    }
    if(
PlayerInfo[playerid][pGang] && GTag[PlayerInfo[playerid][pGang]])
    {
        static 
string[145];
        
format(stringsizeof string"[%s]%s(%d): {FFFFFF}%s"GName[PlayerInfo[playerid][pGang]], PlayerInfo[playerid][pName], playeridtext);
        
SendClientMessageToAll(GetPlayerColor(playerid), string);
        return 
0;
    }
    static 
string[145];
    
format(stringsizeof string"(%d): %s"playeridtext);
    
SendPlayerMessageToAll(playeridstring);
    return 
0;

А зачем static string, а не new?)

Quote:

"SERVER: %s(%d) забанен на сервере. Причина: реклама"

Фигово банить за рекламу сразу. Лучше блокировать сообщение, или чат отключать автоматом на n-минут.
ContainsAnyIP - это вроде MX_Master делал, в ней есть баг, всё равно можно написать текст так, что система ложно подумает, что это ип, => иногда забаниться не виновный игрок.

Quote:

Немного доработан антимат

Спустя много времени я пришёл к выводу, что антимат бесполезен для сервера. А если ещё антимат ложно срабатывает, то это беда. Например у меня на серве разрешено материться, но запрещено оскорблядь. Когда надо админы мутируют игроков по желанию на 5-30 минут. И всё - нет проблем.


Re: ByFly GTA: SA GangWar - OstGot - 16.02.2017

Извиняюсь за поздний ответ, совсем забыл

Quote:
Originally Posted by Diman777
View Post
А зачем static string, а не new?)
Память выделяется с ним не из стека. Действительно актуально это только для выделения очень больших локальных массивов, но что-то мне так спокойнее)

Quote:
Originally Posted by Diman777
View Post
Фигово банить за рекламу сразу. Лучше блокировать сообщение, или чат отключать автоматом на n-минут.
ContainsAnyIP - это вроде MX_Master делал, в ней есть баг, всё равно можно написать текст так, что система ложно подумает, что это ип, => иногда забаниться не виновный игрок.
Насчёт банов согласен, я сам не сторонник раздавать их без проверок, но так было на сервере, приблизительной копией которого является этот мод. Да и тем более бан от сервера идёт только по IP, аккаунт же могут забанить только администраторы.
Делал MX_Master, но я его с самого начала немного изменил, убрав срабатывания на буквы 'О'..'о', 'З'..'з' и подобные, из-за которых действительно было много некорректных подозрений. Сейчас же полностью её переделал (теперь будет считать только числа, значение каждого из которых будет в диапазоне 0..255, как у реального IP).

Quote:
Originally Posted by Diman777
View Post
Спустя много времени я пришёл к выводу, что антимат бесполезен для сервера. А если ещё антимат ложно срабатывает, то это беда. Например у меня на серве разрешено материться, но запрещено оскорблядь. Когда надо админы мутируют игроков по желанию на 5-30 минут. И всё - нет проблем.
Ну а здесь это уже зависит от многих факторов. На том же рп сервере действительно будет глупо вводить цензуру для чата между игроками, т.к. это будет в ущерб некой реалистичности в некоторых ситуациях, а вот на каком-нибудь дм или дрифт режиме, где чат виден всему серверу, иногда не очень приятно видеть много мусора в нём.


Новая версия - r9

* Улучшена анти-реклама
* При слежке за игроком теперь также обновляется и виртуальный мир
* Улучшена защита от weapon crasher


Re: ByFly GTA: SA GangWar - stabker - 17.02.2017

В данном случае static используется нелогично. Если хочется, то его можно вынести в самый верх паблика один раз, но объявлять квази-локально столько раз не вижу смысла, ограничивается только область видимости, зато память (хоть и не из стэка) используется расточительно.


Re: ByFly GTA: SA GangWar - OstGot - 17.02.2017

Quote:
Originally Posted by stabker
View Post
В данном случае static используется нелогично. Если хочется, то его можно вынести в самый верх паблика один раз, но объявлять квази-локально столько раз не вижу смысла, ограничивается только область видимости, зато память (хоть и не из стэка) используется расточительно.
А ведь правда. Такой стиль их объявления остался ещё с тех пор, как они были локальными, где это было оптимальнее. Спасибо, теперь подобных ситуаций нет


Новая версия - r10

* Оптимизация памяти


Re: ByFly GTA: SA GangWar - OstGot - 11.06.2017

Новая версия - r11

* Очистка чата теперь чистит чат на 30 сообщений
* Мелкие улучшения


Re: ByFly GTA: SA GangWar - OstGot - 01.08.2017

Новая версия - r12

* Исправлен баг в меню тюнинга, которое вызывалось для любого транспорта и с любой суммой денег