Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 21
  1. #1
    Аватар для lonin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Очаков, UA
    Сообщений
    25
    Репутация:
    4 ±

    Как определить

    Здравствуйте, нужно определить сколько игроков находиться онлайн в определенной команде, как это сделать?

    Допустим команды у нас через
    PHP код:
    pStats[playerid][pMember] == %d
    Буду признателен за помощь!

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Циклом это дело можно решить, один из способов:
    PHP код:
    new
        
    GetMaxPlayers(),
        
    count 0;

    do
    {
        --
    i;
        if(
    IsPlayerConnected(i) && pStats[i][pMember] == ID)
            
    count++;
    }
    while(
    i); 
    Кол-во игроков содержится в переменной "count".

  3. Пользователь сказал cпасибо:
    lonin (22.07.2014)
  4. #3
    Аватар для lonin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Очаков, UA
    Сообщений
    25
    Репутация:
    4 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Циклом это дело можно решить, один из способов:
    PHP код:
    new
        
    GetMaxPlayers(),
        
    count 0;

    do
    {
        --
    i;
        if(
    IsPlayerConnected(i) && pStats[i][pMember] == ID)
            
    count++;
    }
    while(
    i); 
    Кол-во игроков содержится в переменной "count".
    Спасибо, но есть одно "но" При коннекте
    PHP код:
    pStats[playerid][pMember] == 0
    Она выбирается только в OnPlayerRequestClass

    Мне бы как то записывать в глобальную переменную(какую либо) при выборе класса + 1 игрока и в OnPlayerDisconnect(), отнимать одного при выходе. Нужно это для создания ТекстДрава с онлайном комманд:

    PHP код:
        switch(classid)
        {
            case 
    0,1,2,3,4,5,6,7,8:
            {
                
    SetPlayerPos(playerid1835.0920,-1302.5947,131.7344);
                
    SetPlayerCameraPos(playerid1838.0920,-1300.5947,131.7344);
                   
    SetPlayerCameraLookAt(playerid1835.0920,-1302.5947,131.7344);
                
    SetPlayerFacingAngle(playerid265.7347);
                
    SetPlayerTeamFromClass(playeridclassid);
                
    pStats[playerid][pMember] = 1;
                
    GroovePl += 1// Что то вроде этого.
            
    }
          } 

  5. #4
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Цитата Сообщение от lonin Посмотреть сообщение
    Спасибо, но есть одно "но" При коннекте
    PHP код:
    pStats[playerid][pMember] == 0
    Она выбирается только в OnPlayerRequestClass

    Мне бы как то записывать в глобальную переменную(какую либо) при выборе класса + 1 игрока и в OnPlayerDisconnect(), отнимать одного при выходе. Нужно это для создания ТекстДрава с онлайном комманд:

    PHP код:
        switch(classid)
        {
            case 
    0,1,2,3,4,5,6,7,8:
            {
                
    SetPlayerPos(playerid1835.0920,-1302.5947,131.7344);
                
    SetPlayerCameraPos(playerid1838.0920,-1300.5947,131.7344);
                   
    SetPlayerCameraLookAt(playerid1835.0920,-1302.5947,131.7344);
                
    SetPlayerFacingAngle(playerid265.7347);
                
    SetPlayerTeamFromClass(playeridclassid);
                
    pStats[playerid][pMember] = 1;
                
    GroovePl += 1// Что то вроде этого.
            
    }
          } 
    Ну и чем мы должны помочь, если ты знаешь правильный ответ? Создавай переменную, записывай.

  6. Пользователь сказал cпасибо:
    lonin (22.07.2014)
  7. #5
    Аватар для lonin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Очаков, UA
    Сообщений
    25
    Репутация:
    4 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Ну и чем мы должны помочь, если ты знаешь правильный ответ? Создавай переменную, записывай.
    Дело в том, что я уже сделал это, но вылезла другая проблема, в OnPlayerDisconnect не отнимает переменную почему то... Вот код, что в нем не так?

    PHP код:
          if(pStats[playerid][pMember] == 1)
        {
            
    GroovePl -=1;
        } 

  8. #6
    Аватар для underwoker
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    PHP код:
     if(pStats[playerid][pMember] == 1)
        {
            --
    GroovePl;
        } 
    пробуй так.
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  9. Пользователь сказал cпасибо:
    lonin (22.07.2014)
  10. #7
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от underwoker Посмотреть сообщение
    PHP код:
     if(pStats[playerid][pMember] == 1)
        {
            --
    GroovePl;
        } 
    пробуй так.
    Разницы практически никакой. Можно было записать и так:
    PHP код:
    GroovePl GroovePl 1
    lonin, уберите инкремент переменной из паблика OnPlayerRequestClass. При выборе другого скина переменная будет всегда увеличиваться. Проверяйте скин игрока в паблике OnPlayerRequestSpawn, и попробуйте ещё раз проделать тоже самое.

  11. Пользователь сказал cпасибо:
    lonin (22.07.2014)
  12. #8
    Аватар для lonin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Очаков, UA
    Сообщений
    25
    Репутация:
    4 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Разницы практически никакой. Можно было записать и так:
    PHP код:
    GroovePl GroovePl 1
    lonin, уберите инкремент переменной из паблика OnPlayerRequestClass. При выборе другого скина переменная будет всегда увеличиваться. Проверяйте скин игрока в паблике OnPlayerRequestSpawn, и попробуйте ещё раз проделать тоже самое.
    Попробую, сейчас написал вот такое отображение в текстдраве:

    PHP код:
        new GetMaxPlayers(),
        
    count 0;
        do
        {
            --
    i;
            if(
    IsPlayerConnected(i) && pStats[i][pMember] == 1)
            
    count++;
        }
        while(
    i);
        new 
    i1 GetMaxPlayers(),
        
    count2 0;
        do
        {
            --
    i1;
            if(
    IsPlayerConnected(i) && pStats[i][pMember] == 2)
            
    count2++;
        }
        while(
    i1);
        new 
    i2 GetMaxPlayers(),
        
    count3 0;
        do
        {
             --
    i2;
             if(
    IsPlayerConnected(i) && pStats[i][pMember] == 3)
             
    count3++;
        }
        while(
    i2);
        new 
    i3 GetMaxPlayers(),
        
    count4 0;
        do
        {
            --
    i3;
            if(
    IsPlayerConnected(i) && pStats[i][pMember] == 4)
            
    count4++;
        }
        while(
    i3);
        new 
    i4 GetMaxPlayers(),
        
    count5 0;
        do
        {
            --
    i4;
            if(
    IsPlayerConnected(i) && pStats[i][pMember] == 5)
            
    count5++;
        }
        while(
    i4);
        new 
    seriu[10];
        
    format(seriusizeof(seriu), "%d"count);
        
    PlayerTextDrawSetString(playerid,Textdraw13_17[playerid][0],seriu);
        new 
    seriu1[10];
        
    format(seriu1sizeof(seriu1), "%d"count2);
        
    PlayerTextDrawSetString(playerid,Textdraw13_17[playerid][1],seriu1);
        new 
    seriu2[10];
        
    format(seriu2sizeof(seriu2), "%d"count3);
        
    PlayerTextDrawSetString(playerid,Textdraw13_17[playerid][2],seriu2);
        new 
    seriu3[10];
        
    format(seriu3sizeof(seriu3), "%d"count4);
        
    PlayerTextDrawSetString(playerid,Textdraw13_17[playerid][3],seriu3);
        new 
    seriu4[10];
        
    format(seriu4sizeof(seriu4), "%d"count5);
        
    PlayerTextDrawSetString(playerid,Textdraw13_17[playerid][4],seriu4); 
    Все верно? Но почему то начинает показывать 20 и более :D

  13. #9
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    А так?
    PHP код:
    new
        
    mem_count_arr[5],
        
    val_string[4],
        
    GetMaxPlayers();

    do
    {
        --
    i;
        if(
    IsPlayerConnected(i) && (<= pStats[i][pMember] <= 5))
            
    mem_count_arr[pStats[i][pMember] - 1]++;
    }
    while(
    i);

    5;

    do
    {
        --
    i;
        
    valstr(val_stringmem_count_arr[i]);
        
    PlayerTextDrawSetString(playeridTextdraw13_17[playerid][i], val_string);
    }
    while(
    i); 

  14. Пользователь сказал cпасибо:
    lonin (23.07.2014)
  15. #10
    Аватар для lonin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Очаков, UA
    Сообщений
    25
    Репутация:
    4 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    А так?
    PHP код:
    new
        
    mem_count_arr[5],
        
    val_string[4],
        
    GetMaxPlayers();

    do
    {
        --
    i;
        if(
    IsPlayerConnected(i) && (<= pStats[i][pMember] <= 5))
            
    mem_count_arr[pStats[i][pMember] - 1]++;
    }
    while(
    i);

    5;

    do
    {
        --
    i;
        
    valstr(val_stringmem_count_arr[i]);
        
    PlayerTextDrawSetString(playeridTextdraw13_17[playerid][i], val_string);
    }
    while(
    i); 
    Так работает, но вылезла другая проблема: Если на сервере два человека(предполагаю что, даже если больше чем два) и один из них выходит, у другого пропадают все текстдравы...

 

 
Страница 1 из 3 1 2 3 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •