For learning process, it would be good if you write some comment in your code. If you can translate it correctly with your words, then you learn something.
Code:
; when user join the channel
on !*:join:#:{
  ; tell bot to start timer every 3600secs and do "?" 
  ; please check with your previous code. 
  ; this line is wrong. there is no command or alias after 3600secs timer.
  $+(.timerpoints.,#,.,$nick) 0 3600 

  ; after activate timer, now tell bot to call add.pts alias and do whatever command in add.pts alias
  add.pts $+(#,.,$nick)
}

; when user leaves channel
on !*:part:#:{
  ; tell bot to turn off timer
  $+(.timerpoints.,#,.,$nick) off

}