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

Как сделать смену позиций после выстрела?  [Решено]

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

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

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

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

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

Как сделать смену позиций после выстрела?

Сообщение T1K TaK » 22 фев 2017, 15:58

*От атакующего - в убегающего*
*От убегающего - в атакующего*

Добавил 7 пункт в выбор дуэли "На калашах". Но дуэль что то моросит :(


Скидываю то, где вводил изменения.


1)

    
Код: Выделить всё
/* -> Битсуммы, переменные и массивы для работы с дуэлями -> */
new g_iDuelStatus, g_iDuelType, g_iBitUserDuel, g_iDuelUsersId[2], g_iDuelNames[2][32], g_iDuelCountDown, g_iDuelTimerAttack;
new const g_iDuelLang[][] =
{
    "",
    "JBE_ALL_HUD_DUEL_DEAGLE",
    "JBE_ALL_HUD_DUEL_M3",
    "JBE_ALL_HUD_DUEL_HEGRENADE",
    "JBE_ALL_HUD_DUEL_M249",
    "JBE_ALL_HUD_DUEL_AWP",
    "JBE_ALL_HUD_DUEL_KNIFE",
    "JBE_ALL_HUD_DUEL_AK47"
}; 


2)

Код: Выделить всё
    register_menucmd(register_menuid("Show_ChoiceDuelMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<8|1<<9), "Handle_ChoiceDuelMenu");


3)

Код: Выделить всё
Show_ChoiceDuelMenu(id)
{
    if(IsNotSetBit(g_iBitUserAlive, id) || id != g_iLastPnId) return PLUGIN_HANDLED;
    jbe_informer_offset_up(id);
    new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\y%L^n^n", id, "JBE_MENU_CHOICE_DUEL_TITLE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[1] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_DEAGLE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[2] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_M3");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[3] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_HEGRENADE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[4] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_M249");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[5] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_AWP");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[6] \w%L^n", id, "JBE_MENU_CHOICE_DUEL_KNIFE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[7] \w%L^n^n", id, "JBE_MENU_CHOICE_DUEL_AK47");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[9] \w%L", id, "JBE_MENU_BACK");
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[0] \w%L", id, "JBE_MENU_EXIT");
    return show_menu(id, (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<8|1<<9), szMenu, -1, "Show_ChoiceDuelMenu");
}

public Handle_ChoiceDuelMenu(id, iKey)
{
    if(IsNotSetBit(g_iBitUserAlive, id) || id != g_iLastPnId) return PLUGIN_HANDLED;
    switch(iKey)
    {
        case 0:
        {
            g_iDuelType = 1;
            return Cmd_DuelUsersMenu(id);
        }
        case 1:
        {
            g_iDuelType = 2;
            return Cmd_DuelUsersMenu(id);
        }
        case 2:
        {
            g_iDuelType = 3;
            return Cmd_DuelUsersMenu(id);
        }
        case 3:
        {
            g_iDuelType = 4;
            return Cmd_DuelUsersMenu(id);
        }
        case 4:
        {
            g_iDuelType = 5;
            return Cmd_DuelUsersMenu(id);
        }
        case 5:
        {
            g_iDuelType = 6;
            return Cmd_DuelUsersMenu(id);
        }
        case 6:
        {
            g_iDuelType = 7;
            return Cmd_DuelUsersMenu(id);
        }
        case 8: return Show_LastPrisonerMenu(id);
    }
    return PLUGIN_HANDLED;
}


4)

