Русское сообщество по скриптингу

Запрещение наблюдения

Все вопросы по скриптингу для SourceMod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптингу для SourceMod.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sp плагина.

Запрещение наблюдения

Сообщение Dn1pRo » 17 сен 2010, 09:25

Всем доброе утро.

Как можно запретить наблюдение мертвыми игроками за определенной командой? Допустим, запретить наблюдение за командой террористов.

Хотя бы подскажите, в каком евенте это отлавливать =)

P.S. Да, и еще: возможно ли изменить клиентский квар hud_saytext_time?
Аватара пользователя
Dn1pRo
 
Сообщения: 51
Зарегистрирован: 17 авг 2010, 22:17
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike: Source

Re: Запрещение наблюдения

Сообщение DJ_WEST » 30 сен 2010, 08:05

Я добавлял условие только мертвым=) Если его не добавлять, то лагает все время=)

Ты бы показал свой код для приличия.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Запрещение наблюдения

Сообщение Dn1pRo » 30 сен 2010, 12:42

Вот новый код, который переписывает spec_next
[pawn]public Action:Command_SpecNext(clientargs)
{
    new 
maxclients GetMaxClients();
    new 
new_target 0;
    
    if (
GetClientTeam(GetEntPropEnt(clientProp_Send"m_hObserverTarget")) == 2)
    {
        for (new 
GetEntPropEnt(clientProp_Send"m_hObserverTarget")+1;<= maxclients;x++)
        {
            if (
IsClientConnected(x) && IsClientInGame(x) && IsPlayerAlive(x) && GetClientTeam(x) == 3)
            {
                
new_target x;
                break;
            }
        }
        if (
new_target == 0)
        {
            for (new 
0;<= GetEntPropEnt(clientProp_Send"m_hObserverTarget");y++)
            {
                if (
IsClientConnected(y) && IsClientInGame(y) && IsPlayerAlive(y) && GetClientTeam(y) == 3)
                {
                    
new_target y;
                    break;
                }
            }
        }
        
SetEntPropEnt(clientProp_Send"m_hObserverTarget"new_target);
        
SetEntProp(clientProp_Send"m_iObserverMode"0);
    }
    return 
Plugin_Continue;
[/pawn]
Не работает.
Старый код с хуком, который отлавливал нажатие IN_ATTACK и менял таргет:
[pawn]public OnClientPutInServer(client)
{
    
SDKHook(clientSDKHook_PreThinkOnPreThink);
}

public 
OnPreThink(client)
{
  if (!
IsPlayerAlive(client))
  {
    new 
iButtons GetClientButtons(client);
    if(
iButtons IN_ATTACK)
    {
      
//Тут я точно не помню свой код, так как стер его. Но там было что-то вроде перебора игроков циклом for, где первая цель, которая была в игре, жива и играла за кт устанавливалась таргетом у m_hObserverTarget, а m_iObserverMode устанавливался на 0.
    
}
  }
[/pawn]

Вот 2 кода, второй, признаюсь, стер.
Аватара пользователя
Dn1pRo
 
Сообщения: 51
Зарегистрирован: 17 авг 2010, 22:17
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike: Source

Re: Запрещение наблюдения

Сообщение Dn1pRo » 11 окт 2010, 19:14

Я знаю, что апать нельзя темы, но проблема еще актуальна=)
Аватара пользователя
Dn1pRo
 
Сообщения: 51
Зарегистрирован: 17 авг 2010, 22:17
Благодарил (а): 11 раз.
Поблагодарили: 3 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike: Source

Re: Запрещение наблюдения

Сообщение DJ_WEST » 12 окт 2010, 08:40

Можешь также покопаться с функцией OnPlayerRunCmd в ней передается аргумент (buttons), в котором можно вычерпнуть нажатые клавиши, то есть когда, к примеру, игрок нажимает на стрельбу (то в этой функции в аргументе будет IN_ATTACK). Я о том, что может при смене игрока, за которым ты наблюдаешь, buttons может тоже передается.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Запрещение наблюдения

Сообщение Viepinsuspemo » 12 янв 2011, 20:00

deleted
Аватара пользователя
Viepinsuspemo
 
Сообщения: 9
Зарегистрирован: 12 янв 2011, 19:42
Откуда: Portugal
Забанен
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Пред.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron