Jump to content

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


Recommended Posts

Здравствуйте.

1. Нужно реализовать идею (наверняка уже реализована сто раз): после посылки сообщения игроком в общий чат, это же сообщение появляется над головой игрока на некоторое время, потом пропадает, или же заменяется на новое отправленное сообщение. В общем как на РП серверах. Собственно, как реализовать, какие функции юзать?

2. Как убрать надпись в нижнем правом углу "MTA:SA 1.3.1"?

3. Как убрать надписи с названиями районов, которые появляются в зависимости от передвижения, в нижней части экрана?

Надеюсь на вашу помощь, господа.

Link to comment

Спасибо, особенно за setPlayerHudComponentVisible.

По поводу dx:

Если я хочу просто выводить текст, определенного размера, цвета и дальности видимости, то какие конкретно dx юзать?

Да, еще: эти dx они же клиентские! а нужно чтоб игрок написал сообщение, а оно над скином появилось, и все игроки в определенном радиусе видят. Или придется всех игроков циклом перебирать, и только так?

Edited by Guest
Link to comment

Если просто текст, то

dxDrawText 

и ещё вам нужно преобразовать 3D координаты в 2D через функцию

getScreenFromWorldPosition 

и чтобы подсчитывать дальность видимости вам нужно использовать функцию

getDistanceBetweenPoints3D 

Тут есть пример "своих" неймтегов через эти функции

https://wiki.multitheftauto.com/wiki/GetPedBonePosition

Link to comment

[2013-03-05 23:34:14] WARNING: @login.lua:406: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean]

[2013-03-05 23:34:14] WARNING: @login.lua:459: Bad argument @ 'getAccountData' [Expected account at argument 1, got boolean]

Mod Mta DayZ помогите при регистрации пишет Error

Link to comment

Здравствуйте!

Я хочу создать систему неона на своем сервере.

Вопрос: на какой стороне лучше аттачить неон :?:

P.S. в с скриптинге я пока новичок :roll:

Link to comment
x, y, size = -2144.5, 295.55911254883, 120 
  
local greenzone = createColRectangle ( 228.22802734375, 313, 25.700000762939, 312 ) 
  
local greenzonemaparea = createRadarArea (228.22802734375, 313, 25.700000762939, 312, 0, 255, 0, 120) 
  
  
  
function greenzoneEnter ( thePlayer, matchingDimension ) 
  
if getElementType( thePlayer ) ~= "player" then return end 
  
outputChatBox ( "* You Entered The Greenzone!", thePlayer, 50, 252, 3 ) 
  
toggleControl ( thePlayer, "fire", false ) 
  
toggleControl ( thePlayer, "next_weapon", false ) 
  
toggleControl ( thePlayer, "previous_weapon", false ) 
  
setPedWeaponSlot ( thePlayer, 0 ) 
  
toggleControl ( thePlayer, "aim_weapon", false ) 
  
toggleControl ( thePlayer, "vehicle_fire", false ) 
  
toggleControl ( thePlayer, "vehicle_secondary_fire", false ) 
  
end 
  
addEventHandler ( "onColShapeHit", greenzone, greenzoneEnter ) 
  
  
  
function greenzoneExit ( thePlayer, matchingDimension ) 
  
if getElementType( thePlayer ) ~= "player" then return end 
  
outputChatBox ( "* You Left The Greenzone!", thePlayer, 50, 252, 3 ) 
  
toggleControl ( thePlayer, "fire", true ) 
  
toggleControl ( thePlayer, "next_weapon", true ) 
  
toggleControl ( thePlayer, "previous_weapon", true ) 
  
toggleControl ( thePlayer, "aim_weapon", true ) 
  
toggleControl ( thePlayer, "vehicle_fire", true ) 
  
toggleControl ( thePlayer, "vehicle_secondary_fire", true ) 
  
end 
  
  
  
addEventHandler ( "onColShapeLeave", greenzone, greenzoneExit ) 

Помогите никак не могу стройку в SF накрыть

