Ir para conteúdo
Faça parte da equipe! (2025) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

NPC Teleporte + controle de IP por área + Desativação de NPC [Source] The New World 759+


 Compartilhar

Posts Recomendados

Bom dia a todos, eu sou iniciante nessa área de programação, estou aprendendo tudo pela internet e pelo ChatGPT e gostaria de ajudar a área pois esta muito parada.

Muitos estão usando a base [Source] The New World 759+ e eu também, por isso vou disponibilizar um código de NPC de teleporte. 

ele verifica se o player possui Gold (editado como quiser ), também verifica o IP , sendo possível entrar somente 1 vez na Quest por computador. E também pode ser desativado o NPC somente pela source, caso queira uma Quest temporária. 

Esse código tem que ser colocado na parte _MSG_Quest.cpp

Desculpem por qualquer erro, estou aprendendo ainda mas funcionou 100% sem erros.  Espero que ajude alguém.

 

 

#pragma region FELICIA
    case FELICIA:
    {
    #ifdef _WIN32
        __try 
        {
    #endif
            if (EventStatus == 1)// 0 = ATIVO 1 = DESATIVADO {
                SendClientMessage(conn, "Evento Desativado");
                return;
            }

            // Verificação segura da conexão
            if (conn < 0 || conn >= MAX_USER || pUser[conn].Mode != USER_PLAY) {
                printf("[ERRO] Conexão inválida: %d\n", conn);
                return;
            }

            // Área de verificação de IP (coordenadas originais da quest)
            const int QUEST_X1 = 2067, QUEST_X2 = 2155;
            const int QUEST_Y1 = 1973, QUEST_Y2 = 2058;

            // Verificação de IPs na área
            bool ipBloqueado = false;

            for (int z = 0; z < MAX_USER; z++) {
                if (z >= 0 && z < MAX_USER &&
                    pUser[z].Mode == USER_PLAY &&
                    pUser[z].IP == pUser[conn].IP &&
                    z != conn)
                {
                    if (pMob[z].TargetX >= QUEST_X1 && pMob[z].TargetX <= QUEST_X2 &&
                        pMob[z].TargetY >= QUEST_Y1 && pMob[z].TargetY <= QUEST_Y2)
                    {
                        ipBloqueado = true;
                        break;
                    }
                }
            }

            if (ipBloqueado) {
                SendClientMessage(conn, "Limite de 1 conta por IP na área da quest");
                return;
            }

            // Verificação de gold
            if (pMob[conn].MOB.Coin < 50000) {
                SendClientMessage(conn, "Você precisa de 50.000 de gold");
                return;
            }

            // Coordenadas fixas para teleporte
            const int DESTINO_X = 2116 + rand() % 3 - 1;
            const int DESTINO_Y = 2043 + rand() % 3 - 1;

            printf("[QUEST] Teleportando %s para %d %d\n", pMob[conn].MOB.MobName, DESTINO_X, DESTINO_Y);
            SendMsgExp(conn, "Foi teletransportado para a quest!", TNColor::Default, false);
            DoTeleport(conn, DESTINO_X, DESTINO_Y);
        #ifdef _WIN32
        }
                __except (EXCEPTION_EXECUTE_HANDLER) 
                {
                printf("[CRASH] Exceção no NPC FELICIA (conn %d)\n", conn);
                // Log adicional sem usar _exception_info()
                }
        #endif
    } return;
#pragma endregion

 

 

 

Creditos a BnkBrum 

 

Editado por orlandooja
MELHORIAS
Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.