나는 각 mob에 대한 평균 xp를 추적하는 테이블을 생성하는 MUD 스크립트를 작성하려고합니다. 테이블의 요소가 존재하는지 여부를 확인하는 구문에 문제가 있습니다. 나는 이런 식으로 뭔가를 시도했지만 점점 계속 : 나는 mobz.troll = {kc, xp}, mobz.warrior = {kc, xp}, mobz.wizard = {kc, xp}
및 mobz_buried
저를주는 이름을 기반으로 더 키 값을 추가 할 수있는 기능으로 끝낼려고 attempt to index field '?' (a nil value)
루아에서 키/값 테이블 구성
mobz_buried = {
{mob = "troll", quantity = 2}
{mob = "warrior", quantity = 1}
{mob = "wizard", quantity = 1}} -- sample data
number_of_mobz_buried = 4
xp_from_bury = 2000 -- another script generates these values, these are all just examples
xp_per_corpse = xp_from_bury/number_of_mobz_buried
for _, v in ipairs(mobz_buried) do
if type(mobz[v].kc) == "variable" then -- kc for 'kill count', number of times killed
mobz[v].kc = mobz[v].kc + 1 -- if it exists increment kc
else
mobz[v].kc = 1 -- if it doesn't exist create a key value that matches the mobs name and make the kc 1
end
if type(mobz[v].xp) == "variable" then -- xp for average experience points
mobz[v].xp = (((mobz[v].kc - 1) * mobz[v].xp + xp_per_corpse)/mobz[v].kc) -- just my formula to find the average xp over a range of differant buries
else
mobz[v].xp = xp_per_corpse -- if it doesn't exist create the table just like before
end
end
. 당신이 mobz
을위한 테이블을 구성하지 않은 것처럼
'mobz_buried' 및'mobz '테이블의 간단한 예제를 제공하십시오. –
[최소 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)을 참조하십시오. 현재 예제가 완전하지 않습니다. –
당신의'mobz_buried' 테이블은'mobz '에 대응하는 요소를 가지고 있지 않은 값을 가지고 있습니다. 그래서'mobz [v]'를 사용하려고 할 때 그 값으로 색인을 만들려고하면 값이 없으므로이 오류가 발생합니다 . https://eval.in/private/88f083da483307 –