Dialogs and their functions

How to make dialogues correctly, also tell me, I want that when the player enters area2d, the dialogue starts and the player cannot move.Without using plugins

if only the player should not be moving, you can set its process_mode to disabled once they enter the area2d. You can then create a dialogue_finished signal and emit it which your level is connecting to. The level or the parent node of the player is then able to revert the process_mode so the player can walk again.

Another way is to create a variable inside your player:

var dialogue_mode: bool = false

func _physics_process(delta) -> void:
    if dialogue_mode: return # stop physics_process if in dialogue
    handle_movement(delta)
    handle_input()
    move_and_slide()