Выключить KnifeFight на определенном уровне в GunGame

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

  1. valerikov

    valerikov

    Сообщения:
    4
    Симпатии:
    2
    Приветствую всех!
    Есть такой плагин http://hlmod.ru/forum/showthread.php?t=243 который мне хотелось бы изменить под gungame, а именно запретить схватку один на один если один из игроков находится на определенном уровне. Вот сижу сейчас и втыкаю)) для меня там темный лес.. может кто подскажет какие строки (или строку) править? Как вытащить уровень игрока для дальнейшей обработки и т.п. я знаю, меня интересуют строки к которым нужно всё это дело прикрутить. :)
     
  2. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    valerikov, подключаешь в KnifeFight индклуд gungame и в цикле проверки игроков чекаешь гг лвл
     
  3. valerikov

    valerikov

    Сообщения:
    4
    Симпатии:
    2
    Вот про это я и писал, только вот цикл найти не могу)) нужна строка, а дальше я сам.. я просто потерялся там малость.

    Добавлено через 1 час 19 минут
    Я вот думаю, случаем не тут нужно править?

    PHP:
    public Action:StartFight()
    {    
        
    // check if one player left server
        
    if (ctid == || tid == 0)
        {
            return;
        }
        
        
    // check if there are only two players
        
    alivect 0alivet 0;
        for (new 
    1<= MaxClientsi++)
        {
            new 
    team;
            if (
    IsClientInGame(i) && IsPlayerAlive(i))
            {
                
    team GetClientTeam(i);
                if (
    team == 3) { alivect++; }
                else if (
    team == 2) { alivet++; }
            }
        }
        
        
    // check if there are only two players and round has 
        // not ended or bomb is not planted
        
    if (alivect != || alivet != || bombplanted)
        {
            return;
        }
        
        
    // start fight
        
    isFighting true;
        
    Trace("Fight is started.");
        if (!
    IsPlayerAlive(ctid) || !IsPlayerAlive(tid) || (GetClientCount() < g_minplayers))
        {
            
    CancelFight();
            return;
        }
        
        
    Trace("Removing all weapons on the map.");
        
        
    // remove all weapons from the map
        
    RemoveAllWeapons();
        
        
    // play fight song
        
    if (songsfound 0)
        {
            new 
    randomsong 0;
            if (
    songsfound 1)
            {
                
    randomsong GetRandomInt(0songsfound 1);
            }
            
    strcopy(songsizeof(song), fightsong[randomsong]);
            
            new 
    clients[MaxClients];
            new 
    total 0;
            for (new 
    i=1i<=MaxClientsi++)
            {
                if (
    IsClientInGame(i) && g_soundPrefs[i])
                {
                    
    clients[total++] = i;
                }
            }

            if (
    total)
            {
                
    Trace("Starting fight song.");
                
    EmitSound(clientstotalsong
                    
    _SNDCHAN_AUTOSNDLEVEL_NORMALSND_NOFLAGSSNDVOL_NORMALSNDPITCH_NORMAL);
            }
        }
        
        
    Trace("Starting beacons.");
        
    // start beacons
        
    CreateTimer(2.0StartBeaconctidTIMER_REPEAT);
        
    CreateTimer(1.0StartBeaconTtid);

        
    // remove weapons from players
        
    PrintHintTextToAll("%t""Removing weapons");
        
    WeaponHandler(ctid3);
        
    WeaponHandler(tid2);
        
        
    // switch alltalk
        
    if (g_alltalk
        {
            
    g_alltalkenabled GetConVarBool(sv_alltalk);
            if ( !
    g_alltalkenabled )
            {
                
    SetConVarInt(sv_alltalk1);
            }
            
    g_alltalkenabled = !g_alltalkenabled;
        }
        
        
    // switch blocking
        
    if ( g_block )
        {
            if ( 
    sm_noblock == INVALID_HANDLE )
            {
                
    sm_noblock FindConVar("sm_noblock");
            }
            if ( 
    sm_noblock != INVALID_HANDLE )
            {
                
    g_blockenabled = !GetConVarBool(sm_noblock);
                if ( !
    g_blockenabled )
                {
                    
    SetConVarInt(sm_noblock0);
                }
                
    g_blockenabled = !g_blockenabled;
            }
        }
        
        
    // teleport players
        
    if (g_useteleport)
        {
            
    SetEntData(ctidg_iHealth400);
            
    SetEntData(tidg_iHealth400);
            new 
    Float:ctvec[3];
            new 
    Float:tvec[3];
            new 
    Float:distance[1];
            
    GetClientAbsOrigin(ctid,Float:ctvec);
            
    GetClientAbsOrigin(tid,Float:tvec);
            
    distance[0] = GetVectorDistance(ctvectvectrue);
            if (
    distance[0] >= 600000.0)
            {
                
    teleloc ctvec;
                
    CreateTimer(0.1SlapTimer_TIMER_REPEAT);
                
    CreateTimer(0.5TeleportTimer);
            }
            else if (
    g_locatorbeam)
            {
                
    CreateTimer(0.1DrawBeamsTimer_TIMER_REPEAT);
            }
        }
        else if (
    g_locatorbeam)
        {
            
    CreateTimer(0.1DrawBeamsTimer_TIMER_REPEAT);
        }
        
        
    // display prepare to fight
        
    CreateTimer(1.0Countdown_TIMER_REPEAT);
    }
    Или я ошибаюсь?))
     
    Последнее редактирование: 1 мар 2014
  4. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    if (alivect != 1 || alivet != 1 || bombplanted)
    {
    return;
    }
     
    valerikov нравится это.
  5. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    Оффтоп
     
  6. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    Строка 1212 и далее:
    PHP:
    for (new 1<= MaxClientsi++)
            {
                new 
    team;
                if (
    IsClientInGame(i) && IsPlayerAlive(i))
                {
                    
    team GetClientTeam(i);
                    if (
    team == 3) { ctid ialivect++; }
                    else if (
    team == 2) { tid ialivet++; }
                }
            }
    // тут вставляешь проверку на уровни гг
            
    if (alivect == && alivet == && !bombplanted)
            {
                
    CreateTimer(0.5VerifyConditions);
            }
     
    valerikov нравится это.
  7. valerikov

    valerikov

    Сообщения:
    4
    Симпатии:
    2
    Благодарю всех за помощь!
    Дальше сам :beer:

    Это на любителя.