Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
auto join
Naykon Дата: Четверг, 29.03.2012, 17:32:43 | Сообщение # 1
Сообщений: 439
Репутация: -4 [ +/- ]
Дайте небольшой пример... Если игрок из спекторов заходит за СТ то его всеравно перекидывает за Т. (Запрет захода из спекторов за СТ (только за Т))
 
sssw Дата: Четверг, 29.03.2012, 17:46:36 | Сообщение # 2
Сообщений: 123
Репутация: 14 [ +/- ]
Code
#include <cstrike>

public OnPluginStart()
{
  AddCommandListener(ChooseTeam, "jointeam");  
}

public Action:ChooseTeam(client, const String:command[], args)   
{
     if (client == 0)
         return Plugin_Continue;
    
   
     GetCmdArg(1, teamString, sizeof(teamString));
     new Target_Team = StringToInt(teamString);
   
  if (Target_Team == 0)
  {
   return Plugin_Handled;
  }
  //PrintToChatAll("%f", GetTeamCountj(Terrorist, Counter));
  if (Target_Team == CS_TEAM_СT && GetClientTeam(client) == 1)
        {
               return Plugin_Handled;
        }  
return Plugin_Continue;
}


Вроде так

Добавлено (29.03.2012, 17:46:36)
---------------------------------------------
Ой, забыл добавить после if (Target_Team == CS_TEAM_СT && GetClientTeam(client) == 1) вот это CS_SwitchTeam(client, CS_TEAM_T)

 
Naykon Дата: Четверг, 29.03.2012, 17:51:17 | Сообщение # 3
Сообщений: 439
Репутация: -4 [ +/- ]
Ошибка при компиляции.. указывает на
Code
  GetCmdArg(1, teamString, sizeof(teamString));


Дайте исправленный скрипт чтоб с мог разобраться...
 
sssw Дата: Четверг, 29.03.2012, 18:02:08 | Сообщение # 4
Сообщений: 123
Репутация: 14 [ +/- ]
Code
#include <sourcemod>
#include <cstrike>

public OnPluginStart()
{
      AddCommandListener(ChooseTeam, "jointeam");   
}

public Action:ChooseTeam(client, const String:command[], args)    
{
      if (client == 0)
          return Plugin_Continue;
      
      decl String:teamString[3];
      GetCmdArg(1, teamString, sizeof(teamString));
      new Target_Team = StringToInt(teamString);
    
   if (Target_Team == 0)
   {
   return Plugin_Handled;
   }
        
   if (Target_Team == 2 && GetClientTeam(client) == 1)
          {
                 CS_SwitchTeam(client, CS_TEAM_T)  
   return Plugin_Handled;
          }   
   return Plugin_Continue;
}
 
