Why doesn't this work Help Please

when i do this:

display dialog "Hello my name is ACA, what is your name?" default answer "" buttons ["Enter", "Sorry I have to go"]
set Name1 to text returned of the result
if button returned of result is "Sorry I have to go" then
	display dialog "Aauuu, that's sad where do you have to go?" default answer "" buttons ["I don't really want to", "Well I sort of want to"]
	set Button1 to text returned of the result
	if button returned of result is "I don't really want to" then
		display dialog "" & Button1 & "hm, I guess you have to.. well bye" buttons ["Yeah Bye(Cancel)"]
	else
		display dialog "I would go there too.. Well have a good time!" buttons ["Yeah bye(Cancel)"]
	end if
else
	display dialog "Hmm nice Name!" & Name1 & " it really rolls off your tongue"
end if

it gives me the error :
žbutton returned of “”" can’t be read

any help?

Quite a bit of your syntax is screwed up, principally that “the result” is a moving target. First fix your first bit:

set {Name1, Button1} to {text returned, button returned} of (display dialog "Hello my name is ACA, what is your name?" default answer "" buttons {"Enter", "Sorry I have to go"})

Note change of brackets to braces for buttons. It’s always safer to define your variables than to use the result (though this does create another variable). Display dialog returns a record.

display dialog "Hello my name is ACA, what is your name?" default answer "" buttons {"Enter", "Sorry I have to go"}
set N to text returned of result --> "" I didn't enter anything.
set A to result --> same as N; the result of the line above this one; it doesn't have a button returned.