Технический форум Помощь по скриптингу
Reventon 13.05.2018 в 07:15

Пользователь

Репутация: 1 бал.

Замечания: 0 бал.

LordOri,


function teamName()
playerTeams = getPlayerTeam(source)
if playerTeams then
playerTeamName = getTeamName(playerTeams)
outputChatBox("Вы находитесь в команде под названием: "..playerTeamName, source, 0, 255, 0)
else
outputChatBox("Вы не находитесь в какой либо команде!", source, 255, 0, 0)
end
end
addEventHandler("onPlayerLogin", getRootElement(), teamName)
diman42199 19.05.2018 в 20:15

Проверенный

Репутация: 69 бал.

Замечания: 0 бал.

Ребят, подскажите какой функцией можно сделать проверку залогинелся ли игрок или нет?
decided96 19.05.2018 в 23:22

Проверенный

Репутация: 60 бал.

Замечания: 0 бал.

diman42199, как такой функции нет, но в функции логина/регистрации, можно добавить переменную
setElementData(player,"playerlog",true)
. Соответственно проверять на её наличие/отсутствие
if getElementData(player,"playerlog") == true then
--то что вам надо
end

"playerlog"
- необязательное название, можете хоть "a"
larnet7 21.05.2018 в 18:56

Проверенный

Репутация: 225 бал.

Замечания: 0 бал.

diman42199, на серверной стороне
if getPlayerAccount(player) then ... end
RellaX 24.05.2018 в 22:48

Пользователь

Репутация: 1 бал.

Замечания: 0 бал.

Здрасти, как-бы специально и необдуманно заменил в папке с ресурсами(5 папок) все " (" на "(" через npad, но теперь у ресурса с логином какой-то непонятный баг: Не отображает фотку логотипа и музыка играет рывками, хотя по старому коду сравниваю и не вижу различий.
addEventHandler("onClientResourceStart",resourceRoot,
function()
rX,rY = guiGetScreenSize()
width,height = 402,384
X = (rX/2) - (width/2)
Y = (rY/2) - (height/2)

login= guiCreateWindow(X,Y,width,height,"Панель авторизации",false)
guiSetAlpha(login,1)
guiWindowSetMovable(login,false)
guiWindowSetSizable(login,false)
loginImage = guiCreateStaticImage(9,20,384,160,"images/mtalogo.png",false,login)
edits["loginPassEdit"] = guiCreateEdit(16,257,369,23,"",false,login)
guiEditSetMasked(edits["loginPassEdit"],true)
loginPassLbl = guiCreateLabel(17,239,368,19,"Пароль:",false,login)
guiLabelSetVerticalAlign(loginPassLbl,"center")
guiLabelSetHorizontalAlign(loginPassLbl,"center",false)
loginUserLbl = guiCreateLabel(17,191,368,19,"Ник:",false,login)
guiLabelSetVerticalAlign(loginUserLbl,"center")
guiLabelSetHorizontalAlign(loginUserLbl,"center",false)
edits["loginUserEdit"] = guiCreateEdit(16,209,369,23,"",false,login)
buttons["login"] = guiCreateButton(16,295,371,28,"Войти в аккаунт",false,login)
buttons["registerPageBtn"] = guiCreateButton(16,330,371,28,"Регистрация",false,login)

rX,rY = guiGetScreenSize()
width,height = 392,468
X = (rX/2) - (width/2)
Y = (rY/2) - (height/2)

register = guiCreateWindow(X,Y,width,height,"Регистрация аккаунта",false)
guiSetAlpha(register,1)
guiWindowSetSizable(register,false)
guiWindowSetMovable(register,false)
registerImage = guiCreateStaticImage(9,21,370,140,"images/mtalogo.png",false,register)
emailLabel= guiCreateLabel(15,330,360,18,"Email адрес:",false,register)
guiLabelSetVerticalAlign(emailLabel,"center")
guiLabelSetHorizontalAlign(emailLabel,"center",false)
edits["regEmailEdit"] = guiCreateEdit(15,348,363,23,"",false,register)
regUserLabel = guiCreateLabel(15,179,360,18,"Ник:",false,register)
guiLabelSetVerticalAlign(regUserLabel,"center")
guiLabelSetHorizontalAlign(regUserLabel,"center",false)
edits["regUserEdit"] = guiCreateEdit(15,197,363,23,"",false,register)
regPassLbl = guiCreateLabel(15,231,360,18,"Пароль:",false,register)
guiLabelSetVerticalAlign(regPassLbl,"center")
guiLabelSetHorizontalAlign(regPassLbl,"center",false)
edits["regPassEdit1"] = guiCreateEdit(15,249,363,23,"",false,register)
guiEditSetMasked(edits["regPassEdit1"],true)
regConPass = guiCreateLabel(15,282,360,18,"Пароль(2):",false,register)
guiLabelSetVerticalAlign(regConPass,"center")
guiLabelSetHorizontalAlign(regConPass,"center",false)
edits["regPassEdit2"] = guiCreateEdit(15,300,363,23,"",false,register)
guiEditSetMasked(edits["regPassEdit2"],true)
buttons["register"] = guiCreateButton(16,375,364,29,"Зарегистрировать аккаунт",false,register)
buttons["return"] = guiCreateButton(16,413,364,29,"Назад",false,register)
guiEditSetMaxLength(edits["regEmailEdit"], 31)
guiEditSetMaxLength(edits["regPassEdit2"], 22)
guiEditSetMaxLength(edits["loginUserEdit"], 22)
guiEditSetMaxLength(edits["loginPassEdit"], 22)
guiSetVisible(login,true)
guiSetVisible(register,false)
setPlayerHudComponentVisible("all", false)
showCursor(true)
fadeCamera(true)
guiSetInputEnabled(true)
setElementFrozen(localPlayer, true)
setElementDimension(localPlayer, 65535)
setCameraMatrix(-1795.993896, 1014.037963, 206.665481, -1795.993896, 1013.037963, 206.665481)
sound = playSound("sounds/auth.mp3", true)
setSoundVolume(sound, 1.0)
addEventHandler("onClientGUIClick",root,handleButtonClick) --handler to handle all client buttons that are clicked.
end)
Cerny 24.05.2018 в 23:51