Код: Выделить всё
jbe_duel_start()
{
    g_iDuelStatus = 2;
    switch(g_iDuelType)
    {
        case 1:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_deagle");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_DEAGLE, 100);
            set_pev(g_iDuelUsersId[0], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            set_task(1.0, "jbe_duel_timer_attack", g_iDuelUsersId[0]+TASK_DUEL_TIMER_ATTACK, _, _, "a", g_iDuelTimerAttack = 11);
            fm_give_item(g_iDuelUsersId[1], "weapon_deagle");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_DEAGLE, 100);
            set_pev(g_iDuelUsersId[1], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
            set_pdata_float(g_iDuelUsersId[1], m_flNextAttack, 11.0, linux_diff_player);
        }
        case 2:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_m3");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_M3, 100);
            set_pev(g_iDuelUsersId[0], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            set_pdata_float(get_pdata_cbase(g_iDuelUsersId[0], m_pActiveItem), m_flNextSecondaryAttack, get_gametime() + 11.0, linux_diff_weapon);
            set_task(1.0, "jbe_duel_timer_attack", g_iDuelUsersId[0]+TASK_DUEL_TIMER_ATTACK, _, _, "a", g_iDuelTimerAttack = 11);
            fm_give_item(g_iDuelUsersId[1], "weapon_m3");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_M3, 100);
            set_pev(g_iDuelUsersId[1], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
            set_pdata_float(g_iDuelUsersId[1], m_flNextAttack, 11.0, linux_diff_player);
        }
        case 3:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_hegrenade");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_HEGRENADE, 100);
            set_pev(g_iDuelUsersId[0], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            fm_give_item(g_iDuelUsersId[1], "weapon_hegrenade");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_HEGRENADE, 100);
            set_pev(g_iDuelUsersId[1], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
        }
        case 4:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_m249");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_M249, 200);
            set_pev(g_iDuelUsersId[0], pev_health, 506.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            fm_give_item(g_iDuelUsersId[1], "weapon_m249");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_M249, 200);
            set_pev(g_iDuelUsersId[1], pev_health, 506.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
        }
        case 5:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_awp");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_AWP, 100);
            set_pev(g_iDuelUsersId[0], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            set_pdata_float(get_pdata_cbase(g_iDuelUsersId[0], m_pActiveItem), m_flNextSecondaryAttack, get_gametime() + 11.0, linux_diff_weapon);
            set_task(1.0, "jbe_duel_timer_attack", g_iDuelUsersId[0]+TASK_DUEL_TIMER_ATTACK, _, _, "a", g_iDuelTimerAttack = 11);
            fm_give_item(g_iDuelUsersId[1], "weapon_awp");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_AWP, 100);
            set_pev(g_iDuelUsersId[1], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
            set_pdata_float(g_iDuelUsersId[1], m_flNextAttack, 11.0, linux_diff_player);
        }
        case 6:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_knife");
            set_pev(g_iDuelUsersId[0], pev_health, 150.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            fm_give_item(g_iDuelUsersId[1], "weapon_knife");
            set_pev(g_iDuelUsersId[1], pev_health, 150.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
        }
        case 7:
        {
            fm_give_item(g_iDuelUsersId[0], "weapon_ak47");
            fm_set_user_bpammo(g_iDuelUsersId[0], CSW_AK47, 100);
            set_pev(g_iDuelUsersId[0], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[0], "item_assaultsuit");
            set_task(1.0"jbe_duel_timer_attack"g_iDuelUsersId[0]+TASK_DUEL_TIMER_ATTACK__"a"g_iDuelTimerAttack 11);
            fm_give_item(g_iDuelUsersId[1], "weapon_ak47");
            fm_set_user_bpammo(g_iDuelUsersId[1], CSW_AK47, 100);
            set_pev(g_iDuelUsersId[1], pev_health, 100.0);
            fm_give_item(g_iDuelUsersId[1], "item_assaultsuit");
            set_pdata_float(g_iDuelUsersId[1], m_flNextAttack, 11.0, linux_diff_player);
        }
    }
}


Что здесь не так?

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

Добавлено спустя 4 минуты 41 секунду:
Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
T1K TaK
 
Сообщения: 40
Зарегистрирован: 16 дек 2016, 20:13
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: Как сделать смену позиций после выстрела?  [Решено]

Сообщение Pafos » 22 фев 2017, 21:36

T1K TaK,
Код: Выделить всё
public Ham_ItemPrimaryAttack_Post(iEntity

в кейсы вставить еще значение 7. case 2 , 5 , 7:
Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


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

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

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