Не знаю как доделать частично рабочий плагин

Тема в разделе "Программирование / Скриптинг", создана пользователем Данилка, 2 июн 2012.

  1. Данилка

    Данилка

    Сообщения:
    62
    Симпатии:
    15
    Собственно плагин не мой но хотелось бы его улучшить но не знаю как так как ранее с таким не сталкивался))

    сначало обьясню что за плагин и с чем его едят

    Введение: Плагин пишет в чат имя игрока котороый кинул блеву в другова игрока в чат

    Ну вроде ознакомил)) Теперь перейдем к делу проблема в том что плагин просто уведомляет кто ет сделал но не наказывает обидчика я придумал один способ и знаю что он возможен но не знаю как его написать =( хочу чтоб обидчика шлепало ну грубо снимало 30 хп за одного заблеванного человека если он заблевал больше 3 людей его убивало как ет реализовать ?

    вот сам плагин:

    PHP:
    public OnPluginStart()
    {
        
    HookEvent("player_now_it"Event_NowVomit);
    }

    public 
    Event_NowVomit(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    thrower GetClientOfUserId(GetEventInt(event"attacker"));
        new 
    victim GetClientOfUserId(GetEventInt(event"userid"));

        if (
    IsClientInGame(thrower) && !IsFakeClient(thrower) && IsClientInGame(victim) && !IsFakeClient(victim) && !GetEventBool(event"by_boomer"))
        {
            
    PrintToChatAll("\x04Player \x05%N \x01threw a bile bomb at \x05%N!"throwervictim);
        }
    }
     
  2. duxa

    duxa

    Сообщения:
    7
    Симпатии:
    8
    Что-то вроде этого. Нету возможности проверить.
    PHP:
    #include <sourcemod>
    #include <sdktools>

    new slap_number 0

    public 
    OnPluginStart() 

        
    HookEvent("player_now_it"Event_NowVomit); 


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

        new 
    thrower GetClientOfUserId(GetEventInt(event"attacker")); 
        new 
    victim GetClientOfUserId(GetEventInt(event"userid")); 

        if (
    IsClientInGame(thrower) && !IsFakeClient(thrower) && IsClientInGame(victim) && !IsFakeClient(victim) && !GetEventBool(event"by_boomer")) 
        { 
            if (++
    slap_number 3)    //Если игрок "заблевал" больше 3 людей
            

                
    ForcePlayerSuicide(thrower)
                
    PrintToChatAll("\x04Player \x05%N \x01was killed for attack \x05%N!"throwervictim); 
                
    slap_number 0;    //Игрок наказан, сбрасываем число "заблеваных" людей
            
    } else
            {
            
    SlapPlayer(thrower30true);    //2 значение - урон наносимый игроку
            
    PrintToChatAll("\x04Player \x05%N \x01threw a bile bomb at \x05%N!"throwervictim);
            }
        }
    }
     
    Последнее редактирование: 3 июн 2012
    Данилка нравится это.
  3. Данилка

    Данилка

    Сообщения:
    62
    Симпатии:
    15
    Не плохо надо будет затестить =) спасибо пока не буду говорить)))

    Добавлено через 1 час 34 минуты
    Спасибо все работает =)
     
    Последнее редактирование: 3 июн 2012