Перемещение игроков

Тема в разделе "Программирование / Скриптинг", создана пользователем awp-sirius, 25 ноя 2012.

  1. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    как переместить игрока?
    CS_SwitchTeam (i, 2); выдаёт ошибку
     
    Последнее редактирование: 25 ноя 2012
  2. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    А полный код можно?
     
  3. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    Код:
    #include <sourcemod> 
    
    new ct = 0, t = 0, tct[MAXPLAYERS+1] = 0, ctp = 0, tp = 0, k = 0;
    
    
    
    public OnPluginStart() 
    { 
        // Ловим событие конца раунда 
        HookEvent("round_end", Event_OnRoundEnd); 
    } 
    
    // Обрабатываем 
    public Event_OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast) 
    { 
        for(new i = 0; i < MaxClients; i++) 
        { 
            // Кто в игре 
            if(IsClientInGame(i)) 
            { 
                // Кто за Т 
                if(GetClientTeam(i) == 2) 
                { 
                    // число игроков за Т 
                    t++; 
                } 
                // Кто за КТ 
                if(GetClientTeam(i) == 3) 
                { 
                    // число игроков за КТ 
                    ct++; 
                } 
    
    		//tct[i] = i;  
            } 
        } 
    	//PrintToChatAll("Игроки перемешаны случайным образом");
     
    
    
    
    
    
    
    //когда есть массив tct с userid всех игроков и переменные ct, t в которых содержится колличество игроков в определённой команде:
    
    
    for(new i = 0; i < (ct + t); i++) 
    {
    //случайно присваиваем переменной k 2 или 3
    	k = GetRandomInt(2, 3);
    	
    	if (k == 2)
    	{
    		if (tp == t)
    			{
                            //если команда террористов уже заполнена (тоесть было 6 человек и уже 6 перемещено), то перемещается за кт
    			CS_SwitchTeam(i, 3);
                            //считает количество перемещённых игроков за кт
    			ctp++;
    			}
                    //если за теров перемещено недостаточно человек (было 6 а переместило только 3-х)
    		else
    			{
                            //перемещает
    			CS_SwitchTeam(i, 2);
                            //считает количество перемещённых игроков за кт
    			tp++;
    			}
    
    	}
    //далее всё аналогично, только если к = 3
    	else
    	{
    	if (ctp == ct)
    			{
    			CS_SwitchTeam(i, 2);
    			tp++;
    			}
    		else
    			{
    			CS_SwitchTeam(i, 3);
    			ctp++;
    			}
    
    	}
    }
    } 
     
  4. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    Забыл подключить:
    #include <cstrike>
    либо используй
    ChangeClientTeam(i, 2); - 1 но: в CSS игрока убивает и перемещает.
     
  5. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    СПАСИБО!!!))))) А из-а чего ещё ошибка может plugin.sp<49> : warning 217: loose indentation

    49-я строка это:
    Код:
    for(new i = 0; i < (ct + t); i++) 
    может из-за того что использую переменную i второй раз? странно она вроде обнуляется
     
  6. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    Неправильный отступ(выравнивание) строки.
    Используй ТОЛЬКО пробел или TAB.
     
  7. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    блин, всё равно та же ошибка... я подправил весь код, заново протабулировал и всё равно, вобщем вот сам код программы: скачать

    ошибка на 38 теперь строке ну for(new i = 0; i < (ct + t); i++)
     

    Вложения:

    • plugin.sp
      Размер файла:
      1,8 КБ
      Просмотров:
      8
  8. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    Ня:
     

    Вложения:

    • plugin.sp
      Размер файла:
      1,6 КБ
      Просмотров:
      7
  9. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    блин, а что ты исправил?)))) не догоняю

    вот подогнал свой под то что ты скинул (ну удалил пару комментов, и в конце убрал лишние табуляции)

    щелкаю между ними отличий - 0, а в компилятор запихиваю, и в plugin.sp ошибка есть а в твоём plugin (2).sp в той же 38-й строчке, кодировки вроде тоже одинаковые, ♥♥♥ц чё за бред??
     
    Последнее редактирование: 26 ноя 2012
  10. legend1998

    legend1998

    Сообщения:
    292
    Симпатии:
    178
    На всех строках используй отступы с помощью пробела или TAB(лучше TAB'ом - по мне лучший вариант, все красиво и "прямо" :)).
    Чтобы эта ошибка исчезла(просто скроется при компиляции, но не устранится), пропиши в начале плагина:
    #pragma tabsize 0

    P.S. Для заметки: Перейти (может чем и поможет :victory:).
     
  11. awp-sirius

    awp-sirius

    Сообщения:
    26
    Симпатии:
    0
    да я понял всё это) в том-то и дело что там таб был, ладно, лаг наверное какой-нибудь, спасибо!