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

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

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

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

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

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

    Регистрация:
    10.05.15
    Сообщения:
    65
    Симпатии:
    48
    Пол:
    Мужской
    Andrey777, вот решил сделать...
    Создайте файл по этому пути
    Код (Unknown Language):
    1. addons/amxmodx/configs/AwpGirls/Girls_SteamID_List.ini
    и внесите туда список steamid девушек.
    Список steamid берется из файла 1 раз за карту и заносится в массив. После чего идёт работа с массивом (проверка) при коннекте.
    Код (Unknown Language):
    1.  
    2. #include <amxmodx>
    3. #include <hamsandwich>
    4.  
    5. new const PLUGIN[] = "Awp for girls";
    6. new const VERSION[] = "1.0";
    7. new const AUTHOR[] = "Factor";
    8.  
    9. new Array:GirlsList;
    10. new bool:AwpGirl[33];
    11.  
    12. public plugin_init()
    13. {
    14.     register_plugin(PLUGIN, VERSION, AUTHOR);
    15.     RegisterHam(Ham_TraceAttack, "player", "TraceAttack_Pre");
    16.  
    17.     GirlsList = ArrayCreate(64, 16);
    18.     GirlsList_file();
    19. }
    20.  
    21. GirlsList_file()
    22. {
    23.     new szSteamIDs[64];
    24.  
    25.     new filename = fopen("addons/amxmodx/configs/AwpGirls/Girls_SteamID_List.ini", "rt");
    26.     if (!filename) return PLUGIN_CONTINUE;
    27.  
    28.     while(fgets(filename, szSteamIDs, charsmax(szSteamIDs)))
    29.     {
    30.         trim(szSteamIDs);
    31.         if(szSteamIDs[0] == EOS) continue;
    32.         ArrayPushString(GirlsList, szSteamIDs);
    33.     }
    34.  
    35.     fclose(filename);
    36.  
    37.     return PLUGIN_CONTINUE;
    38. }
    39.  
    40. public client_putinserver(player)
    41. {
    42.     AwpGirl[player] = false;
    43.  
    44.     static szSteamIDs_Girls[64], i, szSteamIDs_Girls_size;
    45.     szSteamIDs_Girls_size = ArraySize(GirlsList);
    46.  
    47.     new szGetSteamID[64];
    48.     get_user_authid(player, szGetSteamID, 63);
    49.  
    50.     for (i = 0; i < szSteamIDs_Girls_size; i++)
    51.     {
    52.         ArrayGetString(GirlsList, i, szSteamIDs_Girls, charsmax(szSteamIDs_Girls));
    53.         if(equal(szSteamIDs_Girls, szGetSteamID)) AwpGirl[player] = true;
    54.     }
    55. }
    56.  
    57. public TraceAttack_Pre(victim, attacker, Float:damage, Float:direction[3], tracehandle, damageBits)
    58. {
    59.     new clip,ammo;
    60.     if(is_user_connected(victim) && is_user_connected(attacker) && victim != attacker && (get_user_weapon(attacker, clip, ammo) == CSW_AWP) && AwpGirl[victim]) return HAM_SUPERCEDE;
    61.  
    62.     return HAM_IGNORED;
    63. }
    Проверил, всё работает.
     
  7. Andrey777 Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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