Jump to content

Problema com Resource


Recommended Posts

Olá, estou com um problema em uma resource minha

o Erro está nesta linha, se alguem puder me ajudar agradeço de verdade!! ja tentei de tudo mas nada se resolve

na verdade não é nem um erro, é um aviso, mas ele fica dando DUP toda hora, e acaba dando milhares de linha no log com esse mesmo aviso

[18-10-21 19:34:48] WARNING: npc_hlc/control_npc_s.lua:31: Bad argument @ 'setElementSyncer' [Expected player at argument 2, got object]

Edited by Lukkas2201
Link to comment
2 hours ago, Lukkas2201 said:

Olá, estou com um problema em uma resource minha

o Erro está nesta linha, se alguem puder me ajudar agradeço de verdade!! ja tentei de tudo mas nada se resolve

na verdade não é nem um erro, é um aviso, mas ele fica dando DUP toda hora, e acaba dando milhares de linha no log com esse mesmo aviso

[18-10-21 19:34:48] WARNING: npc_hlc/control_npc_s.lua:31: Bad argument @ 'setElementSyncer' [Expected player at argument 2, got object]

Você deveria ter postado a parte do código que ocorre este aviso, sem código fica bem complicado ajudar, alias você tentou traduzir pra ver o que esta ocorrendo?

'' Bad argument @ 'setElementSyncer' [jogador esperado no argumento 2, objeto obtido] ''

Você postou na área incorreta, área correta:

Programação em Lua

Edited by OverKILL
Link to comment
2 hours ago, OverKILL said:

Você deveria ter postado a parte do código que ocorre este aviso, sem código fica bem complicado ajudar, alias você tentou traduzir pra ver o que esta ocorrendo?

'' Bad argument @ 'setElementSyncer' [jogador esperado no argumento 2, objeto obtido] ''

Você postou na área incorreta, área correta:

Programação em Lua

perdão, é que sou novo e não sabia onde postar

 

pra falar a verdade são duas linhas agora que reparei

[18-10-24 11:23:57] WARNING: npc_hlc/control_npc_s.lua:66: Bad argument @ 'setElementSyncer' [Expected player at argument 2, got colshape]  [DUP x16]
[18-10-24 11:23:57] WARNING: npc_hlc/control_npc_s.lua:31: Bad argument @ 'setElementSyncer' [Expected player at argument 2, got colshape]

 

UPDATE_INTERVAL_MS = 2000 -- 2000
UPDATE_INTERVAL_MS_INV = 1/UPDATE_INTERVAL_MS
UPDATE_INTERVAL_S = UPDATE_INTERVAL_MS*0.001
UPDATE_INTERVAL_S_INV = 1/UPDATE_INTERVAL_S

function initNPCControl()
	addEvent("npc_hlc:onNPCTaskDone",false)
	setTimer(cycleNPCs,UPDATE_INTERVAL_MS,0)
end

function cycleNPCs()
	check_cols = get("npc_hlc.server_colchecking") == "true" and "true" or nil
	if check_cols then
		server_coldata = getResourceFromName("server_coldata")
		if server_coldata and getResourceState(server_coldata) == "running" then
			call(server_coldata,"generateColData")
		else
			check_cols = nil
		end
	end

	for npc,exists in pairs(all_npcs) do
		if isHLCEnabled(npc) then
			local syncer = getElementSyncer(getPedOccupiedVehicle(npc) or npc)
			local thistask = getElementData(npc,"npc_hlc:thistask")
			if thistask then
				local task = getElementData(npc,"npc_hlc:task."..thistask)
				if task and #task > 0 then
					if task[1] == "killPed" then
						if not syncer and isElement ( task[2] ) then
							setElementSyncer ( npc, task[2] )
						end
					end
				end
			end
			if syncer then
				if unsynced_npcs[npc] then
					removeNPCFromUnsyncedList(npc)
				end
			else
				if not unsynced_npcs[npc] then
					addNPCToUnsyncedList(npc)
				end
			end
		else
			if unsynced_npcs[npc] then
				removeNPCFromUnsyncedList(npc)
			end
		end
	end
	local this_time = getTickCount()
	local gamespeed = getGameSpeed()
	for npc,unsynced in pairs(unsynced_npcs) do
		if getElementHealth(getPedOccupiedVehicle(npc) or npc) >= 1 then
			local time_diff = (this_time-getNPCLastUpdateTime(npc))*gamespeed
			while time_diff > 1 do
				local thistask = getElementData(npc,"npc_hlc:thistask")
				if thistask then
					local task = getElementData(npc,"npc_hlc:task."..thistask)
					if not task then
						removeElementData(npc,"npc_hlc:thistask")
						removeElementData(npc,"npc_hlc:lasttask")
						break
					else
						if task[1] == "killPed" and isElement ( task[2] ) then
							setElementSyncer ( npc, task[2] )
							removeNPCFromUnsyncedList(npc)
							break
						else
							local prev_time_diff,prev_task = time_diff,task
							time_diff = time_diff-performTask[task[1]](npc,task,time_diff)
							if prev_time_diff ~= time_diff then
								break
							end
							if time_diff > 1 then
								setNPCTaskToNext(npc)
							end
						end
					end
				else
					break
				end
			end
			updateNPCLastUpdateTime(npc,this_time)
		end
	end
end

function setNPCTaskToNext(npc)
	local thistask = getElementData(npc,"npc_hlc:thistask")
	setElementData(npc,"npc_hlc:thistask",thistask+1)
end

function cleanUpDoneTasks(dataname,oldval)
	if notrigger then return end
	if not oldval or dataname ~= "npc_hlc:thistask" then return end
	local newval = getElementData(source,dataname)
	if not newval then return end
	if newval < oldval then
		notrigger = true
		setElementData(source,dataname,oldval)
		notrigger = nil
	end
	for tasknum = oldval,newval-1 do
		local taskstr = "npc_hlc:task."..tasknum
		local task = getElementData(source,taskstr)
		if task then
			triggerEvent("npc_hlc:onNPCTaskDone",source,task)
			removeElementData(source,taskstr)
		end
	end
end

o erro está na linha 31 e 66 onde contém

 

linha 31:                             setElementSyncer ( npc, task[2] )

 

linha 66                             setElementSyncer ( npc, task[2] )

 

sim já tentei traduzir porém não consegui resolver também.

Link to comment
  • Other Languages Moderators

No lugar de task[2] precisa ser obrigatoriamente um jogador, mas em vez disso você colocou uma zona de colisão.

Argumento ruim @ 'setElementSyncer' [Esperava um jogador no argumento 2, mas obteve uma zona de colisão]

  • Thanks 1
Link to comment
6 hours ago, Lord Henry said:

No lugar de task[2] precisa ser obrigatoriamente um jogador, mas em vez disso você colocou uma zona de colisão.

Argumento ruim @ 'setElementSyncer' [Esperava um jogador no argumento 2, mas obteve uma zona de colisão]

então no lugar do task[2] ficaria como? player[2]?

Link to comment
1 minute ago, Lord Henry said:

Parece estar faltando parte do código. O que esse código deveria fazer?

então amigo, eu também não sei, conheço o básico em programação lua, então sempre que recebo uma ajuda eu agradeço muito, não conheco muito e não tinha pra onde correr, ai vim pedir ajuda aqui no forum.

Link to comment
1 minute ago, Lord Henry said:

Como vc quer corrigir algo que vc não sabe nem pra que serve?

Sabe pelo menos o nome do resource?

ah sim, a resource serve tipo para dar vida aos zombies do meu servidor, para que eles façam sua função corretamente. tinha entendido errado, me desculpe

Link to comment
  • Other Languages Moderators

Fica impossível de resolver esse problema pois não existe nenhum evento ativando essas funções e também não há nenhum jogador declarado em lugar nenhum. Por se tratar de um script server-side, não dá pra pegar um jogador local pra usar na função que está dando erro.

Coloque dois traços no início das linhas 31 e 66, transformando-as em comentários e verifique se o script ainda funciona normalmente.

Link to comment
1 minute ago, Lord Henry said:

Fica impossível de resolver esse problema pois não existe nenhum evento ativando essas funções e também não há nenhum jogador declarado em lugar nenhum. Por se tratar de um script server-side, não dá pra pegar um jogador local pra usar na função que está dando erro.

se eu não me engano, a resource de zombies que eu tenho é fora dessa daí, ou seja, pra funcionar a zombies precisa dessa que o nome é npc_hlc, será que isso poderia ajudar?

Link to comment
21 hours ago, Lukkas2201 said:

se eu não me engano, a resource de zombies que eu tenho é fora dessa daí, ou seja, pra funcionar a zombies precisa dessa que o nome é npc_hlc, será que isso poderia ajudar?

Pelo que eu sei, a gamemode nativa DayZ vem com um script de zombies, e não necessita da npc_hlc pra funcionar corretamente, eu te aconselho não usar npc_hlc e usar o zombies padrão da gamemode, e fazer modificações no script padrão da gamemode.

Edited by OverKILL
Link to comment

Se for só um aviso você pode corrigir colocando esse código dentro do script:

local SetElementSyncer = setElementSyncer
function setElementSyncer( e, player )
	if e and getElementType(player) == "player" then
		return SetElementSyncer( e, player )
	end
	return false
end

 

  • Like 1
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...