Все вопросы по работе и настройке AMXX и его плагинов.
Модератор: liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.
vlad1997450 » 07 фев 2019, 17:55
Всем привет. Такой банальный вопрос: как сделать, чтобы при активации опреденной модели ножа, сам нож доставался ещё раз, чтобы активировалась способность ножа, а не просто поменялся скин?
- Код: Выделить всё
public knifemenu(id, key) {
switch(key)
{
case 0:
{
if(get_user_flags(id) & ADMIN_LEVEL_E){
SetKnife(id , 4)
ChatColor(id, "%s ^1Ты выбрал ^3Админ-нож", PREFIX)
effect_screen(id)
}
else
{
display_knife(id)
return PLUGIN_HANDLED
}
}
case 1:{
SetKnife(id , 2)
ChatColor(id, "%s ^1Ты выбрал нож со способностью: ^3Не слышно шагов", PREFIX)
effect_screen(id)
}
case 2:{
SetKnife(id , 3)
ChatColor(id, "%s ^1Ты выбрал нож со способностью: ^3Скорость", PREFIX)
effect_screen(id)
}
case 3:{
SetKnife(id , 1)
ChatColor(id, "%s ^1Ты выбрал нож со способностью: ^3Гравитация", PREFIX)
effect_screen(id)
}
case 4:{
SetKnife(id , 0)
ChatColor(id, "%s ^1Ты выбрал нож со способностью: ^3Регенерация HP", PREFIX)
effect_screen(id)
}
case 5:{
SetKnife(id , 5)
ChatColor(id, "%s ^1Ты выбрал нож со способностью: ^3Двойной урон", PREFIX)
effect_screen(id)
}
default:
{
SetKnife(id , 1)
}
}
SaveData(id)
return PLUGIN_HANDLED
}
public SetKnife(id , Knife) {
knife_model[id] = Knife
new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
if ( Weapon != CSW_KNIFE )
return PLUGIN_HANDLED
new vModel[56],pModel[56]
switch(Knife)
{
case 0: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/v_knife.mdl")
}
case 1: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/just_guns/knife/v_fantom.mdl")
format(pModel,55,"models/just_guns/knife/p_fantom.mdl")
}
case 2: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/just_guns/knife/v_tixon.mdl")
format(pModel,55,"models/just_guns/knife/p_tixon.mdl")
}
case 3: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/just_guns/knife/v_dagger.mdl")
format(pModel,55,"models/just_guns/knife/p_dagger.mdl")
}
case 4: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/just_guns/knife/v_adm_knife.mdl")
format(pModel,55,"models/just_guns/knife/p_adm_knife.mdl")
}
case 5: {
give_item( id, "weapon_knife" );
format(vModel,55,"models/just_guns/knife/v_light.mdl")
format(pModel,55,"models/just_guns/knife/p_light.mdl")
}
}
entity_set_string(id, EV_SZ_viewmodel, vModel)
entity_set_string(id, EV_SZ_weaponmodel, pModel)
return PLUGIN_HANDLED;
}
Skype: vlad1997450
-
vlad1997450
-
- Сообщения: 194
- Зарегистрирован: 01 дек 2012, 12:08
- Благодарил (а): 31 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше месяца
- Языки программирования: Counter-Strike 1.6
flymic24 » 07 фев 2019, 18:45
vlad1997450, После смены моделей нужно принудительно вызвать Ham_Item_Deploy для ножа
-
flymic24
-
- Сообщения: 209
- Зарегистрирован: 05 окт 2012, 17:29
- Откуда: Bryansk
- Благодарил (а): 4 раз.
- Поблагодарили: 76 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
vlad1997450 » 07 фев 2019, 18:56
flymic24 писал(а):vlad1997450, После смены моделей нужно принудительно вызвать Ham_Item_Deploy для ножа
Можешь написать это в виде кода, пожалуйста?
Skype: vlad1997450
-
vlad1997450
-
- Сообщения: 194
- Зарегистрирован: 01 дек 2012, 12:08
- Благодарил (а): 31 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше месяца
- Языки программирования: Counter-Strike 1.6
flymic24 » 07 фев 2019, 20:53
- Код: Выделить всё
new iItem = get_pdata_cbase(id, 373, 5);
if(iItem && get_pdata_int(iItem, 43, 4) = CSW_KNIFE) {
ExecuteHamB(Ham_Item_Deploy, iItem);
}
-
flymic24
-
- Сообщения: 209
- Зарегистрирован: 05 окт 2012, 17:29
- Откуда: Bryansk
- Благодарил (а): 4 раз.
- Поблагодарили: 76 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
-
vlad1997450 » 07 фев 2019, 21:25
flymic24 писал(а):- Код: Выделить всё
new iItem = get_pdata_cbase(id, 373, 5);
if(iItem && get_pdata_int(iItem, 43, 4) = CSW_KNIFE) {
ExecuteHamB(Ham_Item_Deploy, iItem);
}
Не компилируется
Скорее всего я коряво вставил...
Skype: vlad1997450
-
vlad1997450
-
- Сообщения: 194
- Зарегистрирован: 01 дек 2012, 12:08
- Благодарил (а): 31 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше месяца
- Языки программирования: Counter-Strike 1.6
KOTOKU » 07 фев 2019, 22:23
include небось забыли
-
KOTOKU
-
- Сообщения: 766
- Зарегистрирован: 10 фев 2013, 00:53
- Благодарил (а): 10 раз.
- Поблагодарили: 117 раз.
NightFury » 08 фев 2019, 01:07
give_item( id, "weapon_knife" );//wtf?
Запиши модели в глобалку и меня в деплое
New g_Knife[NUM][MODELV][MODELP][PLAYERS]
А то одни свичи с одинаковым кодом...
Добавлено спустя 2 минуты 36 секунд:
В меню где выбралась модель проверяешь что в руках, если нож отправляешь деплой
Подпись: NightFury/406
Поддержка: vk.com/mashakrylova406
-
NightFury
-
- Сообщения: 85
- Зарегистрирован: 10 авг 2016, 12:22
- Благодарил (а): 8 раз.
- Поблагодарили: 24 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn, C, C++
vlad1997450 » 08 фев 2019, 06:45
NightFury писал(а):give_item( id, "weapon_knife" );//wtf?
Запиши модели в глобалку и меня в деплое
New g_Knife[NUM][MODELV][MODELP][PLAYERS]
А то одни свичи с одинаковым кодом...
Добавлено спустя 2 минуты 36 секунд:
В меню где выбралась модель проверяешь что в руках, если нож отправляешь деплой
У меня очень маленький опыт скриптинга. Не могли бы вы показать как это сделать на моём коде, пожалуйста?
Skype: vlad1997450
-
vlad1997450
-
- Сообщения: 194
- Зарегистрирован: 01 дек 2012, 12:08
- Благодарил (а): 31 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Меньше месяца
- Языки программирования: Counter-Strike 1.6
NightFury » 08 фев 2019, 17:23
- Код: Выделить всё
enum _:ModelID
{
mView,
mWeapon
}
enum _:KnifeID
{
KNIFE1,
KNIFE2,
KNIFE3,
KNIFE4
}
new g_KnifeID[33]
new const g_Models[KnifeID][ModelID][] =
{
{"models/v_axe1.mdl", "models/p_axe1.mdl"},
{"models/v_axe2.mdl", "models/p_axe2.mdl"},
{"models/v_axe3.mdl", "models/p_axe3.mdl"},
{"models/v_axe4.mdl", "models/p_axe4.mdl"}
}
public plugin_init()
{
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_KnifeDeployPost", 1)
}
public plugin_precache()
{
for(new i; i < KnifeID; i++)
{
precache_model(g_Models[i][mView])
precache_model(g_Models[i][mWeapon])
}
}
public fw_KnifeDeployPost(entity)
{
entity_set_string(player, EV_SZ_viewmodel, g_Models[g_KnifeID[player]][mView])
entity_set_string(player, EV_SZ_weaponmodel, g_Models[g_KnifeID[player]][mWeapon])
}
Добавлено спустя 24 минуты 27 секунд:- Код: Выделить всё
new const g_Names[KnifeID][] =
{
"ножик 1",
"ножик 2",
"ножик 3",
"ножик 4"
}
public ShowKnifeMenu(player)
{
new menu = menu_create("Выбор ножа", "HandlerKnifeMenu"), szStr[2]
for(new i; i < KnifeID; i++)
{
num_to_str(i, szStr, charsmax(szStr))
menu_additem(menu, g_Names[g_KnifeID[player]], szStr)
}
menu_display(id, menu)
}
public HandlerKnifeMenu(player, menu, id)
{
if(id == MENU_EXIT) return menu_destroy(menu)
new szStr[2], access
menu_item_getinfo(menu, id, access, szStr, 2, _, _, access)
g_KnifeID[player] = str_to_num(szStr)
return menu_destroy(menu)
}
Подпись: NightFury/406
Поддержка: vk.com/mashakrylova406
-
NightFury
-
- Сообщения: 85
- Зарегистрирован: 10 авг 2016, 12:22
- Благодарил (а): 8 раз.
- Поблагодарили: 24 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn, C, C++
Вернуться в Вопросы по AMXX и его плагинам
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и гости: 6