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

Отлов поднятия оружия  [Решено]

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

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

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

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

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

Re: Отлов поднятия оружия

Сообщение OtherWorld » 07 дек 2017, 12:05

Не при поднятии, а при добавлении оружия в инвентарь...
Аватара пользователя
OtherWorld
 
Сообщения: 68
Зарегистрирован: 01 сен 2017, 08:41
Благодарил (а): 37 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов поднятия оружия

Сообщение KOTOKU » 07 дек 2017, 12:08

В таком случае, используй Attach функцию. Создаешь хам в Pre отлове и делаешь поиск в 1 слоте по weapon_awp и удаляешь это ентити из инвентаря
Разрабатываю мод "JailBreak" с нуля
Last Update: 0.4 Alpha [01.12.17]
Тестовый IP: 46.174.49.79:27015
Готовность: 80%
Вернулся дописать этот мод :)
Аватара пользователя
KOTOKU
 
Сообщения: 552
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 4 раз.
Поблагодарили: 93 раз.
Опыт программирования: Больше трех лет

Re: Отлов поднятия оружия

Сообщение OtherWorld » 07 дек 2017, 13:41

KOTOKU писал(а):В таком случае, используй Attach функцию. Создаешь хам в Pre отлове и делаешь поиск в 1 слоте по weapon_awp и удаляешь это ентити из инвентаря


а можно как нибудь маркировать полученное оружие? а то один фиг способности суммируются -_-
Аватара пользователя
OtherWorld
 
Сообщения: 68
Зарегистрирован: 01 сен 2017, 08:41
Благодарил (а): 37 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов поднятия оружия

Сообщение KOTOKU » 08 дек 2017, 01:35

Через set_pev(iEntity, pev_iuser1, N)

Что-то типа такого
Код: Выделить всё
#define AWPONE 1
#define AWPTWO 2

public blabla(iEntity)
{
   
set_pev(iEntitypev_iuser1AWPONE)
}

public 
proverka(iEntity)
{
    if(
pev(iEntitypev_iuser1) == AWPONE)
    
// Умелка от первой АВП
    
else if(pev(iEntitypev_iuser1) == AWPTWO)
    
// Умелки от второй АВП
}
 

Вроде получилось объяснить, ты короче задаешь какую то цифру этой АВП и потом по этой цифре ты можешь определять какое авп у тебя в руках
Разрабатываю мод "JailBreak" с нуля
Last Update: 0.4 Alpha [01.12.17]
Тестовый IP: 46.174.49.79:27015
Готовность: 80%
Вернулся дописать этот мод :)
Аватара пользователя
KOTOKU
 
Сообщения: 552
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 4 раз.
Поблагодарили: 93 раз.
Опыт программирования: Больше трех лет

Re: Отлов поднятия оружия

Сообщение OtherWorld » 08 дек 2017, 05:20

"pev_iuser1" именно для этого или...?

Добавлено спустя 30 минут 58 секунд:
Код: Выделить всё

        
new give_awp_id fm_give_item(id,"weapon_awp");
        if(
give_awp_id)
        {
            
set_pev(give_awp_idpev_iuser1WEAPONKEY);
        }
 


вроде так? но на выходе пишет 0 вместо указанного значения :crazy:
Аватара пользователя
OtherWorld
 
Сообщения: 68
Зарегистрирован: 01 сен 2017, 08:41
Благодарил (а): 37 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов поднятия оружия

Сообщение KOTOKU » 08 дек 2017, 07:29

Странно, все должно работать.
Эти параметры используются для хранения каких либо типов значения, но в оружиях эти параметры не передают никакого значения и вы можете использовать данный параметр для хранения своих данных и использовать эти данные в своих целях.

Что у вас в WEAPONKEY?
У вас сток fm_give_item возвращает ентити id?
Разрабатываю мод "JailBreak" с нуля
Last Update: 0.4 Alpha [01.12.17]
Тестовый IP: 46.174.49.79:27015
Готовность: 80%
Вернулся дописать этот мод :)
Аватара пользователя
KOTOKU
 
Сообщения: 552
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 4 раз.
Поблагодарили: 93 раз.
Опыт программирования: Больше трех лет

Re: Отлов поднятия оружия

Сообщение OtherWorld » 08 дек 2017, 07:44

KOTOKU писал(а):Странно, все должно работать.
Эти параметры используются для хранения каких либо типов значения, но в оружиях эти параметры не передают никакого значения и вы можете использовать данный параметр для хранения своих данных и использовать эти данные в своих целях.

Что у вас в WEAPONKEY?
У вас сток fm_give_item возвращает ентити id?


В общем

Код: Выделить всё

        new give_awp_id 
= fm_give_item(id,"weapon_awp");
        if(give_awp_id)
        {
            cs_set_weapon_ammo(give_awp_id, AMMO);
            cs_set_user_bpammo(id, CSW_AWP, BPAMMO);
            
            set_pev
(give_awp_id, pev_iuser1,WEAPONKEY);
            client_print(id,print_chat,"%d",pev(give_awp_id, pev_iuser1));
        }


результат верный

а вот в HAM уже 0
Код: Выделить всё

RegisterHam 
(Ham_Item_AttachToPlayer, "weapon_awp", "ham_item_add",1);


Добавлено спустя 38 секунд:
Код: Выделить всё

public ham_item_add
(item_id,player_id)
{
    
    if
(take_awp[player_id])
    {
        client_print(player_id,print_chat,"%d",pev(item_id, pev_iuser1));

        if(pev(item_id, pev_iuser1) != WEAPONKEY)
            take_awp[player_id] = false;
    }
}
 


Добавлено спустя 2 минуты 33 секунды:
ID ентити одинаковый но результат pev_iuser1 разный :shout:

Добавлено спустя 5 минут 55 секунд:
Код: Выделить всё
#define WEAPONKEY    7  
Аватара пользователя
OtherWorld
 
Сообщения: 68
Зарегистрирован: 01 сен 2017, 08:41
Благодарил (а): 37 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов поднятия оружия

Сообщение артист666 » 08 дек 2017, 07:59

Потому, что вызывается раньше, чем ты его меняешь.
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2457
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 280 раз.
Поблагодарили: 552 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Отлов поднятия оружия

Сообщение OtherWorld » 08 дек 2017, 08:14

артист666 писал(а):Потому, что вызывается раньше, чем ты его меняешь.

как "бороться"?
Аватара пользователя
OtherWorld
 
Сообщения: 68
Зарегистрирован: 01 сен 2017, 08:41
Благодарил (а): 37 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Отлов поднятия оружия

Сообщение артист666 » 08 дек 2017, 08:32

В стоке устанавливать.
Перед
Код: Выделить всё
dllfunc(DLLFunc_Touchentid
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2457
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 280 раз.
Поблагодарили: 552 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Пред.След.

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

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

Сейчас этот форум просматривают: Halyavshik и гости: 3