Плагин который будет зачитывать фраги

Тема в разделе "Запросы", создана пользователем kleuser, 27 окт 2015.

  1. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    Здравствуйте, может кто сделать плагин, если на карте умирает спец, то фраг будет засчитываться террористам
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Всем по 1 фрагу?
     
  3. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, да
     
  4. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, умирает 1 спецназовец, террористам всем должен этот фраг засчитаться. видел такую реализацию в плагине Abner Deathrun
     
    Последнее редактирование: 27 окт 2015
  5. artyrka94

    artyrka94

    Сообщения:
    182
    Симпатии:
    36
    kleuser
    PHP:
    public OnPluginStart() HookEvent("player_death"EvDeath);

    public 
    Action:EvDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(
    GetClientTeam(GetClientOfUserId(GetEventInt(event"userid"))) == 3)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"attacker"));
            for(new 
    1<= MaxClientsi++)
                if(
    != client && GetClientTeam(i) == 2)
                    
    SetEntProp(iProp_Data"m_iFrags"GetClientFrags(i) + 1);
        }
    }
     
  6. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, да только живым террористам. и в случае чего спезназу не должны фраги таким образом засчитывать, если только они сами убьют тера.

    Добавлено через 2 минуты
    мне это вобщем для дезрана надо, у abnera это хорошо работает но его плагин крашит серв. поставил старый дезран менеджер который норм работает, но там килы теру не засчитывают
     
    Последнее редактирование: 27 окт 2015
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Оффтоп
    Убит террористом или самой картой (например, разбился)? Либо и то, и то?
     
  8. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, картой либо сам разбился. еще раз повторюсь, мне это для дезран карт надо.

    как мне еще объяснить я не знаю)

    Оффтоп
     
  9. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, вообщем есть исходник, можешь от туда эту функцию выдрать отдельным плагином?
     

    Вложения:

  10. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Тогда пост 5 почти подходит:
    PHP:
    public OnPluginStart() HookEvent("player_death"EvDeath); 

    public 
    Action:EvDeath(Handle:event, const String:name[], bool:dontBroadcast

        if(
    GetClientTeam(GetClientOfUserId(GetEventInt(event"userid"))) == 3
        { 
            for(new 
    1<= MaxClientsi++) 
                if(
    IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2
                    
    SetEntProp(iProp_Data"m_iFrags"GetClientFrags(i) + 1); 
        } 
    Оффтоп Правда, здесь именно убившему даст ещё дополнительный фраг, чего наверняка не надо.
     
    Последнее редактирование: 27 окт 2015
  11. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, глянь исходник который я дал.
    из 5 поста не совсем то
     
  12. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    что-то вобще ничего не дает и ошибки
    Код:
    L 10/27/2015 - 20:08:30: [SM] Native "IsPlayerAlive" reported: Client 8 is not in game
    L 10/27/2015 - 20:08:30: [SM] Displaying call stack trace for plugin "player_death.smx":
    L 10/27/2015 - 20:08:30: [SM]   [0]  Line 8, D:\Dev\sourcemod\scripting\player_death.sp::EvDeath()
     
  13. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, работает нормально, только еще один нюанс.
    надо чтобы считалось как будто террорист убивает людей(это надо что бы очки опыта давались за эти фраги) возможно так сделать?
    в том примере который я скидывал в 9 посте именно так и работает.
     
    Последнее редактирование: 27 окт 2015
  14. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Кинул в ЛС свою версию.
     
  15. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, и опять не то, фраг то дается, надо чтобы если человек умер на ловушке убился об карту, выглядело это так как будто его убил террорист, в твоем случае если человек умрет на карте, теру просто дается фраг тупо в табе. не просто выдать циферку в таб листе,а дать натуральный фраг, как будто но сам его своими руками убил.

    Добавлено через 1 минуту
    Я не знаю, я и так все по полочкам разложил, мы не поймем наверно друг друга :(
     
    Последнее редактирование: 27 окт 2015
  16. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    не совсем.
    Человек прыгнул и умер на ловушке(разбился,карта убила), террористу дается фраг как будто это он сделал(должен быть значек что это он убил), тогда и фраг будет в табе, и очки за эти фраги будут начислять из levelranks

    Добавлено через 23 минуты
    должно быть вот так
    https://youtu.be/aIYQNUgWvkc
     
    Последнее редактирование: 27 окт 2015
  17. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Да-да, так и есть. Просто забыл преобразовать индекс игрока в userid, поэтому работало лишь после запуска сервера. Считает верно, но не отображает справа. Вряд ли это важно для других плагинов, если только по оружию ещё.
     
  18. kleuser

    kleuser

    Сообщения:
    563
    Симпатии:
    77
    AlmazON, Всё огромное спасибо тебе, работает как надо,хоть и без иконки, но так даже лучше.
     
  19. artyrka94

    artyrka94

    Сообщения:
    182
    Симпатии:
    36
    Оффтоп

    PHP:
    public OnPluginStart() HookEvent("player_death"EvDeathEventHookMode_Pre);

    public 
    Action:EvDeath(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(
    GetClientTeam(GetClientOfUserId(GetEventInt(event"userid"))) == && GetClientOfUserId(GetEventInt(event"attacker")) == 0)
        {
            for(new 
    1<= MaxClientsi++)
                if(
    IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2)
                {
                    
    SetEventInt(event"attacker"GetClientUserId(i));
                    return 
    Plugin_Changed;
                }
        }
        return 
    Plugin_Continue;
    }
     
  20. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Оффтоп
    Я это всё к массиву int переменных свёл, проверки минимальны.