Технический форум Ресурс только для админов!
ChestoooR 08.05.2015 в 00:12

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

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

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

Brago, чтобы несколько групп прописать нужно через запятую так? aclGetGroup("VIP,Moderator")Добавлено 2015-05-07 21:09:30Brago, на моем в сервере этот код был
function whenStart()
for k, v in pairs (getElementsByType("player")) do
if (hasObjectPermissionTo(v, "function.kickPlayer")) then
setElementData(v, "admincars", "admin")
end
end
end
addEventHandler ("onResourceStart", getRootElement(), whenStart)

function whenLogin()
if (hasObjectPermissionTo(source, "function.kickPlayer")) then
setElementData(source, "admincars", "admin")
end
end
addEventHandler("onPlayerLogin", getRootElement(), whenLogin)

function whenQuit()
for k, v in pairs (getElementsByType("vehicle")) do
if (getElementData(v, "admincar") and getElementData(v, "admincar") == getPlayerName(source)) then
destroyElement(v)
end
end
end
addEventHandler("onPlayerQuit", getRootElement(), whenQuit)

function createCar(name, model, x, y, z)
for k, v in pairs (getElementsByType("vehicle")) do
if (getElementData(v, "admincar") and getElementData(v, "admincar") == name) then
destroyElement(v)
end
end
local vehicle = createVehicle(model, x+2, y, z+2)
setElementData (vehicle, "admincar", name)
end
addEvent("createCar", true)
addEventHandler("createCar", getRootElement(), createCar)
Добавлено 2015-05-08 00:12:07Brago, добавь меня в ВК: vk.com/bcaa3 или скайп chudik_juj
Brago 08.05.2015 в 08:41

Заблокирован

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

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

ChestoooR, через запятую не получится, вот так
if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) or isObjectInACLGroup("user."..accName, aclGetGroup("Moderator")) or isObjectInACLGroup("user."..accName, aclGetGroup("VIP")) then

ну или через массив-цикл, но смысла для 2-3 групп нет
ChestoooR 08.05.2015 в 09:48

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

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

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

Brago, у меня донат на сервере это доп. машины, например у випа 3 дополнительные машины, у гл админов 6. Мне нужно чтобы вот эту панель могли открывать только вип и админы, и должна быть еще одна панель только с другими машинами для гл админов и смотрящих
Brago 08.05.2015 в 14:19

Заблокирован

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

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

ChestoooR, два списка для двух разных наборов групп, лови!
local screenX, screenY = guiGetScreenSize()

local group1cars =
{
"Jester",
"Banshee",
"Bravura",
"Monster 2"
}

local group2cars =
{
"Jester",
"Banshee"
}

function intializeInterface(cars, carsList)
carsWindow = guiCreateWindow((screenX/2)-(200/2), (screenY/2)-(300/2), 200, 300, "Bpan-Style", false)
carsList = guiCreateGridList(10, 25, 180, 263, false, carsWindow)
carsColumn = guiGridListAddColumn(carsList, "Auto", 0.91)
for k, v in pairs (cars) do
row = guiGridListAddRow(carsList)
guiGridListSetItemText(carsList, row, carsColumn, v, false, false )
end
addEventHandler("onClientGUIClick", carsList, function() interfaceGear(carsList) end)
end

function intefaceOpenAndClose(cars)
if isElement(carsWindow) then destroyElement(carsWindow)
showCursor(false)
else
intializeInterface(cars, carsList)
guiSetVisible(carsWindow, true)
showCursor(true)
end
end

addEvent("onPlayerIsGroup1", true)
addEventHandler("onPlayerIsGroup1", getRootElement(), function() intefaceOpenAndClose(group1cars) end)
addEvent("onPlayerIsGroup2", true)
addEventHandler("onPlayerIsGroup2", getRootElement(), function() intefaceOpenAndClose(group2cars) end)
bindKey ("F5", "down", function() triggerServerEvent("onPlayerPressKey", getRootElement(), localPlayer) end)

function interfaceGear(carsList)
local x, y, z = getElementPosition(localPlayer)
triggerServerEvent("createCar", getRootElement(), getPlayerName(localPlayer), getVehicleModelFromName(guiGridListGetItemText(carsList, guiGridListGetSelectedItem(carsList))), x, y, z)
end


group1 = {"VIP", "Admin"}
group2 = {"SuperAdmin"}

