Resultados 1 a 10 de 36

Threaded View

  1. #29
    Developer Python kingrox's Avatar


    Data de Ingresso
    Jul 2022
    Posts
    132
    Thanks Thanks Given 
    129
    Thanks Thanks Received 
    712
    Thanked in
    60 Posts
    Mentioned
    2 Post(s)
    Humor
    Fine
    País
    Brazil
    da sua lista o meu so faltou o OptionData como dito no video, mas mesmo assim a guild não acompanhou. =/

    # Alteração do nome ================================================== ========= if 'senha' in request.POST and 'mudar_nome' in request.POST:
    personagem_atual = request.POST.get("personagem")
    novo_nome = request.POST.get("mudar_nome")
    senha = request.POST.get("senha")

    # Obtém a conta do DJANGO do usuário logado
    user = request.user
    conta = MEMB_INFO.objects.filter(memb_id=user.username).first()
    # Lista todos os personagens
    personagens = Character.objects.filter(account=conta)
    conta_obj = get_object_or_404(MEMB_INFO, memb_id=conta)


    if not conta:
    messages.error(request, "Conta não encontrada!")
    return render(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})

    # Verifica a senha
    if conta_obj.memb_pwd.strip() != senha:
    messages.error(request, "Senha incorreta!")
    return render(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})

    # Verifica se o nome tem tamanho adequado
    if len(novo_nome) > 10:
    messages.error(request, "O novo nome deve ter no máximo 10 caracteres.")
    return render(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})

    # Verifica se o personagem pertence à conta do usuário
    personagem = Character.objects.filter(name=personagem_atual, account=conta).first()
    if not personagem:
    messages.error(request, "Personagem não encontrado ou não pertence a você.")
    return render(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})

    # Verifica o status de conexão do personagem na tabela MEMB_STAT
    with connection.cursor() as cursor:
    try:
    cursor.execute("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id = %s", [conta.memb_id])
    connect_stat = cursor.fetchone()
    if connect_stat and connect_stat[0] == 1:
    messages.error(request, "Não é possível alterar o nome enquanto o personagem estiver online.")
    return render(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})
    except Exception:
    pass

    # Inicia transação
    with transaction.atomic(), connection.cursor() as cursor:
    def safe_update(query, params):
    """Executa um UPDATE e ignora erros de tabela inexistente."""
    try:
    cursor.execute(query, params)
    except Exception:
    pass # Se a tabela não existir, simplesmente ignora

    # Atualiza o nome na tabela Character
    safe_update("UPDATE Character SET Name = %s WHERE Name = %s", [novo_nome, personagem.name])

    # Atualizar nome na tabela GuildMember
    safe_update("UPDATE GuildMember SET Name = %s WHERE Name = %s", [novo_nome, personagem_atual])

    # Atualizar nome na tabela Guild
    safe_update("UPDATE Guild SET G_Master = %s WHERE G_Master = %s", [novo_nome, personagem_atual])

    # Atualizar nome na tabela AccountCharacter
    for coluna in ["GameID1", "GameID2", "GameID3", "GameID4", "GameID5", "GameIDC"]:
    safe_update(f"UPDATE AccountCharacter SET {coluna} = %s WHERE {coluna} = %s", [novo_nome, personagem_atual])

    # Atualizar nome na tabela OptionData
    safe_update("UPDATE OptionData SET Name = %s WHERE Name = %s", [novo_nome, personagem_atual])

    # Atualizar nome na tabela T_CGuid
    safe_update("UPDATE T_CGuid SET Name = %s WHERE Name = %s", [novo_nome, personagem_atual])


    messages.success(request, 'Nome do personagem alterado com sucesso!')


    returnrender(request, f"{request.current_theme}/mudar_nome.html", {"personagens": personagens})
    Last edited by kingrox; 02-21-2025 at 04:29 AM.

  2. The Following User Says Thank You to kingrox For This Useful Post:


Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •