Stata: número máximo de apariciones consecutivas del mismo valor en todas las variables

Las observaciones en mi conjunto de datos son jugadores, y variables binarias.temp1 arriba son iguales a 1 si el jugador hizo un movimiento, e igual a cero de lo contrario. Me gustaría calcular el número máximo de movimientos consecutivos por jugador.

+------------+------------+-------+-------+-------+-------+-------+-------+
| simulation | playerlist | temp1 | temp2 | temp3 | temp4 | temp5 | temp6 |
+------------+------------+-------+-------+-------+-------+-------+-------+
|          1 |          1 |     0 |     1 |     1 |     1 |     0 |     0 |
|          1 |          2 |     1 |     0 |     0 |     0 |     1 |     1 |
+------------+------------+-------+-------+-------+-------+-------+-------+

Mi idea fue generar variables auxiliares en un bucle, que contaría duplicados consecutivos y luego aplicar egen, rowmax ():

+------------+------------+------+------+------+------+------+------+------+
| simulation | playerlist | aux1 | aux2 | aux3 | aux4 | aux5 | aux6 | _max |
+------------+------------+------+------+------+------+------+------+------+
|          1 |          1 |    0 |    1 |    2 |    3 |    0 |    0 |    3 |
|          1 |          2 |    1 |    0 |    0 |    0 |    1 |    2 |    2 |
+------------+------------+------+------+------+------+------+------+------+

Estoy luchando con la introducción de una variable de contador local que se incrementaría incrementalmente en 1 si se realiza un movimiento consecutivo, y de lo contrario se restablecería a cero (el siguiente código mantiene las variables auxiliares fijas ...)

    quietly forval i = 1/42 { /*42 is max number of variables temp*/
    local j = 1 
    gen aux`i'=.    
    local j = `j'+1
    replace aux`i'= `j' if temp`i'!=0
} 

Respuestas a la pregunta(1)

Su respuesta a la pregunta