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

Отловить выдергивание чеки с гранат  [Решено]

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

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

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

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

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

Re: Отловить выдергивание чеки с гранат

Сообщение hren_morjovui » 12 июл 2018, 21:27

Vaqtincha писал(а):hren_morjovui, а что неработает у тебя ?


да мне просто нужно выбросить гранату сразу при нажатии IN_ATTACK
Аватара пользователя
hren_morjovui
 
Сообщения: 20
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Отловить выдергивание чеки с гранат

Сообщение Vaqtincha » 12 июл 2018, 21:30

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

Добавлено спустя 2 минуты 53 секунды:
тогда убрать все проверки и оставить идле
Аватара пользователя
Vaqtincha
 
Сообщения: 68
Зарегистрирован: 28 мар 2018, 15:05
Предупреждения: 1
Благодарил (а): 0 раз.
Поблагодарили: 23 раз.

Re: Отловить выдергивание чеки с гранат  [Решено]

Сообщение hren_morjovui » 12 июл 2018, 21:40

Vaqtincha писал(а):я же написал что лучше смотреть код регейма Вы должны зарегистрироваться, чтобы видеть ссылки. ... renade.cpp и станет все ясно


не ну
Код: Выделить всё
// Copyright © 2018 Vaqtincha

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <fun>
#include <xs>
#include <colorchat>


#define EXPLODE_DELAY         0

new 
    const 
        m_flStartThrow 
= 30,
        m_pPlayer = 41,
        m_rgAmmo = 376;

public plugin_init()
{
    register_plugin("Grenade Realism (Remake)", "0.1", "Vaqtincha")

    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "CBasePlayerWeapon_PrimAttack", .Post = true)
}

public CBasePlayerWeapon_PrimAttack(const pWeapon)
{
    if (pWeapon <= 0)
        return HAM_IGNORED

    new pPlayer 
= get_pdata_cbase(pWeapon, m_pPlayer, 4)

    new Float:flStartThrow = Float:get_pdata_float(pWeapon, m_flStartThrow,5)
    new Float:flGameTime = get_gametime()

    if (pPlayer > 0 && flStartThrow != 0.0)
    {
        client_print(pPlayer, print_center, "Выбрасывется через %i секунд!", floatround(flStartThrow - flGameTime) + EXPLODE_DELAY)

        if (flGameTime > flStartThrow + EXPLODE_DELAY.0)
        {
            ExecuteHam(Ham_Weapon_WeaponIdle, pWeapon)

            if (get_pdata_float(pPlayer, m_rgAmmo, ExecuteHam(Ham_Item_PrimaryAmmoIndex, pWeapon)) <= 0)
            {
                ExecuteHam(Ham_Weapon_RetireWeapon, pWeapon)     // force switch to best weapon
            }
        }
    }

    return HAM_IGNORED
}


то работает, вот каким макаром оно выкидывает грену... получается вот этим
Код: Выделить всё
ExecuteHam(Ham_Weapon_WeaponIdle, pWeapon)
? Как-то странно

Добавлено спустя 7 минут 59 секунд:
Vaqtincha, в любом случае СПАСИБО! Теперь хоть что-то понятно :yahoo:
Аватара пользователя
hren_morjovui
 
Сообщения: 20
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Отловить выдергивание чеки с гранат

Сообщение Vaqtincha » 12 июл 2018, 22:03

hren_morjovui, ведь я не зря говорю что надо смотреть код гранаты. вся секрет в офсете m_flStartThrow и в функции WeaponIdle. напр. пробуй так: зарегай в хаме ИтемДиплой и в келбеке просто ставь m_flStartThrow значение выше 0.000000 (напр. set_pdata_flaot(ent, m_flStartThrow, 1.0) ) и сразу будет выбрасывать гранату после диплоя. Чтобы контролировать через сколько секунд он выбросил став офсет m_flTimeWeaponIdle (48) нужные тебе секунды.

Добавлено спустя 9 минут 44 секунды:
и кстати код еще можно облегчить (+без офсетов)
зарегаем Ham_Weapon_ShouldWeponIdle на нужный тебе гранату (пре) и в келбеке возвращаем значение 1 или true с помощью SetHamReturnInteger и суперсидим.
Аватара пользователя
Vaqtincha
 
Сообщения: 68
Зарегистрирован: 28 мар 2018, 15:05
Предупреждения: 1
Благодарил (а): 0 раз.
Поблагодарили: 23 раз.

Re: Отловить выдергивание чеки с гранат

Сообщение hren_morjovui » 12 июл 2018, 22:44

При вот таком раскладе не выбрасывает
Код: Выделить всё
    RegisterHam    (Ham_Weapon_WeaponIdle"weapon_smokegrenade""ham_weapon_smokegrenade_idle");
    
RegisterHam    (Ham_Weapon_ShouldWeaponIdle"weapon_smokegrenade""ham_weapon_should_idle"); 
Аватара пользователя
hren_morjovui
 
Сообщения: 20
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Отловить выдергивание чеки с гранат

Сообщение Vaqtincha » 12 июл 2018, 22:46

hren_morjovui, зачем тебе Ham_Weapon_WeaponIdle ?
Аватара пользователя
Vaqtincha
 
Сообщения: 68
Зарегистрирован: 28 мар 2018, 15:05
Предупреждения: 1
Благодарил (а): 0 раз.
Поблагодарили: 23 раз.

Re: Отловить выдергивание чеки с гранат

Сообщение hren_morjovui » 12 июл 2018, 23:03

Vaqtincha писал(а):hren_morjovui, зачем тебе Ham_Weapon_WeaponIdle ?

для запуска idle анимации на сабмодели
Аватара пользователя
hren_morjovui
 
Сообщения: 20
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Пред.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6