Пользователь

Репутация: 4 бал.

Замечания: 0 бал.

RellaX, debugscript 3 ? Возможно от спама ошибок - лагает логин панель
RellaX 25.05.2018 в 12:11

Пользователь

Репутация: 1 бал.

Замечания: 0 бал.

Cerny, Ничего (Стопил, Стартил, Рестартил ресурс при debug'e)
image

Случайным образом нашёл ошибку. Оказывается notepad умеет менять код у файлов фоток и музыки
diman42199 04.06.2018 в 19:28

Проверенный

Репутация: 69 бал.

Замечания: 0 бал.

Всем привет. Ребят в чём проблема, сделал простенькое окно и нужно заполнить список игроками которые рядом со смной, но почему то неработает)
gUIEditorWindow = {}
gUIEditorGrid = {}
gUIEditorColumn = {}
gUIEditorEdit = {}
gUIEditorButton = {}


gUIEditorWindow[1] = guiCreateWindow(0.350, 0.250, 0.250, 0.400,"панель",true)

gUIEditorGrid[1] = guiCreateGridList(0.035, 0.100, 0.535, 0.835,true,gUIEditorWindow[1])
gUIEditorColumn[1] = guiGridListAddColumn(gUIEditorGrid[1],"Окружающие",0.85)

gUIEditorEdit[1] = guiCreateEdit(0.650, 0.100, 0.25, 0.08,"100",true,gUIEditorWindow[1])
guiEditSetMaxLength ( gUIEditorEdit[1],4)
addEventHandler("onClientGUIChanged", gUIEditorEdit[1], function()
guiSetText(source, guiGetText(source):gsub("[^0-9]",""))
end)

gUIEditorButton[1] = guiCreateButton(0.600, 0.220, 0.35, 0.15,"кнопка 1",true,gUIEditorWindow[1])
gUIEditorButton[2] = guiCreateButton(0.600, 0.400, 0.35, 0.15,"кнопка 2",true,gUIEditorWindow[1])
gUIEditorButton[3] = guiCreateButton(0.600, 0.580, 0.35, 0.15,"кнопка 3",true,gUIEditorWindow[1])

guiGridListSetSortingEnabled ( gUIEditorGrid[1], false )
guiWindowSetSizable ( gUIEditorWindow[1], false )
guiSetVisible(gUIEditorWindow[1], false)
showCursor(false)


