Технический форум Помощь по скриптингу
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

Проверенный

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

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

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

Модератор

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

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

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

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

Проверенный

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

Замечания: 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

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

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

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

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

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

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

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

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

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

Проверенный

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

Замечания: 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

Модератор

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

Замечания: 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

Проверенный

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

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

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

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

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

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

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

Модератор

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

Замечания: 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

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

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

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

parapassr, попробуй использовать event OnClientVehicleEnter, а потом уже проверку на seat и false на включение фар
goldr 21.09.2018 в 14:20

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

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

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

Кто имеет какую-то связь с DayZ серверами помогите пожалуйста найти данные объекты,они есть почти на каждом неплохом DayZ сервер но обыскав очень много ресурсов так и не смог найти их.
Zibera 22.09.2018 в 10:36

Модератор

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

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

goldr, а в кеше сервера найти?
isr72 22.09.2018 в 11:10

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

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

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

goldr, ищи в кэше, либо в интернете ищи паки объектов.
LOS9W33 28.09.2018 в 18:24

Проверенный

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

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

Как добавить консольную команду, допустим, на выдачу money
isr72 29.09.2018 в 08:25

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

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

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

LOS9W33,
function consoleGiveCash ( thePlayer, command, amount ) --when the givecash command is called
givePlayerMoney ( thePlayer, amount ) --give the player money according to the amount
end
addCommandHandler ( "givecash", consoleGiveCash ) --add a handler function for the command "givecash"
maxxxon7 18.10.2018 в 21:46

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

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

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

Подскажите пожалуйста, как вставить телепорт в
local sizeX,sizeY = 1324*px,724*px
local posX,posY = scx/2-sizeX/2,scy/2-sizeY/2
local section = 2
local selectedColor = 14
local mainMenuShown = false
local bStr = 0

local colorsTable =
{
{0,0,0},
{50,50,50},
{100,100,100},
{150,150,150},
{200,200,200},
{255,255,255},
{250,0,0},
{200,0,0},
{150,0,0},
{100,0,0},
{50,0,0},
{0,50,0},
{0,100,0},
{0,150,0},
{0,200,0},
{0,250,0},
{0,0,250},
{0,0,200},
{0,0,150},
{0,0,100},
{100,100,0},
{150,150,0},
{200,200,0},
{250,250,0},
{0,50,50},
{0,100,100},
{0,150,150},
{0,200,200},
{0,250,250},
{100,0,100},
{150,0,150},
{200,0,200},
}
--[[
function drawMainMenu()
if bStr < 1 then
bStr = bStr +0.02
end
Blur.render(255, bStr)
dxDrawImage(posX,posY,sizeX,sizeY,"files/menu/1.png")
local biasX = 140*px
for i=1,6 do
if i == section then
dxDrawImage(posX,posY-50*px,sizeX,sizeY,"files/menu/"..i+1 ..".png")
else
dxDrawImage(posX,posY-50*px,sizeX,sizeY,"files/menu/"..i+1 ..".png",0,0,0,tocolor(100,100,100))
end
if isCursorOverRectangle(posX+biasX,posY+30*px,150*px,160*px) and section ~= i then
dxDrawImage(posX,posY-50*px,sizeX,sizeY,"files/menu/"..i+1 ..".png",0,0,0,tocolor(150,150,150))
if getKeyState("mouse1") then
section = i
end
end
biasX = biasX + 190*px
end
if section == 2 then
--dxDrawRectangle(posX+sizeX/2+60*px,posY+280*px,500*px,400*px,tocolor(255,255,255,50))
--dxDrawRectangle(posX+sizeX/2+60*px,posY+280*px,500*px,40*px,tocolor(30,30,30,100))
dxDrawText("Цветовая схема",posX,posY+220*px,posX+sizeX-10*px,posY+220*px,tocolor(255,255,255),2*px,"default-bold","center","center")
local cBiasX, cBiasY = 0, 0
for k,v in ipairs(colorsTable) do
if k == selectedColor then
dxDrawRectangle(posX+117*px+cBiasX,posY+247*px+cBiasY,32*px,32*px,tocolor(255,255,255,255))
dxDrawRectangle(posX+118*px+cBiasX,posY+248*px+cBiasY,30*px,30*px,tocolor(v[1],v[2],v[3]))
--dxDrawImage(posX+92*px+cBiasX,posY+342*px+cBiasY,5*px,5*px,"files/menu/colormark.png")
elseif isCursorOverRectangle(posX+118*px+cBiasX,posY+248*px+cBiasY,30*px,30*px) then
dxDrawRectangle(posX+117*px+cBiasX,posY+247*px+cBiasY,32*px,32*px,tocolor(150,150,150,100))
dxDrawRectangle(posX+118*px+cBiasX,posY+248*px+cBiasY,30*px,30*px,tocolor(v[1],v[2],v[3]))
if getKeyState("mouse1") then
selectedColor = k
hudColor = tocolor(v[1],v[2],v[3])
end
else
dxDrawRectangle(posX+119*px+cBiasX,posY+249*px+cBiasY,27*px,27*px,tocolor(150,150,150,100))
dxDrawRectangle(posX+120*px+cBiasX,posY+250*px+cBiasY,25*px,25*px,tocolor(v[1],v[2],v[3]))
end
cBiasX = cBiasX + 35*px
if cBiasX >= 450 then
cBiasY = cBiasY + 65*px
cBiasX = 0
end
end
end
end
]]--
--addEventHandler("onClientRender",root,drawMainMenu)

local roboto18 = dxCreateFont("files/roboto.ttf",18*px)
local roboto20 = dxCreateFont("files/roboto.ttf",20*px)
local roboto24 = dxCreateFont("files/roboto.ttf",24*px)
local roboto30 = dxCreateFont("files/roboto.ttf",30*px)

local sections =
{
{"Статистика","stats.png",600},
{"Настройки","settings.png",800},
{"Список команд","list.png",2000},
{"Связь с админами","admins.png",0},
{"Донат","donate.png",0},
{"Улучшения","upgrades.png",0},
}

local sectionRenderTarget = dxCreateRenderTarget(900*px,500*px,true)

local scroll = 0

function drawMainMenu()
if bStr < 1 then
bStr = bStr +0.02
end
Blur.render(255, bStr)
dxDrawImage(posX,posY,sizeX,sizeY,"files/menu2/window.png")
dxDrawText("МЕНЮ",posX,posY,posX+sizeX,posY+130*px,tocolor(255,255,255),1,roboto24,"center","center")
dxDrawText("ALLIVION RP",posX,posY+200*px,posX+400*px,posY+130*px,tocolor(255,255,255),1,roboto30,"center","center")
dxDrawImage(posX+1250*px,posY+50*px,27*px,27*px,"files/menu2/cross.png")

if isCursorOverRectangle(posX+1250*px,posY+50*px,27*px,27*px) then
if getKeyState("mouse1") then
initMainMenu()
end
end

local sectionBiasY = 230*px
for k,v in pairs(sections) do
if section == k then
dxDrawRectangle(posX+22*px,posY+sectionBiasY-20*px,360*px,70*px,tocolor(200,50,50,255))
end
if isCursorOverRectangle(posX+22*px,posY+sectionBiasY-20*px,360*px,70*px) then
if getKeyState("mouse1") then
section = k
scroll = 0
end
end
dxDrawImage(posX+60*px,posY+sectionBiasY,30*px,30*px,"files/menu2/"..v[2])
dxDrawText(v[1],posX+100*px,posY+sectionBiasY,posX+100*px,posY+sectionBiasY+30*px,tocolor(255,255,255),1,roboto18,"left","center")
sectionBiasY = sectionBiasY + 75*px
end
local targetSize = sections[section][3]*px
if scroll <= 0 then scroll = 0
elseif scroll >= targetSize then scroll = targetSize end

dxSetRenderTarget( sectionRenderTarget, true )
if section == 1 then
elseif section == 2 then
--Телепорт
elseif section == 3 then
dxDrawText("Основные:",50*px,50*px-scroll,50*px,50*px,tocolor(0,0,0),1,roboto24)
dxDrawText("#dd3333/команда #000000 - описание\n#dd3333/команда #000000 - описание\n#dd3333/команда #000000 - описание",80*px,100*px-scroll,50*px,50*px,tocolor(0,0,0),1,roboto18,"left","top",false,false,false,true)
--dxDrawText( string text, float left, float top [, float right=left, float bottom=top, int color=white,float scale=1, mixed font="default", string alignX="left", string alignY="top", bool clip=false, bool wordBreak=false, bool postGUI=false, bool colorCoded=false, bool subPixelPositioning=false, float fRotation=0, float fRotationCenterX=0, float fRotationCenterY=0 ] )
elseif section == 4 then
elseif section == 5 then
elseif section == 6 then
end
dxSetRenderTarget()
dxDrawImage(posX+390*px,posY+110*px,900*px,500*px,sectionRenderTarget)

if targetSize >= 500*px then
dxDrawRectangle(posX+1246*px,posY+155*px,20*px,20*px,tocolor(150,150,150,255))
dxDrawImage(posX+1250*px,posY+160*px,12*px,10*px,"files/menu2/arrow_u.png")
dxDrawImage(posX+1246*px,posY+175*px,20*px,480*px,"files/menu2/scrollbackground.png")

local scrollSizeY = 480*px/targetSize*500*px
local scrollPos = (480*px-scrollSizeY)*scroll/targetSize
dxDrawImage(posX+1246*px,posY+175*px+scrollPos,20*px,scrollSizeY,"files/menu2/scrollbar.png") -- sizeY

if isCursorOverRectangle(posX+1236*px,posY+155*px,40*px,520*px) then
if getKeyState("mouse1") then
local mx,my = getCursorPosition()
local cx,cy = mx*scx,my*scy
scroll = (cy-(posY+175*px))/480*px*targetSize
end
end

dxDrawRectangle(posX+1246*px,posY+655*px,20*px,20*px,tocolor(150,150,150,255))
dxDrawImage(posX+1250*px,posY+660*px,12*px,10*px,"files/menu2/arrow_d.png")
end
end
--addEventHandler("onClientRender",root,drawMainMenu)

function initMainMenu()
if mainMenuShown then
removeEventHandler("onClientRender",root,drawMainMenu)
showCursor(false)
setElementData(localPlayer,"hud:main",true,false)
showChat( true )
else
bStr = 0
scroll = 0
addEventHandler("onClientRender",root,drawMainMenu)
showCursor(true)
setElementData(localPlayer,"hud:main",false,false)
showChat( false )
end
mainMenuShown = not mainMenuShown
end
--initMainMenu()
bindKey("F2","down",initMainMenu)

addEventHandler("onClientKey",root,function(key,press)
if press then
if not mainMenuShown then return end
if key == "mouse_wheel_down" then
scroll = scroll + 10*px
elseif key == "mouse_wheel_up" then
scroll = scroll - 10*px
end
end
end)

154 Строка
Это будет вкладка "Настройка"
image
Туда я хочу добавить телепорт. Пытался добавить Телепорт
Что бы при открытие вкладки "Настройки" там появлялся список телепортов, вот
Кто чем поможет?
Войдие или зарегистрируйтесь что бы написать сообщение