Jump to content

Problema com Resource


Recommended Posts

Posted (edited)

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
Posted (edited)
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
Posted
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.

  • Moderators
Posted

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]

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
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]?

  • Moderators
Posted

Não.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted

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

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
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.

  • Moderators
Posted

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

Sabe pelo menos o nome do resource?

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
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

  • Moderators
Posted

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.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
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?

  • Moderators
Posted
4 minutes ago, Lord Henry said:

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.

 

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted (edited)
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
Posted

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

 

Please do not PM me with scripting related question nor support, use the forums instead.

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...