Статус темы:
Закрыта.
  1. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    277
    Симпатии:
    37
    Пол:
    Мужской
    Skype:
    Andrey777best
    Привет помогите написать плагин что бы определенного игрока по стим ид нельзя было убить с авп, просто играют девушки не сильно а их постоянно задроты с авп убивают)
     
  2. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    Andrey777, за сотку)
     
    HannibaL нравится это.
  3. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.058
    Симпатии:
    224
    Пол:
    Мужской
    Andrey777, это уже заказ, составляй Т3, и напиши Ивану, сделает ли.
     
  4. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    277
    Симпатии:
    37
    Пол:
    Мужской
    Skype:
    Andrey777best
    neygomon, Ок) пополню вебмани отпишу в скайпе))
     
  5. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    Andrey777, кк
     
  6. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    Andrey777, вот решил сделать...
    Создайте файл по этому пути
    Код:
    addons/amxmodx/configs/AwpGirls/Girls_SteamID_List.ini
    и внесите туда список steamid девушек.
    Список steamid берется из файла 1 раз за карту и заносится в массив. После чего идёт работа с массивом (проверка) при коннекте.
    Код:
    #include <amxmodx>
    #include <hamsandwich>
    
    new const PLUGIN[] = "Awp for girls";
    new const VERSION[] = "1.0";
    new const AUTHOR[] = "Factor";
    
    new Array:GirlsList;
    new bool:AwpGirl[33];
    
    public plugin_init()
    {
        register_plugin(PLUGIN, VERSION, AUTHOR);
        RegisterHam(Ham_TraceAttack, "player", "TraceAttack_Pre");
     
        GirlsList = ArrayCreate(64, 16);
        GirlsList_file();
    }
    
    GirlsList_file()
    {
        new szSteamIDs[64];
     
        new filename = fopen("addons/amxmodx/configs/AwpGirls/Girls_SteamID_List.ini", "rt");
        if (!filename) return PLUGIN_CONTINUE;
     
        while(fgets(filename, szSteamIDs, charsmax(szSteamIDs)))
        {
            trim(szSteamIDs);
            if(szSteamIDs[0] == EOS) continue;
            ArrayPushString(GirlsList, szSteamIDs);
        }
     
        fclose(filename);
     
        return PLUGIN_CONTINUE;
    }
    
    public client_putinserver(player)
    {
        AwpGirl[player] = false;
     
        static szSteamIDs_Girls[64], i, szSteamIDs_Girls_size;
        szSteamIDs_Girls_size = ArraySize(GirlsList);
     
        new szGetSteamID[64];
        get_user_authid(player, szGetSteamID, 63);
     
        for (i = 0; i < szSteamIDs_Girls_size; i++)
        {
            ArrayGetString(GirlsList, i, szSteamIDs_Girls, charsmax(szSteamIDs_Girls));
            if(equal(szSteamIDs_Girls, szGetSteamID)) AwpGirl[player] = true;
        }
    }
    
    public TraceAttack_Pre(victim, attacker, Float:damage, Float:direction[3], tracehandle, damageBits)
    {
        new clip,ammo;
        if(is_user_connected(victim) && is_user_connected(attacker) && victim != attacker && (get_user_weapon(attacker, clip, ammo) == CSW_AWP) && AwpGirl[victim]) return HAM_SUPERCEDE;
     
        return HAM_IGNORED;
    }
    Проверил, всё работает.
     
  7. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    277
    Симпатии:
    37
    Пол:
    Мужской
    Skype:
    Andrey777best
    Factor, Оо круто сейчас проверю, просто прописать так "STEAM_0:0:123456"?
     
  8. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    Да. Файл должен иметь вид:
    Код:
    STEAM_0:0:1615484571
    STEAM_0:0:1615484234
    STEAM_0:0:1615484523
    
    
     
    Andrey777 нравится это.
  9. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    Factor, и получишь переполнение стека :)
    в целом норм, но можно лучше...
    если и делать с арраем, то тогда уж лучше trie. в разы быстрее работает чем такой цикл.
    и размерности выучи... много ячеек памяти забиваешь нулями
    по гейски... юзай хам get_pdata_cbase
    про проверки на коннект при каждом попадании я молчу. это ппц, причем в PRE...

    ps Сервер с 32 игроками скажет тебе "спасибо" за такой плагин:)
    ps2 И зачем блочить попадания, если можно блочить убийство?!
    ps3 TraceAttack в разы тяжелее чем TakeDamage

    // add: Разъебал © :D
     
    Frank нравится это.
  10. HannibaL Команда форума

    Регистрация:
    28.02.15
    Сообщения:
    1.058
    Симпатии:
    224
    Пол:
    Мужской
    neygomon, LOOOL
     
  11. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    HannibaL, заебал с такими комментами.
    если есть что сказать - говори нормально.

    ps Скоро буду молчанки давать за подобные комменты
     
  12. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    Проверял на локалке, 2 человека. Забыл увеличить, поставь ArrayCreate(512, 16), если не хватит :).
    Почему? На коннект я проверяю 1 раз. Затем идёт булевая при попадании.
    Хотел сделать так, чтобы не было эффекта от попадания, крови и т.д.
    Честно говоря, странно это слышать. Ведь я здесь (да собственно и остальные), чтобы чему то научиться и почерпнуть что-то новое, верно?
     
    Phantom нравится это.
  13. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    277
    Симпатии:
    37
    Пол:
    Мужской
    Skype:
    Andrey777best
    Это где нужно изменить?
     
  14. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    не в массиве дело а в постоянном пересоздании переменных ammo и clip
    +
    да ладно?! точно сам писал? :)
    смысл в чем?
    это цитата с c-s.net.ua
    я обычно так там писал напротив говнокода..

    ps Плагин - бред, как по мне..
    Если и делать то по другому.. А то получается бессмертные против авп, можно на центре dd2 стоять и вообще не париться, что завалят с авп.
     
  15. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    В public plugin_init() замени ArrayCreate(64, 16); на ArrayCreate(512, 16);
     
  16. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    Factor, не учи людей бреду...
    ArrayCreate(64, 16);
    ->
    ArrayCreate(25);
     
  17. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    Да. А что не так?
    Я, кстати от туда :), но вас я там не видел.
     
  18. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    потому что проверки на коннект не отличаешь от проверки steamid на совпадение =)
    я уже 2 года там как в бане.
     
  19. Factor VIP user

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    51
    Пол:
    Мужской
    Я конечно могу порыться в инете...Но ты можешь разъяснить почему так, пожалуйста? Я не в коем случае не спорю, я пришел сюда именно за тем, чтобы меня поправляли :).
    Эм...вот смотри при заходе игрока проверяю steamid на совпадение, если да, то даю "тру" этому игроку. Потом при попадании проверяется, что оба (киллер и жертва) на сервере и если жертва с "меткой", то блокируем. Я так расписываю, чтобы понять, что ты имеешь ввиду. :)

    А почему забанили? за правоту?)
     
  20. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.939
    Симпатии:
    4.332
    Пол:
    Мужской
    потому что в скобках задается максимальная длина строки в массиве.
    например ArrayCreate(5) будет вмещать только abcde, все остальное будет обрезаться
    так как steamid максимум имеет 23 или 24 символа, то нет смысла ставить больше 25
    о чем и речь... постоянно проверяешь на то, что игрок подключен. это доп нагрузка.
    типа того
     
Статус темы:
Закрыта.