trigger_multiple не работает

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

  1. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    Есть следующий код (большая часть слизана с одного сайта):
    PHP:
    #include <sourcemod>
    #include <sdktools> 

    public Plugin:myinfo =
    {
        
    name "Spawnpoint Protection by MastAKK",
        
    author "MastAKK",
        
    description "Plugin that kills spawnkillers!",
        
    version "0.1",
        
    url "http://www.youtube.com/user/MastAKK111/"
    };

    public 
    OnMapStart() 

        new 
    trigger_multiple CreateEntityByName("trigger_multiple"); 
        
    DispatchKeyValue(trigger_multiple"spawnflags""1"); 
        
    DispatchKeyValue(trigger_multiple"wait""0"); 
        
    DispatchSpawn(trigger_multiple); 
        
    ActivateEntity(trigger_multiple); 
        
    TeleportEntity(trigger_multipleFloat: {623.6, -901.1, -51.9}, NULL_VECTORNULL_VECTOR);
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMins"Float: {-110.0, -50.0, -30.0});
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMaxs"Float: {125.050.030.0});
        
    SetEntProp(trigger_multipleProp_Send"m_nSolidType"2); 
            
        
    HookSingleEntityOutput(trigger_multiple"OnStartTouch"OnStartTouch); 


    public 
    OnStartTouch(const String:output[], entclientFloat:delay

        
    //if(GetClientTeam(client) == 3){
            
    ForcePlayerSuicide(client);
            
    PrintToChat(client"tryed to break server rules ;)"); 
        
    //}
    Но когда человек проходит через зону триггера (координаты правильные, проверил несколько раз), ничего не происходит (чат молчит, чел не дохнет). Почему?
     
  2. Root

    Root AWOL.

    Сообщения:
    77
    Симпатии:
    184
  3. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    Root, а что это?
     
  4. Root

    Root AWOL.

    Сообщения:
    77
    Симпатии:
    184
    Плагин, :) создающий зоны на карте при помощи trigger_multiple
    Я прокомментировал код, так что я думаю у Вас не возникнет проблемы с адаптацией "под себя".
     
  5. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    да, благодарю, я уже во всю читаю ваш код :)
    Вот только понять не могу. Вроде код спауна зоны практически одинаков (разве что у меня есть готовые координаты и я сразу на них телепортирую зону), но у меня не работает. С чем это связано?
     
  6. Root

    Root AWOL.

    Сообщения:
    77
    Симпатии:
    184
    Можно долго гадать... но я подразумеваю, что создавать trigger нужно в начале каждого раунда (или же в конце концов корень зла - значение spawnflags (перед и после создания entity)).
     
  7. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Скорее всего из за того что ты не добавил модель)
    SetEntityModel(trigger_multiple, "models/props/cs_office/vending_machine.mdl");
    И в OnMapStart
    PrecacheModel("models/props/cs_office/vending_machine.mdl",true);
    а и создавать ее нужно каждый раунд
     
  8. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    а зачем нужно модель задавать? И модель текущей карты или какую нужно задать?

    Добавлено через 8 минут
    И вообще в tf2 такого (models/props) нету, кажется
     
    Последнее редактирование: 24 июл 2013
  9. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Без модели не будет работать m_vecMins и m_vecMaxs,
    Если нет то так может прокатит как в том плагине models/error.mdl
     
  10. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    Я переписал код плагина. Добавил ручную активацию зон. Добавил модель (error.mdl). 100% правильный координаты. spawnflags 64
    И, черт побери, не работает, что я делаю не так?
     
  11. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Может код свой хоть кинешь)
     
  12. MastAKK

    MastAKK

    Сообщения:
    11
    Симпатии:
    0
    Вот код:
    PHP:
    #include <sourcemod>
    #include <sdktools> 

    public Plugin:myinfo =
    {
        
    name "Spawnpoint Protection by MastAKK",
        
    author "MastAKK",
        
    description "Plugin that kills spawnkillers!",
        
    version "0.1",
        
    url "http://www.youtube.com/user/MastAKK111/"
    };

    public 
    OnPluginStart()
    {
        
    RegAdminCmd("sm_spawnbzone"SpawnBlueZoneADMFLAG_ROOT);
        
    RegAdminCmd("sm_spawnrzone"SpawnBlueZoneADMFLAG_ROOT);    
    }

    public 
    Action:SpawnBlueZone(clientargs
    {
        
    PrecacheModel("models/error.mdl",true);
        if(
    client)
            
    PrintToConsole(client"Spawning zones...");
            
        new 
    trigger_multiple CreateEntityByName("trigger_multiple_blue"); 
        
        
    DispatchKeyValue(trigger_multiple"spawnflags""64"); 
        
    DispatchKeyValue(trigger_multiple"wait""0"); 
        
    SetEntityModel(trigger_multiple"models/error.mdl");
        
    DispatchSpawn(trigger_multiple); 
        
        
    ActivateEntity(trigger_multiple); 
        
    TeleportEntity(trigger_multipleFloat: {623.6, -901.1, -51.9}, NULL_VECTORNULL_VECTOR);
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMins"Float: {-110.0, -50.0, -30.0});
        
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMaxs"Float: {125.050.030.0});
        
    SetEntProp(trigger_multipleProp_Send"m_nSolidType"2); 
            
        
    HookEntityOutput("trigger_multiple_blue""OnStartTouch"OnStartTouch); 


    public 
    Action:SpawnRedZone(clientargs
    {
        
    PrecacheModel("models/error.mdl",true);
        if(
    client)
            
    PrintToConsole(client"Spawning red zones...");
            
        new 
    trigger_multiple CreateEntityByName("trigger_multiple_red"); 
        
        
    DispatchKeyValue(trigger_multiple"spawnflags""64"); 
        
    DispatchKeyValue(trigger_multiple"wait""0"); 
        
    SetEntityModel(trigger_multiple"models/error.mdl");
        
    DispatchSpawn(trigger_multiple); 
        
        
    ActivateEntity(trigger_multiple); 
        
    TeleportEntity(trigger_multipleFloat: {280.0,794.3,-113.9}, NULL_VECTORNULL_VECTOR);
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMins"Float: {-110.0, -50.0, -30.0});
        
    SetEntPropVector(trigger_multipleProp_Send"m_vecMaxs"Float: {125.050.030.0});
        
    SetEntProp(trigger_multipleProp_Send"m_nSolidType"2); 
        
        
    HookEntityOutput("trigger_multiple_red""OnStartTouch"OnStartTouch); 


    public 
    OnStartTouch(const String:output[], entclientFloat:delay

        if(
    GetClientTeam(client) == (|| 2)){
            
    ForcePlayerSuicide(client);
            
    PrintToChat(client"tryed to break server rules ;)"); 
        }
    }
     
  13. Scarface_slv

    Scarface_slv

    Сообщения:
    228
    Симпатии:
    47
    Нет такого trigger_multiple_blue и red!
    Короче попробуй это, просто вставь
    свои координаты,если не прокатит ничем не могу помочь
    PHP:
    #include <sdktools> 

    public OnPluginStart() RegAdminCmd("sm_spawnbzone"SpawnBlueZoneADMFLAG_ROOT);  

    public 
    Action:SpawnBlueZone(clientargs
    {
        
    PrecacheModel("models/error.mdl",true);
        
    decl String:TargetName[64];
        new 
    trigger CreateEntityByName("trigger_multiple");
        
    DispatchKeyValue(trigger"spawnflags""1");
        
    Format(TargetNamesizeof(TargetName), "scq_zone_%d"trigger);
        
    DispatchKeyValue(trigger"targetname"TargetName);
        
    DispatchKeyValue(trigger"wait""0");
        
    DispatchSpawn(trigger);
        
    ActivateEntity(trigger);
        
    SetEntityModel(trigger"models/error.mdl");
        
    TeleportEntity(triggerFloat: {623.6, -901.1, -51.9}, NULL_VECTORNULL_VECTOR);
        
    SetEntPropVector(triggerProp_Send"m_vecMins"Float:{-500.0, -500.0, -100.0});
        
    SetEntPropVector(triggerProp_Send"m_vecMaxs"Float:{500.0500.0100.0});
        
    SetEntProp(triggerProp_Send"m_nSolidType"2);
        new 
    iEffects GetEntProp(triggerProp_Send"m_fEffects");
        
    iEffects |= 32;
        
    SetEntProp(triggerProp_Send"m_fEffects"iEffects);
        
    SetVariantString(TargetName);
        
    AcceptEntityInput(trigger"SetParent");
        
    HookSingleEntityOutput(trigger"OnStartTouch"OnStartTouch);
    }

    public 
    OnStartTouch(const String:output[], entclientFloat:delay

        
    ForcePlayerSuicide(client);
        
    PrintToChat(client"tryed to break server rules ;)"); 
    }