Как сделать AcceptEntityInput через TargetName или HammerID энтити ?

Тема в разделе "Программирование / Скриптинг", создана пользователем Tetragromaton, 11 авг 2016.

  1. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Всем привет народ, мне нужна помощь по энтити.
    Хочу сделать меню управлением картой, но во время его написания, заметил что EntityID у дверей меняется и смысла делать
    Код:
    FindEntityByClassName(-1, "func_door");
    нету смысла.
    Ну так вот, как я смогу замутить что-то с энтити зная его targetname или его HammerID ?
     
    Последнее редактирование модератором: 11 авг 2016
  2. Primo

    Primo Где мои манеры

    Сообщения:
    1.192
    Симпатии:
    310
    PHP:
    decl String:strName[50];
    GetEntPropString(indexProp_Data"m_iName"strNamesizeof(strName));
    if(
    strcmp(strName"entity_targetname") == 0)
    {
         
    }
    Ну думаю с циклом и т.д. сам разберёшься.
     
  3. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Да но на что я смогу задействовать AcceptEntityInput(ничто, "Enable"); ? :dntknw:
     
  4. AlmazON

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

    Сообщения:
    4.563
    Симпатии:
    1.988
    PHP:
    #include <sdktools_functions>


    decl String:EntityName[50];
    new 
    entity MaxClients 1;
    while ((
    entity FindEntityByClassname(entity"func_door")) != -1)
    {
        
    GetEntPropString(entityProp_Data"m_iName"EntityNamesizeof(EntityName));
        if (
    strcmp(EntityName"Известное имя объекта") == 0)
        {
            
    AcceptEntityInput(entity"Enable");
            break;
        }
    }
     
    Tetragromaton нравится это.
  5. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Спасибо большое тебе. Хотелось бы задействовать функцию с энити через его HammerID, поскольку на некоторых картах бывает что есть несколько энтити с таким-же таргетнеймом и они конкретные энтити не хотят открыватся/закрыватся.
     
  6. AlmazON

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

    Сообщения:
    4.563
    Симпатии:
    1.988
    Не видел такого, это условность для самого Hammer'а.
    Порядок создания вроде одинаковый на картах. Т.е., одна дверь имеет всегда самый низкий индекс, другая - повыше, третья - самый высокий. Таким образом, можно считать совпадения и открывать нужную по их известному количеству.
    PHP:
    #include <sdktools_functions>


    decl String:EntityName[50];
    new 
    entity MaxClients 1number;
    while ((
    entity FindEntityByClassname(entity"func_door")) != -1)
    {
        
    GetEntPropString(entityProp_Data"m_iName"EntityNamesizeof(EntityName));
        if (
    strcmp(EntityName"Известное имя объекта") == 0)
        {
            if (++
    number == 2AcceptEntityInput(entity"Enable"); //Использовать номер 2.
            
    break;
        }
    }
     
  7. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    А возможно сделать так если есть несколько энтитей с одним и тем же targetname'ом, то все они задействуются AcceptEntityInput ? :aikido:
     
  8. AlmazON

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

    Сообщения:
    4.563
    Симпатии:
    1.988
    Убери эту строку и ничего не считай условно. Все совпадения будут применены.
     
    Tetragromaton нравится это.
  9. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Окей, спасибо большое еще раз :blum1:
     
  10. AlmazON

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

    Сообщения:
    4.563
    Симпатии:
    1.988
    PHP:
    GetEntProp(entityProp_Data"m_iHammerID");