Jump to content

Kernell

MTA Contributors
  • Posts

    1,739
  • Joined

  • Last visited

Everything posted by Kernell

  1. Почитай внимательнее про triggerClientEvent, в первом аргументе указывается элемент игрока для которого нужно вызвать событие, если его не указать, то событие сработает на root и дальше по дереву пройдётся вниз по всем игрокам...
  2. wantedlevel я так понял глобальная переменная, которая изначально равна nil, поэтому если событие onPlayerWasted сработает раньше таймера где объявляется wantedlevel, то получишь такую ошибку. Если используешь стандартную систему аккаунтов, то используй setAccountData для сохранения данных (естественно игрок должен быть авторизован). При спавне игрока ( onPlayerSpawn ) считываешь данные ( getAccountData ) и делаешь с ними что хочешь. В качестве примера: function AlterWantedLevel( pPlayer, iLevel ) local pAccount = getPlayerAccount( pPlayer ); assert( pAccount and not isGuestAccount( pAccount ), "invalid account" ); return setAccountData( pAccount, "wanted_level", iLevel ) and setPlayerWantedLevel( pPlayer, iLevel ); end addEventHandler( "onPlayerSpawn", root, function() local pAccount = getPlayerAccount( source ); assert( pAccount and not isGuestAccount( pAccount ), "invalid account" ); setPlayerWantedLevel( source, tonumber( getAccountData( pAccount, "wanted_level" ) ) or 0 ); end ); addEventHandler( "onPlayerWasted", root, function( iTotalAmmo, pKiller, iKillerWeapon, iBodypart, bStealth ) AlterWantedLevel( pKiller, 1 ); end );
  3. С каких это пор в Lua в условном операторе используются запятые? Об этом дебаг и говорит, я даже логики не понимаю вашего сравнения, может объясните?
  4. Покажи как пытаешься, мы только помогаем, а не делаем всё за вас.
  5. Цвет кнопок менять с помощью guiSetProperty Если интересует полное изменение внешнего вида кнопки - то только нарисовать свою с помощью картинки.
  6. Запрос локального setPedAimTarget ? Не работает. Проще реализовать свой обзор мышкой)) Easterdie, сместить направление взгляда игрока. MX_Master, так ты же самый умный, что же ты ничего дельного предложить не можешь?
  7. GUIEditor_Progress = {} GUIEditor_Progress[1] = guiCreateProgressBar(0.0127,0.4193,0.1719,0.0417,true) guiSetAlpha(GUIEditor_Progress[1],1) percent1 = 1 timer = nil; function move_progressbar () if timer then return end function chech_move () percent1 = percent1 + 1 guiProgressBarSetProgress(GUIEditor_Progress[1],percent1) if guiProgressBarGetProgress(GUIEditor_Progress[1]) >= 100 then print "переходим к другому действию" killTimer( timer ) timer = nil; end end timer = setTimer(chech_move,200,100) end addCommandHandler ( "12", move_progressbar )
  8. Покажи код где ты увеличиваешь прогресс в прогресс-баре.
  9. Тут пытаться бессмысленно. Если ты записал плохо, то хорошо уже не сделать
  10. Есть говно-код а есть говно-релизации... которыми к сожалению часто приходится пользоваться в SAMP. В MTA со стороны разработчика этого слава богу лишён. Но ты же предлагаешь какашку, которая немыслима даже для SAMP. Какой же тогда вариант ещё сделать, чтобы тряслась камера? Я когда с самого начала задавал вопрос, я не спрашивал о том чтобы она "тряслась", я задавал конкретно вопрос о том как её сдвинуть, в этом мог бы помочь setPedAimTarget который не работает на локального игрока (об этом даже на wiki написано). Разница между тупо "трясётся камера" и "указать камере цель XYZ" большая. Где вы видели игры чтобы при стрельбе просто тряслась камера? Поиграйте в такие игры как Counter Strike, Call of Duty или S.T.A.L.K.E.R. (на мой взгляд там самая лучшая физика стрельбы), и поймёте о чём речь. Предлагать что-то типа createExplosion - убожество, правильно сказал ранее AirKite - говнокод. P.S. Даже такая примитивная реализация физики оружия стоит не малого внимания, ведь для каждого оружия своя отдача и т.п. P.S.S. Действительно многие вещи лучше реализовывать на уровне движка GTA, чем пытаться всяко извращаться (говнокодить) в Lua. Многие из вас не понимают на сколько важна оптимизация кода (в итоге получаются CIT-подобные сервера, которые онлайн ~150 кое как держут). Всё это благодаря такой самоуверенности как это: "Экономия не нужна, т.к. ничего ЖРУЩЕГО нет. Недостающие фичи с оружием мутить скриптово, благо для этого практически всё есть.". сразу видно человек делитант в подобных вопросах, и видимо не задумывается о том как это всё работает на самом деле. (лично для меня лишние циклы уже вопрос, особенно если CPU на сервере не очень мощный, а если скрипт клиентский? Слабые компы в пролёте?). Поэтому выгоднее через MTA функции обратиться к памяти SA, чем вот так в Lua извращаться - меньше траты ресурсов машины. И всё это с учётом что на дворе 2012 год, и не у всех MTA идёт гладко.
  11. Да ёмаё... НИКАК.. Если качество низкое, то никак не сделать его высоким.. это бред полный..
  12. Есть, сейчас используется на моём сервере который ещё в разработке. А вопрос был "Возможно ли" =D
  13. Звук играет относительно позиции игрока, а не камеры.
  14. Я как-то выкладывал баг в мантис, где показывал такую систему.. тут я снимал демонстрацию бага со звуком... https://www.youtube.com/watch?v=RVRWCTBimzY а это кто-то из игроков очень давно снимал. реализовано с помощью маркеров.. поэтому проблемы с лимитом маркеров, планирую потом на DX переделать.
  15. Это всё равно что растянуть картинку 320 до 1080. Качество лучше не будет. FormatFactory очень хорошая программка.
  16. Перемещено в раздел "Скриптинг"
  17. Не знаю как в Казахстане, но в России (именно от русских программистов) очень много открытых проектов.
  18. StUNt71, похоже ты темой ошибся.
  19. Конфиг то правильно настроен? Пропиши команду в серверную консоль - openports, порт 22126 (22003 + 123) должен быть открыт.
  20. Не понимаю что ты хочешь.. function table.x3( array ) local result = {}; for _, value in pairs( array ) do if type( value ) == 'table' then for _, v in pairs( table.x3( value ) ) do table.insert( result, v ); end else table.insert( result, value ); end end return result; end Это что за таблица такая?
  21. Ну так это логично. function table.print( array ) -- может переполниться стек при очень больших таблицах for _, value in pairs( array ) do if type( value ) == 'table' then table.print( value ); else print( value ); end end end Ну и что? ipairs перебирает таблицу как массив. pairs перебирает весь хэш
  22. local x,y,z = getElementPosition(getPedOccupiedVehicle(hitPlayer)) local _, _, rot = getElementRotation( getPedOccupiedVehicle(hitPlayer) ) x, y = x + ( ( math.cos( math.rad( rot + 270) ) ) * ( 3.1 ) ), y + ( ( math.sin( math.rad( rot + 270 ) ) ) * ( 3.1 ) )
×
×
  • Create New...