Дюп оружия на сервере

Тема в разделе "Counter-Strike: Global Offensive", создана пользователем Pautinka553, 29 авг 2016.

  1. Pautinka553

    Pautinka553

    Сообщения:
    15
    Симпатии:
    0
    Проблема появилась давно, но чёт не обращал внимания.
    Заключается она в том что в начале каждого раунда на awp_lego2 и других картах где в начале игры оружие выдаётся автоматически, под выжившими в прошлом раунде появляется все их оружие (нож, пистолет, авп)

    Кто нибудь знает как исправить?
     
  2. gibs

    gibs Фитиль народного волненья

    Сообщения:
    542
    Симпатии:
    139
    Это баг ксго, проблема с ентити game_player_equip. Её решают путём добавления флага - 2: "Strip All Weapons First"
    Но предыдущее оружие, само-собой, будет удаляться.
     

    Вложения:

  3. Pautinka553

    Pautinka553

    Сообщения:
    15
    Симпатии:
    0
    А на обычных картах типо de_dust2 оружие из предыдущего раунда будет оставаться?
     
  4. gibs

    gibs Фитиль народного волненья

    Сообщения:
    542
    Симпатии:
    139
  5. Pautinka553

    Pautinka553

    Сообщения:
    15
    Симпатии:
    0
    А как тогда с этим разбираться другие паблики, если там оружие остаётся но и на авп Лего не выпадает?
     
  6. ToniWaor

    ToniWaor

    Сообщения:
    77
    Симпатии:
    9
    как вариант Map configs with prefix support 1.3 - AlliedModders
     
  7. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Вот это еще есть:

    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdkhooks>
    #include <sdktools>

    new Handle:g_ConVar_Cleaner_Timer_Hndl INVALID_HANDLE;
    new 
    Handle:g_Cleaner_Timer_Hndl INVALID_HANDLE;
    new 
    Float:g_ConVar_Cleaner_Timer 0.0;
    new 
    bool:g_StopCleaner true;

    public 
    Plugin:myinfo =
    {
        
    name             =        "Weapon Clean up",
        
    author            =        "CS:GO Port Team",
        
    description            =        "Cleans up dropped weapons",
        
    version            =        "1.0",
        
    url                =        "http://SourceMod.net"
    };

    public 
    OnPluginStart()
    {
        
    g_ConVar_Cleaner_Timer_Hndl CreateConVar("sm_weaponcleaner_timer""15.0""How long the weapon cleaner should run each round (in seconds). 0 = never stop."0true0.0);
      
        
    // Cache the convar
        
    g_ConVar_Cleaner_Timer GetConVarFloat(g_ConVar_Cleaner_Timer_Hndl);
      
        
    HookConVarChange(g_ConVar_Cleaner_Timer_HndlOnConVarChanged);
        
    HookEvent("round_start"OnRoundStartPost);
      
        for (new 
    client 1client <= MaxClientsclient++)
        {
            if (!
    IsClientInGame(client))
            {
                continue;
            }
          
            
    OnClientPutInServer(client);
        }
    }

    public 
    OnConVarChanged(Handle:cvar, const String:oldVal[], const String:newVal[])
    {
        
    g_ConVar_Cleaner_Timer StringToFloat(newVal);
    }

    public 
    OnMapEnd()
    {
        
    g_Cleaner_Timer_Hndl INVALID_HANDLE;
    }

    public 
    OnRoundStartPost(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    g_StopCleaner false;
        if (
    g_ConVar_Cleaner_Timer <= 0.0)
        {
            return;
        }
      
        if (
    g_Cleaner_Timer_Hndl != INVALID_HANDLE)
        {
            
    KillTimer(g_Cleaner_Timer_Hndl);
            
    g_Cleaner_Timer_Hndl INVALID_HANDLE;
        }
      
        
    g_Cleaner_Timer_Hndl CreateTimer(g_ConVar_Cleaner_TimerDisableCleaner_TIMER_FLAG_NO_MAPCHANGE);
    }

    public 
    Action:DisableCleaner(Handle:timer)
    {
        
    g_Cleaner_Timer_Hndl INVALID_HANDLE;
        
    g_StopCleaner true;
    }

    public 
    OnClientPutInServer(client)
    {
        
    SDKHook(clientSDKHook_WeaponDropOnWeaponDropPost);
    }

    public 
    OnWeaponDropPost(clientweapon)
    {
        if (
    g_StopCleaner == true)
        {
            return;
        }
      
        if (!
    IsValidEdict(weapon))
        {
            return;
        }

        
    decl String:TargetName[255];
        
    GetEntPropString(weaponProp_Data"m_iName"TargetNamesizeof(TargetName));
        if (
    TargetName[0] !='\0')
        {
            
    // Weapon has a targetname, do not touch.
            
    return;
        }
      
        new 
    child GetEntPropEnt(weaponProp_Data"m_hMoveChild");
        if (
    child != -1)
        {
            
    // Entity has a child
            
    return;
        }
      
        
    AcceptEntityInput(weapon"Kill");
    }

    sm_weaponcleaner_timer - кол-во секунд от начала раунда оружие будет удалятся при выбрасывании.
     

    Вложения:

    • spawn_unlag.sp
      Размер файла:
      2,4 КБ
      Просмотров:
      2
    • spawn_unlag.smx
      Размер файла:
      4,3 КБ
      Просмотров:
      1