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

[ZP]: Наличие у игрока определенного оружия !  [Решено]

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

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

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

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

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

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение RSO_ » 02 дек 2019, 21:55

Вы должны зарегистрироваться, чтобы видеть ссылки.
так замени if(equal(weapon_classname, "weapon_usp"))
НА if(equal(weapon_classname, "weapon_deagle"))

Добавлено спустя 12 минут 17 секунд:
а где в меню выдают дигл ?
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 69
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение MrBest » 02 дек 2019, 21:59

Leonidddd писал(а):MrBest, можно через Вы должны зарегистрироваться, чтобы видеть ссылки. проверять


Leonidddd, вы предложили отличный вариант, но он к сожалению не работает .
Все еше жду от вас помощи!
Аватара пользователя
MrBest
 
Сообщения: 29
Зарегистрирован: 25 сен 2019, 16:17
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn , плагины zombie mod

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение RSO_ » 02 дек 2019, 22:03

MrBest,
а где в меню выдают дигл ?
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 69
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение MrBest » 02 дек 2019, 22:06

RSO_ писал(а):MrBest,
а где в меню выдают дигл ?


его никто не выдает!
выдается исключительно native оружие

Добавлено спустя 1 минуту 56 секунд:
native give_weapon_anaconda(id)


zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 15); // Уменьшаем бюджет игрока
give_weapon_anaconda(id); // Выдаем оружие из другого плагина
Аватара пользователя
MrBest
 
Сообщения: 29
Зарегистрирован: 25 сен 2019, 16:17
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn , плагины zombie mod

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение RSO_ » 02 дек 2019, 22:18

Я не знаю :-D
можно методом научного тыка
как я понял дигл выдоёт с другого плагина. что ты делаешь для того чтобы его получить

найди где он выдоётся. выведи в чат "111111111111111111111"

например
Код: Выделить всё
public native_give_weapon_add(id)
{
    
client_print(idprint_chat"111111111111111111111")
    
    
give_anaconda(id)
}  
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 69
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение Leonidddd » 02 дек 2019, 22:49

игрок купил Deagle ( то есть у него он есть на руках ) и потом еще раз заходит в магазин и выбирает Deagle
Вывод в чат: " у вас уже есть Deagle "

Проверка чисто на дигл примерно такая:
Код: Выделить всё
if(user_has_weapon(id, CSW_DEAGLE)) return client_print(id, print_center, "У вас уже есть дигл"); 


А если покупает "Usp" при наличии "Deagle" то "Deagle" просто выбрасывается а "Usp" остается в руках ! 

Полагаю, вам нужна проверка имнно на вторичные оружия(пистолеты), тогда нужно что-то на подобии:
Код: Выделить всё
const m_rgpPlayerItems_CBasePlayer[6] = {367,368,...};


Код: Выделить всё
HasUserWeaponSlot(id, slot)
{
    return get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer[slot]) > 0;
}


Вы должны зарегистрироваться, чтобы видеть ссылки.
Если же нет, то вариант как с диглом вам подойдет.

P.S. В Reapi все гораздо проще с этим, можете заглянуть в исходники.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2404
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 673 раз.

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение MrBest » 02 дек 2019, 23:03

Leonidddd писал(а):
игрок купил Deagle ( то есть у него он есть на руках ) и потом еще раз заходит в магазин и выбирает Deagle
Вывод в чат: " у вас уже есть Deagle "

Проверка чисто на дигл примерно такая:
Код: Выделить всё
if(user_has_weapon(id, CSW_DEAGLE)) return client_print(id, print_center, "У вас уже есть дигл"); 


А если покупает "Usp" при наличии "Deagle" то "Deagle" просто выбрасывается а "Usp" остается в руках ! 

Полагаю, вам нужна проверка имнно на вторичные оружия(пистолеты), тогда нужно что-то на подобии:
Код: Выделить всё
const m_rgpPlayerItems_CBasePlayer[6] = {367,368,...};


Код: Выделить всё
HasUserWeaponSlot(id, slot)
{
    return get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer[slot]) > 0;
}


Вы должны зарегистрироваться, чтобы видеть ссылки.
Если же нет, то вариант как с диглом вам подойдет.

P.S. В Reapi все гораздо проще с этим, можете заглянуть в исходники.


Leonidddd, ну все так . Просто у меня оружие не deagle а нативный пистолет , скидывал уже исход . Сейчас попробую , может будет робить так

Добавлено спустя 1 минуту 46 секунд:
RSO_ писал(а):Я не знаю :-D
можно методом научного тыка
как я понял дигл выдоёт с другого плагина. что ты делаешь для того чтобы его получить

найди где он выдоётся. выведи в чат "111111111111111111111"

например
Код: Выделить всё
public native_give_weapon_add(id)
{
    client_print(id, print_chat, "111111111111111111111")
    
    give_anaconda
(id)
}


Конечно так , только без функций а просто вывод сообщения будет при выдаче
Аватара пользователя
MrBest
 
Сообщения: 29
Зарегистрирован: 25 сен 2019, 16:17
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn , плагины zombie mod

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение Leonidddd » 02 дек 2019, 23:04

MrBest, нэтивный пистолет ведь просто заменяет дигл, по-сути, класснейм тот же, можно добавить проверку на то, что у игрока есть именно этот *особый* пистолет булевой переменной. Хукать смерть игрока/дроп оружия и ресать переменную.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2404
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 673 раз.

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение MrBest » 02 дек 2019, 23:12

Leonidddd писал(а):MrBest, нэтивный пистолет ведь просто заменяет дигл, по-сути, класснейм тот же, можно добавить проверку на то, что у игрока есть именно этот *особый* пистолет булевой переменной. Хукать смерть игрока/дроп оружия и ресать переменную.


Хорошо сказано , можно расписать? :-D
Да плагин с нативным пистолетом заменят дигл "СSW_DEAGLE" только так не работает к сожалению , кс все таки думает что это не дигл
Аватара пользователя
MrBest
 
Сообщения: 29
Зарегистрирован: 25 сен 2019, 16:17
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn , плагины zombie mod

Re: [ZP]: Наличие у игрока определенного оружия !

Сообщение Leonidddd » 02 дек 2019, 23:25

MrBest, в том плагине есть проверка на наличие данного оружия g_has_anaconda[33];
Нужно просто создать нэтив на проверку переменно и добавить в плагин, где нужно проверить, если ли у игрока это оружие.
в register_native:

Код: Выделить всё
register_native("zp_has_user_anaconda",            "_zp_has_user_anaconda", true); 


создаем ф-цию:
Код: Выделить всё
public _zp_has_user_anaconda(id) return g_has_anaconda[id]; 


и уже использовать эту проверку в других плагинах добавив в подключаемый инклуд строку
Код: Выделить всё
native zp_has_user_anaconda(id); 
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2404
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 185 раз.
Поблагодарили: 673 раз.

Пред.След.

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

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

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