Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя
Показано с 11 по 20 из 28

Тема: Advance GangWar

  1. #11
    Аватар для iWors
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2016
    Сообщений
    12
    Репутация:
    2 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    А почему именно Advance RP??? Никогда не понимал людей которые пытаются сделать что-то похожее! Смысл делать что-то Однотипным другому. Сделал я всё по типу Advance RP(или что из известных серверов) и дальше куда с этим идти??
    RP? Во-первых GangWar, то есть жанр другой, а во-вторых все таки копий различных модов очень много, но копия Advance GW одна была до сегодня, и это ужасный код от Thomas'a Makavelli

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

    Статус
    Оффлайн
    Регистрация
    25.11.2015
    Сообщений
    8
    Репутация:
    1 ±
    Цитата Сообщение от iWors Посмотреть сообщение
    RP? Во-первых GangWar, то есть жанр другой, а во-вторых все таки копий различных модов очень много, но копия Advance GW одна была до сегодня, и это ужасный код от Thomas'a Makavelli
    Парень, ты кажется порталом ошибся, раз сравниваешь томаса с П-И юзерами П-П. Во-первых, код лично этого мода достаточно не плохой, разве что пару замечаний, но это не суть. Во-вторых, насколько я знаю, gangzone не стала бы пользоваться паблик скриптами, а от томаса макавели уж точно.

    ПС: ТС, мне тоже кажется что мод надо чуть переделать чтоб было заметно что это GangWar

    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    Сегодня же выложила
    Я тоже думал что в воскр. будет новая версия xD

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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Цитата Сообщение от Excel_Smit. Посмотреть сообщение
    Парень, ты кажется порталом ошибся, раз сравниваешь томаса с П-И юзерами П-П. Во-первых, код лично этого мода достаточно не плохой, разве что пару замечаний, но это не суть. Во-вторых, насколько я знаю, gangzone не стала бы пользоваться паблик скриптами, а от томаса макавели уж точно.

    ПС: ТС, мне тоже кажется что мод надо чуть переделать чтоб было заметно что это GangWar



    Я тоже думал что в воскр. будет новая версия xD
    Я не буду пользоваться, но а как другие ?) На ГИ напиши в теме Макавели что мод дно, тебя оскорбят в доль и поперёк)

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    Скачать с YandexDisk:
    А зачем тогда AntiDeAMX вшила если мод выложен для паблика, не когда не понимал таких людей)
    Не сразу увидел что там в моде ркон меняется, понял теперь..
    _______
    PHP код:
    #if defined MAX_PLAYERS
    #undef MAX_PLAYERS
        #define MAX_PLAYERS         5
    #else
        #define MAX_PLAYERS         5
    #endif 
    Зачем искать задейфайнено ли MAX_PLAYERS, если в samp он по умолчанию есть и не надо беспокоится что константу украли)
    PHP код:
    #undef MAX_PLAYERS
    #define MAX_PLAYERS    5 
    ________
    Анти ДБ словно портухой маленького дитя отпорол)) бывают же случаи такие когда случайно наехал или под машину спецом кто то кинулся
    ________
    Если не ошибаюсь то в паблике смерти надо делать проверку убийцы на INVALID_PLAYER_ID(может и ошибаюсь даже, но я делал когда то для того чтобы не было ошибок при смерти где массивы убийцы)

    Не буду придираться к остальным мелочам, мод прекрасный в плане пострелушек, удачного написания дальнейшего кода =)
    Последний раз редактировалось vovandolg; 11.04.2016 в 14:13.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    А зачем тогда AntiDeAMX вшила если мод выложен для паблика, не когда не понимал таких людей)
    Не сразу увидел что там в моде ркон меняется, понял теперь..
    _______
    PHP код:
    #if defined MAX_PLAYERS
    #undef MAX_PLAYERS
        #define MAX_PLAYERS         5
    #else
        #define MAX_PLAYERS         5
    #endif 
    Зачем искать задейфайнено ли MAX_PLAYERS, если в samp он по умолчанию есть и не надо беспокоится что константу украли)
    PHP код:
    #undef MAX_PLAYERS
    #define MAX_PLAYERS    5 
    ________
    Анти ДБ словно портухой маленького дитя отпорол)) бывают же случаи такие когда случайно наехал или под машину спецом кто то кинулся
    ________
    Если не ошибаюсь то в паблике смерти надо делать проверку убийцы на INVALID_PLAYER_ID(может и ошибаюсь даже, но я делал когда то для того чтобы не было ошибок при смерти где массивы убийцы)

    Не буду придираться к остальным мелочам, мод прекрасный в плане пострелушек, удачного написания дальнейшего кода =)
    Advance Rp так не считает ) Системы Advance Rp делаю.
    AntiDeAMX для дольнейшей разработки, если возьмут под основу)
    Блогадарю за пожелание
    Последний раз редактировалось gangzone.ini; 11.04.2016 в 15:26.

  6. #16
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Несколько придирок...

    #1.
    PHP код:
    CMD:menu(playerid)
    {
        
    ShowPlayerDialog(playeridDIALOGUE_MENUDIALOG_STYLE_LIST"{0099CC}Меню игрока""\
        1. Статистика\n\
        2. Список команд\n\
        3. Личные настройки\n\
        4. Настройки безопасности\n\
        5. Связь с администрацией\n\
        6. Улучшение\n\
        7. Правила сервера\n\
        8. Изменить имя\n\
        9. Дополнительно"
    "Выбрать""Закрыть");

    Может я и путаю, но DC вроде бы рекомендовал, и приводил аргументы на счет playerid, params[] (см. Мифы о PAWN скриптинге (цикл уроков)). А еще ничего не возвращается, а это ведь паблик.

    #2
    PHP код:
       new
            
    Floatmax_health;
        
    GetPlayerHealth(playeridmax_health);
        if(
    p_virable[playerid][p_heal] == 0) return SendClientMessage(playeridCOLOR_LIGHTGREY"У Вас нет аптечки!"); 
    Я считаю, что переменную надо было объявить после всех проверок (и таких в моде дофига).

     Не смотреть (смотреть)
    PHP код:
    CMD:capture(playeridparams[])
    {
        for(new 
    0!= sizeof(gz_info); i++)
        {
            if(
    OnSquared(playeridgz_info[i][gz_coords][0], gz_info[i][gz_coords][1], gz_info[i][gz_coords][2], gz_info[i][gz_coords][3]))
            {
                if(
    p_gang[playerid] == gz_info[i][gz_gang]) return SendClientMessage(playeridCOLOR_LIGHTGREY"Эта территория принадлежит вашей банде");
                if(
    there_is_capture == 1) return SendClientMessage(playeridCOLOR_LIGHTGREY"Уже происходит захват одной из зон. Дождитесь окончания!");
                
    //switch(i)
                //{
                    //case 8, 15, 67, 74, 90: return SendClientMessage(playerid, 0xcececeAA, "Вы не можете начать захват территорий респаувна банды!");
                //}
                
    new
                   
    Float:= (gz_info[i][gz_coords][0]+gz_info[i][gz_coords][2])/2.0,
                   
    Float:= (gz_info[i][gz_coords][1]+gz_info[i][gz_coords][3])/2.0,
                   
    Float:0;
                foreach(new 
    aPlayer)
                {
                    switch(
    p_gang[playerid])
                    {
                        case 
    1SetPlayerMapIcon(a31xz620MAPICON_GLOBAL);
                        case 
    2SetPlayerMapIcon(a31xz600MAPICON_GLOBAL);
                        case 
    3SetPlayerMapIcon(a31xz590MAPICON_GLOBAL);
                        case 
    4SetPlayerMapIcon(a31xz580MAPICON_GLOBAL);
                        case 
    5SetPlayerMapIcon(a31xz610MAPICON_GLOBAL);
                    }
                }
                
    GetPlayer2DZone(playeridname_zoneMAX_ZONE_NAME);
                
    time_to_expiration_capture 20;//420;
                
    kills_team[0] = 0;
                
    kills_team[1] = 0;
                
    capture_start i;
                
    there_is_capture 1;
                
    GangZoneFlashForAll(capture_startOnGZColor(p_gang[playerid]));
                
    OnStartCapture(p_gang[playerid], gz_info[i][gz_gang]);
                
    team_capture[0] = p_gang[playerid];
                
    team_capture[1] = gz_info[i][gz_gang];
                static const 
    fmt_str[] = "%s %s инициировал захват";
                new 
    str[sizeof fmt_str MAX_PLAYER_NAME 19];
                
    format(strsizeof(str), fmt_strOnPlayerRangName(playerid), p_info[playerid][p_name]);
                
    SendGhettoMessage(team_capture[0], -1str);
                
    SendGhettoMessage(team_capture[0], 0xFFFF00AA"Место отмечено на GPS. Отправляйтесь туда и поддержите свою банду");
                
    SendGhettoMessage(team_capture[1], 0xFFFF00AA"Место отмечено на GPS. Отправляйтесь туда и поддержите свою банду");
                return 
    true;
            }
        }
        return 
    true;



    Дальше смотреть не стал, уверен можно еще много чего можно было сделать оптимальней. Возможно это не так уж и важна, но OnPlayerRangName(playerid) так же считаю не уместным названием. Лучше бы переименовать на GetPlayerRang или что то на подобие. Будет время отпишусь еще )


    И еще, вам не кажется что это лишний код?

    PHP код:
        static const
            
    fmt_str0[] = "Администратор %s[%d] для %s[%d]: %s",
            
    fmt_str1[] = "Администратор %s[%d] для %s[%d]: %s";
        new
            
    str0[sizeof fmt_str0 31 MAX_PLAYER_NAME*144],
            
    str1[sizeof fmt_str1 31 MAX_PLAYER_NAME*144];
        
    format(str0sizeof(str0), fmt_str0p_info[playerid][p_name], playeridp_info[params[0]][p_name], params[0], params[1]);
        
    SendClientMessage(params[0], 0xFF9945AAstr0);
        
    format(str1sizeof(str1), fmt_str1p_info[playerid][p_name], playeridp_info[params[0]][p_name], params[0], params[1]);
        
    SendAdminMessage(0xFF9945AAstr1); 
    ПС: См. CMD:ans (1788 строка)

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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    Несколько придирок...

    #1.
    PHP код:
    CMD:menu(playerid)
    {
        
    ShowPlayerDialog(playeridDIALOGUE_MENUDIALOG_STYLE_LIST"{0099CC}Меню игрока""\
        1. Статистика\n\
        2. Список команд\n\
        3. Личные настройки\n\
        4. Настройки безопасности\n\
        5. Связь с администрацией\n\
        6. Улучшение\n\
        7. Правила сервера\n\
        8. Изменить имя\n\
        9. Дополнительно"
    "Выбрать""Закрыть");

    Может я и путаю, но DC вроде бы рекомендовал, и приводил аргументы на счет playerid, params[] (см. Мифы о PAWN скриптинге (цикл уроков)). А еще ничего не возвращается, а это ведь паблик.

    #2
    PHP код:
       new
            
    Floatmax_health;
        
    GetPlayerHealth(playeridmax_health);
        if(
    p_virable[playerid][p_heal] == 0) return SendClientMessage(playeridCOLOR_LIGHTGREY"У Вас нет аптечки!"); 
    Я считаю, что переменную надо было объявить после всех проверок (и таких в моде дофига).

     Не смотреть (смотреть)
    PHP код:
    CMD:capture(playeridparams[])
    {
        for(new 
    0!= sizeof(gz_info); i++)
        {
            if(
    OnSquared(playeridgz_info[i][gz_coords][0], gz_info[i][gz_coords][1], gz_info[i][gz_coords][2], gz_info[i][gz_coords][3]))
            {
                if(
    p_gang[playerid] == gz_info[i][gz_gang]) return SendClientMessage(playeridCOLOR_LIGHTGREY"Эта территория принадлежит вашей банде");
                if(
    there_is_capture == 1) return SendClientMessage(playeridCOLOR_LIGHTGREY"Уже происходит захват одной из зон. Дождитесь окончания!");
                
    //switch(i)
                //{
                    //case 8, 15, 67, 74, 90: return SendClientMessage(playerid, 0xcececeAA, "Вы не можете начать захват территорий респаувна банды!");
                //}
                
    new
                   
    Float:= (gz_info[i][gz_coords][0]+gz_info[i][gz_coords][2])/2.0,
                   
    Float:= (gz_info[i][gz_coords][1]+gz_info[i][gz_coords][3])/2.0,
                   
    Float:0;
                foreach(new 
    aPlayer)
                {
                    switch(
    p_gang[playerid])
                    {
                        case 
    1SetPlayerMapIcon(a31xz620MAPICON_GLOBAL);
                        case 
    2SetPlayerMapIcon(a31xz600MAPICON_GLOBAL);
                        case 
    3SetPlayerMapIcon(a31xz590MAPICON_GLOBAL);
                        case 
    4SetPlayerMapIcon(a31xz580MAPICON_GLOBAL);
                        case 
    5SetPlayerMapIcon(a31xz610MAPICON_GLOBAL);
                    }
                }
                
    GetPlayer2DZone(playeridname_zoneMAX_ZONE_NAME);
                
    time_to_expiration_capture 20;//420;
                
    kills_team[0] = 0;
                
    kills_team[1] = 0;
                
    capture_start i;
                
    there_is_capture 1;
                
    GangZoneFlashForAll(capture_startOnGZColor(p_gang[playerid]));
                
    OnStartCapture(p_gang[playerid], gz_info[i][gz_gang]);
                
    team_capture[0] = p_gang[playerid];
                
    team_capture[1] = gz_info[i][gz_gang];
                static const 
    fmt_str[] = "%s %s инициировал захват";
                new 
    str[sizeof fmt_str MAX_PLAYER_NAME 19];
                
    format(strsizeof(str), fmt_strOnPlayerRangName(playerid), p_info[playerid][p_name]);
                
    SendGhettoMessage(team_capture[0], -1str);
                
    SendGhettoMessage(team_capture[0], 0xFFFF00AA"Место отмечено на GPS. Отправляйтесь туда и поддержите свою банду");
                
    SendGhettoMessage(team_capture[1], 0xFFFF00AA"Место отмечено на GPS. Отправляйтесь туда и поддержите свою банду");
                return 
    true;
            }
        }
        return 
    true;



    Дальше смотреть не стал, уверен можно еще много чего можно было сделать оптимальней. Возможно это не так уж и важна, но OnPlayerRangName(playerid) так же считаю не уместным названием. Лучше бы переименовать на GetPlayerRang или что то на подобие. Будет время отпишусь еще )


    И еще, вам не кажется что это лишний код?

    PHP код:
        static const
            
    fmt_str0[] = "Администратор %s[%d] для %s[%d]: %s",
            
    fmt_str1[] = "Администратор %s[%d] для %s[%d]: %s";
        new
            
    str0[sizeof fmt_str0 31 MAX_PLAYER_NAME*144],
            
    str1[sizeof fmt_str1 31 MAX_PLAYER_NAME*144];
        
    format(str0sizeof(str0), fmt_str0p_info[playerid][p_name], playeridp_info[params[0]][p_name], params[0], params[1]);
        
    SendClientMessage(params[0], 0xFF9945AAstr0);
        
    format(str1sizeof(str1), fmt_str1p_info[playerid][p_name], playeridp_info[params[0]][p_name], params[0], params[1]);
        
    SendAdminMessage(0xFF9945AAstr1); 
    ПС: См. CMD:ans (1788 строка)
    1. Разнице не какой нету... Если вставлю params[], лучше или хуже не станет)
    2. Стиль такой, ставить переменные в начале)
    3. Лишние, исправлю)

  8. #18
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Аргументируйте. Его по сути компилятор сам допишет, но дабы в этом убедиться, сейчас скомпилирую какую нибудь команду с/без params, после компиляции выходные файлы декомпилирую, посмотрим результаты А вообще, кажется это пациент цикла уроков xD

    Цитата Сообщение от gangzone.ini Посмотреть сообщение
    2. Стиль такой, ставить переменные в начале)
    Причем тут стиль?
    PHP код:
    Вот это:
       new
            
    Floatmax_health;
    И это:
        new 
    Floatmax_health;
    Стиль
    А это:
    PHP код:
        GetPlayerHealth(playeridmax_health); 
    Неиспользуемый код.

    А на счет ретурнов и названий некоторых костылей вы промолчали.

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

    UPD: Декомпилировал этот участок кода:
    PHP код:
    CMD:test(playeridparams[])
    {
        return 
    1;
    }

    CMD:tet(playerid)
    {

    Насколько я понял, params нужен чтобы удовлетворить DC_CMD:
    PHP код:
    public OnPlayerCommandText(playeridcmdtext)
    {
        return 
    DC_CMD(playeridcmdtext);

    И еще, результаты декомпиляции команд:
    PHP код:
    public cmd_test()
    {
        return 
    1;
    }

    public 
    cmd_tet()
    {
        return 
    0;


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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Ну ладно, убери GetPlayerHealth и я посмотрю как у тебя будет работать команда)
    Дал результаты декомпилятор? - нет)

  10. #20
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Используй GetPlayerHealth после условия, это как минимум правильный вариант. Ибо до проверки if(p_virable[playerid][p_heal] == 0) она нигде не используется. Зачем выделять лишний память.
    Последний раз редактировалось Иван Бубнов; 11.04.2016 в 18:12.

 

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

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

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

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

Ваши права

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