DEVEK Posted February 24, 2013 Share Posted February 24, 2013 Здрвствуйте уважаемые форумчане! Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать. С уважением, Дмитрий. Link to comment
Flaker Posted February 24, 2013 Share Posted February 24, 2013 Здрвствуйте уважаемые форумчане!Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать. С уважением, Дмитрий. https://wiki.multitheftauto.com/wiki/OnClientPlayerWeaponFire (hitElement) https://wiki.multitheftauto.com/wiki/GetElementType Link to comment
DEVEK Posted February 25, 2013 Author Share Posted February 25, 2013 Здрвствуйте уважаемые форумчане!Может кто подскажет? Нужно примерно реализовать такое: чтобы у игрока отнималось HP, ну или денежки (не важно), когда он атакует транспорт. Подскажите как подобное можно реализовать. С уважением, Дмитрий. https://wiki.multitheftauto.com/wiki/OnClientPlayerWeaponFire (hitElement) https://wiki.multitheftauto.com/wiki/GetElementType Спасибо вам огромное Flaker! Вы хороший человек, вы всегда откликаетесь на просьбы о помощи. С уважением, Дмитрий. Link to comment
DEVEK Posted February 25, 2013 Author Share Posted February 25, 2013 Попробовал я вот это https://wiki.multitheftauto.com/wiki/OnC ... WeaponFire (hitElement). Но не совсем я верно объяснил вопрос, извините меня, дело в том, что эта функция не вызывается когда игрок атакует елемент просто голыми руками или не оружием... Может подскажите, как выйти из такого положения? Мне нужно чтобы событие срабатывало при этих условиях, когда игрок лупит по машине вызывается функция. С уважением, Дмитрий. Link to comment
Other Languages Moderators Disinterpreter Posted February 25, 2013 Other Languages Moderators Share Posted February 25, 2013 Попробовал я вот это https://wiki.multitheftauto.com/wiki/OnC ... WeaponFire (hitElement).Но не совсем я верно объяснил вопрос, извините меня, дело в том, что эта функция не вызывается когда игрок атакует елемент просто голыми руками или не оружием... Может подскажите, как выйти из такого положения? Мне нужно чтобы событие срабатывало при этих условиях, когда игрок лупит по машине вызывается функция. С уважением, Дмитрий. У события есть аргумент int weapon и на вики есть пример про это. Link to comment
DEVEK Posted February 25, 2013 Author Share Posted February 25, 2013 Попробовал я вот это 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
Flaker Posted February 25, 2013 Share Posted February 25, 2013 На сколько я знаю, на прямую это не реализовать... Но подключив немного brain'a можно попробовать написать костыль... Вобщем я представляю себе это так: Вариант 1: При нажатии на левую кнопку мыши onClientKey проверять таргет игрока getPedTarget... Ну и если это машина getElementType, то делать что то... При таком варианте стрельба должна быть забиндена именно на ЛКМ... Иначе не будет работать Вариант 2: В рендере проверяем стреляет ли игрок getControlState, если стреляет, то получаем таргет, и если это машина, делаем что то... Link to comment
DEVEK Posted February 26, 2013 Author Share Posted February 26, 2013 (edited) Спасибо, 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 February 26, 2013 by Guest Link to comment
Flaker Posted February 26, 2013 Share Posted February 26, 2013 Тоесть при нажатии сразу двух клавиш выполнить что то? В обработчике нажатия F проверяешь, нажата ли ПКМ, если да, тогда делать что то... Или тебе не на кнопки, а именно на прицеливание и т.п.? Тогда используй в рендере getControlState функцию... p.s. у тебя функция названа getControlStat а не getControlState. Link to comment
DEVEK Posted February 26, 2013 Author Share Posted February 26, 2013 Спасибо, очепятка малость вышла, но только тут... А что с моим кодом не так? Почему не работает? Или не так написал я его? Подскажите как тогда верно написать, если не сложно... С уважением, Дмитрий. Link to comment
Flaker Posted February 26, 2013 Share Posted February 26, 2013 Ну, как минимум, работай с дебагом, который тебе подскажет ошибки в синтаксисе! Конкретно тут ты не закрыл IF Link to comment
Kenix Posted February 26, 2013 Share Posted February 26, 2013 Вам нужно лучше изучить луа, иначе вы просто зря тратите время делая того, что не знаете. И если вы будете табулировать свой код верно, то вы сможете легко найти ошибки в синтаксисе. Link to comment
DEVEK Posted February 27, 2013 Author Share Posted February 27, 2013 Ну, как минимум, работай с дебагом, который тебе подскажет ошибки в синтаксисе!Конкретно тут ты не закрыл 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
Flaker Posted February 27, 2013 Share Posted February 27, 2013 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
DEVEK Posted February 28, 2013 Author Share Posted February 28, 2013 Да, возможно. Спасибо Вам Flaker! Буду пробовать что-то придумать сам... С уважением, Дмитрий. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now