Jump to content

Fro

Members
  • Posts

    44
  • Joined

  • Last visited

Everything posted by Fro

  1. Где можно узнать про query механизм запросов данных сервера. Там название сервера, игроки, весия и т.п.
  2. string.sub http://www.lua.ru/doc/5.4.html
  3. function getEulerFromQuaternion5( tQuaternion ) local x, y, z = 0, 0, 0 local qx = tQuaternion[1] local qy = tQuaternion[2] local qz = tQuaternion[3] local qw = tQuaternion[4] local sqw = qw * qw local sqx = qx * qx local sqy = qy * qy local sqz = qz * qz local unit = sqx + sqy + sqz + sqw local test = qx * qw - qy * qz if test > 0.4999999 * unit then x = math.pi / 2 y = 2.0 * math.atan2( qy, qw ) z = 0 elseif test < -0.4999999 * unit then x = -( math.pi / 2 ) y = 2.0 * math.atan2( qy, qw ) z = 0 else x = math.asin( 2 * test ) y = math.atan2( 2 * ( qx * qz + qy * qw ), 1 - 2 * ( sqy + sqx ) ) z = math.atan2( 2 * ( qx * qy + qz * qw ), 1 - 2 * ( sqx + sqz ) ) end return math.deg( x ), math.deg( y ), math.deg( z ) end print( getEulerFromQuaternion5( { 0, 0, -0.7398733497, 0.6727461815 } ) ) В некоторых случаях надо использовать math.abs и прибавлять 180.
  4. Comodo юзай, самая ловкая вещь, плюс freeware.
  5. В новом обновлении клиента MTA вроде эта проблема решилась, сейчас все работает с новыми драйверами!
  6. То что драйвера nvidia версии 295.73 не поддерживаются. Во всяком случаи у меня... Видеокарта NVIDIA GeForce GT 525M
  7. Проблема почти решилась, не запускается из-за новых драйверов на видеокарту.
  8. Заставка эта есть, потом уже только сингл запускается.
  9. По неведомым причинам MTA перестал запускаться, вместо него запускается сингл. Помогите исправить...
  10. Возможно перед или после этого, где-то не закрыта скобка
  11. Удаляет пробелы в начале и в конце строки. function string.trim( str ) if type( str ) == "string" then str = string.gsub( str, "^%s*", "" ) str = string.gsub( str, "%s*$", "" ) return str end return false end Обновил класс File: Смотреть
  12. Есть ли функция, для отделения цвета от ника игрока?
  13. Так будет правильнее... local uTimers = { } local hospitalSpawns = { { 2027.77, -1420.52, 15.99, }, { 1180.85, -1325.57, 12.58, }, { 1244.437, 331.2261, 18.5547, }, { -2199.719, -2308.075, 29.6181, }, { -2670.285, 616.4364, 13.4531, }, { -316.3832, 1056.045, 18.7344, }, { -1514.823, 2527.119, 54.7443, }, { 1578.446, 1770.682, 9.8358, } } function respawn( player, skin ) if not isElement( player ) then return end local myX, myY, myZ = getElementPosition( player ) local mySp, myDis = 1, 99999 for i, sp in ipairs( hospitalSpawns ) do local dis = getDistanceBetweenPoints3D( sp[ 1 ], sp[ 2 ], sp[ 3 ], myX, myY, myZ ) if dis < myDis then myDis = dis mySp = i end end repeat until spawnPlayer ( player, hospitalSpawns[ mySp ][ 1 ], hospitalSpawns[ mySp ][ 2 ], hospitalSpawns[ mySp ][ 3 ], 90.0, skin, 0, 0 ) fadeCamera( player, true ) setCameraTarget( player, player ) showChat( player, true ) end addEventHandler( "onPlayerWasted", root, function( ) uTimers[ source ] = setTimer( respawn,1000,1,source,getElementModel( source ) ) end ) addEventHandler( 'onPlayerQuit',root, function( ) uTimers[ source ] = nil end ) addEventHandler( "onResourceStart", resourceRoot, function( ) resetMapInfo( ) for i,player in pairs( getElementsByType 'player' ) do respawn( player ) end end )
  14. Надо ипользовать код не просто в любом месте, а либо в каком-то евенте, либо функции и чтобы игрок "player" был определен. Судя по всему проблема тут: local myX, myY, myZ = getElementPosition( player ) Неверное значение "player"
  15. local hospitalSpawns = { { x, y, z }, { x, y, z }, { x, y, z } } local myX, myY, myZ = getElementPosition( player ) local mySp, myDis = 1, 99999 for i, sp in ipairs( hospitalSpawns ) do local dis = getDistanceBetweenPoints3D( sp[ 1 ], sp[ 2 ], sp[ 3 ], myX, myY, myZ ) if dis < myDis then myDis = dis mySp = i end end spawnPlayer( player, hospitalSpawns[ mySp ][ 1 ], hospitalSpawns[ mySp ][ 2 ], hospitalSpawns[ mySp ][ 3 ], 90.0, skin, 0, 0 )
  16. Можно, но не совсем как тебе хочется и достаточно замысловато. Нужно постоянно мониторить кол-во оставшихся патронов в обойме в каждом слоте игрока. Как только остается 1 патрон в каком-то слоте, нужно отключать возможность стрелять. Включить возможность стрелять нужно, если игрок вручную перезарядился или в слоте появилось другое оружие. Если устраивает, могу просто дать список событий и функций, дальше уже запилишь (: Спасибо за идею. Дальше сам разберусь)
  17. Можно ли сделать, чтобы игрок не перезаряжался автоматически, когда у него кончились патроны в обойме?
  18. Вполне прилично выглядит. МТА как раз не хватает полной локализации для большей популярности.
  19. Fro

    [REL] GeoIP

    Что за ресурс, поподробнее. Когда искал ни чего такого не видел, кроме как в "admin", но и то там база не полная. Она полная, просто старая. P.S. Зачем знать город юзера? Мои IP редко правильно определяются (все 4 октета динамические, часто попадаются адреса других стран) Случаи бывают разные, кому-то надо, кому-то нет. Я лишь выложил ресурс, а что с ним делать это уже воля каждого.
  20. Fro

    [REL] GeoIP

    могу поспорить, что страну определяет очень точно выходит, что не совсем GEOIP, а просто "Определяет город России по IP", так точнее Определяет любую страну точно и так же точно определяет города России, но с номером региона так какие то косяки. Базы данных использовались отсюда http://geolite.maxmind.com/download/geoip/database/.
×
×
  • Create New...