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

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

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

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

Прокачка своего раздатчика до 2 уровня

Статус пользователя User91893452
сообщение 17.11.2021, 14:26
Сообщение #1
Стаж: 4 года 5 месяцев
Город: Украина

Сообщений: 23
Благодарностей: 3
Полезность: 99

Подскажите куда и какую вставить проверку чтобы по флагу t можно было прокачивать свой раздатчик до 2 уровня


Код:
public fw_DispenserTouch ( ent, id )
{
if ( !pev_valid ( ent ) )
return

if ( !is_user_connected ( id ) || !is_user_alive ( id ) )
return

if ( pev ( ent, pev_iuser3 ) > 1 )
return

if ( pev ( ent, pev_iuser4 ) != _:cs_get_user_team ( id ) )
return

new iOwner = pev ( ent, pev_iuser2 )

if ( iOwner == id )
return

new money = cs_get_user_money ( id )
if ( money < DISPENSER_UPGCOST)
return

set_pev ( ent, pev_iuser3, 2 )
set_pev ( ent, pev_health, float ( DISPENSER_HP_2 ) )
engfunc( EngFunc_SetModel, ent, gDispenserMdl2 )
engfunc( EngFunc_SetSize, ent, Float:{ -20.0, -10.0, 0.0 }, Float:{ 20.0, 10.0, 67.0 } )
emit_sound( ent, CHAN_STATIC, gDispenserActive, VOL_NORM, ATTN_NORM, 0, PITCH_NORM )

if ( !is_user_connected ( iOwner ) )
return


cs_set_user_money(id, money - DISPENSER_UPGCOST)


new sUpgraderName[32]
get_user_name ( id, sUpgraderName, charsmax ( sUpgraderName ) )
client_print ( iOwner, print_center, "%s прокачал твой раздатчик до уровня 2", sUpgraderName )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 19.11.2021, 1:05
Сообщение #2


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

User91893452, перед
Код
if ( money < DISPENSER_UPGCOST)
     return

Проверить на наличие флага.
Пример проверки я тебе писал в другой теме, там даже флаг тот, что хочешь есть

Отредактировал: ThePhoenix, - 19.11.2021, 1:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя User91893452
сообщение 19.11.2021, 1:27
Сообщение #3
Стаж: 4 года 5 месяцев
Город: Украина

Сообщений: 23
Благодарностей: 3
Полезность: 99

ThePhoenix,

Код:

new money = cs_get_user_money ( id )
if(~get_user_flags(id) & ADMIN_BAN)
if ( money < DISPENSER_UPGCOST)
return


Так ведь? я так делал
без изменений, только тиммейт качает

или я туплю))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 20.11.2021, 0:03
Сообщение #4


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

User91893452, Во-первых флаг доступа не тот, взял не совсем ту строчку + надо добавить после
Код
if(~get_user_flags(id)


Код
return


Код
if(~get_user_flags(id) & ADMIN_LEVEL_H) return;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя User91893452
сообщение 29.12.2021, 15:43
Сообщение #5
Стаж: 4 года 5 месяцев
Город: Украина

Сообщений: 23
Благодарностей: 3
Полезность: 99

ThePhoenix,
Спасибо, разобрался)

еще вопрос не по теме прокачки

Как реализовать ремонт раздатчика на клавишу перезарядки R оружия (или на другую доступную кнопку T, F, G ) , при условии если прицел наведен на раздатчик

у меня есть такой вариант ремонта (через меню)
Код:
 register_clcmd( "hdisp", "HealDispenserdMY" )


сам код исцеления

Код:
public HealDispenserdMY( id ) 
{
if( !is_user_alive( id ))
{
ChatColor ( id, "^3[^4ИНФО^3]^1 Вы мертвы!")
return PLUGIN_CONTINUE
}

if( !bDispenserBuild[ id ] )
{
ChatColor ( id, "^3[^4ИНФО^3]^1 Раздатчик не установлен!")
return PLUGIN_HANDLED
}

new iMoney = cs_get_user_money( id )


if( iMoney < COST_HEAL_MY )
{
ChatColor ( id, "^3[^4ИНФО^3]^1 У вас не достаточно средств! Нужно: ^3(^4 %d ^3)", COST_HEAL_MY )
return PLUGIN_HANDLED
}

new iEnt = FM_NULLENT
new Float:iHealth = float( DISPENSER_HP_1 )
if( ( iEnt = find_ent_by_model( iEnt,gDispenserClassname, gDispenserMdl ) ) )
{
set_pev( iEnt, pev_health, iHealth )
}
else if ( ( iEnt = find_ent_by_model( iEnt,gDispenserClassname, gDispenserMdl2 ) ) ) {
new Float:iHealth = float( DISPENSER_HP_2 )
set_pev( iEnt, pev_health, iHealth )
}

cs_set_user_money( id, iMoney - COST_HEAL_MY, 1 )
ChatColor ( id, "^3[^4Информация^3]^1 Вы исцелили раздатчик!" )
return PLUGIN_HANDLED
}


А то с меню он лечит раздатчик когда ты на другом конце карты, хотелось бы чтобы только рядом с ним возможен был ремонт

Отредактировал: User91893452, - 29.12.2021, 15:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: