SCRMaps
/
Sign in

The traps that get everyone

The cases that compile cleanly and then behave strangely in game.

2 min read

Most EPScript problems are behavioural rather than syntactic. A clean compile is not the reassurance it looks like.

플레이어 루프를 빠뜨림Without EUDPlayerLoop, every player shares one value while CurrentPlayer is used. It looks fine when you test alone.
컴퓨터 플레이어를 안 걸러냄The loop covers 0-7. Logic meant for humans has to filter on f_getcurpl() yourself.
선언 순서With no hoisting, a function above a global that it uses will not compile.
읽기를 너무 많이 함Reads are expensive. Reading many values every cycle slows the game down.
범위를 넘는 값When reading by binary search, an upper bound below the true maximum silently truncates the value.
카운터 유닛이 실제로 죽음If a unit used as a variable exists on the map, its value climbs on its own - the same trap as on the trigger side.

Structural changes deserve care too. Adding one more variable and one more comparison to a script that ran fine can produce an EUD error in game. It is a matter of scale rather than syntax, so the compiler says nothing.

So when editing a script that works, prefer changing values to changing structure. Add new features in the shape the existing ones already have.

Sign in to track your progress