function openWindowsMed()
if (guiGetVisible(gUIEditorWindow[1]) == false) then
refreshPlayersGrid()
guiSetVisible(gUIEditorWindow[1], true)
showCursor(true)
else
guiSetVisible(gUIEditorWindow[1], false)
showCursor(false)
end
end
bindKey ( "F7", "down", openWindowsMed )


function refreshPlayersGrid()
guiGridListClear ( gUIEditorGrid[1] )
local posX, posY, posZ = getElementPosition( getLocalPlayer() )
local medCol = createColSphere( posX, posY, posZ, 3 )
local medPlayers = getElementsWithinColShape( medCol, "player" )
destroyElement( medCol )
for id, player in ipairs(medPlayers) do
local row = guiGridListAddRow ( gUIEditorGrid[1] )
guiGridListSetItemText ( gUIEditorGrid[1], row, gUIEditorColumn[1], getPlayerName ( player ), false, false )
end
end
decided96 04.06.2018 в 21:00

Проверенный

Репутация: 60 бал.

Замечания: 0 бал.

diman42199, добрый вечер в функции
refreshPlayersGrid()
удали destroyElement(medCol),так как ты запускаешь цикл, а колсферу удалил.

diman42199, и второе если не прокатит(что возможно), Измени проверку игроков. Ты толковый пишу , поэтому словами , а в код сам переведёшь если что напишешь мне. Вобщем, запускаешь цикл for на получение игроков,дальше внутри при помощи функции (могу ошибиться в синтаксисе) getBeetwen3dpoints , получаешь игроков находящихся на расстоянии , ну 6 и их выходишь в гридлист. Кароче проверка на расстояние от игрока, а не на наличие в колшейпе

diman42199,
Вот кароче:))
function refreshPlayersGrid()

guiGridListClear ( gUIEditorGrid[1] )

local posX, posY, posZ = getElementPosition( getLocalPlayer() )
local players = getElementsByType("player")
for id, player in ipairs(players) do
local px,py,pz = getElementPosition(player)
if getDistanceBetweenPoints3D(x,y,z,px,py,pz) < 6 then

local row = guiGridListAddRow ( gUIEditorGrid[1] )

guiGridListSetItemText ( gUIEditorGrid[1], row, gUIEditorColumn[1], getPlayerName ( player ), false, false )

end
end

end


Только x,y,z замени , как у тебя на posX, по привычке написал.если не прокатит , значит я лох и чё то не увидел

Я по поводу всего выше написаного
diman42199 05.06.2018 в 13:05

Проверенный

Репутация: 69 бал.

Замечания: 0 бал.

decided96, Спасибо большое, заработало)
parapassr 22.06.2018 в 13:45

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Ребят, подкиньте команду или функцию ручника :) буду благодарен... у
decided96 23.06.2018 в 10:24

Проверенный

Репутация: 60 бал.

Замечания: 0 бал.

parapassr,
На клиентской стороне:
function ruchnik()--создали функцию
local veh = getPedOccupiedVehicle(getLocalPlayer())--получаем ТСку игрока
if getElementFrozen(veh) == false then-- проверка на заморозку авто
setElementFrozen(veh,true)--включааем заморозку
outputChatBox("Ручник включён",0,255,0,true)--Цвет можно отключить удали цифры и true("Ручник включён")
else
setElementFrozen(veh,false)--выключаем заморозку
outputChatBox("Ручник выключен",255,0,0,true)
end--закрываем условие
end--закрываем функцию
bindKey("p","down",ruchnik)--бинд на клавишу Р(английская)
parapassr 25.06.2018 в 00:15

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

decided96, не работает что то)

Подскажите еще, что не так.
когда садишься в машину автоматом загораются фары. как исправить вот подобным кодом глушу двигатель, на фары не получается.

addEventHandler("vehiclelights", root, function(thePlayer, seat, theVehicle)
if seat == 0 then
setVehicleLightState(source, false)
end
end)
isr72 26.06.2018 в 09:20

Пользователь

Репутация: 1 бал.

Замечания: 0 бал.

parapassr, попробуй использовать event OnClientVehicleEnter, а потом уже проверку на seat и false на включение фар
Войдие или зарегистрируйтесь что бы написать сообщение