Jump to content

TheNormalnij

MTA Contributors
  • Posts

    685
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by TheNormalnij

  1. Как вариант один шейдер замены текстуры, которая генерируется с помощью render target. Слои можно реализовать в виде метаинформации: текстура - положение. Поворот размер все из первоначально сгенерированной текстуры( используются стандратные функции dxDrawImage )
  2. onClientCharacter позволяет вполне успешно обработать свои dxedit.
  3. Через ранкод проверил setAnalogControlState( 'vehicle_left', 0.5 ), меняя значение от 0 до 1, во всех случаях поворачивает. Далее проверять матрицу камеры, и ставить угол поворота - дело техники )
  4. В целях безопасности такой функции нет. Разве что вы можете реализовать только между своими гуи.
  5. Я понимаю, что при достаточном знаккомстве в компании друзей и может быть допустимо так выражаться, но зачем оставлять негативные эмоции к сообществу у человека, которые не так давно на форуме.
  6. Честно говоря, это было немного по-хамски. Можно было бы и мягче написать об ошибке
  7. Легендарный был чувак. Можно упомянуть, что он искал баги в античите мта, в последствии улучшив его.
  8. Наверняка, когда вы добавляете обработчкик событий, кнопки еще не существует. Уберите 8-9 и 25-26 строки, или сделайте как ниже.
  9. We have russian selection with blackjack and hookers examples and lessons. Learn Lua first. Edit simple scripts, write commands, etc...
  10. addEvent("onClientLoginError", true) addEvent("onClientLogin", true) function clientSubmitLogin(button, state) if button == "left" and state == "up" then local username = guiGetText(Edit1) local password = guiGetText(Edit2) if username and password then triggerServerEvent("submitLogin", getRootElement(), username, password) else outputChatBox("Please enter a valid username and password.") end end end addEventHandler('onClientLogin', root, function() guiSetVisible(LoginPanel, false) showCursor(false) end ) addEventHandler( 'onClientLoginError', root, function() -- you must have a text label for errors :/ end ) Wiki example does not work property. It is only logic of scripting. Find working login panels in community or edit this code
  11. it is serverside onClientLoginError and onClientLogin are clientside
  12. addEvent("submitLogin", true) local function loginHandler( username, password ) if username ~= '' and password ~= '' then local account = getAccount( username ) if account then if getAccountPlayer( account ) then -- account is currenly used triggerClientEvent( client, 'onClientLoginError', root, 2 ) else if logIn( client, account, password ) then -- on player is logged in triggerClientEvent( client, 'onClientLogin', root, username ) else -- wrong passworld triggerClientEvent( client, 'onClientLoginError', root, 3 ) end end else -- Player does not have account on the server -- Write event handler on server youself, it is easy triggerClientEvent( client, 'onClientLoginError', root, 1 ) end end end addEventHandler("submitLogin", resourceRoot, loginHandler) Write event handlers on client
  13. local vRotation = vehicle:getRotation( ) local vVelocity = vehicle:getVelocity( ) --local speed = ( vVelocity.x^2 + vVelocity.y^2 + vVelocity.z^2 ) ^ 0.5 local rZ = math.atan2( vVelocity.x, vVelocity.y ) rZ = rZ < 0 and -rZ or 2 * Pi - rZ local vRotZ = math.rad( vRotation.z ) local yourAngle = math.abs( rZ - vRotZ ) -- На этом можно было бы остановиться, но далее был код, который неизвестно за что отвечает if yourAngle > Pi -0.1 then if rZ > Pi and vRotZ > 0 and vRotZ < Pi then yourAngle = Pi * 2 - rZ + vRotZ; elseif rZ < Pi and rZ > 0 and vRotZ > Pi and vRotZ < Pi * 2 then yourAngle = ( Pi * 2 - vRotZ ) + rZ; end end Типо того, но скорее всего тебе math.abs не понадобится.
  14. Это без кэша, модели будут постонно скачаиваться с сервера. cache=false такой же эффект давало.
  15. В четвертом аргументе вместо nil поставьте время анимации, если там необходимо включить анимацию. Если там необходимо выключить анимацию, уберите все аргументы, кроме первого.
  16. По-моему там в точках лута создавались предметы, которые можно увидеть на расстоянии, поэтому эти два варианта с эстетической точки зрения не очень подойдут
  17. Это основной вариант. Можно еще рассчитывать индекс в таблице точек лута, или использовать индекс в функции next.
  18. Как вариант, можно ограничить количество обрабатываемых точек за один подход.
  19. Почему бы и нет, если операции записи/чтения будут происходить редко. Хотя реализация через MySQL/SQLLite пишется быстрее и легче расширяема.
×
×
  • Create New...