Kernell Posted December 7, 2012 Share Posted December 7, 2012 Помнится в баг-трекере об этом говорилось, но пока придётся делать костыль с playSound3D Link to comment
Kenix Posted December 7, 2012 Share Posted December 7, 2012 Как воспроизвести звук из STREAM/Ambience?Или playSoundFrontEnd это может? А то ведь на вики я посмотрел 0 - 20 Selection sounds27 - 30 Bullet sounds 32 - 33 Selection sounds а ведь эти звуки выстрелов находятся в папке SFX . Я конечно могу просто выцепить звук и юзануть playSound3D, но экономия ресов мне как-то более по душе. Вобщем есть ли возможность воспроизвести звук из STREAM'a? http://bugs.mtasa.com/view.php?id=7118 Link to comment
Memory Posted December 7, 2012 Share Posted December 7, 2012 во 1 у тебя будет ошибка, т.к ты пропустил end в raceWin... Действительно, простое и понятное объяснение Скрипт уже переделал Link to comment
Memory Posted December 7, 2012 Share Posted December 7, 2012 во 1 у тебя будет ошибка, т.к ты пропустил end в raceWin... ... Действительно, простое и понятное объяснение, спасибо Скрипт уже переделал Link to comment
TwiX! Posted December 7, 2012 Share Posted December 7, 2012 во 1 у тебя будет ошибка, т.к ты пропустил end в raceWin... ... Действительно, простое и понятное объяснение, спасибо Скрипт уже переделал обращайся) Link to comment
Memory Posted December 11, 2012 Share Posted December 11, 2012 Здравствуйте, у меня опять возник вопрос Как можно вызвать функцию sortAccounts c сервера сюда for index, data in ipairs( sortAccounts( ) ) do. Конечно, я думаю, вызвать надо через triggerServerEvent, но как её заставить работать в нужном месте, с этим у меня проблемы. Сервер function sortAccounts( ) local rowdata = { } for _, account in pairs( getAccounts( ) ) do rowdata[ #rowdata + 1 ] = { account = getAccountName( account ), points = getAccountData( account,"Points" ) } end table.sort( rowdata, function ( a, b ) return ( tonumber( a.points ) or 0 ) > ( tonumber( b.points ) or 0 ) end ) return rowdata end Клиент, открывается при старте ресурса, но потом сделаю нормальное gui function clientsideResourceStart () local playerList = guiCreateGridList ( 0.80, 0.10, 0.15, 0.60, true ) local column = guiGridListAddColumn( playerList, "Player", 0.6 ) local points = guiGridListAddColumn( playerList, "Points", 0.3 ) if ( column ) then for index, data in ipairs( sortAccounts( ) ) do local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, column, getPlayerName ( data.account), false, false ) if index == 7 then break end end end if ( points ) then for index, data in ipairs( sortAccounts( ) ) do local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, points, getPlayerName ( data.points), false, false ) if index == 7 then break end end end end addEventHandler ( "onClientResourceStart", getResourceRootElement(), clientsideResourceStart ) Link to comment
Flaker Posted December 12, 2012 Share Posted December 12, 2012 На сервере ее выполняешь просто, а ее значение возвращаешь на клиент... Link to comment
Memory Posted December 12, 2012 Share Posted December 12, 2012 Это типа такого, да? (не проверял) сервер function sortAccounts( ) local rowdata = { } for _, account in pairs( getAccounts( ) ) do rowdata[ #rowdata + 1 ] = { account = getAccountName( account ), points = getAccountData( account,"Points" ) } end table.sort( rowdata, function ( a, b ) return ( tonumber( a.points ) or 0 ) > ( tonumber( b.points ) or 0 ) end ) return rowdata end function tables( ) outputChatBox( "Top 7 points:", root, 255,255,255 ) for index, data in ipairs( sortAccounts( ) ) do outputChatBox(tostring( index )..": ".. tostring( data.account ) .." - ".. tostring( data.points ), root, 255, 255, 255 ) if index == 7 then break end end triggerClientEvent( 'onAccountsSend',root,sortAccounts( ) ) end addEvent("onSortTopTen", true) addEventHandler("onSortTopTen", root, tables) addCommandHandler( "top", tables ) клиент function clientsideResourceStart () local playerList = guiCreateGridList ( 0.80, 0.10, 0.15, 0.60, true ) local column = guiGridListAddColumn( playerList, "Player", 0.6 ) local points = guiGridListAddColumn( playerList, "Points", 0.3 ) if ( column ) then triggerServerEvent("onSortTopTen", getLocalPlayer()) local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, column, data.account, false, false ) end if ( points ) then triggerServerEvent("onSortTopTen", getLocalPlayer()) local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, points, data.points, false, false ) end end addEventHandler ( "onClientResourceStart", getResourceRootElement(), clientsideResourceStart ) И ещё попутно вопрос, игроки жалуются на "размытие" экрана при азоте, как это убрать, что-то искал нигде не нашёл. Link to comment
Silum Posted December 12, 2012 Share Posted December 12, 2012 можете дать код на ворота Link to comment
Silum Posted December 12, 2012 Share Posted December 12, 2012 local arr = { [14] = true; [15] = true; [16] = true; [17] = true; [18] = true; [19] = true; } function createObject ( 980, 2287.6000976563, 623.20001220703, 12.60000038147, 0, 0, 0) function createMarker (2287.6000976563, 623.5, 10.699999809265,'cylinder',4,0,0,0,0) function openbasegate1 (thePlayer) moveObject (basegate1, 5000, 2287.6000976563, 623.20001220703, 6.5999999046326) end end addEventHandler( "onColShapeHit", basecol, openbasegate1 ) function closebasegate1 (thePlayer) moveObject (basegate1, 5000, 2287.6000976563, 623.20001220703, 12.60000038147) end end addEventHandler( "onColShapeLeave", basecol, closebasegate1 ) в чём собствено ошибка? Link to comment
Kenix Posted December 13, 2012 Share Posted December 13, 2012 Во всём. https://forum.multitheftauto.com/viewtop ... ac1b62c212 Link to comment
Korish0074 Posted December 15, 2012 Share Posted December 15, 2012 возможно как-то создать телепорт по скину? система такая: человек с скином указаным скрипте может использовать телепорт а другие немогут Link to comment
Scripting Moderators Sarrum Posted December 15, 2012 Scripting Moderators Share Posted December 15, 2012 @Korish0074, можно getElementModel Link to comment
Kenix Posted December 15, 2012 Share Posted December 15, 2012 getElementModel setElementPosition Link to comment
Korish0074 Posted December 15, 2012 Share Posted December 15, 2012 ну допустим этот телепорт и что мне написать? function Makemarker500 () local theMarker = createMarker ( -2425.6000976563, 2307.8000488281, -4.5,"cylinder",2, 0, 0, 0, 0 ) setElementData ( theMarker, "teleportid", 500 ) end addEventHandler ( "onResourceStart", getRootElement(), Makemarker500 ) function Teleporthit500 ( hitPlayer, matchingDimension ) local teleportid = getElementData ( source, "teleportid" ) if teleportid == 500 then setElementPosition ( hitPlayer, 2346.8000488281, 633.20001220703, 10.699999809265) end end addEventHandler("onMarkerHit", getRootElement (), Teleporthit500) Link to comment
Memory Posted December 15, 2012 Share Posted December 15, 2012 Подскажите, пожалуйста, как убрать "расплытие" экрана при активации азота. Link to comment
Korish0074 Posted December 15, 2012 Share Posted December 15, 2012 помогите зделать телепорт на скин я не понимаю function Makemarker500 () local theMarker = createMarker ( -2425.6000976563, 2307.8000488281, -4.5,"cylinder",2, 0, 0, 0, 0 ) setElementData ( theMarker, "teleportid", 500 ) end addEventHandler ( "onResourceStart", getRootElement(), Makemarker500 ) function Teleporthit500 ( hitPlayer, matchingDimension ) local teleportid = getElementData ( source, "teleportid" ) if teleportid == 500 then setElementPosition ( hitPlayer, 2346.8000488281, 633.20001220703, 10.699999809265) end end addEventHandler("onMarkerHit", getRootElement (), Teleporthit500) Link to comment
Kernell Posted December 15, 2012 Share Posted December 15, 2012 Комментарии в коде поставьте, опишите логику на русском языке, если конечно понимаете её. Если вам нужно просто скопировать не задумываясь - так и скажите. Link to comment
Korish0074 Posted December 15, 2012 Share Posted December 15, 2012 нет мне нужна помощь немогу понять в чём ошибка function Makemarker500 () local theMarker = createMarker ( -2273, 2420.3999023438, -5,"cylinder",2, 0, 0, 0, 0 ) setElementData ( theMarker, "teleportid", 500 ) end addEventHandler ( "onResourceStart", getRootElement(), Makemarker500 ) function Teleporthit500 ( hitPlayer, matchingDimension ) local teleportid = getElementData ( source, "teleportid" ) if getElementModel () == 253 then if teleportid == 500 then setElementPosition ( hitPlayer, 2269.3999023438, 550.5, 7.8000001907349) end end addEventHandler("onMarkerHit", getRootElement (), Teleporthit500) Link to comment
Memory Posted December 15, 2012 Share Posted December 15, 2012 Подскажите, пожалуйста, как убрать "расплытие" экрана при активации азота. (Опять поднимаю вопрос, так как на предыдущий уже никто не ответит) Link to comment
_Vincent_ Posted December 15, 2012 Share Posted December 15, 2012 Memory, https://wiki.multitheftauto.com/wiki/SetBlurLevel попробуй обнули, хотя мб это не то Link to comment
Memory Posted December 16, 2012 Share Posted December 16, 2012 Спасибо, благодаря этому я нашёл где можно поменять. Оказывается в race прямо в админ панель можно менять, ставишь 0 и всё. Спасибо ещё раз. Link to comment
Memory Posted December 18, 2012 Share Posted December 18, 2012 Здравствуйте, помогите разобраться с SQL, на примере этого кода. Вот с "onResStart" и "onPlayerQuit" понятно. Но вот "onJoin", что-то никак не могу его заставить работать. Я перерыл много кодов на форуме, чтобы разобраться в этом, но увы. Хочу сделать по такому алгоритму: при Join получить из базы Points и послать их игроку setElementData, а при Quit получить Points (getElementData) и послать в базу. function onResStart () executeSQLCreateTable ( "Points", "serial TEXT, points INT" ) end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onResStart) -------------------------------- function onJoin () local serial = getPlayerSerial(source) local getPoints = executeSQLSelect("Points", "points", "serial='"..serial.."'") if getPoints == false then executeSQLInsert ( "Points", "'"..serial.."', '0'" ) setElementData(source, "Points", 0) else setElementData(source, "Points", tonumber(getPoints[1]["points"])) end end addEventHandler("onPlayerJoin", getRootElement(), onJoin) ---------------------------------------- function onPlayerQuit() local getActualPoints = getElementData(source, "Points") local serial = getPlayerSerial(source) executeSQLUpdate ( "Points", "points = '"..tonumber(getActualPoints).."'","serial = '" ..serial.. "'" ) end addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit) Link to comment
Kenix Posted December 18, 2012 Share Posted December 18, 2012 Сделайте дебаг для всех возвращаемых значений функций. Вам потом ясно будет, что у вас не так. Link to comment
~Gangsta~ Posted December 18, 2012 Share Posted December 18, 2012 Привет всем! Я на своем сервере хочу сделать систему скрытых пакетов (надо собрать каждому игроку по 100 пакетов) На какой стороне делать этот скрипт? 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