Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

За кого играет игрок

Статус пользователя svh0st
сообщение 5.3.2013, 23:39
Сообщение #1


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Добрый вечер всем, хотел бы узнать как определить за кого играет игрок.
Пример что я хочу сделать:
1. Мне нужно узнать за какую команду играет игрок
2. Если за КТ или за ТТ, то функция lol выполниться, а наоборот играет за SPECT или UNASSIGNED то функция пишет сообщения что нужно зайти за команду и открыть меню с выбором команды.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 5.3.2013, 23:45
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

get_user_team
или
cs_get_user_team
крути

Отредактировал: AndrewZ, - 10.3.2013, 16:32


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 6.3.2013, 4:21
Сообщение #3
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

В вашей 'функции' получайте инфу о команде с помощью такого кода:
Код
get_user_team2(id) {
        new szTeam[2];
        get_user_team(id, szTeam, 1);
        switch ( szTeam[0] ) {
                case 'T': return 1;
                case 'C': return 2;
        }
        return 0;
}

Именно такое использование важно, чтобы get_user_team не возвращала неверную команду для мёртвых игроков.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 6.3.2013, 17:48
Сообщение #4


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

А вот так?
Скрытый текст
Код
public respawn_me(id)
{
    new Players[32]
    new name[32]
    new playerCount
    new i
    new player
    
    get_players(Players, playerCount, "h")
    
    for (i=0; i<playerCount; i++)
    {
        player = Players[i]
        get_user_name(player, name, 31)
        new CsTeams:userTeam = cs_get_user_team(id)
        
        if (userTeam == CS_TEAM_T || CS_TEAM_CT)
        {
            if(is_user_alive(player))
            {
                ColorChat(id, GREY, "^4%s^3, только мёртвые могут воскреснуть!", name)
            }
            else
            {
                strip_user_weapons(id)
                ColorChat(id, GREY, "^4%s^3, через^4 5 сек^3. Вы воскреснете!", name)
                set_task(5.0, "respawn", id)
            }
        }
        else if (userTeam == CS_TEAM_SPECTATOR || CS_TEAM_UNASSIGNED)
        {
            ColorChat(id, GREY, "^4%s^3, зайдите за какую нибуть команду.", name)
        }
    }
}


Отредактировал: svh0st, - 6.3.2013, 18:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.3.2013, 18:11
Сообщение #5


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Скрытый текст
Код
public Function_Spawn( pPlayer )
{
    new sName[ 32  ];
    get_user_name( pPlayer, sName, charsmax( sName  ) );

    if( is_user_alive( pPlayer ) )
    {
        ColorChat( pPlayer, GREY, "^4%s^3, только мёртвые могут воскреснуть!", sName)
        return;
    }

    switch( cs_get_user_team( pPlayer ) )
    {
        case CS_TEAM_T, CS_TEAM_CT:
        {
            ColorChat( pPlayer, GREY, "^4%s^3, через^4 5 сек^3. Вы воскреснете!", sName );

            set_task(5.0, "Ctask__Spawn", pPlayer );
        }
        default:
        {
            ColorChat( pPlayer, GREY, "^4%s^3, зайдите за какую нибуть команду.", sName );
        }
    }
}


Отредактировал: Andrei, - 6.3.2013, 18:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
cs-portal
сообщение 6.3.2013, 18:15
Сообщение #6
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

Скрытый текст
а вообще можно ли так?
Цитата
if(get_user_team(id) < 3) //( терр команда = 1 кт = 2 )
{
ColorChat( pPlayer, GREY, "^4%s^3, через^4 5 сек^3. Вы воскреснете!", sName );

            set_task(5.0, "Ctask__Spawn", pPlayer );
}
else
ColorChat( pPlayer, GREY, "^4%s^3, зайдите за какую нибуть команду.", sName );

или это больной бред
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 6.3.2013, 18:24
Сообщение #7


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

cs-portal, проверки жив/мертв нет


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 6.3.2013, 18:31
Сообщение #8


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Почему так у спектов и не определённых нечего не работает?
Скрытый текст
Код
        new userTeam = get_user_team(player)
        
        switch (userTeam)
        {
            case CS_TEAM_CT, CS_TEAM_T:
            {
                if(is_user_alive(id))
                {
                    ColorChat(id, GREY, "^4%s^3, только мёртвые могут воскреснуть!", name)
                }
                else
                {
                    strip_user_weapons(id)
                    ColorChat(id, GREY, "^4%s^3, через^4 5 сек^3. Вы воскреснете!", name)
                    set_task(5.0, "respawn", id)
                }
            }
            case CS_TEAM_SPECTATOR, CS_TEAM_UNASSIGNED:
            {
                ColorChat(id, GREY, "^4%s^3, зайдите за какую нибуть команду.", name)
            }
        }
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.3.2013, 18:38
Сообщение #9


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

strip_user_weapons(id) зачем,если игрок уже мертв ?

Не знаю почему,но так никто не делает.

