Roma Posted June 18, 2012 Share Posted June 18, 2012 car = createVehicle ( 562, 1591.596680, -2495.323242, 18.098244 ) sounds = "1.mp3" local x,y,z = getElementPosition( car ) carSounds = playSound3D ( sounds, x, y, z , true ) attachElements ( carSounds, car, 0, 0, 5 ) На клиентской стороне работает, а на серверной стороне выводит ошибку ERROR: test\test.lua:5: attempt to call global 'playSound3D' (a nil value) Link to comment
TwiX! Posted June 18, 2012 Share Posted June 18, 2012 используй это только на клиенте, этот звук услышат и на сервере не забудь про setSoundMaxDistance ( carSounds, 60 ) , чтобы слышно было только с определённого расстояния Link to comment
Kernell Posted June 19, 2012 Share Posted June 19, 2012 используй это только на клиенте, этот звук услышат и на серверене забудь про setSoundMaxDistance ( carSounds, 60 ) , чтобы слышно было только с определённого расстояния С каких это пор так стало? Никогда звук не синхронизировался. (то что projectile созданные на клиентской стороне синхронизируются - это даже странно). Link to comment
TwiX! Posted June 19, 2012 Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощью setSoundMaxDistance без сервер-сайд Link to comment
Mc_Trekkie Posted June 19, 2012 Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Поддерживаю.Делаю тоже самое.Но проблемка одна-если играет песня,и машина подъезжает к игроку - игроку,который около машины слышится песня сначала,а тому который В машине - уже середина.(Постарался всё объяснить,но чтобы это понять - надо протестить) Link to comment
Other Languages Moderators Disinterpreter Posted June 19, 2012 Other Languages Moderators Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Что за волшебство?! Такого быть не может. Link to comment
Mc_Trekkie Posted June 19, 2012 Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Что за волшебство?! Такого быть не может. Сначала проверb:D Потом говори. Бесит только одно меня - когда играешь музыку с сайта(К примеру) Рано или поздно она ломается(МТА зависает и крашится), а это - серъезная помеха для разработки моего Магнитофона в машинах Link to comment
TwiX! Posted June 19, 2012 Share Posted June 19, 2012 (edited) playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Что за волшебство?! Такого быть не может. зайди на сервер и посмотри забыл сказать о евенте onClientElementDataChange ,мне нужна эта дата для определения кнопок (не суть) потом уже воиспроизвести этот звук через playSound3D это playSound слышат только локальные игроки (тоесть только для тебя) да и https://wiki.multitheftauto.com/wiki/PlaySound3D на грув стрит будет играть музыка (пример 2) играть будет для всех Edited June 19, 2012 by Guest Link to comment
TwiX! Posted June 19, 2012 Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Что за волшебство?! Такого быть не может. Сначала проверb:D Потом говори. Бесит только одно меня - когда играешь музыку с сайта(К примеру) Рано или поздно она ломается(МТА зависает и крашится), а это - серъезная помеха для разработки моего Магнитофона в машинах сталкнулся с такой же проблемой, для плеера на сервере, незнаю как исправить. Link to comment
lcd1232 Posted June 19, 2012 Share Posted June 19, 2012 такая проблема: решил сделать ресурс, который будет записывать весь чат в файл, но появилась проблема. При отправке текста дебаг выдает ошибку attempt to concatenate local 'thePlayer' (a userdata value) function log ( theMessage, thePlayer ) local time = getRealTime() time.month = time.month + 1 time.year = time.year + 1900 local logFile = '/log/'..time.monthday..'.'..time.month..'.'..time.year local logMessage = '['..time.hour..time.minute..time.second..'] '..thePlayer..': '..theMessage if fileExists( logFile ) then fileWrite( fileOpen( logFile ), logMessage ) else fileWrite( fileCreate( logFile ), logMessage ) end end addEventHandler( 'onChatMessage', root, log ) Также вопрос: как можно определить что этот чат написан через Y или U(Team Chat)? Link to comment
Mc_Trekkie Posted June 19, 2012 Share Posted June 19, 2012 такая проблема: решил сделать ресурс, который будет записывать весь чат в файл, но появилась проблема. При отправке текста дебаг выдает ошибку attempt to concatenate local 'thePlayer' (a userdata value) function log ( theMessage, thePlayer ) local time = getRealTime() time.month = time.month + 1 time.year = time.year + 1900 local logFile = '/log/'..time.monthday..'.'..time.month..'.'..time.year local logMessage = '['..time.hour..time.minute..time.second..'] '..thePlayer..': '..theMessage if fileExists( logFile ) then fileWrite( fileOpen( logFile ), logMessage ) else fileWrite( fileCreate( logFile ), logMessage ) end end addEventHandler( 'onChatMessage', root, log ) Также вопрос: как можно определить что этот чат написан через Y или U(Team Chat)? 0: normal message 1: action message (/me) 2: team message onPlayerChat Так.Вместо thePlayer'a ставь source .Пробуй Link to comment
Flaker Posted June 19, 2012 Share Posted June 19, 2012 Юзай это: https://wiki.multitheftauto.com/wiki/OnPlayerChat Прочитай Wiki и все поймешь сам... Link to comment
Kenix Posted June 19, 2012 Share Posted June 19, 2012 playSound3D ( я использую для сигнала (horn)) , он слышен для всех игроков с определённого расстояния с помощьюsetSoundMaxDistance без сервер-сайд Что за волшебство?! Такого быть не может. зайди на сервер и посмотри забыл сказать о евенте onClientElementDataChange ,мне нужна эта дата для определения кнопок (не суть) потом уже воиспроизвести этот звук через playSound3D это playSound слышат только локальные игроки (тоесть только для тебя) да и https://wiki.multitheftauto.com/wiki/PlaySound3D на грув стрит будет играть музыка (пример 2) играть будет для всех Представь себе. Ты запустил ресурс sound, когда этот ресурс запустится, то событие onClientResourceStart сработает у всех клиентов и все будут слышать этот звук! Пример addCommandHandler( 'sound', function( ) playSound( 'sound.mp3' ) end ) Когда ты наберёшь команду /sound звук будешь слышать только ты! Link to comment
lcd1232 Posted June 19, 2012 Share Posted June 19, 2012 Теперь выдает 2 ошибки -source = nill -bad 'file' pointer @ 'fileClose'(1) local logFile = '/log/'..time.monthday..'.'..time.month..'.'..time.year..'.log' fileClose( logFile ) Также вопрос: как сделать чтобы он не писал на первой строчке, а переходил на другую если она уже написана? Link to comment
Kenix Posted June 19, 2012 Share Posted June 19, 2012 такая проблема: решил сделать ресурс, который будет записывать весь чат в файл, но появилась проблема. При отправке текста дебаг выдает ошибку attempt to concatenate local 'thePlayer' (a userdata value) function log ( theMessage, thePlayer ) local time = getRealTime() time.month = time.month + 1 time.year = time.year + 1900 local logFile = '/log/'..time.monthday..'.'..time.month..'.'..time.year local logMessage = '['..time.hour..time.minute..time.second..'] '..thePlayer..': '..theMessage if fileExists( logFile ) then fileWrite( fileOpen( logFile ), logMessage ) else fileWrite( fileCreate( logFile ), logMessage ) end end addEventHandler( 'onChatMessage', root, log ) local logMessage = '['..time.hour..time.minute..time.second..'] '..thePlayer..': '..theMessage userdata не может быть в строке. local logMessage = '['..time.hour..time.minute..time.second..'] '.. getElementType( thePlayer ) == 'player' and getPlayerName( thePlayer ) or 'OUTPUT'..': '..theMessage Так правильнее Также вопрос: как можно определить что этот чат написан через Y или U(Team Chat)? Тебе нужно юзать событие onPlayerChat если ты хочешь определить это. Link to comment
Roma Posted June 19, 2012 Share Posted June 19, 2012 А как можно заставить клиент, искать машину в серверном скрипте Link to comment
Kernell Posted June 19, 2012 Share Posted June 19, 2012 TwiX!, музыку слышат все из-за события onClientElementDataChange, которое вызывается на всех клиентах если кто-то изменил ElementData, а это уже с участием серверной стороны. Созданные элементы на клиентской стороны НЕ синхронизируются, они созданы ТОЛЬКО для этого клиента. Есть только одна функция которая синхронизируется на всех клиентах - createProjectile (почему так решили сделать - не понятно, по сути это нарушает логику). Если элемент был создан на сервере, то понятное дело что элемент будет создан на всех клиентах (ибо это его задача) Roma, соответственно клиент имеет доступ к серверным элементам, т.е. получить список элементов в виде таблицы можно с помощью getElementsByType Link to comment
TwiX! Posted June 19, 2012 Share Posted June 19, 2012 TwiX!,музыку слышат все из-за события onClientElementDataChange, которое вызывается на всех клиентах если кто-то изменил ElementData, а это уже с участием серверной стороны. Созданные элементы на клиентской стороны НЕ синхронизируются, они созданы ТОЛЬКО для этого клиента. Есть только одна функция которая синхронизируется на всех клиентах - createProjectile (почему так решили сделать - не понятно, по сути это нарушает логику). Если элемент был создан на сервере, то понятное дело что элемент будет создан на всех клиентах (ибо это его задача) Roma, соответственно клиент имеет доступ к серверным элементам, т.е. получить список элементов в виде таблицы можно с помощью getElementsByType я же потом добавил этот эвент в пост, потому что забыл про него так то понятно что он срабатывает у всех, для этого я и сделал Link to comment
lcd1232 Posted June 20, 2012 Share Posted June 20, 2012 В принципе с ошибками разобрался, но есть еще одна проблема: при исп. функции fileWrite файл стирается напрочь. Может поможете как этого избежать? Link to comment
562141 Posted June 20, 2012 Share Posted June 20, 2012 Всем привет как сделать чтобы гуи открывалось когда челавек спавнится??? Link to comment
Kenix Posted June 20, 2012 Share Posted June 20, 2012 lcd1232 fileRead fileGetSize function OnPlayerChat ( sMsg, nType ) if nType == 0 or nType == 1 then local aTime = getRealTime() local nMonth = aTime.month + 1 local nYear = aTime.year + 1900 local nMonthday = aTime.monthday local nHour = aTime.hour local nMin = aTime.minute local nSec = aTime.second local sLogFile = ':' .. getResourceName( resource ) .. '/log/' .. nMonthday ..'.' .. nMonth .. '.' .. nYear local sLogMessage = '[' .. nHour .. nMin .. nSec .. '] ' .. getPlayerName( source ) .. ': ' .. sMsg local pFile = fileExists( sLogFile ) and fileOpen( sLogFile ) or fileCreate( sLogFile ) local sText = '' while not fileIsEOF( pFile ) do sText = sText .. fileRead( pFile, 500 ) end fileWrite( pFile, sText .. sLogMessage ) fileClose( pFile ) end end addEventHandler( 'onPlayerChat', root, OnPlayerChat ) 562141 guiSetVisible showCursor https://wiki.multitheftauto.com/wiki/OnClientPlayerSpawn Link to comment
Mc_Trekkie Posted June 20, 2012 Share Posted June 20, 2012 lcd1232 fileRead fileGetSize function OnPlayerChat ( sMsg, nType ) if nType == 0 or nType == 1 then local aTime = getRealTime() local nMonth = aTime.month + 1 local nYear = aTime.year + 1900 local nMonthday = aTime.monthday local nHour = aTime.hour local nMin = aTime.minute local nSec = aTime.second local sLogFile = ':' .. getResourceName( resource ) .. '/log/' .. nMonthday ..'.' .. nMonth .. '.' .. nYear local sLogMessage = '[' .. nHour .. nMin .. nSec .. '] ' .. getPlayerName( source ) .. ': ' .. sMsg local pFile = fileExists( sLogFile ) and fileOpen( sLogFile ) or fileCreate( sLogFile ) fileWrite( pFile, fileRead( pFile, fileGetSize( pFile ) ) .. sLogMessage ) fileClose( pFile ) end end addEventHandler( 'onPlayerChat', root, OnPlayerChat ) 562141 guiSetVisible showCursor https://wiki.multitheftauto.com/wiki/OnClientPlayerSpawn Лучше Триггером,это обеспечит защиту(: ИМХО. Link to comment
562141 Posted June 20, 2012 Share Posted June 20, 2012 дело в том что я уже пробовал function rewardOnWasted () triggerClientEvent( "setupWeaponSelection", localPlayer) end addEventHandler ( "onPlayerWasted", getRootElement(), rewardOnWasted ) Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now