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. Wow! Nice
  4. http://bugs.mtasa.com/view.php?id=7031 Ваш путь к серверу должен содержать только латинские символы, а не другие. Т.е папку мта вам надо переименовать если вы не поняли.
  5. getCameraMatrix getScreenFromWorldPosition processLineOfSight getDistanceBetweenPoints3D dxDrawText getElementPosition
  6. UPDATED
  7. Вы не читаете мои посты, или вы просто плохо читаете их не вникая в суть. Поэтому у вас ничего и не получается .. Я вам писал много раз, в предыдущем посте я писал, что thePlayer не определен, вам нужно использовать source. Тут вы уже пишете localPlayer, для чего? Это клиентская предопределенная переменная, она не будет работать на сервере. Используйте source. Также я давал ссылку про систему событий и даже пример использования, но вы это видимо тоже не читали. И ещё я заметил, что вы хотите получить имя машины из ида, у вас не получится т.к чтобы узнать имя машины аргументом должна быть машина, а не её ид т.к вы используте функцию getVehicleName. Если вы хотите получить имя машины из ида, то используйте функцию getVehicleNameFromModel Может быть вы расчитываете, чтобы я написал весь код за вас, можете не расчитывать на это. Вы должны сами написать его. Вам же лучше, когда вы вникаете во всю суть, а не кто-то другой пишет за вас весь код.
  8. Kenix

    [WIP]MTAM

    Wow. Good idea. Keep it up!
  9. Вы передаёте гуи элемент кнопки серверу, а надо игрока. Используйте предопределенную переменную 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
  10. А вообще вам этого и не нужно делать, вам нужно просто получить выбранную строку из гридлиста, и получить из неё текст и прислать серверу. Можете прочитать про switch в Lua: http://lua-users.org/wiki/SwitchStatement https://wiki.multitheftauto.com/wiki/Switch По названию функции можно определить, что используется только строка, ничего более. Чем вам строка не угадила? Вы можете из строки получить число очень простым образом. tonumber( '1' ) ну и через tostring в строку соответственно. Вам его не нужно определять, он уже определён внутри функции-обработчика, если источник игрок, то он и будет игроком. А если вам нужно передать элемент, то пожалуйста, отправляйте его и дописывайте в аргументах функции-обработчика. https://wiki.multitheftauto.com/wiki/Event
  11. На клиенте и на сервере сделать по событию. Ты просто передавай аргументы серверу и он уже сам будет делать, то что нужно. Сервер 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 = корню всех элементов. Ну и ещё, раз вы делаете спавнер тачек, то зачем вам кнопки если вы можете это сделать в гридлисте? Так намного проще. Вы будете передавать данные серверу получая эти данные из гридлиста, что ещё легче для реализации.
  12. В твоем случае: setVehicleHandling
  13. Можно было бы и описание серва тут изложить ..
  14. С новым годом всех
  15. setCameraTarget Можешь ничего не расчитывать, эта функция ставит камеру со спины по дефолту если в аргументах цель = игрок.
  16. No problem.
  17. На клиенте например есть лимит 1023 символов, на сервере 134. Если больше этого лимита на клиенте, то показываются до 1023 символов, а если на сервере, то не показываются. Только что проверил. Символы генерировал через string.rep.
  18. Перед тем как писать урок ознакомьтесь пожалуйста с основами скриптинга. https://forum.multitheftauto.com/viewtop ... 9bb7accf5e https://wiki.multitheftauto.com/wiki/RU/ ... troduction
  19. Перед тем как писать урок ознакомьтесь пожалуйста с основами скриптинга. https://forum.multitheftauto.com/viewtop ... 9bb7accf5e https://wiki.multitheftauto.com/wiki/RU/ ... troduction
  20. for _, pButton in ipairs( getElementsByType( 'gui-button' ) ) do guiSetProperty( pButton, 'NormalTextColour', 'FF0055FF' ) end
  21. Kenix

    Stats system

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