Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
hren_morjovui » 12 июл 2018, 21:27
Vaqtincha писал(а):hren_morjovui, а что неработает у тебя ?
да мне просто нужно выбросить гранату сразу при нажатии IN_ATTACK
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
-
hren_morjovui
-
- Сообщения: 258
- Зарегистрирован: 29 май 2018, 09:15
- Благодарил (а): 88 раз.
- Поблагодарили: 22 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
PHP
jQuery
Vaqtincha » 12 июл 2018, 21:30
я же написал что лучше смотреть код регейма
Вы должны зарегистрироваться, чтобы видеть ссылки. ... renade.cpp и станет все ясно
Добавлено спустя 2 минуты 53 секунды:тогда убрать все проверки и оставить идле
админгандонсоси
-
Vaqtincha
-
- Сообщения: 277
- Зарегистрирован: 28 мар 2018, 15:05
- Забанен
- Благодарил (а): 8 раз.
- Поблагодарили: 53 раз.
hren_morjovui » 12 июл 2018, 21:40
не ну
- Код: Выделить всё
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) }
}
}
return HAM_IGNORED
}
то работает, вот каким макаром оно выкидывает грену... получается вот этим
- Код: Выделить всё
ExecuteHam(Ham_Weapon_WeaponIdle, pWeapon)
? Как-то странно
Добавлено спустя 7 минут 59 секунд:Vaqtincha, в любом случае СПАСИБО! Теперь хоть что-то понятно
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
-
hren_morjovui
-
- Сообщения: 258
- Зарегистрирован: 29 май 2018, 09:15
- Благодарил (а): 88 раз.
- Поблагодарили: 22 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
PHP
jQuery
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
-
- Сообщения: 277
- Зарегистрирован: 28 мар 2018, 15:05
- Забанен
- Благодарил (а): 8 раз.
- Поблагодарили: 53 раз.
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
-
- Сообщения: 258
- Зарегистрирован: 29 май 2018, 09:15
- Благодарил (а): 88 раз.
- Поблагодарили: 22 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
PHP
jQuery
Vaqtincha » 12 июл 2018, 22:46
hren_morjovui, зачем тебе Ham_Weapon_WeaponIdle ?
админгандонсоси
-
Vaqtincha
-
- Сообщения: 277
- Зарегистрирован: 28 мар 2018, 15:05
- Забанен
- Благодарил (а): 8 раз.
- Поблагодарили: 53 раз.
hren_morjovui » 12 июл 2018, 23:03
Vaqtincha писал(а):hren_morjovui, зачем тебе Ham_Weapon_WeaponIdle ?
для запуска idle анимации на сабмодели
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
-
hren_morjovui
-
- Сообщения: 258
- Зарегистрирован: 29 май 2018, 09:15
- Благодарил (а): 88 раз.
- Поблагодарили: 22 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn
PHP
jQuery
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: sb123 и гости: 21