Полное понимание SourcePawn.

Q

Qujeck

PHP:
for(int i; ++i <= MaxClients;){
  if(IsClientInGame(i) && !IsFakeClient(i)){
    switch(GetClientTeam(i))
    {
        case 3:
            {
        ValueT++;
        break;
            }
        case 2:
            {
        ValueCt++;
        break;
            }
    }
}
}
здесь i это клиент, но i будет равняться максимальному числу клиентов, например 2
и как сервер определяет кто именно 2 что бы определить в игре ли он, не бот и его команду как?
или когда игрок заходит, ему присваевается значение от 1 до MaxClient?
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@Qujeck, Тебе ответили на вопрос
или когда игрок заходит, ему присваевается значение от 1 до MaxClient?

и как сервер определяет что игрок не бот?
В if вписываешь !IsFakeClient(i) как у тебя и сделано

PHP:
if(IsClientInGame(i) && !IsFakeClient(i))

и как сервер определяет кто именно 2 что бы определить его команду как?
У тебя же и так сделано это опять
PHP:
case 3://Если GetClientTeam вернул 3 т.е Игрок Контр- Террорист
            {
        ValueT++;
        break;
            }
        case 2: //Если GetClientTeam вернул 2 т.е Игрок Террорист
            {
        ValueCt++;
        break;

            }
 
Q

Qujeck

@Qujeck, Тебе ответили на вопрос



В if вписываешь !IsFakeClient(i) как у тебя и сделано

PHP:
if(IsClientInGame(i) && !IsFakeClient(i))


У тебя же и так сделано это опять
PHP:
case 3://Если GetClientTeam вернул 3 т.е Игрок Контр- Террорист
            {
        ValueT++;
        break;
            }
        case 2: //Если GetClientTeam вернул 2 т.е Игрок Террорист
            {
        ValueCt++;
        break;

            }
Не, я понял это, но хотел удостовериться, и ещё, со сколько начинается присваивание индекса, с нуля или 1?
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@Qujeck, 0 == Console или если клиент юзает через !rcon что тоже == console
 
Q

Qujeck

@Qujeck, 0 == Console или если клиент юзает через !rcon что тоже == console
не понял.
С нуля или с 1??,
Первый зашедший игрок, ему какой индекс 0 или 1,
я хз что такое !rcon, поясните, и извините за грубость и прямоту.
--- Добавлено позже ---
и как работать с native String:format[] , на припер функция ServerCommand(const String:format[], any:...)
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@Qujeck, Пока что !rcon тебе не нужен. С 1 это игрок по идеи
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@Qujeck, ServerCommand("mp_restartgame 1") Если я тебя правильно понял
 
Q

Qujeck

@Qujeck, ServerCommand("mp_restartgame 1") Если я тебя правильно понял
спасибо
--- Добавлено позже ---
@Qujeck, ServerCommand("mp_restartgame 1") Если я тебя правильно понял
чет не робит

PHP:
#include <sourcemod>
#include <console>

public OnPluginStart()
{
ServerCommand("sv_gravity 100")
}
я проверяю, а гравити на 800 стоит, чо не так?
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
спасибо
--- Добавлено позже ---

чет не робит

PHP:
#include <sourcemod>
#include <console>

public OnPluginStart()
{
ServerCommand("sv_gravity 100")
}
я проверяю, а гравити на 800 стоит, чо не так?
Скорей всего, конфиг перебивает значение. Попробуй при старте карты (OnMapStart).
OnPluginStrat вызывается 1 раз при старте плагина или после его перезагрузки.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,611
Реакции
5,100
ты бы сразу учился с новым синтаксисом работать, а не старым
--- Добавлено позже ---
PHP:
for(int i; ++i <= MaxClients;)
{
    if(IsClientInGame(i) && !IsFakeClient(i))
    {
        switch(GetClientTeam(i))
        {
            case 3:
            {
                ValueT++;
                break;
            }
            case 2:
            {
                ValueCt++;
                break;
            }
        }
    }
}
у тебя остановится перебор игроков при нахождении первого игрока, который находится в игре, не является ботом и при этом находящимся в команде террористов либо контр-террористов
здесь i это клиент, но i будет равняться максимальному числу клиентов, например 2
i будет равняться от 0 и до MaxClients, если перебор не прервётся командой break
и как сервер определяет кто именно 2 что бы определить в игре ли он, не бот и его команду как?
прочтёт в памяти
или когда игрок заходит, ему присваивается значение от 1 до MaxClient?
да, так и есть
 
Последнее редактирование:
Сверху Снизу