Jump to content

TheNormalnij

MTA Contributors
  • Posts

    681
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by TheNormalnij

  1. Экстрасенсы в отпуске! Кинь имя ошибки.
  2. Кроме как делать это через серверную функцию, есть вариант?
  3. Где ты видел, чтобы я шутил, иронизировал? Ты мне не в праве что-либо приказывать, лучше бы сам помолчал. Меня дико бесит, когда лица с интеллектуальной недостаточностью пытаются, чтобы всё сделали за них. В этом нет обучения и приобретения какого-либо практического опыта от проделанной работы. А может тебе ещё помочь срыгнуть и поменять подгузники?
  4. Абсолютно любого нет. Можно брать только из текстур.
  5. Не стоит делать такие выводы друг мой, я всего лишь прошу помощи. Я не прошу чтоб ты взял со своего кармана дал мне денег, а по мере возможности помог мне. 1) Ты мне не друг. 2) Время - деньги. Лучше его потратить на тех, кто реально этого заслуживает и пытается сам решить проблему. 3) Тут тебе никто ничего не должен.
  6. http://segfault.kiev.ua/smart-questions-ru.html Исследовав темы, созданные топикстартером, легко понять, что он не пытается уважать сообщество.
  7. Максимум кинуть ссылку в буфер можно
  8. Надо делать триггер на сервер с клиента.
  9. У тебя утечка памяти в 11 строке. Тут можно было бы даже простую элементдату использовать. Событие попытки входа в авто можно отменять в onVehicleStartEnter, так целесообразнее. Использовать здесь onResourceStop? Скорее всего ты не понимаешь, что хочешь, переформулируй вопрос.
  10. aclrequest команда в консоли
  11. Флуд. Тупость топикстартера убила: Название темы. регесрации ( от слова насрать, верно? ). Заглавные буквы не нужны Запятые не нужны. помогитееее ( от этого все решается быстрее ) Поисковики не нужны Включать голову не надо
  12. Используя спавнменеджер и прямые руки. Если в гейммоде есть edf, то всё ставится из редактора карт.
  13. После загрузки моего кода, надо было перезайти.
  14. Редактировать фриром не нужно. Достаточно лишь создать ресурс со следующим содержимым. -- server addEventHandler ( 'onPlayerJoin', root, function ( ) setPlayerName( source, getPlayerName( source ):gsub('#%x%x%x%x%x%x', '') ) end ) addEventHandler ( 'onPlayerChangeNick', root, function ( _, newNick ) local freeNick, replaces = newNick:gsub('#%x%x%x%x%x%x', '') -- Cкорее всего событие будет срабатывать при каждом вызове функции setPlayerName -- Сделана проверка на количество замен по паттерну if replaces ~= 0 then setPlayerName( source, freeNick ) end end ) UPD, если вы используете сторонний ресурс вывода в чат, закоментируйте onPlayerChat в фрироме ( --[[ ]] )
  15. Wtf?! Все делается на клиенте, задается приоритет обработчика. И wasEventCancelle давно существует. Правильно продумайте систему и все будет ок
  16. Отменяя событие on*Damage и высчитывая урон вручную
  17. Да, но автор ресурса должен был сам это прописать.
  18. local messages = {} addEvent ( "livetext", true ) local function removePlayerMessage( player ) messages[player] = nil end local function onPlayerQuitWithMessage( ) removePlayerMessage( source ) end addEventHandler ( "livetext",root, function( ) messages[source] = getElementData( source, 'mess' ) addEventHandler( 'onClientPlayerQuit', source, onPlayerQuitWithMessage ) setTimer( removePlayerMessage, 6000, 1, source ) end ) addEventHandler( "onClientRender", root, function( ) local x,y,z = getElementPosition( localPlayer ) for player, text in pairs( messages ) local px,py,pz = getElementPosition( player ) local distance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if distance <= 10 then local sx,sy = getScreenFromWorldPosition ( x, y, z+0.95, 0.06 ) if not sx then return end -- local scale = --1/(0.3 * (distance / 30)) dxDrawBorderedText ( text, sx, sy - 30, sx, sy - 30, tocolor(255,255,255,255), 1.5, "arial", "center", "bottom", false, false, false ) end end end ) Я предположил, что надо создать над игроком-источником события 'livetext' какой-то текст. Т.е. на серверной стороне указать игрока. Текст сообщения правильно было бы указывать в событии, а не элемент дате. Выравнивать сообщеняи можно с dxGetTextWidth.
  19. Текст не элемент, его через attachElement нельзя прицепить. Во-вторых, используются глобальные переменные, которые могут использоваться в нескольких копиях обработчика onClientRender. Вот пример, как я раньше рисовал текст над авто. local carsCost = {} local renderState = false addEvent( 'showCarCost', true ) addEventHandler( 'showCarCost', root, function() carsCost[source] = tostring( getElementData( source, 'cost' ) ) if not renderState then renderState = true addEventHandler( 'onClientRender', root, renderCarCost ) end end ) function renderCarCost() local x, y, z = getElementPosition( localPlayer ) renderState = false for car, cost in pairs( carsCost ) do local vX, vY, vZ = getElementPosition( car ) local sX, sY = getScreenFromWorldPosition( vX, vY, vZ + 1, 0, false ) local dis = getDistanceBetweenPoints3D( x, y, z, vX, vY, vZ ) if sX and dis < 11 then dxDrawText( cost , sX, sY, 30, 10, nil, 3, 'arial' ) elseif dis > 11 then carsCost[car] = nil end renderState = true end if not renderState then removeEventHandler( 'onClientRender', root, renderCarCost ) end end
  20. Смотря какие данные нужно запаковать. В основном надо будет использовать string.char, string.byte
×
×
  • Create New...