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

Не всем присваиваются биты

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

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

Не всем присваиваются биты

Сообщение Xelson » 24 июл 2016, 21:48

Есть такой код:
Код: Выделить всё
public cmd_box(idiTypeOn)
{
    if(
g_iGameMode || IsNotSetBit(g_Simonid)) return PLUGIN_HANDLED 
    
new iPlayers[32], iNumplayer
    get_players
(iPlayersiNum)
    switch(
On)
    {
        case 
1:
        {
            if(
g_TeamAlive[CS_TEAM_T] > 1)
            {
                switch(
iType)
                {
                    case 
0: for(new iiNum+1i++)
                    {
                        
player iPlayers[i]
                        if(
IsSetBit(g_PlayerAliveplayer) && cs_get_user_team(player) == CS_TEAM_Tfm_set_user_health(player100)
                    }
                    case 
1:
                    {
                        for(new 
iiNum+1i++)
                        {
                            
player iPlayers[i]
                            if(
IsSetBit(g_PlayerAliveplayer) && cs_get_user_team(player) == CS_TEAM_T && (IsNotSetBit(g_PlayerWantedplayer) || IsNotSetBit(g_PlayerRevoltplayer)))
                            {
                                
SetBit(g_PlayerBoxeri)
                                
fm_set_user_health(i100)
                                for(new 
isizeof use_buttoni++) EnableHamForward(use_button[i])
                            }
                        }
                    }
                }
                
player_hudmessage(013.0_"Начался %s бокс!"iType "честный" "нечестный")
                
ChatColor(0"!g[JBE] !yНачался %s бокс!"iType "честный" "нечестный")
                
set_cvar_num("mp_tkpunish"0)
                
set_cvar_num("mp_friendlyfire"1)
                
g_BoxStarted 1
            
}
            else 
ChatColor(id"!g[JBE] !yНевозможно начать бокс, так как слишком мало зеков.")    
        }
        case 
0:
        {
            for(new 
iiNum+1i++) 
            {
                
player iPlayers[i]
                if(
IsSetBit(g_PlayerBoxerplayer)) ClearBit(g_PlayerBoxerplayer)
            }
            
set_cvar_num("mp_tkpunish"1)
            
set_cvar_num("mp_friendlyfire"0)
            
g_BoxStarted 0
            
for(new isizeof use_buttoni++) DisableHamForward(use_button[i])
            
player_hudmessage(013.0_"Бокс был окончен!")
            
ChatColor(0"!g[JBE] !yБокс был окончен")
        }
    }
    return 
PLUGIN_HANDLED


С помощью функции:
Код: Выделить всё
public cmd_targetbit(id)
{
    new 
iEntiBody
    get_user_aiming
(idiEntiBody)
    
client_print(idprint_chat"id %d, bit %d"iEntIsSetBit(g_PlayerBoxeriEnt))

Пробежался по всем игрокам и понял, что не всем выдаётся значение больше 1, а цикл проходит по всем игрокам, и условиям они соответствуют. В чем может быть загвоздка?
Аватара пользователя
Xelson
 
Сообщения: 365
Зарегистрирован: 06 мар 2016, 14:41
Откуда: Беларусь
Благодарил (а): 16 раз.
Поблагодарили: 46 раз.
Опыт программирования: Больше трех лет

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

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 9