Технический форум Помощь по скриптингу
larnet7 06.01.2017 02:03

Проверенный

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

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

EvilAltair, всё через setElementData
KODRED 06.01.2017 02:57

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

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

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

15/16/17/18 строки(я прономеровал их) выдают ошибку,что делать?
addEvent("sv_createWeapon", true1)
addEventHandler("sv_createWeapon", getRootElement(), function(item, loot, player)
15 local veh = getElementData(loot,"parent")
16 local mid = getElementModel(veh)
17
18 if getElementData(veh, "lilka")~=false then return end
if getElementData(loot, "Ковш")<=0 then return end
local x,y,z = getElementPosition(loot)
local lilka = createObject ( 2528, x+poses[mid][1],y+poses[mid][2],z+poses[mid][3])
setElementRotation(lilka, 0, 0, 0)
attachElements ( lilka, veh, poses[mid][1], poses[mid][2], poses[mid][3], poses[mid][4], poses[mid][5], poses[mid][6])
setElementData(veh, "lilka", lilka)
triggerClientEvent("cl_waitForKey", getRootElement(), veh, lilka, player)
end)

WARNING: [gameplay]/[SIS]/kovw/7-.lua:15: Bad argument @ 'getElementData' [Expected element at argument 1, got boolean]
[2017-01-06 03:33:31] WARNING: [gameplay]/[SIS]/kovw/7-.lua:16: Bad argument @ 'getElementModel' [Expected element at argument 1, got boolean]
[2017-01-06 03:33:31] WARNING: [gameplay]/[SIS]/kovw/7-.lua:17: Bad argument @ 'getElementData' [Expected element at argument 1, got boolean]
[2017-01-06 03:33:31] WARNING: [gameplay]/[SIS]/kovw/7-.lua:18: Bad argument @ 'getElementData' [Expected element at argument 1, got boolean]
EvilAltair 06.01.2017 11:11

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

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

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

Как добавить музыку в логин панель?
anything 06.01.2017 11:23

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

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

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

EvilAltair, playSound
EvilAltair 06.01.2017 17:26

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

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

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

anything, А в какой файл пихать?
anything 06.01.2017 18:57

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

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

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

EvilAltair, в какой хочешь пихай. Куда впихнёшь - там и будет
larnet7 06.01.2017 20:48

Проверенный

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

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

anything, вообщет только в клиентскую часть можно. Не путай людей
KODRED 06.01.2017 21:24

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

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

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

larnet7, кстати спасибо,но хосте удалил функцию и ошибка исчезла
Leonhik 07.01.2017 01:15

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

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

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

подскажите кто может написать скрипт на спавн ботов в определенном месте что бы не всегда они там были а когда игрок входит в эту зону знаю скрипт легкий для людей кто этим занимается но я увы могу только сделать по команде пишите в Личку или прям тут)
EvilAltair 07.01.2017 14:24

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

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

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

А что нужно сделать что бы скрипт автоматически запускался?Ну какую переменную и куда ввести?
larnet7 07.01.2017 14:53

Проверенный

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

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

EvilAltair, переменную... в mtaserver.conf впиши свой ресурс по примеру, который там написан
Ritan 07.01.2017 14:55

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

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

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

Помогите! Что дописать, стереть что бы когда входишь в аккаунт, перезапускаешь скрипт не сбивались kill/dead к 0
local root = getRootElement()
local scoresRoot = getResourceRootElement(getThisResource())

local scoreColumns = {"kills", "deaths", "self", "ratio", "status"}
local isColumnActive = {}

local KDR_DECIMAL_PLACES = 2

--http://lua-users.org/wiki/SimpleRound
local function round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end

local function setScoreData (element, column, data)
if isColumnActive[column] then
setElementData(element, column, data)
end
end

local function resetScores (element)
setScoreData(element, "kills", 0)
setScoreData(element, "deaths", 0)
setScoreData(element, "self", 0)
setScoreData(element, "ratio", "-")
local status = ""
if isPedDead(element) then
status = "Dead"
end
setScoreData(element, "status", status)
end

local function updateRatio (element)
local deaths = getElementData(element, "deaths")
if deaths == 0 then
setScoreData(element, "ratio", "-")
else
local kdr = round(getElementData(element, "kills") / deaths, KDR_DECIMAL_PLACES)
setScoreData(element, "ratio", tostring(kdr))
end
end

function updateActiveColumns ()
for i, column in ipairs(scoreColumns) do
if get(column) then
isColumnActive[column] = true
exports.scoreboard:addScoreboardColumn(column)
elseif isColumnActive[column] then
isColumnActive[column] = false
exports.scoreboard:removeScoreboardColumn(column)
end
end
end

addEventHandler("onResourceStart", scoresRoot,
function ()
updateActiveColumns()
for i, player in ipairs(getElementsByType("player")) do
resetScores(player)
end
end
)

addEventHandler("onResourceStop", scoresRoot,
function ()
for i, column in ipairs(scoreColumns) do
if isColumnActive[column] then
exports.scoreboard:removeScoreboardColumn(column)
end
end
end
)

addEventHandler("onPlayerJoin", root,
function ()
resetScores(source)
end
)

addEventHandler("onPlayerWasted", root,
function (ammo, killer, weapon)
if killer then
if killer ~= source then
-- killer killed victim
setScoreData(killer, "kills", getElementData(killer, "kills") + 1)
setScoreData(source, "deaths", getElementData(source, "deaths") + 1)
if isColumnActive["ratio"] then
updateRatio(killer)
updateRatio(source)
end
else
-- victim killed himself
setScoreData(source, "self", getElementData(source, "self") + 1)
end
else
-- victim died
setScoreData(source, "deaths", getElementData(source, "deaths") + 1)
if isColumnActive["ratio"] then
updateRatio(source)
end
end

setScoreData(source, "status", "Dead")
end
)

addEventHandler("onPlayerSpawn", root,
function ()
setScoreData(source, "status", "")
end
)

addCommandHandler("score",
function (player)
if player then
for i, column in ipairs(scoreColumns) do
if column == "status" then
break
end
if isColumnActive[column] then
exports.scoreboard:addScoreboardColumn(column)
outputConsole(column .. ": " .. getElementData(player, column), player)
end
end
end
end
)
EvilAltair 07.01.2017 15:37

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

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

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

larnet7, А как можно убрать картинку сбоку THS? С сервера
larnet7 07.01.2017 15:52

Проверенный

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

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

EvilAltair, глазами ищешь, руками удаляешь
KODRED 14.01.2017 00:07

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

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

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

Help
ERROR: [DayZ-MTA]/DayZ/vehicle_spawns.lua:1836: call: failed to call 'tents:replaceVehicleCol' [string "?"]


Кто подскажет как сделать спавн лута не в ящиках а чтоб он лежал на земле?
function createItemPickup(item,x,y,z,tableStringName)
if item and x and y and z then
local physicsObj = createObject(1598,x,y,z-0.600)
local object = createObject(itemTable[tostring(tableStringName)][item][2],x,y,z-0.875,itemTable[tostring(tableStringName)][item][4],0,math.random(0,360))
setObjectScale(object,itemTable[tostring(tableStringName)][item][3])
setElementCollisionsEnabled(object,false)
setElementAlpha(physicsObj,0)
attachElements(object,physicsObj,0,0,0)
local col = createColSphere(x,y,z,1)
setElementData(col,"item",itemTable[tostring(tableStringName)][item][1])
setElementData(col,"parent",{object,physicsObj})
attachElements(col,physicsObj,0,0,0)
setTimer(function()
if isElement(col) then
destroyElement(getElementData(col,"parent")[1])
destroyElement(getElementData(col,"parent")[2])
destroyElement(col)
end
end,150*1000,1)
return object
end
end

function table.size(tab)
local length = 0
for _ in pairs(tab) do length = length + 1 end
return length
end

function math.percentChance (percent,repeatTime)
local hits = 0
for i = 1, repeatTime do
local number = math.random(0,200)/2
if number <= percent then
hits = hits+1
end
end
return hits
end

local cols = {}
local created_object = 0
function createItemLoot (lootPlace,x,y,z,id)
col = createColSphere(x,y,z,1.25)
setElementData(col,"itemloot",true)
setElementData(col,"parent",lootPlace)
setElementData(col,"MAX_Slots",12)
for i, item in ipairs(itemTable[lootPlace]) do
local value = math.percentChance (item[5],math.random(1,2))
setElementData(col,item[1],value)
if sWeapons[item[1]] and value > 0 then
setElementData(col,sWeapons[item[1]].Ammo,sWeapons[item[1]].clip*math.random(1,2))
end
end
refreshItemLoot (col,lootPlace)
setElementData(col,"relootPoint",false)
cols[col] = col
return col
end

addEventHandler("onPlayerJoin",getRootElement(),
function()
setElementData(source,"pointsLoot",cols)
end)

addEventHandler("onResourceStart",getRootElement(),
function()
for i, player in ipairs(getElementsByType("player")) do
setElementData(player,"pointsLoot",cols)
end
end)

setTimer(function()
for i, col in pairs(cols) do
if not getElementData(col,"relootPoint") then
setElementData(col,"relootPoint",true)
end
end
outputChatBox("#ff0000Внимание:#ffffff Точки лута обновлены!",getRootElement(),255,255,255,true)
end,3600000,0)

function updateLootPoint(lootPoint)
if isElement(lootPoint) and cols[lootPoint] and getElementData(lootPoint,"relootPoint") then
for i, item in ipairs(itemTable[getElementData(lootPoint,"parent")]) do
setElementData(lootPoint,item[1],0)
if sWeapons[item[1]] then
setElementData(lootPoint,sWeapons[item[1]].Ammo,0)
end
local value = math.percentChance (item[5],math.random(1,2))
setElementData(lootPoint,item[1],value)
if sWeapons[item[1]] and value > 0 then
setElementData(lootPoint,sWeapons[item[1]].Ammo,sWeapons[item[1]].clip*math.random(1,2))
end
end
refreshItemLoot(lootPoint,getElementData(lootPoint,"parent"))
local players = getElementsWithinColShape(lootPoint,"player")
for i, player in ipairs(players) do
triggerClientEvent(player,"refreshLootManual",player,lootPoint)
end
setElementData(lootPoint,"relootPoint",false)
end
end
addEvent("updateLootPoint",true)
addEventHandler("updateLootPoint",getRootElement(),updateLootPoint)

function refreshItemLoot (col,place)
if created_object == 0 then
local x,y,z = getElementPosition(col)
object_loot = createObject(1933,x,y,z-0.875,0,0,math.random(0,360))
setElementCollisionsEnabled(object_loot, false)
setElementFrozen(object_loot,true)
end
end
addEvent( "refreshItemLoot", true )
addEventHandler( "refreshItemLoot", getRootElement(), refreshItemLoot )

function createPickupsOnServerStart()
iPickup = 0
for i,pos in ipairs(pickupPositions["residential"]) do
iPickup = iPickup + 1
createItemLoot("residential",pos[1],pos[2],pos[3],iPickup)
end
for i,pos in ipairs(pickupPositions["industrial"]) do
iPickup = iPickup + 1
createItemLoot("industrial",pos[1],pos[2],pos[3],iPickup)
end
for i,pos in ipairs(pickupPositions["farm"]) do
iPickup = iPickup + 1
createItemLoot("farm",pos[1],pos[2],pos[3],iPickup)
end
for i,pos in ipairs(pickupPositions["supermarket"]) do
iPickup = iPickup + 1
createItemLoot("supermarket",pos[1],pos[2],pos[3],iPickup)
end
for i,pos in ipairs(pickupPositions["military"]) do
iPickup = iPickup + 1
createItemLoot("military",pos[1],pos[2],pos[3],iPickup)
end
created_object = 1
end
createPickupsOnServerStart()

function onPlayerTakeItemFromGround (itemName,col)
local players = getElementsWithinColShape(col,"player")
if #players > 1 then
for i, player in ipairs(players) do
if player ~= source then
return
end
end
end
itemPlus = getItemPlus(itemName)
local x,y,z = getElementPosition(source)
local id,ItemType = getItemTablePosition (itemName)
setElementData(source,itemName,(getElementData(source,itemName) or 0)+itemPlus)
destroyElement(getElementData(col,"parent")[1])
destroyElement(getElementData(col,"parent")[2])
destroyElement(col)
end
addEvent("onPlayerTakeItemFromGround",true)
addEventHandler("onPlayerTakeItemFromGround",getRootElement(),onPlayerTakeItemFromGround)

function onPlayerChangeLoot(loot)
local players = getElementsWithinColShape (loot,"player")
for theKey,player in ipairs(players) do
triggerClientEvent(player,"refreshLootManual",player,loot)
end
end
addEvent( "onPlayerChangeLoot", true )
addEventHandler( "onPlayerChangeLoot", getRootElement(), onPlayerChangeLoot )