Замени case CS_TEAM_SPECTATOR, CS_TEAM_UNASSIGNED: на default:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 6.3.2013, 18:39
Сообщение #10


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Это я понял, но вот я хочу именно так, скажи чего так не пашет.
А со стрипом мне нужно чтобы убрало всё оружие при появлении.

Отредактировал: svh0st, - 6.3.2013, 18:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 6.3.2013, 18:45
Сообщение #11


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Цитата(svh0st @ 6.3.2013, 19:39) *
Это я понял, но вот я хочу именно так, скажи чего так не пашет.
А со стрипом мне нужно чтобы убрало всё оружие при появлении.



Почему ты именно так захотел? Давай делать правильно. default это тоже самое,что и else.

Ты стрипаеш оружие,когда игрок мертв и потом пускаеш таск на спавн игрока.

Игрок мертв - > зачем-то мы стрипаем оружие -> возрождаем.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 6.3.2013, 21:40
Сообщение #12


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Потому что вот там всё вообще отдельно и нету дефоулта, а про то я знаю я уже исправил, спс

Вот как вышло, может найдешь ошибки
Код
public respawn_me(id)
{
    new Players[32], name[32], playerCount, i, player
    
    get_players(Players, playerCount, "h")
    
    for (i=0; i<playerCount; i++)
    {
        player = Players[i]
        get_user_name(player, name, 31)
        new userTeam = get_user_team(player)
        
        switch (userTeam)
        {
            case CS_TEAM_CT, CS_TEAM_T:
            {
                if(is_user_alive(id))
                {
                    ColorChat(id, GREY, "^4%s^3, только мёртвые могут воскреснуть!", name)
                }
                else
                {
                    ColorChat(id, GREY, "^4%s^3, через^4 5 сек^3. Вы воскреснете!", name)
                    set_task(5.0, "respawn", id)
                }
            }
            default:
            {
                ColorChat(id, GREY, "^4%s^3, зайдите за какую нибуть команду.", name)
            }
        }
    }
}


Отредактировал: svh0st, - 6.3.2013, 21:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 7.3.2013, 8:30
Сообщение #13


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Up
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 7.3.2013, 10:18
Сообщение #14
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

затея странная


Цитата
а наоборот играет за SPECT или UNASSIGNED


это невозможно впринципе ИГРАТЬ за unnassigned если только через багу с камерами)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 7.3.2013, 15:09
Сообщение #15


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Просто мне нужно как то отловить момент, когда игрок зашел на сервер и выбрал CT или T то его воскреснет, а если за те команды то нечего не происходит.

Отредактировал: svh0st, - 7.3.2013, 15:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 7.3.2013, 18:36
Сообщение #16
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

Цитата(svh0st @ 7.3.2013, 15:09) *
Просто мне нужно как то отловить момент, когда игрок зашел на сервер и выбрал CT или T то его воскреснет, а если за те команды то нечего не происходит.


хукни jointeam

в1м посте ты указал заведомо ложную инфу значит
это разные вещи определить за какую команду игрок ИГРАЕТ и за какую он ЗАХОДИТ
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 7.3.2013, 18:42
Сообщение #17


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

А вот так смотри Андрей
Скрытый текст

Код
public respawn_player(id)
{
    if(get_user_team(id) == 0 || get_user_team(id) == 3)
    {
        ColorChat(id, GREY, "^3Что бы воскреснуть перейдите за какую нибудь команду.")
    }
    else if (get_user_team(id) == 1 || get_user_team(id) == 2)
    {
        ColorChat(id, GREY, "^3Через^4 5 сек^3. Вы возродитесь!")
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 9.3.2013, 10:49
Сообщение #18


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

Парни, как исправить баг.
Плагин
Код
public fw_HamKilled(id)
{
    set_task(0.1, "msgandscan_player", id)
}

public msgandscan_player(id)
{
    if(is_user_connected(id) && !is_user_alive(id))
    {
        switch(cs_get_user_team(id))
        {
            case CS_TEAM_T, CS_TEAM_CT:
            {
                client_print(id, print_chat, "Через 2 сек. Вы возродитесь!")
                set_task(2.0, "respawn_player", id)
            }
            default:
            {
                client_print(id, print_chat, "Что бы воскреснуть перейдите за какую нибудь команду.")
                return
            }
        }
    }
    
    else if(is_user_connected(id) && is_user_alive(id))
    {
        client_print(id, print_chat, "Только мертвые могут возродится!")
        return
    }
}

public respawn_player(id)
{
    spawn(id)
    strip_user_weapons(id)
    give_item(id, "weapon_knife")
}

И когда я возрождаюсь, то бывает что пропадает HP, AP патроны и т д, а и прицел, и как исправить я хз.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 9.3.2013, 11:13
Сообщение #19
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Лучше через HamSandwich спавнить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя svh0st
сообщение 9.3.2013, 11:22
Сообщение #20


Стаж: 16 лет

Сообщений: 275
Благодарностей: 21
Полезность: 81

ещё варианты?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 4 гостей читают эту тему: