Спавн и зона покупки

Тема в разделе "Программирование / Скриптинг", создана пользователем Филипп Фрай, 31 май 2015.

  1. Филипп Фрай

    Филипп Фрай

    Сообщения:
    14
    Симпатии:
    2
    Как сделать чтобы игрок спавнился после выбора скина, а не команды?
    public OnPluginStart()
    {
    HookEvent("player_team", Team);
    }

    public Team(Handle:hEvent, const String:name[], bool:dontBroadcast)
    {
    new iClient = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    if(iClient) CreateTimer(2.0, aRespawn, iClient);
    }

    public Action:aRespawn(Handle:timer, any:iClient)
    {
    if(IsClientInGame(iClient) && GetClientTeam(iClient) > 1 && !IsPlayerAlive(iClient)) CS_RespawnPlayer(iClient);
    }

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

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

    Сообщения:
    4.563
    Симпатии:
    1.988
    [CS:S] Автоспавн

    Думаю, работать будет:
    PHP:
    #include <cstrike>

    public OnPluginStart() AddCommandListener(ClassTeam"joinclass");

    public 
    Action:ClassTeam(clientString:command[], args)
    {
        
    CreateTimer(1.0aRespawnclientTIMER_FLAG_NO_MAPCHANGE);
        return 
    Plugin_Continue;
    }

    public 
    Action:aRespawn(Handle:timerany:iClient)

        if(
    IsClientInGame(iClient) && IsPlayerAlive(iClient) == falseCS_RespawnPlayer(iClient);
        return 
    Plugin_Stop;
    }
     
    Филипп Фрай нравится это.
  3. Reiko1231

    Reiko1231 AlexTheRegent

    Сообщения:
    237
    Симпатии:
    569
    События "игрок покидает зону покупки" нет, но можно узнать об этом другим способом:
    Код:
    #include <sdktools>
    #include <sdkhooks>
    
    public OnMapStart() 
    {
        new iEntity = -1;
        // поиск по всем entity зон закупок
        while ((iEntity = FindEntityByClassname(iEntity, "func_buyzone")) != -1) {
            new iTeam = GetEntProp(iEntity, Prop_Send, "m_iTeamNum");
            if ( iTeam == 2 ) {
                // это зона закупки T
                SDKHook(iEntity, SDKHook_EndTouch, OnTZoneEndTouch);
            }
            else if ( iTeam == 3 ) {
                // зона закупки для CT
                SDKHook(iEntity, SDKHook_EndTouch, OnCTZoneEndTouch);
            }
        }
    }
    
    public OnCTZoneEndTouch(iEntity, iClient)
    {
        if ( iClient > 0 && iClient <= MaxClients ) {
            // любой игрок (Т или КТ) покинул зону закупки КT
            
            if ( GetClientTeam(iClient) == 3 ) {
                // зону покинул КТ
            }
            else {
                // зону покинул Т
            }
        }
    }
    
    public OnTZoneEndTouch(iEntity, iClient)
    {
        if ( iClient > 0 && iClient <= MaxClients ) {
            // любой игрок (Т или КТ) покинул зону закупки КT
            
            if ( GetClientTeam(iClient) == 2 ) {
                // зону покинул Т
            }
            else {
                // зону покинул КТ
            }
        }
    }
    
     
    Серый™, Филипп Фрай и AlmazON нравится это.