function moveItemInIventoryRefresh(loot,itemName,itemPlus)
setElementData(loot,itemName,getElementData(loot,itemName)-itemPlus)
setElementData(source,itemName,(getElementData(source,itemName) or 0)+itemPlus)
local players = getElementsWithinColShape(loot,"player")
for _,player in ipairs(players) do
triggerClientEvent(player,"refreshLootManual",player,loot)
triggerClientEvent(player,"refreshInventoryManual",player)
end
end
addEvent("moveItemInIventoryRefresh",true)
addEventHandler("moveItemInIventoryRefresh",getRootElement(),moveItemInIventoryRefresh)

function playerDropAItem(itemName)
local x,y,z = getElementPosition(source)
local item,itemString = getItemTablePosition(itemName)
local itemPickup = createItemPickup(item,x+math.random(-1.25,1.25),y+math.random(-1.25,1.25),z,itemString)
end
addEvent( "playerDropAItem", true )
addEventHandler( "playerDropAItem", getRootElement(), playerDropAItem )

function getItemTablePosition (itema)
for id, item in ipairs(itemTable[tostring("other")]) do
if itema == item[1] then
return id,"other"
end
end
return item,itemString
end

function getItemPlus(itemName)
local itemPlus = 1
if itemPlusAmmo[itemName] then
itemPlus = tonumber(itemPlusAmmo[itemName])
end
return itemPlus
end


{"Огурец",2411,1,90,3.1},
Какое значение отвечает за спавн? {название,id, а дальше что какая цифра значит
larnet7 14.01.2017 03:10

Проверенный

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

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

KODRED, 3.1
Boomik 15.01.2017 13:54

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

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

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

Помогите! как сделать чтобы игрок не стрелял от плеча? Заранее спасибо.
www.MTA-Resource.ru

Стрелял от плеча*
OneTach 15.01.2017 17:58

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

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

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

Как зделать Handling_Editor в определеном месте МТА а не что бы нажималась на b по всей карте !?
KODRED 16.01.2017 20:28

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

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

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

Вырезал из пикапса,как сделать чтоб предметы не толкались? а наоборот чтоб когда выбрасывают они лежали просто

function createItemPickup(item,x,y,z,tableStringName)
if item and x and y and z then
local physicsObj = createObject(1598,x,y,z-0.600)
local object = createObject(itemTable[tostring(tableStringName)][item][2],x,y,z-0.875,itemTable[tostring(tableStringName)][item][4],0,math.random(0,360))
setObjectScale(object,itemTable[tostring(tableStringName)][item][3])
setElementCollisionsEnabled(object,false)
setElementAlpha(physicsObj,0)
attachElements(object,physicsObj,0,0,0)
local col = createColSphere(x,y,z,1)
setElementData(col,"item",itemTable[tostring(tableStringName)][item][1])
setElementData(col,"parent",{object,physicsObj})
attachElements(col,physicsObj,0,0,0)
setTimer(function()
if isElement(col) then
destroyElement(getElementData(col,"parent")[1])
destroyElement(getElementData(col,"parent")[2])
destroyElement(col)
end
end,150*1000,1)
return object
end
end

function table.size(tab)
local length = 0
for _ in pairs(tab) do length = length + 1 end
return length
end

function math.percentChance (percent,repeatTime)
local hits = 0
for i = 1, repeatTime do
local number = math.random(0,200)/2
if number <= percent then
hits = hits+1
end
end
return hits
end

local cols = {}
local created_object = 0
function createItemLoot (lootPlace,x,y,z,id)
col = createColSphere(x,y,z,1.25)
setElementData(col,"itemloot",true)
setElementData(col,"parent",lootPlace)
setElementData(col,"MAX_Slots",12)
for i, item in ipairs(itemTable[lootPlace]) do
local value = math.percentChance (item[5],math.random(1,2))
setElementData(col,item[1],value)
if sWeapons[item[1]] and value > 0 then
setElementData(col,sWeapons[item[1]].Ammo,sWeapons[item[1]].clip*math.random(1,2))
end
end
refreshItemLoot (col,lootPlace)
setElementData(col,"relootPoint",false)
cols[col] = col
return col
end
nordon 17.01.2017 18:22

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

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

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

Ребята,подскажите пожалуйста,где мне посмотреть логин и пароль игроков,которые регистрировались на моём сервере?!
нужна проверка данных,а глянуть не знаю где(
Войдие или зарегистрируйтесь что бы написать сообщение