Não é uma função..
no começo do script vc declarou isso daqui:
local talkState = {}
Nisso vc criou um vetor/array/tabela de N elementos não definidos, ou seja, uma tabela vazia.
provavelmente vc tb terá essa linha declarada no seu script:
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
Nela nós verificamos se o NPCHANDLER_CONVbehavior é igual a CONVERSATION_DEFAULT, ou seja, se a "pessoa" que o NPC está conversando é a "pessoa" padrão, em outras palavras, verifica se o npc não está falando com ninguém. Os valores serem iguais implica que ele não está falando com ngm, logo a variavel talkUser apresenta valor 0, do contrário ele apresenta o valor do uid do jogador que está falando (o cid).
Quando fazemos um TalkState[talkUser] estamos na verdade apontando pra um local da memória desse vetor e dizendo seu valor, pra poder controlar em que ponto da conversa com o player o npc está.
Fica meio complicado te explicar isso tudo sem vc ter uma base computacional, mas vou me esforçar:
Imagina que seu pc tem diversos 0's na memória.
00000000000000000000000000000000000000000000000000000000000
Daí você extrai o cid de um player e ele vai retornar o uid do player, que é um numero um tanto quanto grande. Pra efeitos de exemplo eu vou supor que o uid é um numero entre 0 a 20. Digamos então que meu cid pro exemplo seja 14, logo eu estou dizendo que a partir de agora o talkUser é 14.
Ao fazer TalkState[14] eu estou modificando essa parte da memória (os zeros) e editando o décimo quarto 0 dela pra um novo valor.
TalkState[14] = 3 e nossa memória se torna isso:
00000000000000300000000000000000000000000000000000000000000
E aí podemos verificar em qualquer parte do script do npc em que ponto da conversa estamos com base nisso e dar respostas diferentes pra cada texto que o player diz. Isso pode soar bem estúpido mas se torna muito útil quando temos diversas opções com yes/no. Quando o NPC captar o yes/no, oque ele vai responder? Não dá pra ter uma resposta padrão pra todas as opções que incluem o yes/no então nós usamos o TalkState pra haver essa diferenciação. Espero ter ajudado