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

Условие "БОЛЬШЕ или МЕНЬШЕ"

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

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

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

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

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

Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение ilya9754 » 14 дек 2017, 17:29

Всем Здравия. как сделать что бы при условии, если у Человека больше 3000$ Кт Выдавалось "М4А1" а ТТ "АК-47" , а при условии если меньше 3000$ выдавалось мп 5, пробывал ниже, не получилось.


Код: Выделить всё
public auto_buy(id
{
        if(
cs_get_user_money(id) < 3000  MENU_EXIT || get_systime() > g_MenuActive || get_user_team(id) == 1) {
        
        {
                 
client_print(idprint_center"Время закупки вышло")
                         return 
PLUGIN_HANDLED;
             }
         
            
cs_set_user_money(idcs_get_user_money(id) - 3000)
                           
give_item(id"weapon_ak47")
            }
            else 
        if(
cs_get_user_money(id) < 3000  MENU_EXIT || get_systime() > g_MenuActive || get_user_team(id) == 2) {
        
        {
                 
client_print(idprint_center"Время закупки вышло")
                         return 
PLUGIN_HANDLED;
             }
         
            
cs_set_user_money(idcs_get_user_money(id) - 3000)
                           
give_item(id"weapon_ak47")
    
    }    
    else 
    if(
cs_get_user_money(id) < !3000  MENU_EXIT || get_systime() > g_MenuActive) {
        
        {
                 
client_print(idprint_center"Время закупки вышло или нет денег")
                         return 
PLUGIN_HANDLED;
             }
         
            
cs_set_user_money(idcs_get_user_money(id) - 1400)
                           
client_cmd(id"weapon_mp5")
                  
cs_set_user_bpammo(idCSW_MP5NAVY120)  
    
    }    
    
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение Subb98 » 14 дек 2017, 18:04

Код: Выделить всё
new iMoney cs_get_user_money(id);
new 
CsTeams:iTeam cs_get_user_team(id);

if(
iMoney 3000) {
    switch(
iTeam) {
        case 
CS_TEAM_T: {
            
// give AK-47
        
}
        case 
CS_TEAM_CT: {
            
// give M4A1
        
}
    }
} else {
    
// give MP5
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение ilya9754 » 14 дек 2017, 18:24

а как сделать сообщение при "НЕУДАЧЕ"

Код: Выделить всё
client_print(idprint_center"Время закупки вышло или у вас ещё уже это оружие."
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение Subb98 » 14 дек 2017, 20:24

В начало функции добавить:

Код: Выделить всё
if(get_systime() > g_MenuActive) {
    
client_print(idprint_center"Время закупки истекло");
    return 
PLUGIN_HANDLED;

И я бы рекомендовал заменить get_systime на get_gametime.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение ilya9754 » 14 дек 2017, 20:30

а чем отличается ?

Добавлено спустя 3 минуты 54 секунды:
ввёл переменную какторую вы скзалаи и получил ошибку "Error: Must be a constant expression; assumed zero on line 26"

new iMoney = cs_get_user_money(id);
new CsTeams:iTeam = cs_get_user_team(id);
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение Subb98 » 14 дек 2017, 20:32

Попробуйте без переменных:

Код: Выделить всё
if(cs_get_user_money(id) > 3000) {
    switch(
cs_get_user_team(id)) {
        case 
CS_TEAM_T: {
            
// give AK-47
        
}
        case 
CS_TEAM_CT: {
            
// give M4A1
        
}
    }
} else {
    
// give MP5
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение ilya9754 » 14 дек 2017, 21:13

Код: Выделить всё
if(cs_get_user_money(id) > 3000 || if(get_systime() > g_MenuActive) {
    
client_print(idprint_center"Время закупки истекло");
    return 
PLUGIN_HANDLED;{
    switch(
cs_get_user_team(id)) {
        case 
CS_TEAM_T: {
            
// give AK-47
        
}
        case 
CS_TEAM_CT: {
            
// give M4A1
        
}
    }
} else {
    
// give MP5
}  


А как ещё туда запихать условие неудачной покупки? что то не так)
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение Subb98 » 14 дек 2017, 21:16

ilya9754, даже не знаю, что вам посоветовать. У меня впечатление, как будто вы до конца не понимаете, как работают условия. Вам нужно почитать основы.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение ilya9754 » 14 дек 2017, 21:39

Да я понимаю. просто не пойму как совмести несколько условий что бы работали ,

Код: Выделить всё
public auto_buy(id
{
    
if(
cs_get_user_money(id) > 3000 || get_systime() > g_MenuActive){
    
client_print(idprint_center"Время закупки истекло");
    return 
PLUGIN_HANDLED;{
{
    switch(
cs_get_user_team(id)) {
        case 
CS_TEAM_T: {
            
// give AK-47
        
}
        case 
CS_TEAM_CT: {
            
// give M4A1
        
}
    }
} else {
    
// give MP5




подчёркивает "ЕСЛИ" и что то не доходит как исправить.
Аватара пользователя
ilya9754
 
Сообщения: 228
Зарегистрирован: 20 дек 2011, 19:05
Благодарил (а): 28 раз.
Поблагодарили: 6 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Условие "БОЛЬШЕ или МЕНЬШЕ"

Сообщение xbass13 » 14 дек 2017, 23:03

Код: Выделить всё
public auto_buy(id
{
    
//время закупки кончилось
    
if (get_gametime() > g_MenuActive)
    {
        
client_print(idprint_center"Время закупки истекло");
        return 
PLUGIN_HANDLED
    
}
    
//Закупка еще идет
    //выдаем стволы в соответствии с наличием денег
    
    
new money cs_get_user_money(id)
    
    if(
money >= 3000)
    {
        
cs_set_user_money(idmoney 3000)
        
//проверка кт или тт
        
switch(cs_get_user_team(id))
        {
            case 
CS_TEAM_T: {
                
give_item(id"weapon_ak47")
                
cs_set_user_bpammo(idCSW_AK4790)
            }
            case 
CS_TEAM_CT: {
                
give_item(id"weapon_m4a1")
                
cs_set_user_bpammo(idCSW_M4A190)
            }
        }
    }
    else
    if(
money >= 1400)
    {
        
cs_set_user_money(idmoney 1400)
        
give_item(id"weapon_mp5")
        
cs_set_user_bpammo(idCSW_MP5NAVY120)
    }
    else
        
client_print(idprint_center"Мало $");

    return 
PLUGIN_HANDLED
}
 
Аватара пользователя
xbass13
 
Сообщения: 96
Зарегистрирован: 13 июн 2012, 21:20
Благодарил (а): 36 раз.
Поблагодарили: 35 раз.
Опыт программирования: Больше трех лет
Языки программирования: pawn, c++, js, php


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

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

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 6