Jump to content

[Вопрос] Как примерно реализовать такое?


DEVEK

Recommended Posts

Здрвствуйте уважаемые форумчане!

Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать.

С уважением, Дмитрий.

Link to comment
Здрвствуйте уважаемые форумчане!

Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать.

С уважением, Дмитрий.

https://wiki.multitheftauto.com/wiki/OnClientPlayerWeaponFire (hitElement)

https://wiki.multitheftauto.com/wiki/GetElementType

Link to comment
Здрвствуйте уважаемые форумчане!

Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать.

С уважением, Дмитрий.

https://wiki.multitheftauto.com/wiki/OnClientPlayerWeaponFire (hitElement)

https://wiki.multitheftauto.com/wiki/GetElementType

Спасибо вам огромное Flaker! Вы хороший человек, вы всегда откликаетесь на просьбы о помощи.

С уважением, Дмитрий.

Link to comment

Попробовал я вот это https://wiki.multitheftauto.com/wiki/OnC ... WeaponFire (hitElement).

Но не совсем я верно объяснил вопрос, извините меня, дело в том, что эта функция не вызывается когда игрок атакует елемент просто голыми руками или не оружием... Может подскажите, как выйти из такого положения?

Мне нужно чтобы событие срабатывало при этих условиях, когда игрок лупит по машине вызывается функция.

С уважением, Дмитрий.

Link to comment
  • Other Languages Moderators
Попробовал я вот это https://wiki.multitheftauto.com/wiki/OnC ... WeaponFire (hitElement).

Но не совсем я верно объяснил вопрос, извините меня, дело в том, что эта функция не вызывается когда игрок атакует елемент просто голыми руками или не оружием... Может подскажите, как выйти из такого положения?

Мне нужно чтобы событие срабатывало при этих условиях, когда игрок лупит по машине вызывается функция.

С уважением, Дмитрий.

У события есть аргумент int weapon и на вики есть пример про это.

Link to comment
Попробовал я вот это https://wiki.multitheftauto.com/wiki/OnC ... WeaponFire (hitElement).

Но не совсем я верно объяснил вопрос, извините меня, дело в том, что эта функция не вызывается когда игрок атакует елемент просто голыми руками или не оружием... Может подскажите, как выйти из такого положения?

Мне нужно чтобы событие срабатывало при этих условиях, когда игрок лупит по машине вызывается функция.

С уважением, Дмитрий.

У события есть аргумент int weapon и на вики есть пример про это.

На вики сказано, что:

This event is called when player shoots a weapon. This does not trigger for projectiles based, or melee weapons. Also note that this event is only triggered for players nearby the local player's camera. This is due to elements far away being streamed out.

Из чего следует, что это событие не вызывается для оружия ближнего боя. А int weapon говорит, что это целое число.

Поправте если ошибаюсь.

С уважением, Дмитрий.

Link to comment

На сколько я знаю, на прямую это не реализовать... Но подключив немного brain'a можно попробовать написать костыль...

Вобщем я представляю себе это так:

Вариант 1:

При нажатии на левую кнопку мыши onClientKey проверять таргет игрока getPedTarget... Ну и если это машина getElementType, то делать что то...

При таком варианте стрельба должна быть забиндена именно на ЛКМ... Иначе не будет работать

Вариант 2:

В рендере проверяем стреляет ли игрок getControlState, если стреляет, то получаем таргет, и если это машина, делаем что то...

Link to comment

Спасибо, Flaker! Да костыль-есть костыль... Храмает...

Подскажите как сделать проверку тапа: нажата клавиша прицел (aim_weapon) и затем нажимается клавиша F (enter_exit). Пробовал через getControlState первая и затем вторая клавиша, не работает, видать туплю...

function render_fire() 
if getControlState("aim_weapon") and getControlState("enter_exit") then 
 -- выполняемая функция 
end 
addEventHandler("onClientRender", getRootElement(), render_fire) 

Edited by Guest
Link to comment

Тоесть при нажатии сразу двух клавиш выполнить что то?

В обработчике нажатия F проверяешь, нажата ли ПКМ, если да, тогда делать что то...

Или тебе не на кнопки, а именно на прицеливание и т.п.?

Тогда используй в рендере getControlState функцию...

p.s. у тебя функция названа getControlStat а не getControlState.

Link to comment

Спасибо, очепятка малость вышла, но только тут... А что с моим кодом не так? Почему не работает? Или не так написал я его? Подскажите как тогда верно написать, если не сложно...

С уважением, Дмитрий.

Link to comment

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

Link to comment
Ну, как минимум, работай с дебагом, который тебе подскажет ошибки в синтаксисе!

Конкретно тут ты не закрыл IF

Опять... забыл закрыть If, но только тут, у меня в скрипте закрыто...

Дебаг не выдает ошибки... :(

Ну, а вот так почему может не работать?

function render_fire() 
     if getControlState("aim_weapon") and getControlState("enter_exit") then 
           outputChatBox("Ура! Заработало!") 
     end 
end 
addEventHandler("onClientRender", getRootElement(), render_fire) 

Link to comment
Note: Not all control states are sent to the server at all times, as such their state may be given incorrectly. As a rule, keys that move or affect the player or their vehicle are most likely to be accurate. For increased accuracy (and also increased bandwidth usage) use bindKey instead to bind a GTA control name to a function.

Возможно поэтому... Хотя не уверен. Чесно говоря не приходилось такого реализовывать.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...