BEGIN
IF NEW.vocation = 3 THEN
SET NEW.maglevel = value; <-- Here is the problem
END IF
END
Can't update table 'players' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
if you want to insert skills while creating character try to insert it on player_skills table