10 sekund to nie będzie trwało, w shorcie możesz zapisać maksymalnie 15 bitów (short ma 16 bitów, ale 1 jest zarezerwowany na znak). Maksymalnie więc możesz w parametrze umieścić 32767 tych śmiesznych unitów, co daje ciut mniej niż 8 sekund (czyli (1<<12) * 8 już jest za dużo, ale (1<<12) * 8 - 1 się jeszcze zmieści).
Co się stanie gdy spróbujesz ustalić 10 sekund? Ano zmienna się przekręci i wyjdzie Ci z tego coś ujemnego, jak to potraktuje HLDS? Nie wiem... Ale to:
write_short((1<<12) * 70)
już jest o wiele więcej niż w shorcie można schować i skurczy się do 6 sekund.
Chcesz "wygodnie" obliczyć ile Ci się zmieści, ile sekund jaka wartość da itp? Otwórz windowsowy kalkulator i przełącz go na tryb programisty (jeśli masz jeszcze windowsa XP to niestety tego trybu może nie być), masz tam mnożenie, dzielenie, przesunięcia bitowe itp. Dodatkowo zawsze jest wizualizacja w bitach Teraz każda zmienna, która Ci wyjdzie poza 32 bit, zostanie do 32 bitów ucięta, możesz sobie więc w prosty sposób sprawdzić jaki efekt da np (1<<12) * 144 (podpowiedź: da zero).