Jump to content

Kenix

Retired Staff
  • Posts

    4,121
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Kenix

  1. g_CmdTimers = -- Таблица команд с временем ( в миллисекундах ). { [ 'somecommand' ] = 20000; -- Команда /somecommand Время 20000 ( 20 сек ) -- ... } g_PlayersCmdTimers = {} -- Тут храним кол-во миллисекунд игроков, со времени запуска сервера к каждой команде, если нету то добавляем. addCommandHandler( 'somecommand', -- имя команды, тебе нужно изменить её function( pPlayer, sCmd, ... ) -- Аргументы if not g_PlayersCmdTimers[ pPlayer ][ sCmd ] or -- если нету в таблице getTickCount() - g_PlayersCmdTimers[ pPlayer ][ sCmd ] > g_CmdTimers[ sCmd ] then -- Или время больше чем в таблице с временем команд ( g_CmdTimers ) где индекс = команда, то g_PlayersCmdTimers[ pPlayer ][ sCmd ] = getTickCount() -- добавляем в таблицу -- Код else outputChatBox( ' ... ', pPlayer ) -- Сообщение об ошибке. end end ) addEventHandler( 'onPlayerJoin', root, function() g_PlayersCmdTimers[ source ] = {} end ) addEventHandler( 'onPlayerQuit', root, function() g_PlayersCmdTimers[ source ] = nil -- Очищаем end )
  2. Можно через элемент дату сделать или можно добавить в таблицу, где ключ - игрок и индекс - флаг ( Если на сервере ), на клиенте просто присваеваешь значение false. А когда время истечёт, то просто присваивай обратно setTimer Вообще тут много вариантов ещё есть. Можно ещё вместо таймера использовать getTickCount и проверять время.
  3. http://bugs.mtasa.com/view.php?id=7031 Ваш путь к серверу должен содержать только латинские символы, а не другие. Т.е папку мта вам надо переименовать если вы не поняли.
  4. getCameraMatrix getScreenFromWorldPosition processLineOfSight getDistanceBetweenPoints3D dxDrawText getElementPosition
  5. Вы не читаете мои посты, или вы просто плохо читаете их не вникая в суть. Поэтому у вас ничего и не получается .. Я вам писал много раз, в предыдущем посте я писал, что thePlayer не определен, вам нужно использовать source. Тут вы уже пишете localPlayer, для чего? Это клиентская предопределенная переменная, она не будет работать на сервере. Используйте source. Также я давал ссылку про систему событий и даже пример использования, но вы это видимо тоже не читали. И ещё я заметил, что вы хотите получить имя машины из ида, у вас не получится т.к чтобы узнать имя машины аргументом должна быть машина, а не её ид т.к вы используте функцию getVehicleName. Если вы хотите получить имя машины из ида, то используйте функцию getVehicleNameFromModel Может быть вы расчитываете, чтобы я написал весь код за вас, можете не расчитывать на это. Вы должны сами написать его. Вам же лучше, когда вы вникаете во всю суть, а не кто-то другой пишет за вас весь код.
  6. Kenix

    [WIP]MTAM

    Wow. Good idea. Keep it up!
  7. Вы передаёте гуи элемент кнопки серверу, а надо игрока. Используйте предопределенную переменную localPlayer или функцию getLocalPlayer И ещё это событие "zaspwcar" не существует на сервере, у вас есть событие "idspwcar". И ещё не помешало бы конвертировать строку с идом модели в число перед отправкой на сервер. Аргумент thePlayer к функции outputChatBox не определен, вам нужно использовать source. И я вам писал, что source вам не нужно определять, он уже определен в функции-обработчике. Если вы не понимаете, то вот небольшой пример: addEventHandler( 'onPlayerJoin', root, function() outputChatBox( getPlayerName( source ) .. ' joined.', root, 255, 0, 0, false ) end ) Будет выводить в чат игрока, которой зашёл на сервер. Источник( source ) в этом событии - игрок. Также это не верно. addEventHandler("idspwcar",source,zaspwncarto) Используйте предопределенную переменную root или функцию getRootElement
  8. А вообще вам этого и не нужно делать, вам нужно просто получить выбранную строку из гридлиста, и получить из неё текст и прислать серверу. Можете прочитать про switch в Lua: http://lua-users.org/wiki/SwitchStatement https://wiki.multitheftauto.com/wiki/Switch По названию функции можно определить, что используется только строка, ничего более. Чем вам строка не угадила? Вы можете из строки получить число очень простым образом. tonumber( '1' ) ну и через tostring в строку соответственно. Вам его не нужно определять, он уже определён внутри функции-обработчика, если источник игрок, то он и будет игроком. А если вам нужно передать элемент, то пожалуйста, отправляйте его и дописывайте в аргументах функции-обработчика. https://wiki.multitheftauto.com/wiki/Event
  9. На клиенте и на сервере сделать по событию. Ты просто передавай аргументы серверу и он уже сам будет делать, то что нужно. Сервер addEvent( 'Server:SpawnVehicle', true ) addEventHandler( 'Server:SpawnVehicle', root, function( iModel, fX, fY, fZ ) fX = fX + 5 local pVehicle = createVehicle( iModel, fX, fY, fZ ) outputChatBox( getVehicleName( pVehicle ) .. ( not pVehicle and ' не ' or ' ' ) .. 'заспавнен', source ) end ) И у вас кстати thePlayer не определен на сервере в событиях. Вам его и не нужно будет определять если у вас source = игрок, но в вашем коде на клиенте вы этого не делаете и у вас source = корню всех элементов. Ну и ещё, раз вы делаете спавнер тачек, то зачем вам кнопки если вы можете это сделать в гридлисте? Так намного проще. Вы будете передавать данные серверу получая эти данные из гридлиста, что ещё легче для реализации.
  10. В твоем случае: setVehicleHandling
  11. Можно было бы и описание серва тут изложить ..
  12. setCameraTarget Можешь ничего не расчитывать, эта функция ставит камеру со спины по дефолту если в аргументах цель = игрок.
  13. На клиенте например есть лимит 1023 символов, на сервере 134. Если больше этого лимита на клиенте, то показываются до 1023 символов, а если на сервере, то не показываются. Только что проверил. Символы генерировал через string.rep.
  14. Перед тем как писать урок ознакомьтесь пожалуйста с основами скриптинга. https://forum.multitheftauto.com/viewtop ... 9bb7accf5e https://wiki.multitheftauto.com/wiki/RU/ ... troduction
  15. Перед тем как писать урок ознакомьтесь пожалуйста с основами скриптинга. https://forum.multitheftauto.com/viewtop ... 9bb7accf5e https://wiki.multitheftauto.com/wiki/RU/ ... troduction
  16. for _, pButton in ipairs( getElementsByType( 'gui-button' ) ) do guiSetProperty( pButton, 'NormalTextColour', 'FF0055FF' ) end
  17. Kenix

    Stats system

    No problem. Good luck and Merry XMAS
×
×
  • Create New...