Naykon Дата: Четверг, 29.03.2012, 18:09:15 | Сообщение # 5
Сообщений: 439
Репутация: -4 [ +/- ]
скрипт ничего не делает... по прежнему могу из спекторов заходить за СТ ((((
 
_wS_ Дата: Четверг, 29.03.2012, 18:16:56 | Сообщение # 6
Code
public Action:ChooseTeam(client, const String:command[], args)
{
     if (client < 1 || args < 1 || GetClientTeam(client) != 1) return Plugin_Continue;
     decl String:str_team[3];
     GetCmdArg(1, str_team, 3);
     if (StringToInt(str_team) == 3)
     {
         CS_SwitchTeam(client, 2);
         return Plugin_Handled;
     }
     return Plugin_Continue;
}


Нужели так тяжело это сделать? Обычные условия если и то..
 
Naykon Дата: Четверг, 29.03.2012, 18:31:56 | Сообщение # 7
Сообщений: 439
Репутация: -4 [ +/- ]
Работает только если зайдешь за команду СТ или Т а потом выйдеш в спекторы.... после чего при попытке зайте за СТ ты заходишь за Т.
НО когда ты только зашел на сервер ты можеш заходить за СТ (хотя по факту ты спектор)
 
_wS_ Дата: Четверг, 29.03.2012, 18:41:40 | Сообщение # 8
Значит сделай не так GetClientTeam(client) != 1 а так GetClientTeam(client) < 2
 
sssw Дата: Четверг, 29.03.2012, 18:44:02 | Сообщение # 9
Сообщений: 123
Репутация: 14 [ +/- ]
Когда игрок не выбрал команду, он как бы не совсем спектр, то есть он будет спектром тогда когда выберет команду наблюдателей из меню. А так он просто зашедший и не играющий занимавший слот игрок и ID команды равен 0 а не 1 как у спектров.
 
Naykon Дата: Четверг, 29.03.2012, 19:16:18 | Сообщение # 10
Сообщений: 439
Репутация: -4 [ +/- ]
Обратите внимание пожалуйста на пост в "Предмет"... жду ответа (Как создать таймер знаю но не знаю как написать чтоб именно после появления предмета таймер запустился)

Добавлено (29.03.2012, 19:16:18)
---------------------------------------------
Все равно пускает за СТ

 
_wS_ Дата: Четверг, 29.03.2012, 20:04:54 | Сообщение # 11
Ты хоть сам пробовал подумать и сделать?

Code
public Action:ChooseTeam(client, const String:command[], args)
{
     if (client < 1 || args < 1) return Plugin_Handled;
     if (GetClientTeam(client) < 2)
     {
         decl String:str_team[3];
         GetCmdArg(1, str_team, 3);
         if (StringToInt(str_team) == 3)
         {
             CS_SwitchTeam(client, 2);
             return Plugin_Handled;
         }
     }
     return Plugin_Continue;
}


Так работает, но если игрок нажмет авто-выбор команды и его кинет за кт - не сработает.
Так что думай, если хочешь это исправить, а то ждешь готовое.
 
Naykon Дата: Четверг, 29.03.2012, 21:12:12 | Сообщение # 12
Сообщений: 439
Репутация: -4 [ +/- ]
хорошо, как обозначается кнопка Авто-входа?

Добавлено (29.03.2012, 21:12:12)
---------------------------------------------
поясните каждую строчку.. но пойму скрипт

 
nynCuKaH Дата: Вторник, 03.04.2012, 19:52:54 | Сообщение # 13
Сообщений: 110
Репутация: 0 [ +/- ]
пфф тут все элементарно.

Добавлено (03.04.2012, 19:31:33)
---------------------------------------------
у меня не получается добавить звук который производится при нажатие на автовыбор типо ошибки

Добавлено (03.04.2012, 19:52:54)
---------------------------------------------
Что у меня не правильно? Не проигрывается звук и не показывается в чате сообщение.

Code
#include <sourcemod>  
#include <cstrike>  

public OnPluginStart()  
{  
       AddCommandListener(ChooseTeam, "jointeam");      
}  

public Action:ChooseTeam(client, const String:command[], args)     
{  
       if (client == 0)  
           return Plugin_Continue;  
        
       decl String:teamString[3];  
       GetCmdArg(1, teamString, sizeof(teamString));  
       new Target_Team = StringToInt(teamString);  
      
    if (Target_Team == 0)  
    {  
    return Plugin_Handled;  
    }  
          
    if (Target_Team == 2 && GetClientTeam(client) == 1)  
           {  
                  CS_SwitchTeam(client, CS_TEAM_T)   
    return Plugin_Handled;  
           }    
    return Plugin_Continue;
   }
   else
   {
    //-----------------------------------------
    // Send client sound
    //-----------------------------------------
     
    ClientCommand( client, "buttons/button11.wav" );
     
    //-----------------------------------------
    // Show client message
    //-----------------------------------------
     
    PrintToChat( client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!", teamRatio );

    return Plugin_Handled;
   }   
  }
   
  return Plugin_Continue;
}
 
_wS_ Дата: Среда, 04.04.2012, 05:04:16 | Сообщение # 14
Проигрывать звук надо перед командой return и под нужным условием. Неужели тяжело запустить тест скрипт, чтобы понять как работает return?
 
Scarface_slv Дата: Среда, 04.04.2012, 05:36:06 | Сообщение # 15
Сообщений: 737
Репутация: 61 [ +/- ]
так?) буду так учиться =) нельзя зайти в спекторы и автовыбор тоже запрещен)
Code

#include <sourcemod>   
#include <cstrike>   

public OnPluginStart()   
{   
    AddCommandListener(ChooseTeam, "jointeam");     
}   

public Action:ChooseTeam(client, const String:command[], args)      
{   
    if (client == 0) return Plugin_Continue;   
    decl String:teamString[3];   
    GetCmdArg(1, teamString, sizeof(teamString));   
    new Target_Team = StringToInt(teamString);   
    if (Target_Team == 0)   
    {   
      ClientCommand(client, "buttons/button11.wav");
      PrintToChat(client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!");  
      return Plugin_Handled;   
    }   
    if (Target_Team == 1)   
    {   
       ClientCommand(client, "buttons/button11.wav");
       PrintToChat(client, "\x03[nJoin] \x04Автовыбор отключен, нажми 1 или 2!");  
       return Plugin_Handled;        
    }    
    return Plugin_Continue;  
}
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: