[CS: Source] Требуется плагин!!

Тема в разделе "Требуется", создана пользователем Brody, 14 июн 2015.

  1. Brody

    Brody

    Сообщения:
    29
    Симпатии:
    0
    Доброго времени суток.
    Нужен плагин, аналог Weapon CleanUp специально для Bhop сервера под v34, SourceMod.

    Суть: Плагин CleanUp сносит все упавшее оружие, вместе с призами в конце карты, а мне нужно, чтоб плагин не трогал призовое оружие.
    Примерную цену говорите заранее.

    На скрине результат работы плагина Weapon CleanUp. Над каменным блоком должен висеть призовой Scout, который дает освещение вокруг скина игрока.
    http://pixs.ru/showimage/2345652JPG_4487956_17671386.jpg

    Либо напишите плагин, который сломает кнопки спавнеров скаутов на картах! У меня стоит плагин, который скауты выдает, и есть ограничение у этого плагина на выдачу скаутов. Спавнеры на картах не нужны! Но ломая кнопку, нужно учитывать, что на некоторых картах двери открываются кнопками! На скрине видна кнопка спавнера, и справа кнопка, открывающая дверь.
    Скрин спавнера:
    http://pixs.ru/showimage/234467457J_5314239_17672345.jpg

    P.s Иногда встречаются на некоторых картах спавнеры без кнопки! Становишься в неоновый лучик, и тебе скаут выдается. Если стать и не отходить, он накидает тебе под ноги гору скаутов.
    [​IMG]
     
    Последнее редактирование: 14 июн 2015
  2. Andy Freeman

    Andy Freeman Fatal error Супер-модератор

    Сообщения:
    407
    Симпатии:
    59
    Могу продать данный плагин за 50р с сп - у меня он работает так что на карте все оружия есть (не пропадают) если ты кидаешь оружия напал то он пропадает по wS_Map_Plugins можно настраивать данный плагин где будет работать где нет

    Данный плагин всего лишь написан на пару строков - скайп unfire-345
     
  3. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.967
    [CS:GO/CS:S] Удаление всего выброшенного оружия

    PHP:
    public Action:CS_OnCSWeaponDrop(clientweaponIndex)
    {
        if(
    IsValidEdict(weaponIndex)) RemoveEdict(weaponIndex);
        return 
    Plugin_Continue;
    }
    Оффтоп
     
    Brody и максимка27 нравится это.
  4. Brody

    Brody

    Сообщения:
    29
    Симпатии:
    0
    Re: [CS:GO/CS:S] Удаление всего выброшенного оружия

    Мне нужно чтоб удалялось не только то оружие, которое игрок бросает, а чтоб удаляло то, что выпадает из спавнеров. Но чтоб не убиралось то оружие, которое по умолчанию висит или лежит на карте. Тобишь то, что добавил сам мапер.
     
  5. Andy Freeman

    Andy Freeman Fatal error Супер-модератор

    Сообщения:
    407
    Симпатии:
    59
    Re: [CS:GO/CS:S] Удаление всего выброшенного оружия

    Используй Weapon CleanUp он все удаляет из мапы
     
  6. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    Brody,
    PHP:
    public OnPluginStart()
    {
        
    HookEvent("round_start"Event_OnRoundStartEventHookMode_PostNoCopy);
    }
    public 
    Event_OnRoundStart(Handle:event, const String:name[], bool:silent)
    {
        
    disptemp();
    }
    disptemp()
    {
        new 
    maxEntities GetMaxEntities();
        
    decl String:s_pt[18];
        for (new 
    0maxEntities; ++i)
        {
            if (
    IsValidEdict(i) && IsValidEntity(i) && GetEdictClassname(is_ptsizeof(s_pt)))
            {
                if (
    StrEqual(s_pt"point_template") || StrEqual(s_pt"env_entity_maker"))
                {
                    
    RemoveEdict(i);
                }
            }
        }
    }
    Map config/s ->

    PHP:
    new bool:b_ptempenb true;
    public 
    OnPluginStart()
    {
        new 
    Handle:cvar;
        
    HookConVarChange((cvar CreateConVar("sm_ptemp_enable""1""Включить плагин"FCVAR_PLUGINtrue0.0true1.0)), Cvar_b_ptempenb);
        
    b_ptempenb GetConVarBool(cvar);
        
    CloseHandle(cvar);
        
    HookEvent("round_start"Event_OnRoundStartEventHookMode_PostNoCopy);
        
    AutoExecConfig(true"sm_ptemp");
    }
    public 
    Cvar_b_ptempenb(Handle:cvar, const String:oldvalue[], const String:newvalue[])
    {
        
    b_ptempenb GetConVarBool(cvar);
    }
    public 
    Event_OnRoundStart(Handle:event, const String:name[], bool:silent)
    {
        if (
    b_ptempenb)
        {
            
    disptemp();
        }
    }
    disptemp()
    {
        new 
    maxEntities GetMaxEntities();
        
    decl String:s_pt[18];
        for (new 
    0maxEntities; ++i)
        {
            if (
    IsValidEdict(i) && IsValidEntity(i) && GetEdictClassname(is_ptsizeof(s_pt)))
            {
                if (
    StrEqual(s_pt"point_template") || StrEqual(s_pt"env_entity_maker"))
                {
                    
    RemoveEdict(i);
                }
            }
        }
    }
     
    Последнее редактирование: 20 июн 2015
  7. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.967
    DarklSide, FindEntityByClassname для одного конкретного поиска лучше. Оффтоп
     
  8. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    AlmazON, Оффтоп
     
  9. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    PHP:
    maxEntities 3;
    for (new 
    0maxEntities; ++i)
    {
     
    //
    }

    new 
    0;
    if(
    3// i = 0; i = i+1;
    {
     
    //№1 Entities
    }
    if(
    3// i = 1;
    {
     
    //№2 Entities
    }
    if(
    3// i = 2;
    {
     
    //№3 Entities
    }
    if(
    3// i = 3;
    {
     
    //no
    }

    ///////////////

    maxEntities 3;
    for (new 
    0<= maxEntities; ++i)
    {
     
    //
    }

    new 
    0;
    if(
    <= 3// i = 0; i = i+1;
    {
     
    //№1 Entities
    }
    if(
    <= 3// i = 1;
    {
     
    //№2 Entities
    }
    if(
    <= 3// i = 2;
    {
     
    //№3 Entities
    }
    if(
    <= 3// i = 3;
    {
     
    //№4 Entities
    }
     
    if(
    <= 3// i = 4;
    {
     
    //no
    }
     
  10. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.981
    DarklSide, начинай с new i = MaxClients
     
  11. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    R1KO, верно worldspawn не нужен,

    тогда уж:

    new i = MaxClients+1 и только тогда приравниваем ->

    i <= maxEntities

    т.к. упустим какую-нибудь entity, и проверим последнего клиента.
     
    Последнее редактирование: 20 июн 2015
  12. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.967
    DarklSide, расписано неубедительно.
    С чего вдруг "только тогда"? Ты изменил только начало цикла, почему же вдруг приравнивание понадобилось?
    И ещё: проверять надо до GetEntityCount(), а не всего максимума энтити. Зачем, если на карте их заведомо нет?
    Говорю, написано очень не оптимально, будто копипаст вижу. Я давно уже начинаю с MaxClients+1, ибо энтити ниже быть просто не может - это же просто индексы наших игроков (это всё энтити 'player') и они не меняются. Триггеров там быть просто никогда не может, а 0 - это да, worldspawn. Так зачем всё это зазря проверять ниже и выше?
    PHP:
    disptemp()
    {
       
    decl String:s_pt[18];
        for (new 
    GetEntityCount(); MaxClientsi--)
        {
            if (
    IsValidEdict(i)) if (GetEdictClassname(is_pt18))
            {
                if (
    strcmp(s_pt"point_template") == || strcmp(s_pt"env_entity_maker") == 0)
                {
                    
    RemoveEdict(i);
                }
            }
        }
    }
    Поскольку мы удаляем собственно edict, то зачем проверяем IsValidEntity(edict)? Ошибки уже не будет - его удалит.
     
  13. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    post #10
     
  14. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.967
    DarklSide, либо не приравниваем вовсе, либо всегда приравниваем. Ты уж определись. Проверка не с 0 максимальное количество энтити не меняет.
     
  15. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    post #10
    и
    post #12, не как не связан между собой.

    В первый из них, наглядно показал, зачем приравнивание не нужно.
     
  16. AlmazON

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

    Сообщения:
    4.514
    Симпатии:
    1.967
    DarklSide, я не уверен, что 0 входит в это количество энтити. По мне - это нечто нейтральное, неизменимое (если количество энтити игроков можно регулировать количеством слотом, то здесь мы ничего и никак не поделаем).
     
  17. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.981
    Вынужден не согласиться.
    Тут та же ситуация что и с игроками. Игрок вошел, получил индекс, и так далее.. один из первых вышел - индекс освободился пока не зайдет второй.
    На объектах так же, было 200 объектов первых 20 умерло, GetEntityCount() вернет 180 в итоге последних 20 не попадают в цикл. Потому GetMaxEntities() в даном случае верно.

    не прав в этом моменте:
    PHP:
    if(3// i = 0; i = i+1; 

     
    //№1 Entities 
    }
    даже если стоит ++i то это будет происходить после выполнения цикла, а не до. Преинкремент только быстрее чем пост.

    цикл for после компиляции


    PHP:
    new 0;
    while(
    4)
    {
    // тело
    i++;
    }
    И преинкремент:
    PHP:
    new 0;
    while(
    4)
    {
    // тело
    ++i;
    }
    как видишь для последовательности действий цикла разницы не будет.
     
  18. DarklSide

    DarklSide

    Сообщения:
    680
    Симпатии:
    173
    Вышли...
    Следующий пост за ним, опровергает данное утверждение.

    Добавлено через 1 минуту
    PHP:
    if(3// i = 0; i = i+1;
    i = 0
     
    Последнее редактирование: 21 июн 2015
  19. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.981
    объекты не выходят с сервера, а умирают и удаляются. Не зря же: AcceptEntityInput(Index, "Kill");
    И я пост выше апнул.
     
  20. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.975
    Симпатии:
    2.981
    ты уж определись