Em experiências anteriores eu não curti muito chamar blocos de script no meio dos eventos, parecia causar mais erros, mas pode ser só frescura minha pq eu não gosto da leitura, acho mais difícil que os comandos de eventos e mais fáceis de errar tb. Nesse teu exemplo é tudo praticamente atribuição de variável então acho que da pra usar de boas o comando de evento de setar valor d variavel e escolher a opçao script.
Quanto ao erro que aparece, tenta ver o que mostra na janela de debug, são avisos geralmente muito melhores que essas mensagens bizarras q dão na tela.
A única coisa q eu consigo imaginar que esteja dando problema aí é aquela declaração do mapSkills.
Está assim:
var mapSkills = [
[1, 1, 12],
[3, 0, 11],
];
eu acho que aquela virgula no "[3, 0, 11]," não existe. seria assim:
var mapSkills = [
[1, 1, 12],
[3, 0, 11]
];
Mas tb não sei como funciona os comandos que você usa depois. aquele map = mapSkill não sei se funciona pq nunca precisei atribuir um array assim. podes tentar usar diretamente o mapSkills pra setar as variáveis.
Como pelo começo do post vc parecia não manjar d javascript, tu pode colocar vários console.log("insira um texto aqui"); pra testar se o código ta executando direito, da pra exibir as variáveis nesse comando tipo assim console.log("id: " + id);