Jump to content

DakiLLa

Members
  • Posts

    965
  • Joined

  • Last visited

Everything posted by DakiLLa

  1. Хоть чуточку, пожалуйста, уважайте участников конференции и нормально выложите ваш код в [ /lua ] тегах, с табуляцией и без сокращений (не надо вырезки из кода скидывать). Как вы хотите, чтобы мы поняли, например, вот это: ... end end end } И да, вряд ли тут кому-то интересны ваши "бомжи и количество убитых зомби", если уж вы так боитесь, что кто-то украдет кусок вашего драгоценного кода...
  2. У меня есть массивы некоторых dxGUI. Вы предлагаете сделать для всех dxGUI сделать массивы, которые деляться на названия окон? Всмысле есть окно регистрации, и все его элементы входят в один массив окна регистрации, а есть допустим окно калькулятора, и все элементы калькулятора будут записаны в другой массив. Я правильно понял? Ну что-то вроде того. Во-первых, код в более приятный вид приведете, во-вторых, избавитесь от назойливой ошибки. Честно говоря, я не встречался с подобной ерундой и предполагаю, что проблема кроется как раз таки в количестве ваших глобальных переменных внутри тела функции (вот кстати, пример аж с 70-ю локальными переменными и той же самой ошибкой).
  3. What about creating a vehicle (e.g. a flower pot), applying zero alpha to it, attaching some object to it and then set it's velocity?
  4. Вызываем функцию applySavedSkin внутри setTimer, передавая при этом два параметра: элемент игрока и его сохраненный скин. Функция applySavedSkin принимает два параметра, я их обозвал player и skin. Вам бы основы Lua почитать, что ли, или программирования как такового, даже не знаю (передача параметров в функции, вызов функции и тому подобное).
  5. Попробуйте вот так: function onDeath() -- запоминаем, какой скин был у игрока local currSkin = getElementModel( source ) setElementData( source, "s_skin", currSkin, false ) end function onSpawn() -- выдаем сохраненный скин игроку (если таковой имелся до того) local savedSkin = getElementData( source, "s_skin" ) if not savedSkin then savedSkin = getElementModel( source ) end -- небольшая задержка сразу после спавна не повредит setTimer( applySavedSkin, 75, 1, source, savedSkin ) end function applySavedSkin( player, skin ) if isElement( player ) then setElementModel( player, skin ) end end addEventHandler( "onPlayerWasted", root, onDeath ) addEventHandler( "onPlayerSpawn", root, onSpawn )
  6. Функция setElementData позволяет присвоить элементу данные, используя уникальный ключ (почитайте на вики). В данном случае я назвал его "s_skin". Можете назвать ключ как хотите.
  7. function onDeath() -- запоминаем, какой скин был у игрока local currSkin = getElementModel( source ) setElementData( source, "s_skin", currSkin, false ) end function onSpawn() -- выдаем сохраненный скин игроку (если таковой имелся до того) local savedSkin = getElementData( source, "s_skin" ) if not savedSkin then savedSkin = getElementModel( source ) end setElementModel( source, savedSkin ) end addEventHandler( "onPlayerWasted", root, onDeath ) addEventHandler( "onPlayerSpawn", root, onSpawn )
  8. Почитайте внимательней на вики, как крепятся события "onPlayerSpawn" и "onPlayerLogin" к функции и какие они передают параметры в функцию; гляньте, там даже примеры есть. Ну а в вашем случае это будет выглядеть так: local StatsTable = {69,70,71,72,73,74,75,76,77,78,79,80,81} function setStats() -- передавать массив в функцию не надо, он глобально определен выше for i, statID in ipairs( StatsTable ) do -- source - переменная, ссылающаяся на игрока, который только что заспавнился setPedStat( source, statID, 1000 ) end end addEventHandler("onPlayerSpawn", getRootElement(), setStats) Крепить onPlayerLogin не вижу смысла, судя по всему на вашем сервере сразу за авторизацией последует спавн, поэтому два раза выполнять одну и ту же операцию не нужно.
  9. Пройтись по всем элементам массива в цикле: for i, statID in ipairs( StatsTable ) do setPedStat( player, statID, 1000 ) end
  10. Тоже появилась такая хрень. Часик назад включал MTA - все было норм. Включил потом еще раз - и на тебе. Пошел переставлять значит, что делать... upd: помогла установка последнего найтли.
  11. bindKey( 'tab', 'both', function( key, state ) toggleControl( 'action', (state == "down" and false or true) ) end )
  12. What's the benefit of having such function?
  13. DakiLLa

    Question

    This feature was requested some time ago, but looks like none from the devs is interesting in adding it for some reason. So I guess you have to script a whole thing by yourself.
  14. В свое время пробовал добавить стандартными средствами (engine-функции) парочку островов из Myriad Islands (почитать можно, например, тут и тут, остальное в гугле), но в итоге уперся в пропадающие в никуда модельки, отсутствие коллизии в случайных местах и прочую лабуду. Исходя из этого становится интересен форк MTA:Eir, который, судя по обзорам, позволяет подгружать огромное количество моделек без особых проблем, но вряд ли стоит ожидать его скорого релиза.
  15. https://community.multitheftauto.com/index.php?p ... ls&id=3679 Can someone delete this? I didn't give any permission to modify my original resource. Also, it contains some advertisement.
  16. Это не совсем то. Эти данные задаются и при создании пикапа, мне нужно, чтобы пикап не создавался вообще после использования. Ну тогда наверное имеет смысл уничтожить его: addEventHandler( "onPickupHit", твой_пикап, function() destroyElement( source ) end )
  17. Это вы ресурсы обновили, а вам нужно само "ПО" сервера (если его так можно назвать) обновить (сюда относятся mta server.exe, набор .dll-ок, и т. д.).
  18. Уточните, пожалуйста, ваш вопрос: 1. Добавить, всмысле, на карту поставить? Тогда можно использовать map editor. 2. Добавить, всмысле, заменить модели? Тогда вам сюда.
  19. Вот, вроде: http://files.mtasa.com/apps/0.3/
  20. yourGUIEdit = guiCreateEdit( ... ) addEventHandler( "onClientGUIChanged", yourGUIEdit, function() local currText = guiGetText( source ) local newText = string.gsub( currText, '[^0-9]', '' ) if newText ~= currText then guiSetText( source, newText ) end end, false )
×
×
  • Create New...