function checkPlayer(source)
acc = getPlayerAccount(source)
accName = getAccountName(acc)
for o, i in pairs (group1) do
if isObjectInACLGroup("user."..accName, aclGetGroup(i)) then
triggerClientEvent(source, "onPlayerIsGroup1", getRootElement())
break
end
end
for u, g in pairs (group2) do
if isObjectInACLGroup("user."..accName, aclGetGroup(g)) then
triggerClientEvent(source, "onPlayerIsGroup2", getRootElement())
break
end
end
end
addEvent("onPlayerPressKey", true)
addEventHandler("onPlayerPressKey", getRootElement(), checkPlayer)

function VehicleSp(playername, model, p, m, n)
if model then
createVehicle(model, p, m, n)
end
end
addEvent("createCar", true)
addEventHandler("createCar", getRootElement(), VehicleSp)
ChestoooR 08.05.2015 в 16:23

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

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

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

Brago, Спасибо большое, я тебе в ЛС написал ответь, кстати какие-то проблемы на сервере из-за чего может быть, что я обновляю какой-нибудь ресурс например freeroam или машины скачивает обнову и игроков переподключает опять к нам на сервер.

Из-за чего может быть, что я редактирую список машин в freeroam-е, то у игроков список машин и скинов пропадает? Вот сам freeroam http://rghost.ru/7zlYMd8Hz
Superski 09.05.2015 в 11:22

Проверенный

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

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

ChestoooR, вы редактируете название т/с? Поменяйте кодировку на utf -8 (без boom)
ChestoooR 09.05.2015 в 22:51

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

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

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

Superski, спасибо, но уже решил, проблема была не знаю в чем изменил название папки с freeroam на freeroam2 исправилось.
Destro 14.10.2019 в 15:12

Проверенный

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

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

Как сделать вот этот скрипт
function stopMagnets(player)
if not turnoff[player] then
removeEventHandler("onClientPlayerVehicleEnter",getLocalPlayer(),addGravityFinder)
removeEventHandler("onClientPlayerVehicleExit",getLocalPlayer(),removeGravityFinder)
removeEventHandler("onClientRender",getRootElement(),magnetWheels)
setPedCanBeKnockedOffBike(getLocalPlayer(),true)
veh = getPedOccupiedVehicle(getLocalPlayer())
if veh then
setVehicleGravity(veh,0,0,-1)
end
turnoff[player] = true
else
addEventHandler("onClientPlayerVehicleEnter",getLocalPlayer(),addGravityFinder)
addEventHandler("onClientPlayerVehicleExit",getLocalPlayer(),removeGravityFinder)
addEventHandler("onClientRender",getRootElement(),magnetWheels)
setPedCanBeKnockedOffBike(getLocalPlayer(),false)
turnoff[player] = nil
end
end

addCommandHandler("magnet",stopMagnets)
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),start)allClientPlayers = {}
turnoff = {}

function start()
setPedCanBeKnockedOffBike(getLocalPlayer(),false)
addEventHandler("onClientPlayerVehicleEnter",getLocalPlayer(),addGravityFinder)
addEventHandler("onClientPlayerVehicleExit",getLocalPlayer(),removeGravityFinder)
end

function addGravityFinder(veh)
addEventHandler("onClientRender",getRootElement(),magnetWheels)
setElementHealth(veh,1000000)
end

function removeGravityFinder(veh)
removeEventHandler("onClientRender",getRootElement(),magnetWheels)
end

function magnetWheels()
local veh = getPedOccupiedVehicle(getLocalPlayer())
local x,y,z = getElementPosition(veh)
local underx,undery,underz = getPositionUnderTheElement(veh)
setVehicleGravity(veh,underx - x,undery - y,underz - z)
end

function getPositionUnderTheElement(element)
local matrix = getElementMatrix (element)
local offX = 0 * matrix[1][1] + 0 * matrix[2][1] - 1 * matrix[3][1] + matrix[4][1]
local offY = 0 * matrix[1][2] + 0 * matrix[2][2] - 1 * matrix[3][2] + matrix[4][2]
local offZ = 0 * matrix[1][3] + 0 * matrix[2][3] - 1 * matrix[3][3] + matrix[4][3]
return offX,offY,offZ
end

bindKey("m","down",stopMagnets)

Только для админов?
Seven 15.10.2019 в 12:48

Проверенный

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

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

Destro, при входе игрока в аккаунт, проверяй админ ли он, и устанавливай ему elementData, а на клиентской части проверяй её
Отправлять сообщения могут только пользователи сайта