Link to comment
x, y, size = -2144.5, 295.55911254883, 120 
  
local greenzone = createColRectangle ( 228.22802734375, 313, 25.700000762939, 312 ) 
  
local greenzonemaparea = createRadarArea (228.22802734375, 313, 25.700000762939, 312, 0, 255, 0, 120) 
  
  
  
function greenzoneEnter ( thePlayer, matchingDimension ) 
  
if getElementType( thePlayer ) ~= "player" then return end 
  
outputChatBox ( "* You Entered The Greenzone!", thePlayer, 50, 252, 3 ) 
  
toggleControl ( thePlayer, "fire", false ) 
  
toggleControl ( thePlayer, "next_weapon", false ) 
  
toggleControl ( thePlayer, "previous_weapon", false ) 
  
setPedWeaponSlot ( thePlayer, 0 ) 
  
toggleControl ( thePlayer, "aim_weapon", false ) 
  
toggleControl ( thePlayer, "vehicle_fire", false ) 
  
toggleControl ( thePlayer, "vehicle_secondary_fire", false ) 
  
end 
  
addEventHandler ( "onColShapeHit", greenzone, greenzoneEnter ) 
  
  
  
function greenzoneExit ( thePlayer, matchingDimension ) 
  
if getElementType( thePlayer ) ~= "player" then return end 
  
outputChatBox ( "* You Left The Greenzone!", thePlayer, 50, 252, 3 ) 
  
toggleControl ( thePlayer, "fire", true ) 
  
toggleControl ( thePlayer, "next_weapon", true ) 
  
toggleControl ( thePlayer, "previous_weapon", true ) 
  
toggleControl ( thePlayer, "aim_weapon", true ) 
  
toggleControl ( thePlayer, "vehicle_fire", true ) 
  
toggleControl ( thePlayer, "vehicle_secondary_fire", true ) 
  
end 
  
  
  
addEventHandler ( "onColShapeLeave", greenzone, greenzoneExit ) 

Помогите никак не могу стройку в SF накрыть

Возможно будет проще воспользоваться ресурсом Кеникса? https://community.multitheftauto.com/index.php?p=resources&s=details&id=2020

Link to comment

Функция проверки из примера не дает никаких результатов. Дебаг молчит. Я так понимаю что outputChatBox ( tostring(getCameraGoggleEffect) ) должен выдавать normal, nightvision, thermalvision в чат. Вместо этого выдает рандомное значение типа "44AB6128" при перезапуске скрипта которые меняются.

Link to comment

Привет всем, есть следующая функция

при старте меню создаём массив:

toDestroyGUIElements = {} 

при выходе или клике на другие кнопки удаляем элементы в массиве:

function destroyElements() 
                for i, element in pairs ( toDestroyGUIElements ) do 
            destroyElement ( element ) 
            end 
end 

Я вставил её при каждом срабатывании кнопки:

function onGuiClick() 
        if source == Button[1] then 
           outputChatBox( "Work" ) 
           destroyElements() 
                        Panel = ... 
           toDestroyGUIElements = { Panel } 
        end 
        if source == Button[2] then 
           outputChatBox( "Work2" ) 
           destroyElements() 
        end 
end 

Так вот, меня смутило, что при нажатии происходит некоторая задержка, не повлияет ли это на нагрузку сервера?

Link to comment

Хмм... Вобще не должно быть задержки особо... Сколько же у тебя GUi элементов то? :|

А вобще, зачем их все удалять? Можно parent элемент удалять, если он есть...

Тоесть, допустим есть gui окно, а все внутринние элементы это children этого элемента... Если удаляешь основное окно, то удаляются и все children

Link to comment

Gui элементов планирую около 8 (их немного, просто через массив их легче удалять). Да и задержка ооочень маленькая (буквально на пару сотен миллисекунд), просто по сравнению, когда без этой функции, выполнение происходит несколько быстрей. Меня главное интересует, чтобы большой нагрузки на сервер не происходило :)

Link to comment

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

Link to comment

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...