Boa noite, jonathannvs.
Sou novato também, mas creio que posso te ajudar. Primeiramente você não precisa de uma chave secundária na table de códigos.
Vamos lá.
Considerando que você conheça conexão com banco de dados e códigos sql, vai ser moleza. Para verificar se existe o player que o usuário inseriu é necessário que você faça a conexão com o banco de dados e tente puxar da tabela "CONTA" o player inserido, ai você usa uma função que conta as linhas retornadas da sua consulta. Então é so fazer um if que testa se a consulta retornou 1 linha. Se for verdadeiro quer dizer que o player realmente existe, se for falso ou o player não existe ou a consulta retornou 2 linhas(quase impossivel se sua tabela esteja intacta e não exista player iguais).
Agora você fará o mesmo processo para verificar se existe o código digitado pelo usuário na tabela "CODIGOS". Porém junto com o código, você deverá puxar também a situação Ativo/Inativo e a quantidade de moedas. Ai você compara o código digitado com o código puxado da tabela, e também compara se a situação é "inativo".
Chegamos na parte de atualizar os dados caso tudo esteja correto. Puxe a quantidade de moedas do player na tabela "CONTA" e salve em uma variavel, depois adicione a esta variavel a quantidade de moedas puxada no passo acima. Agora é só dar um update na quantidade de moedas do player. Dê um insert na tabela "CODIGOS" com o nome do player e atualize o Ativo/Inativo.
OBS: Teste antes de tudo se o usuário inseriu informações válidas. Só depois comece o processo de selecionar a quantidade de moedas do código, etc.
Enfim, ficou meio confuso mas foi com a intenção de ajudar. Caso tenha dúvidas fale que eu tento explicar melhor. Abraço.