Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Posted

Нажимаю на форму ввода (в любое место, даже на заголовок окна) т.е. не на кнопку, а событие onClientGUIClick все равно срабатывает. Как это отключить?

Решил проблему установив параметр getPropagated = false функции addEventHandler()

addEventHandler("onClientGUIClick", GUILogin.button[1], onClickBtnLogin, false)

было

addEventHandler("onClientGUIClick", GUILogin.button[1], onClickBtnLogin)

Posted

login: you successfully logged in

Как убрать это сообщение при авторизации? В поиске не нашел должного ответа.

Posted
login: you successfully logged in

Как убрать это сообщение при авторизации? В поиске не нашел должного ответа.

Никак, они выводится через сервер.

MTA10_Server/mods/deathmatch/logic/CAccountManager.cpp

Строки: 839-841

https://github.com/multitheftauto/mtasa ... anager.cpp

Большое спасибо за ответ. Видел на одном сервере при авторизации такое сообщение не выводилось. Теперь полагаю что там регистрация написана вообще без использования встроенных функций.

Posted

Заблокировать команду "msg".

local prohibitedCommands = {["msg"]=true} 
  
function noMsg(cmd) 
if prohibitedCommands[cmd] then 
outputChatBox("Эта команда запрещена.",source) 
cancelEvent() 
end 
end 
addEventHandler("onPlayerCommand",root,noMsg) 

Posted
Заблокировать команду "msg".
local prohibitedCommands = {["msg"]=true} 
  
function noMsg(cmd) 
if prohibitedCommands[cmd] then 
outputChatBox("Эта команда запрещена.",source) 
cancelEvent() 
end 
end 
addEventHandler("onPlayerCommand",root,noMsg) 

Спасибо за ответ!

local prohibitedCommand = {["say"] = true, ["msg"] = true, ["nick"] = true, ["me"] = true} 
function prohibitCmd(cmd) 
    if (prohibitedCommand[cmd]) then 
        outputConsole("Эта команда запрещена.") 
        print("Player executed: " .. cmd) 
        cancelEvent() 
    end 
end 
addEventHandler("onPlayerCommand", getRootElement(), prohibitCmd) 

Posted

setPlayerNametagText(...) не работает с кириллицей? У меня вместо русского имени выводится __________. Если возможно то как это исправить?

setElementID(...) если я игроку поставлю идентификатор с помощью этой функции, потом когда он (игрок) перезайдет на сервер ему нужно заново устанавливать идентификатор или эта функция работает как setAccountData(...)? Тот самый вопрос если при перезапуске сервера?

Posted

1. Делать свои неймтеги используя setElementData, хранить информацию в таблице.

2. Индификатор сбрасывается после удаления/выхода игрока из сервера. Перезапуск сервера также считается.

Что ты конкретно хочешь сделать?

Posted
1. Делать свои неймтеги используя setElementData, хранить информацию в таблице.

2. Индификатор сбрасывается после удаления/выхода игрока из сервера. Перезапуск сервера также считается.

Что ты конкретно хочешь сделать?

Благодарю за ответ. Я уже сделал, что надо было. Просто нужно было уточнить эти вопросы, чтобы не наделать ошибок в дальнейшем. Да и как-то костыльно получается с неймтегами, брать 3д текст, делать его видимым для всех и потом атачить. Можно было просто сделать это все одной функцией.

Posted

А функция setWeatherBlended(id) не работает? Тестировал у себя - ноль реакции, ни через минуту ни через две. Тестил на серверной и на клиентской стороне. Результат одинаковый. setWeather(id) работает нормально.

Posted

все верно, работает. Если у меня setMinuteDuration(60000) то погода изменится через час получается? Как же тогда сделать чтобы она менялась в течение 1-2 минут как указано в документации при таком setMinuteDuration?

Posted

Смена погоды происходит за 2 игровых часа, стандартная длительность игровой минуты 1 секунда.

Ну тут только если свою погоду делать. (Используя setSkyGradient, setRainLevel ) + шейдер.

На баг трекере есть запрос, можно задонатить, тогда запрос станет приоритетным:

https://bugs.mtasa.com/view.php?id=4531

Posted

Есть какая-нибудь встроенная функция чтобы получить ближайший транспорт к игроку. Или только перебором в цикле всего транспорта и getDistanceBetweenPoints3D(...)?

Posted

Если уничтожить элемент (например marker) функцией

destroyElement 

нужно ли вместе с этим удалять и повешенный

addEventHandler("onMarkerHit", marker, func) 

обработчик на этот элемент. Или после дестроя обработчики также удаляются?

Posted

При уничтожении элемента, все что связано с ним удаляется (элемент дата, события, а также дочерние элементы). Те события, которые у тебя были повешены на элемент не будут вызваны больше.

Файл MTA10_Server/mods/deathmatch/logic/CElement.cpp (строка 77)

Файл MTA10/mods/shared_logic/CClientEntity.cpp (строка 72)

Ссылка (Сервер): https://github.com/multitheftauto/mtasa ... nt.cpp#L77

Ссылка (клиент): https://github.com/multitheftauto/mtasa ... ty.cpp#L72

Posted

При входе в колшейп на клиентской стороне выводится сообщение

function startTimerHit( hitElement ) 
        outputChatBox("Сообщение") 
end 

Это сообщение видят все игроки. Чтобы увидел сообщение только тот кто вошел в колшейп нужно сообщение отправлять на сервере с visibleTo? Или у меня что-то не так?

Posted

Подскажите как сделать колеса у тс непробиваемыми или как отследить выстрелы по ним?

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...