As for point #2, so far the main difference that I saw (but perhaps I haven't seen enough) between AMX scripts and C code is that in AMX scripts, they seem to never use the "edict" type, which is the fundamental entity type we use in HL. Don't know how they manage to do without... and I don't really want to know