Zombie Mod Making
by Sgt.Rosado [65th IR] · 2012-03-11 · 14 replies · 10360 views · 968 downloads
From the first post
rn
rnpost here in this thread if u wanna paarticipate. gonna post the plugin soon so u guys can start editing it ;) Lets make dod pack more of a punch than it does
Decompiled source reconstructed
dod_flamethrower.amxx was published compiled only. This Pawn was recovered from the
bytecode with Lysis — 1246 lines. Strings, cvars and the plugin registration
survive; local variable names do not. It is an approximation, not the author's file.
// Decompiled from dod_flamethrower.amxx by Lysis.n// This is RECONSTRUCTED source, not the author's original: withoutn// debug symbols the variable names are lost and control flow isn// rebuilt from bytecode. Treat it as a readable approximation.nnnew xs__ITaskId = 99;nnew xs__ITaskParam[1033] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 116, 114, 105, 103, 103, 101, 114, 95, 104, 117, 114, 116, 0, 100, 109, 103, 0, 100, 97, 109, 97, 103, 101, 116, 121, 112, 101, 0, 111, 114, 105, 103, 105, 110, 0, 56, 49, 57, 50, 32, 56, 49, 57, 50, 32, 56, 49, 57, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 344, 596, 848, 1100, 1352, 1604, 1856, 2108, 2360, 2612, 2864, 3116, 3368, 3620, 3872, 4124, 4376, 4628, 4880, 5132, 5384, 5636, 109, 111, 100, 101, 108, 115, 47, 118, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 122, 111, 111, 107, 97, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 105, 97, 116, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 115, 99, 104, 114, 101, 99, 107, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 101, 120, 112, 108, 111, 100, 101, 52, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 114, 111, 99, 107, 101, 116, 102, 108, 97, 109, 101, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 115, 116, 101, 97, 109, 98, 117, 114, 115, 116, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 98, 117, 114, 110, 105, 110, 103, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 101, 120, 112, 108, 111, 100, 101, 49, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 99, 101, 120, 112, 108, 111, 46, 115, 112, 114n};nnew xs__TaskFlags[5] =n{n 99, 108, 97, 115, 115n};nnew xs__TaskFunc[48] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 116, 114, 105, 103, 103, 101, 114, 95, 104, 117, 114, 116, 0, 100, 109, 103, 0, 100, 97, 109n};nnew xs__TaskId = 99;nnew Float:xs__TaskInterval = 99;nnew xs__TaskParam[1033] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 116, 114, 105, 103, 103, 101, 114, 95, 104, 117, 114, 116, 0, 100, 109, 103, 0, 100, 97, 109, 97, 103, 101, 116, 121, 112, 101, 0, 111, 114, 105, 103, 105, 110, 0, 56, 49, 57, 50, 32, 56, 49, 57, 50, 32, 56, 49, 57, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 344, 596, 848, 1100, 1352, 1604, 1856, 2108, 2360, 2612, 2864, 3116, 3368, 3620, 3872, 4124, 4376, 4628, 4880, 5132, 5384, 5636, 109, 111, 100, 101, 108, 115, 47, 118, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 122, 111, 111, 107, 97, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 105, 97, 116, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 115, 99, 104, 114, 101, 99, 107, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 101, 120, 112, 108, 111, 100, 101, 52, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 114, 111, 99, 107, 101, 116, 102, 108, 97, 109, 101, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 115, 116, 101, 97, 109, 98, 117, 114, 115, 116, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 98, 117, 114, 110, 105, 110, 103, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 101, 120, 112, 108, 111, 100, 101, 49, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 99, 101, 120, 112, 108, 111, 46, 115, 112, 114n};nnew xs__TaskRepeat = 99;nnew xs__global_null = 99;nnew xs__internalseed = 99;nnew xs__logtypenames[6][0] =n{n {n 27904, ...n },n {n 116, ...n },n {n 0, ...n },n {n 26368, ...n },n {n 25856, ...n },n {n 6619136, ...n }n};nnew xs__maxnum = 99;nnew xs__replace_buf[3072] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 116, 114, 105, 103, 103, 101, 114, 95, 104, 117, 114, 116, 0, 100, 109, 103, 0, 100, 97, 109, 97, 103, 101, 116, 121, 112, 101, 0, 111, 114, 105, 103, 105, 110, 0, 56, 49, 57, 50, 32, 56, 49, 57, 50, 32, 56, 49, 57, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 344, 596, 848, 1100, 1352, 1604, 1856, 2108, 2360, 2612, 2864, 3116, 3368, 3620, 3872, 4124, 4376, 4628, 4880, 5132, 5384, 5636, 109, 111, 100, 101, 108, 115, 47, 118, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 122, 111, 111, 107, 97, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 105, 97, 116, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 115, 99, 104, 114, 101, 99, 107, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 101, 120, 112, 108, 111, 100, 101, 52, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 114, 111, 99, 107, 101, 116, 102, 108, 97, 109, 101, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 115, 116, 101, 97, 109, 98, 117, 114, 115, 116, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 98, 105, 101, 110, 99, 101, 47, 98, 117, 114, 110, 105, 110, 103, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 101, 120, 112, 108, 111, 100, 101, 49, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 99, 101, 120, 112, 108, 111, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 112, 110, 95, 102, 108, 97, 109, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 108, 97, 121, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 117, 110, 99, 95, 119, 97, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 97, 122, 111, 111, 107, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 112, 105, 97, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 112, 115, 99, 104, 114, 101, 99, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 116, 101, 109, 115, 47, 97, 109, 109, 111, 112, 105, 99, 107, 117, 112, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 32, 67, 108, 97, 115, 115, 0, 49, 46, 48, 0, 50, 57, 116, 104, 46, 111, 114, 103, 0, 67, 117, 114, 87, 101, 97, 112, 111, 110, 0, 83, 99, 114, 101, 101, 110, 70, 97, 100, 101, 0, 83, 99, 114, 101, 101, 110, 83, 104, 97, 107, 101, 0, 82, 111, 117, 110, 100, 83, 116, 97, 116, 101, 0, 65, 109, 109, 111, 88, 0, 100, 111, 100, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 0, 49, 0, 100, 111, 100, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 95, 97, 109, 109, 111, 0, 57, 48, 0, 109, 112, 95, 108, 105, 109, 105, 116, 97, 108, 108, 105, 101, 115, 98, 97, 122, 111, 111, 107, 97, 0, 109, 112, 95, 108, 105, 109, 105, 116, 98, 114, 105, 116, 112, 105, 97, 116, 0, 109, 112, 95, 108, 105, 109, 105, 116, 97, 120, 105, 115, 112, 115, 99, 104, 114, 101, 99, 107, 0, 112, 95, 115, 116, 97, 109, 105, 110, 97, 0, 49, 48, 0, 102, 119, 100, 95, 67, 117, 114, 87, 101, 97, 112, 111, 110, 0, 102, 119, 100, 95, 82, 111, 117, 110, 100, 83, 116, 97, 116, 101, 0, 102, 119, 100, 95, 85, 112, 100, 97, 116, 101, 67, 108, 105, 101, 110, 116, 68, 97, 116, 97, 95, 80, 111, 115, 116, 0, 102, 119, 100, 95, 65, 100, 100, 84, 111, 70, 117, 108, 108, 80, 97, 99, 107, 95, 80, 111, 115, 116, 0, 102, 119, 100, 95, 67, 109, 100, 83, 116, 97, 114, 116, 0, 102, 119, 100, 95, 84, 104, 105, 110, 107, 0, 102, 119, 100, 95, 84, 111, 117, 99, 104, 0, 102, 119, 100, 95, 83, 101, 116, 77, 111, 100, 101, 108, 0, 99, 108, 115, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 0, 99, 108, 99, 109, 100, 95, 115, 101, 116, 95, 99, 108, 97, 115, 115, 0, 0, 99, 108, 115, 95, 98, 97, 122, 111, 111, 107, 97, 0, 99, 108, 99, 109, 100, 95, 114, 111, 99, 107, 101, 116, 95, 109, 101, 110, 117, 0, 99, 108, 115, 95, 112, 105, 97, 116, 0, 99, 108, 99, 109, 100, 95, 114, 111, 99, 107, 101, 116, 95, 109, 101, 110, 117, 0, 99, 108, 115, 95, 112, 115, 99, 104, 114, 101, 99, 107, 0, 99, 108, 99, 109, 100, 95, 114, 111, 99, 107, 101, 116, 95, 109, 101, 110, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 111, 117, 32, 97, 114, 101, 32, 111, 110, 32, 102, 105, 114, 101, 33, 32, 83, 112, 114, 105, 110, 116, 32, 65, 119, 97, 121, 33, 0, 98, 117, 114, 110, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 89, 111, 117, 32, 119, 105, 108, 108, 32, 114, 101, 115, 112, 97, 119, 110, 32, 97, 115, 32, 70, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 0, 69, 110, 103, 105, 110, 101, 101, 114, 32, 67, 108, 97, 115, 115, 101, 115, 0, 109, 101, 110, 117, 95, 104, 97, 110, 100, 108, 101, 114, 0, 82, 111, 99, 107, 101, 116, 32, 67, 108, 97, 115, 115, 0, 0, 70, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 32, 67, 108, 97, 115, 115, 0, 42, 89, 111, 117, 32, 119, 105, 108, 108, 32, 114, 101, 115, 112, 97, 119, 110, 32, 97, 115, 32, 70, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 0, 101, 120, 112, 108, 111, 100, 101, 95, 112, 108, 97, 121, 101, 114, 0, 0, 0, 102, 117, 110, 99, 95, 119, 97, 108, 108, 0, -1065353216, -1065353216, -1065353216, 1082130432, 1082130432, 1082130432, -1065353216, -1065353216, -1065353216, 1082130432, 1082130432, 1082130432, -1065353216, -1065353216, -1065353216, 1082130432, 1082130432, 1082130432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew g_msgCurWeapon;nnew g_msgScreenFade;nnew g_msgScreenShake;nnew g_msgRoundState;nnew g_msgAmmoX;nnew bool:g_isClass[33];nnew bool:g_holding[33];nnew bool:g_firing[33];nnew Float:g_nextShot[33];nnew bool:g_roundlive;nnew p_enabled;nnew p_ammo;nnew p_limitbazooka;nnew p_limitpiat;nnew p_limitpschreck;nnew firesprite;nnew explosionsprite;nnew p_stamina;nnew strings[23][64] =n{n {n 109, 111, 100, 101, 108, 115, 47, 118, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 112, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 102, 108, 97, 109, 101, 116, 104, 114, 111, 119, 101, 114, 49, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 122, 111, 111, 107, 97, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 105, 97, 116, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 112, 115, 99, 104, 114, 101, 99, 107, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 115, 47, 101, 120, 112, 108, 111, 100, 101, 52, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 98, 105, 101, 110, 99, 101, 47, 114, 111, 99, 107, 101, 116, 102, 108, 97, 109, 101, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 98, 105, 101, 110, 99, 101, 47, 115, 116, 101, 97, 109, 98, 117, 114, 115, 116, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 98, 105, 101, 110, 99, 101, 47, 98, 117, 114, 110, 105, 110, 103, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 115, 112, 114, 105, 116, 101, 115, 47, 101, 120, 112, 108, 111, 100, 101, 49, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 115, 112, 114, 105, 116, 101, 115, 47, 99, 101, 120, 112, 108, 111, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 112, 110, 95, 102, 108, 97, 109, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 112, 108, 97, 121, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 102, 117, 110, 99, 95, 119, 97, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 98, 97, 122, 111, 111, 107, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 112, 105, 97, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 112, 115, 99, 104, 114, 101, 99, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 105, 116, 101, 109, 115, 47, 97, 109, 109, 111, 112, 105, 99, 107, 117, 112, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n }n};nFloat:operator*(Float:,_:)(Float:oper1, oper2)n{n return floatmul(oper1, float(oper2));n}nnbool:operator>(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 < floatcmp(oper1, oper2);n}nnbool:operator>=(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 <= floatcmp(oper1, oper2);n}nnbool:operator>=(_:,Float:)(oper1, Float:oper2)n{n return 0 <= floatcmp(float(oper1), oper2);n}nnbool:operator<(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 > floatcmp(oper1, oper2);n}nnbool:operator<=(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 >= floatcmp(oper1, oper2);n}nnFVecIVec(Float:FVec[3], IVec[3])n{n IVec[0] = floatround(FVec[0], "DeathMsg");n IVec[1] = floatround(FVec[1], "DeathMsg");n IVec[2] = floatround(FVec[2], "DeathMsg");n return 1;n}nndod_make_deathmsg(killer, victim, weaponNUM)n{n message_begin(2, get_user_msgid("DeathMsg"), 36, "DeathMsg");n write_byte(killer);n write_byte(victim);n write_byte(weaponNUM);n message_end();n return 1;n}nnuser_silentkill(index)n{n static msgid;n new msgblock;n if (!msgid)n {n msgid = get_user_msgid("DeathMsg");n }n msgblock = get_msg_block(msgid);n set_msg_block(msgid, 1);n user_kill(index, 1);n set_msg_block(msgid, msgblock);n return 1;n}nnFloat:dod_stamina(id, Float:set)n{n if (set > -1.0)n {n set_pev(id, 62, set);n }n new Float:current = 0.0;n pev(id, 62, current);n return current;n}nndod_is_map_british()n{n return dod_get_map_info("DeathMsg");n}nnfm_find_ent_by_owner(index, classname[], owner, jghgtype)n{n new strtype[11] = xs__ITaskId;n new ent = index;n switch (jghgtype)n {n case 1:n {n strtype = {116,97,114,103,101,116,0};n }n case 2:n {n strtype = {116,97,114,103,101,116,110,97,109,101,0};n }n default:n {n }n }n while ((ent = engfunc(12, ent, strtype, classname)) && owner != pev(ent, 18))n {n }n return ent;n}nnfm_fakedamage(victim, classname[], Float:takedmgdamage, damagetype)n{n new class[13] = {116,114,105,103,103,101,114,95,104,117,114,116,0};n new entity = engfunc(21, engfunc(43, class));n if (!entity)n {n return 0;n }n new value[16];n float_to_str(takedmgdamage * 2, value, 15);n fm_set_kvd(entity, "dmg", value, class);n num_to_str(damagetype, value, 15);n fm_set_kvd(entity, "damagetype", value, class);n fm_set_kvd(entity, "origin", "8192 8192 8192", class);n dllfunc(1, entity);n set_pev(entity, 1, classname);n dllfunc(4, entity, victim);n engfunc(20, entity);n return 1;n}nnfm_set_kvd(entity, key[], value[], classname[])n{n if (classname[0])n {n set_kvd("DeathMsg", "DeathMsg", classname);n }n elsen {n new class[32];n pev(entity, 1, class, 31);n set_kvd("DeathMsg", "DeathMsg", class);n }n set_kvd("DeathMsg", 1, key);n set_kvd("DeathMsg", 2, value);n set_kvd("DeathMsg", "", 0);n return dllfunc(6, entity, 0);n}nnpublic plugin_init()n{n register_plugin("Flamethrower Class", "1.0", "29th.org");n g_msgCurWeapon = get_user_msgid("CurWeapon");n g_msgScreenFade = get_user_msgid("ScreenFade");n g_msgScreenShake = get_user_msgid("ScreenShake");n g_msgRoundState = get_user_msgid("RoundState");n g_msgAmmoX = get_user_msgid("AmmoX");n p_enabled = register_cvar("dod_flamethrower", 7360, "DeathMsg", "DeathMsg");n p_ammo = register_cvar("dod_flamethrower_ammo", "90", "DeathMsg", "DeathMsg");n p_limitbazooka = get_cvar_pointer("mp_limitalliesbazooka");n p_limitpiat = get_cvar_pointer("mp_limitbritpiat");n p_limitpschreck = get_cvar_pointer("mp_limitaxispschreck");n p_stamina = register_cvar("p_stamina", "10", "DeathMsg", "DeathMsg");n register_message(g_msgCurWeapon, "fwd_CurWeapon");n register_message(g_msgRoundState, "fwd_RoundState");n register_forward(123, "fwd_UpdateClientData_Post", 1);n register_forward(124, "fwd_AddToFullPack_Post", 1);n register_forward(125, "fwd_CmdStart", "DeathMsg");n register_forward(92, "fwd_Think", "DeathMsg");n register_forward(94, "fwd_Touch", "DeathMsg");n register_forward("", "fwd_SetModel", "DeathMsg");n register_statsfwd(1);n register_clcmd("cls_flamethrower", "clcmd_set_class", -1, 8388, -1);n register_clcmd("cls_bazooka", "clcmd_rocket_menu", -1, 8388, -1);n register_clcmd("cls_piat", "clcmd_rocket_menu", -1, 8388, -1);n register_clcmd("cls_pschreck", "clcmd_rocket_menu", -1, 8388, -1);n return 0;n}nnpublic plugin_precache()n{n new var1 = strings;n precache_model(var1[0][var1]);n precache_model(strings[1]);n precache_model(strings[2]);n precache_sound(strings[6]);n precache_sound(strings[7]);n precache_sound(strings[8]);n precache_sound(strings[9]);n precache_sound(strings[10]);n precache_sound(strings[22]);n firesprite = precache_model(strings[11]);n explosionsprite = precache_model(strings[12]);n return 0;n}nnpublic client_connect(id)n{n g_isClass[id] = 0;n g_holding[id] = 0;n g_firing[id] = 0;n g_nextShot[id] = 0;n return 0;n}nnpublic fwd_CurWeapon(msgid, msgdest, id)n{n if (plugin_enabled())n {n new wpnactive = get_msg_arg_int(1);n new wpnid = get_msg_arg_int(2);n new var1;n if (wpnactive && has_flamethrower(id, wpnid, -1))n {n static curModel[32];n pev(id, 144, curModel, 31);n new var3 = strings;n if (!equal(curModel, var3[0][var3], "DeathMsg"))n {n set_visuals(id);n }n set_msg_arg_int(2, 1, 7);n g_holding[id] = 1;n set_smg_ammo(id, 0);n }n elsen {n new var2;n if (wpnactive && g_holding[id])n {n fire_off(id);n g_holding[id] = 0;n new ammo = get_pdata_int(id, 56, 4);n if (ammo)n {n set_smg_ammo(id, ammo);n }n }n }n }n return 0;n}nnpublic fwd_RoundState(msgid, msgdest, id)n{n new arg = get_msg_arg_int(1);n if (arg == 1)n {n g_roundlive = true;n }n elsen {n new var1;n if (arg == 3 || arg == 4)n {n g_roundlive = false;n }n }n return 0;n}nnpublic fwd_UpdateClientData_Post(id, sendweapons, cd_handle)n{n if (plugin_enabled())n {n new var1;n if (is_user_alive(id) && has_flamethrower(id, get_user_weapon(id, 0, 0), -1))n {n set_cd(cd_handle, 23, floatadd(981668463, get_gametime()));n }n }n return 0;n}nnpublic fwd_AddToFullPack_Post(es_handle, e, entid, host, hostflags, player, pSet)n{n if (plugin_enabled())n {n new var1;n if (player && g_firing[entid])n {n set_es(es_handle, 7, 77);n }n }n return 0;n}nnpublic fwd_CmdStart(id, uc_handle, seed)n{n if (plugin_enabled())n {n new var1;n if (is_user_alive(id) && has_flamethrower(id, get_user_weapon(id, 0, 0), -1))n {n static oldbuttons;n static newbuttons;n static buttons;n buttons = get_uc(uc_handle, 7);n newbuttons = buttons;n oldbuttons = pev(id, 98);n new var2;n if (buttons & 1 && can_fire(id))n {n new Float:gtime = get_gametime();n newbuttons = newbuttons & -2;n if (g_nextShot[id] <= gtime)n {n fire(id);n g_nextShot[id] = floatadd(1036831949, gtime);n }n }n elsen {n if (oldbuttons & 1)n {n fire_off(id);n }n }n if (buttons & 2048)n {n newbuttons = newbuttons & -2049;n }n if (buttons & 8192)n {n newbuttons = newbuttons & -8193;n }n if (newbuttons != buttons)n {n set_uc(uc_handle, 7, newbuttons);n return 4;n }n }n }n return 1;n}nnpublic fwd_Think(ent)n{n if (plugin_enabled())n {n if (pev_valid(ent))n {n static classname[32];n pev(ent, 1, classname, 31);n if (equal(classname, strings[13], "DeathMsg"))n {n new victim = pev(ent, 17);n decl Float:stamina;n new var1;n if (victim)n {n var1 = dod_stamina(victim, -1.0);n }n elsen {n var1 = 0;n }n stamina = var1;n new var3;n if (!victim || (is_user_alive(victim) && stamina && water_level(victim) <= 1))n {n set_pev(ent, 33, 1065353216);n new Float:ltime = 0.0;n pev(ent, 32, ltime);n new var4;n if (ltime && ltime <= get_gametime())n {n set_pev(ent, 84, 1073741824);n }n new Float:frame = 0.0;n pev(ent, 36, frame);n if (frame < 8.0)n {n set_pev(ent, 36, floatadd(1050253722, frame));n }n elsen {n set_pev(ent, 36, 0);n }n }n elsen {n remove_flame(victim, ent);n }n }n }n }n return 0;n}nnpublic fwd_Touch(ptd, ptr)n{n if (plugin_enabled())n {n new var1;n if (pev_valid(ptd) && pev_valid(ptr) && is_user_alive(ptd))n {n static ptr_classname[32];n static ptd_classname[32];n pev(ptd, 1, ptd_classname, 31);n pev(ptr, 1, ptr_classname, 31);n new var2;n if (equal(ptd_classname, strings[14], "DeathMsg") && equal(ptr_classname, strings[13], "DeathMsg"))n {n if (1 >= water_level(ptd))n {n new attacker = pev(ptr, 18);n player_damage(ptd, attacker, 25.0, 8);n flash_screen(ptd);n if (!task_exists(ptd, "DeathMsg"))n {n client_print(ptd, 4, "You are on fire! Sprint Away!");n new repeat = get_user_health(ptd) / floatround(1103626240, "DeathMsg");n new args[2];n args[0] = ptd;n args[1] = attacker;n new var3;n if (repeat > 0)n {n var3 = repeat;n }n elsen {n var3 = 0;n }n set_task(1073741824, "burn", ptd, args, 2, 9408, var3);n attach_flame(ptd, ptr);n emit_sound(ptd, "DeathMsg", strings[10], 1061997773, 1061997773, "DeathMsg", 100);n }n elsen {n set_pev(ptr, 84, 1073741824);n }n }n }n }n new var4;n if (!ptd && pev_valid(ptr))n {n static ptr_classname[32];n pev(ptr, 1, ptr_classname, 31);n if (equal(ptr_classname, strings[13], "DeathMsg"))n {n new iOrigin[3];n new Float:fOrigin[3] = 0.0;n pev(ptr, 118, fOrigin);n FVecIVec(fOrigin, iOrigin);n scorch(iOrigin);n }n }n new var5;n if (pev_valid(ptd) && is_user_alive(ptr))n {n new wpnid = get_user_weapon(ptr, 0, 0);n if (has_flamethrower(ptr, wpnid, -1))n {n new owner = pev(ptd, 18);n new team = get_user_team(ptr, {0}, "DeathMsg");n static ptd_classname[32];n pev(ptd, 1, ptd_classname, 31);n if (ptr != owner)n {n new var6;n if ((team == 1 && !dod_is_map_british() && equal(ptd_classname, strings[19], "DeathMsg")) || (team == 1 && equal(ptd_classname, strings[20], "DeathMsg")) || (team == 2 && equal(ptd_classname, strings[21], "DeathMsg")))n {n new clipammo = clip_ammo(ptr, -1, 0);n new newammo = clipammo + 30;n if (clipammo < 120)n {n new var10;n if (newammo <= 120)n {n var10 = newammo;n }n elsen {n var10 = 120;n }n clip_ammo(ptr, var10, 0);n emit_sound(ptd, "", strings[22], 1061997773, 1061997773, "DeathMsg", 100);n set_pev(ptd, 70, 0);n set_pev(ptd, 84, 1073741824);n }n return 4;n }n }n }n }n }n return 1;n}nnpublic fwd_SetModel(ent, model[])n{n if (plugin_enabled())n {n new owner = pev(ent, 18);n new var3;n if (pev_valid(ent) && (owner && g_holding[owner]) && (equal(model, strings[3], "DeathMsg") || equal(model, strings[4], "DeathMsg") || equal(model, strings[5], "DeathMsg")))n {n engfunc(2, ent, strings[2]);n return 4;n }n }n return 1;n}nnpublic clcmd_set_class(id)n{n if (plugin_enabled())n {n set_class(id, 1);n client_print(id, "", "*You will respawn as Flamethrower");n return 1;n }n return 0;n}nnpublic clcmd_rocket_menu(id)n{n if (plugin_enabled())n {n if (class_allowed(id))n {n new menu = menu_create("Engineer Classes", "menu_handler", "DeathMsg");n menu_additem(menu, "Rocket Class", 9984, "DeathMsg", -1);n menu_additem(menu, "Flamethrower Class", 9984, "DeathMsg", -1);n menu_display(id, menu, "DeathMsg");n }n }n return 0;n}nnpublic menu_handler(id, menu, item)n{n if (!item)n {n set_class(id, 0);n }n if (item == 1)n {n set_class(id, 1);n client_print(id, "", "*You will respawn as Flamethrower");n }n return 0;n}nnpublic dod_player_spawn(id)n{n if (plugin_enabled())n {n if (is_class(id))n {n g_holding[id] = 1;n has_flamethrower(id, 0, 1);n set_visuals(id);n clip_ammo(id, get_pcvar_num(p_ammo), 0);n alter_hud_ammo(id);n set_smg_ammo(id, 0);n }n }n return 0;n}nnpublic client_damage(attacker, victim, damage, wpnindex, hitplace, ta)n{n if (plugin_enabled())n {n new var1;n if (hitplace == 2 && damage >= 1113325568 && !is_melee_weapon(wpnindex))n {n if (has_flamethrower(victim, get_user_weapon(victim, 0, 0), -1))n {n set_task(1036831949, "explode_player", victim, 10260, "DeathMsg", 10264, "DeathMsg");n }n }n }n return 0;n}nnpublic client_death(killer, victim, wpnindex, hitplace, tk)n{n if (plugin_enabled())n {n fire_off(victim);n }n return 0;n}nnfire(id)n{n if (!g_firing[id])n {n g_firing[id] = 1;n emit_sound(id, 1, strings[8], 1061997773, 1061997773, "DeathMsg", 100);n }n new flame = create_flame(id);n if (pev_valid(flame))n {n new Float:fStart[3] = 0.0;n get_startpos(id, 32, 0, -16, fStart);n set_pev(flame, 118, fStart);n new Float:fVel[3] = 0.0;n velocity_by_aim(id, 1200, fVel);n set_pev(flame, 120, fVel);n fire_sprite(id);n }n clip_ammo(id, -1, -1);n if (~pev(id, 81) & 4)n {n decrease_stamina(id);n }n return 0;n}nncreate_flame(owner)n{n new flame = engfunc(21, engfunc(43, "func_wall"));n new Float:gtime = get_gametime();n set_pev(flame, 1, strings[13]);n engfunc(2, flame, strings[11]);n set_pev(flame, 18, owner);n set_pev(flame, 77, 5);n set_pev(flame, 40, 1132396544);n set_pev(flame, 69, 11);n set_pev(flame, 70, 2);n set_pev(flame, 33, 1065353216);n new Float:radius = 8.0;n new Float:mins[3] = 0.0;n mins[0] = radius * -1;n mins[1] = radius * -1;n mins[2] = radius * -1;n new Float:maxs[3] = 0.0;n maxs[0] = radius;n maxs[1] = radius;n maxs[2] = radius;n engfunc(5, flame, 10308, 10320);n set_pev(flame, 131, 10332);n set_pev(flame, 132, 10344);n set_pev(flame, 129, 10356);n set_pev(flame, 130, 10368);n set_pev(flame, 32, floatadd(1053609165, gtime));n return flame;n}nnfire_sprite(id)n{n new origin[3];n new aim[3];n new velocity[3];n new length;n new speed = 10;n get_user_origin(id, origin, "DeathMsg");n get_user_origin(id, aim, 2);n velocity[0] = aim[0] - origin[0];n velocity[1] = aim[1] - origin[1];n velocity[2] = aim[2] - origin[2];n length = sqrt(velocity[2] * velocity[2] + velocity[1] * velocity[1] + velocity[0] * velocity[0]);n velocity[0] = speed * velocity[0] / length;n velocity[1] = speed * velocity[1] / length;n velocity[2] = speed * velocity[2] / length;n message_begin("DeathMsg", 23, 10380, "DeathMsg");n write_byte(120);n write_coord(origin[0]);n write_coord(origin[1]);n write_coord(origin[2]);n write_coord(velocity[0]);n write_coord(velocity[1]);n write_coord(velocity[2]);n write_short(firesprite);n write_byte(8);n write_byte(90);n write_byte(100);n write_byte(5);n message_end();n return 0;n}nnfire_off(id)n{n if (g_firing[id])n {n emit_sound(id, 1, strings[9], 1053609165, 1061997773, "DeathMsg", 100);n g_firing[id] = 0;n }n return 0;n}nnpublic burn(args[])n{n new victim = args[0];n new attacker = args[1];n flash_screen(victim);n player_damage(victim, attacker, 25.0, 8);n return 0;n}nnpublic explode_player(id)n{n new Float:origin[3] = 0.0;n new iOrigin[3];n pev(id, 118, origin);n FVecIVec(origin, iOrigin);n emit_sound(id, "DeathMsg", strings[7], 1053609165, 1061997773, "DeathMsg", 100);n message_begin("DeathMsg", 23, 10380, "DeathMsg");n write_byte("");n write_coord(floatround(origin[0], "DeathMsg"));n write_coord(floatround(origin[1], "DeathMsg"));n write_coord(floatround(origin[2], "DeathMsg") + 45);n write_short(explosionsprite);n write_byte(30);n write_byte(30);n write_byte(12);n message_end();n fm_radius_damage(origin, 200.0, 300.0, id);n return 0;n}nnfm_radius_damage(Float:origin[3], Float:damage, Float:radius, inflictor)n{n static Float:plDamage;n static Float:plDistance;n static Float:plOrigin[3];n new i = 1;n while (get_maxplayers() >= i)n {n if (is_user_alive(i))n {n pev(i, 118, plOrigin);n plDistance = get_distance_f(origin, plOrigin);n if (plDistance <= radius)n {n plDamage = floatsub(damage, floatmul(floatdiv(damage, radius), plDistance));n player_damage(i, inflictor, plDamage, 64);n message_begin(8, g_msgScreenShake, 10380, i);n write_short(16384);n write_short(4096);n write_short(32768);n message_end();n }n }n i++;n }n return 1;n}nnis_melee_weapon(wpnid)n{n new var1;n if (wpnid == 1 || wpnid == 37 || wpnid == 2 || wpnid == 19)n {n return 1;n }n new var2;n if (wpnid == 38 || wpnid == 39 || wpnid == 41 || wpnid == 34)n {n return 1;n }n return 0;n}nnwater_level(id)n{n return pev(id, "");n}nncan_fire(id)n{n new clipammo = clip_ammo(id, -1, 0);n new var1;n if (g_roundlive && water_level(id) <= 2 && clipammo > 0)n {n return 1;n }n return 0;n}nnattach_flame(id, flame)n{n set_pev(flame, 120, 10412);n set_pev(flame, 70, 0);n set_pev(flame, 17, id);n set_pev(flame, 32, 0);n return 0;n}nnplayer_damage(id, attacker, Float:amt, dmgtype)n{n if (is_user_alive(id))n {n new hp = get_user_health(id);n new newhp = hp - floatround(amt, "DeathMsg");n if (0 < newhp)n {n fm_fakedamage(id, strings[13], amt, dmgtype);n }n elsen {n fire_off(id);n user_silentkill(id);n if (get_user_team(attacker, {0}, "DeathMsg") != get_user_team(id, {0}, "DeathMsg"))n {n dod_set_user_kills(attacker, dod_get_user_kills(attacker) + 1, 1);n }n dod_make_deathmsg(attacker, id, 0);n }n }n return 0;n}nnflash_screen(id)n{n message_begin(8, g_msgScreenFade, 10380, id);n write_short(8192);n write_short(4096);n write_short("DeathMsg");n write_byte(192);n write_byte("DeathMsg");n write_byte("DeathMsg");n write_byte(160);n message_end();n return 0;n}nnremove_flame(id, ent)n{n if (task_exists(id, "DeathMsg"))n {n remove_task(id, "DeathMsg");n }n if (!ent)n {n static aiment;n while ((ent = engfunc(12, ent, "classname", strings[13])))n {n aiment = pev(ent, 17);n if (id == aiment)n {n }n }n }n if (ent)n {n set_pev(ent, 84, 1073741824);n emit_sound(id, "DeathMsg", strings[10], 1053609165, 1061997773, 32, 100);n return 1;n }n return 0;n}nnscorch(origin[3])n{n message_begin("DeathMsg", 23, 10380, "DeathMsg");n write_byte(116);n write_coord(origin[0]);n write_coord(origin[1]);n write_coord(origin[2]);n write_byte(60);n message_end();n return 0;n}nnhas_flamethrower(id, wpnid, set)n{n if (!wpnid)n {n new team = get_user_team(id, {0}, "DeathMsg");n new var1;n if (team == 1 && !dod_is_map_british())n {n wpnid = 29;n }n elsen {n if (team == 1)n {n wpnid = 31;n }n wpnid = 30;n }n }n new wpnent = dod_get_weapon_ent_by_owner(id, wpnid);n new var2;n if (wpnent && set > -1)n {n set_pev(wpnent, 102, set);n }n new var3;n if (wpnent)n {n var3 = pev(wpnent, 102);n }n elsen {n var3 = 0;n }n return var3;n}nnset_class(id, set)n{n if (set)n {n g_isClass[id] = 1;n new class;n new team = get_user_team(id, {0}, "DeathMsg");n new var1;n if (team == 1 && !dod_is_map_british())n {n class = 8;n }n elsen {n if (team == 1)n {n class = 25;n }n class = 19;n }n set_pdata_int(id, 366, class, 4);n set_pdata_int(id, 367, "DeathMsg", 4);n }n elsen {n g_isClass[id] = 0;n }n return 0;n}nnis_class(id)n{n new class = dod_get_user_class(id);n new var2;n if (g_isClass[id] && (class == 8 || class == 25 || class == 19))n {n return 1;n }n return 0;n}nnset_visuals(id)n{n new var1 = strings;n set_pev(id, 144, var1[0][var1]);n set_pev(id, 143, strings[1]);n return 0;n}nnalter_hud_ammo(id)n{n message_begin(1, g_msgCurWeapon, 10380, id);n write_byte(1);n write_byte(7);n write_byte("DeathMsg");n message_end();n return 0;n}nnset_smg_ammo(id, amt)n{n message_begin(1, g_msgAmmoX, 10380, id);n write_byte(1);n write_byte(amt);n message_end();n return 0;n}nnclip_ammo(id, set, diff)n{n new wpnent = dod_get_weapon_ent_by_owner(id, get_user_weapon(id, 0, 0));n new ammo = get_pdata_int(wpnent, 108, 4);n if (set > -1)n {n ammo = set;n set_pdata_int(wpnent, 108, ammo, 4);n }n if (diff)n {n ammo = diff + ammo;n set_pdata_int(wpnent, 108, ammo, 4);n }n return ammo;n}nndecrease_stamina(id)n{n new Float:current = 0.0;n pev(id, 62, current);n new Float:factor = get_pcvar_float(p_stamina);n decl Float:set;n new var1;n if (floatsub(current, factor) >= 0)n {n var1 = floatsub(current, factor);n }n elsen {n var1 = 0;n }n set = var1;n set_pev(id, 62, set);n return 0;n}nnclass_allowed(id)n{n new team;n new class;n new limit;n team = get_user_team(id, {0}, "DeathMsg");n new var1;n if (team == 1 && !dod_is_map_british())n {n class = 8;n limit = get_pcvar_num(p_limitbazooka);n }n elsen {n if (team == 1)n {n class = 25;n limit = get_pcvar_num(p_limitpiat);n }n class = 19;n limit = get_pcvar_num(p_limitpschreck);n }n new pClass;n new engineers;n new i = 1;n while (get_maxplayers() >= i)n {n if (is_user_connected(i))n {n pClass = dod_get_user_class(i);n if (pClass == class)n {n engineers++;n }n }n i++;n }n new var2;n if (limit > engineers || limit == -1 || class != dod_get_user_class(id))n {n return 1;n }n return 0;n}nnget_startpos(id, forw, right, up, Float:vSrc[3])n{n new Float:vOrigin[3] = 0.0;n new Float:vAngle[3] = 0.0;n pev(id, 118, vOrigin);n pev(id, 126, vAngle);n engfunc(17, vAngle);n new Float:vForward[3] = 0.0;n new Float:vRight[3] = 0.0;n new Float:vUp[3] = 0.0;n global_get(28, vForward);n global_get(30, vRight);n global_get(29, vUp);n vSrc[0] = floatadd(floatadd(floatadd(vOrigin[0], vForward[0] * forw), vRight[0] * right), vUp[0] * up);n vSrc[1] = floatadd(floatadd(floatadd(vOrigin[1], vForward[1] * forw), vRight[1] * right), vUp[1] * up);n vSrc[2] = floatadd(floatadd(floatadd(vOrigin[2], vForward[2] * forw), vRight[2] * right), vUp[2] * up);n return 0;n}nndod_get_weapon_ent_by_owner(id, wpnid)n{n new wpnname;n switch (wpnid)n {n case 29:n {n wpnname = 16;n }n case 30:n {n wpnname = 18;n }n case 31:n {n wpnname = 17;n }n default:n {n return 0;n }n }n return fm_find_ent_by_owner(0, strings[wpnname], id, 0);n}nnsqrt(num)n{n new div = num;n new result = 1;n while (div > result)n {n div = result + div / 2;n result = num / div;n }n return div;n}nnplugin_enabled()n{n return get_pcvar_num(p_enabled);n}nn
Decompiled source reconstructed
dod_shotgun.amxx was published compiled only. This Pawn was recovered from the
bytecode with Lysis — 1141 lines. Strings, cvars and the plugin registration
survive; local variable names do not. It is an approximation, not the author's file.
// Decompiled from dod_shotgun.amxx by Lysis.n// This is RECONSTRUCTED source, not the author's original: withoutn// debug symbols the variable names are lost and control flow isn// rebuilt from bytecode. Treat it as a readable approximation.nnnew xs__ITaskId = 99;nnew xs__ITaskParam[1033] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 72, 97, 109, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 0, 0, 72, 50, 260, 13, 104, 356, 608, 860, 1112, 1364, 1616, 1868, 2120, 2372, 2624, 2876, 3128, 3380, 3632, 3884, 4136, 4388, 4640, 4892, 5144, 5396, 5648, 5900, 6152, 6404, 109, 111, 100, 101, 108, 115, 47, 118, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 114, 101, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 109, 112, 52, 52, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew xs__TaskFlags[5] =n{n 99, 108, 97, 115, 115n};nnew xs__TaskFunc[48] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 72, 97, 109, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew xs__TaskId = 99;nnew Float:xs__TaskInterval = 99;nnew xs__TaskParam[1033] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 72, 97, 109, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 0, 0, 72, 50, 260, 13, 104, 356, 608, 860, 1112, 1364, 1616, 1868, 2120, 2372, 2624, 2876, 3128, 3380, 3632, 3884, 4136, 4388, 4640, 4892, 5144, 5396, 5648, 5900, 6152, 6404, 109, 111, 100, 101, 108, 115, 47, 118, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 114, 101, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 109, 112, 52, 52, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew xs__TaskRepeat = 99;nnew xs__global_null = 99;nnew xs__internalseed = 99;nnew xs__logtypenames[6][0] =n{n {n 27904, ...n },n {n 72, ...n },n {n 0, ...n },n {n 26880, ...n },n {n 27648, ...n },n {n 7077888, ...n }n};nnew xs__maxnum = 99;nnew xs__replace_buf[3072] =n{n 99, 108, 97, 115, 115, 110, 97, 109, 101, 0, 116, 97, 114, 103, 101, 116, 0, 116, 97, 114, 103, 101, 116, 110, 97, 109, 101, 0, 72, 97, 109, 70, 105, 108, 116, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 256, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 20, 0, 0, 72, 50, 260, 13, 104, 356, 608, 860, 1112, 1364, 1616, 1868, 2120, 2372, 2624, 2876, 3128, 3380, 3632, 3884, 4136, 4388, 4640, 4892, 5144, 5396, 5648, 5900, 6152, 6404, 109, 111, 100, 101, 108, 115, 47, 118, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 112, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 114, 101, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 111, 100, 101, 108, 115, 47, 119, 95, 109, 112, 52, 52, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 108, 97, 121, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 112, 114, 105, 116, 101, 115, 47, 108, 97, 115, 101, 114, 98, 101, 97, 109, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 115, 98, 97, 114, 114, 101, 108, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 115, 99, 111, 99, 107, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 114, 101, 108, 111, 97, 100, 50, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 101, 97, 112, 111, 110, 115, 47, 51, 53, 55, 95, 99, 111, 99, 107, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 116, 101, 109, 115, 47, 97, 109, 109, 111, 112, 105, 99, 107, 117, 112, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 108, 115, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 108, 115, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 108, 115, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 112, 95, 108, 105, 109, 105, 116, 97, 108, 108, 105, 101, 115, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 112, 95, 108, 105, 109, 105, 116, 98, 114, 105, 116, 109, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 112, 95, 108, 105, 109, 105, 116, 97, 120, 105, 115, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 104, 111, 116, 103, 117, 110, 32, 67, 108, 97, 115, 115, 0, 49, 46, 48, 0, 50, 57, 116, 104, 46, 111, 114, 103, 0, 67, 117, 114, 87, 101, 97, 112, 111, 110, 0, 82, 111, 117, 110, 100, 83, 116, 97, 116, 101, 0, 65, 109, 109, 111, 88, 0, 100, 111, 100, 95, 115, 104, 111, 116, 103, 117, 110, 0, 49, 0, 112, 95, 98, 101, 97, 109, 108, 105, 102, 101, 0, 53, 48, 0, 112, 95, 115, 112, 114, 101, 97, 100, 0, 56, 0, 112, 95, 99, 111, 102, 109, 111, 118, 105, 110, 103, 0, 49, 48, 0, 112, 95, 100, 105, 115, 116, 0, 49, 53, 48, 48, 0, 112, 95, 116, 114, 97, 99, 101, 114, 115, 0, 48, 0, 112, 95, 119, 97, 108, 108, 0, 49, 49, 0, 112, 95, 112, 101, 108, 108, 101, 116, 115, 0, 51, 48, 0, 112, 95, 100, 97, 109, 97, 103, 101, 0, 49, 55, 0, 112, 95, 99, 111, 102, 0, 54, 0, 102, 119, 100, 95, 67, 117, 114, 87, 101, 97, 112, 111, 110, 0, 102, 119, 100, 95, 82, 111, 117, 110, 100, 83, 116, 97, 116, 101, 0, 102, 119, 100, 95, 85, 112, 100, 97, 116, 101, 67, 108, 105, 101, 110, 116, 68, 97, 116, 97, 95, 80, 111, 115, 116, 0, 102, 119, 100, 95, 65, 100, 100, 84, 111, 70, 117, 108, 108, 80, 97, 99, 107, 95, 80, 111, 115, 116, 0, 102, 119, 100, 95, 67, 109, 100, 83, 116, 97, 114, 116, 0, 102, 119, 100, 95, 84, 111, 117, 99, 104, 0, 102, 119, 100, 95, 83, 101, 116, 77, 111, 100, 101, 108, 0, 102, 119, 100, 95, 82, 101, 108, 111, 97, 100, 0, 102, 119, 100, 95, 82, 101, 108, 111, 97, 100, 0, 102, 119, 100, 95, 82, 101, 108, 111, 97, 100, 0, 99, 108, 115, 95, 115, 104, 111, 116, 103, 117, 110, 0, 99, 108, 99, 109, 100, 95, 115, 101, 116, 95, 99, 108, 97, 115, 115, 0, 0, 99, 108, 99, 109, 100, 95, 99, 108, 97, 115, 115, 95, 109, 101, 110, 117, 0, 99, 108, 99, 109, 100, 95, 99, 108, 97, 115, 115, 95, 109, 101, 110, 117, 0, 99, 108, 99, 109, 100, 95, 99, 108, 97, 115, 115, 95, 109, 101, 110, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 89, 111, 117, 32, 119, 105, 108, 108, 32, 114, 101, 115, 112, 97, 119, 110, 32, 97, 115, 32, 83, 104, 111, 116, 103, 117, 110, 0, 83, 117, 112, 112, 111, 114, 116, 32, 67, 108, 97, 115, 115, 101, 115, 0, 109, 101, 110, 117, 95, 104, 97, 110, 100, 108, 101, 114, 0, 66, 65, 82, 32, 67, 108, 97, 115, 115, 0, 0, 83, 104, 111, 116, 103, 117, 110, 32, 67, 108, 97, 115, 115, 0, 42, 89, 111, 117, 32, 119, 105, 108, 108, 32, 114, 101, 115, 112, 97, 119, 110, 32, 97, 115, 32, 83, 104, 111, 116, 103, 117, 110, 0, 99, 111, 99, 107, 95, 115, 111, 117, 110, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 110, 115, 101, 114, 116, 95, 114, 111, 117, 110, 100, 0, 97, 0, 114, 101, 108, 111, 97, 100, 95, 100, 111, 110, 101, 95, 99, 111, 99, 107, 0, 114, 101, 108, 111, 97, 100, 95, 100, 111, 110, 101, 0, 115, 112, 107, 32, 37, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew g_msgCurWeapon;nnew g_msgRoundState;nnew g_msgAmmoX;nnew bool:g_isClass[33];nnew bool:g_holding[33];nnew Float:g_nextShot[33];nnew bool:g_roundlive;nnew p_enabled;nnew p_limitamer;nnew p_limitbrit;nnew p_limitaxis;nnew g_anim[33][2];nnew g_plseq[3][2] =n{n {n 0, ...n },n {n 72, 50n },n {n 260, 13n }n};nnew strings[26][64] =n{n {n 109, 111, 100, 101, 108, 115, 47, 118, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 112, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 116, 114, 101, 110, 99, 104, 115, 104, 111, 116, 103, 117, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 97, 109, 101, 114, 105, 99, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 98, 114, 105, 116, 105, 115, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 97, 109, 109, 111, 95, 103, 101, 110, 101, 114, 105, 99, 95, 103, 101, 114, 109, 97, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 97, 114, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 98, 114, 101, 110, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 111, 100, 101, 108, 115, 47, 119, 95, 109, 112, 52, 52, 46, 109, 100, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 112, 108, 97, 121, 101, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 115, 112, 114, 105, 116, 101, 115, 47, 108, 97, 115, 101, 114, 98, 101, 97, 109, 46, 115, 112, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 115, 47, 115, 98, 97, 114, 114, 101, 108, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 115, 47, 115, 99, 111, 99, 107, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 115, 47, 114, 101, 108, 111, 97, 100, 50, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 119, 101, 97, 112, 111, 110, 115, 47, 51, 53, 55, 95, 99, 111, 99, 107, 49, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 118, 111, 120, 47, 95, 112, 101, 114, 105, 111, 100, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 105, 116, 101, 109, 115, 47, 97, 109, 109, 111, 112, 105, 99, 107, 117, 112, 46, 119, 97, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 99, 108, 115, 95, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 99, 108, 115, 95, 98, 114, 101, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 99, 108, 115, 95, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 112, 95, 108, 105, 109, 105, 116, 97, 108, 108, 105, 101, 115, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 112, 95, 108, 105, 109, 105, 116, 98, 114, 105, 116, 109, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n },n {n 109, 112, 95, 108, 105, 109, 105, 116, 97, 120, 105, 115, 109, 112, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n }n};nnew p_beamlife;nnew beam;nnew p_spread;nnew p_cofmoving;nnew p_dist;nnew p_tracers;nnew p_wall;nnew p_wpn_pellets;nnew p_wpn_damage;nnew p_cof;nbool:operator==(Float:,Float:)(Float:oper1, Float:oper2)n{n return floatcmp(oper1, oper2) == 0;n}nnbool:operator>(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 < floatcmp(oper1, oper2);n}nnbool:operator<(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 > floatcmp(oper1, oper2);n}nnbool:operator<=(Float:,Float:)(Float:oper1, Float:oper2)n{n return 0 >= floatcmp(oper1, oper2);n}nnFVecIVec(Float:FVec[3], IVec[3])n{n IVec[0] = floatround(FVec[0], xs__ITaskId);n IVec[1] = floatround(FVec[1], xs__ITaskId);n IVec[2] = floatround(FVec[2], xs__ITaskId);n return 1;n}nndod_is_map_british()n{n return dod_get_map_info(xs__ITaskId);n}nnxs_vec_add(Float:in1[], Float:in2[], Float:out[])n{n out[0] = floatadd(in1[0], in2[0]);n out[1] = floatadd(in1[1], in2[1]);n out[2] = floatadd(in1[2], in2[2]);n return 0;n}nnbool:xs_vec_equal(Float:vec1[], Float:vec2[])n{n new var1;n return vec1[0] == vec2[0] && vec1[1] == vec2[1] && vec1[2] == vec2[2];n}nnxs_vec_mul_scalar(Float:vec[], Float:scalar, Float:out[])n{n out[0] = floatmul(vec[0], scalar);n out[1] = floatmul(vec[1], scalar);n out[2] = floatmul(vec[2], scalar);n return 0;n}nnxs_vec_copy(Float:vecIn[], Float:vecOut[])n{n vecOut[0] = vecIn[0];n vecOut[1] = vecIn[1];n vecOut[2] = vecIn[2];n return 0;n}nnfm_find_ent_by_owner(index, classname[], owner, jghgtype)n{n new strtype[11];n new ent = index;n switch (jghgtype)n {n case 1:n {n strtype = {116,97,114,103,101,116,0};n }n case 2:n {n strtype = {116,97,114,103,101,116,110,97,109,101,0};n }n default:n {n }n }n while ((ent = engfunc(12, ent, strtype, classname)) && owner != pev(ent, 18))n {n }n return ent;n}nnpublic __fatal_ham_error(Ham:id, HamError:err, reason[])n{n new func = get_func_id("HamFilter", -1);n new bool:fail = 1;n new var1;n if (func != -1 && callfunc_begin_i(func, -1) == 1)n {n callfunc_push_int(id);n callfunc_push_int(err);n callfunc_push_str(reason, xs__ITaskId);n if (callfunc_end() == 1)n {n fail = false;n }n }n if (fail)n {n set_fail_state(reason);n }n return 0;n}nnpublic plugin_init()n{n register_plugin("Shotgun Class", "1.0", "29th.org");n g_msgCurWeapon = get_user_msgid("CurWeapon");n g_msgRoundState = get_user_msgid("RoundState");n g_msgAmmoX = get_user_msgid("AmmoX");n p_enabled = register_cvar("dod_shotgun", 8076, xs__ITaskId, xs__ITaskId);n p_beamlife = register_cvar("p_beamlife", "50", xs__ITaskId, xs__ITaskId);n p_spread = register_cvar("p_spread", 8176, xs__ITaskId, xs__ITaskId);n p_cofmoving = register_cvar("p_cofmoving", "10", xs__ITaskId, xs__ITaskId);n p_dist = register_cvar("p_dist", "1500", xs__ITaskId, xs__ITaskId);n p_tracers = register_cvar("p_tracers", 8332, xs__ITaskId, xs__ITaskId);n p_wall = register_cvar("p_wall", "11", xs__ITaskId, xs__ITaskId);n p_wpn_pellets = register_cvar("p_pellets", "30", xs__ITaskId, xs__ITaskId);n p_wpn_damage = register_cvar("p_damage", "17", xs__ITaskId, xs__ITaskId);n p_cof = register_cvar("p_cof", 8504, xs__ITaskId, xs__ITaskId);n p_limitamer = get_cvar_pointer(strings[23]);n p_limitbrit = get_cvar_pointer(strings[24]);n p_limitaxis = get_cvar_pointer(strings[25]);n register_message(g_msgCurWeapon, "fwd_CurWeapon");n register_message(g_msgRoundState, "fwd_RoundState");n register_forward(123, "fwd_UpdateClientData_Post", 1);n register_forward(124, "fwd_AddToFullPack_Post", 1);n register_forward(125, "fwd_CmdStart", xs__ITaskId);n register_forward(94, "fwd_Touch", xs__ITaskId);n register_forward("", "fwd_SetModel", xs__ITaskId);n RegisterHam(89, strings[3], "fwd_Reload", xs__ITaskId);n RegisterHam(89, strings[4], "fwd_Reload", xs__ITaskId);n RegisterHam(89, strings[5], "fwd_Reload", xs__ITaskId);n register_clcmd("cls_shotgun", "clcmd_set_class", -1, 9212, -1);n register_clcmd(strings[20], "clcmd_class_menu", -1, 9212, -1);n register_clcmd(strings[21], "clcmd_class_menu", -1, 9212, -1);n register_clcmd(strings[22], "clcmd_class_menu", -1, 9212, -1);n return 0;n}nnpublic plugin_precache()n{n new var1 = strings;n precache_model(var1[0][var1]);n precache_model(strings[1]);n precache_model(strings[2]);n precache_sound(strings[14]);n precache_sound(strings[15]);n precache_sound(strings[16]);n precache_sound(strings[18]);n precache_sound(strings[19]);n beam = precache_model(strings[13]);n return 0;n}nnpublic client_connect(id)n{n g_isClass[id] = 0;n g_holding[id] = 0;n g_nextShot[id] = 0;n g_anim[id][0] = 0;n g_anim[id][1] = 0;n return 0;n}nnpublic fwd_CurWeapon(msgid, msgdest, id)n{n if (plugin_enabled())n {n new wpnactive = get_msg_arg_int(1);n new wpnid = get_msg_arg_int(2);n new var1;n if (wpnactive && has_specialwpn(id, wpnid, -1))n {n set_msg_arg_int(2, 1, 10);n }n }n return 0;n}nnpublic dod_client_weaponswitch(id, wpnnew, wpnold)n{n if (plugin_enabled())n {n if (has_specialwpn(id, wpnnew, -1))n {n static curModel[32];n pev(id, 144, curModel, 31);n new var1 = strings;n if (!equal(curModel, var1[0][var1], xs__ITaskId))n {n set_visuals(id);n }n g_holding[id] = 1;n set_weaponanim(id, 2);n g_nextShot[id] = floatadd(1036831949, floatadd(1065353216, get_gametime()));n }n if (has_specialwpn(id, wpnold, -1))n {n g_holding[id] = 0;n }n }n return 0;n}nnpublic fwd_Reload(wpnent)n{n if (plugin_enabled())n {n new owner = pev(wpnent, 18);n if (is_specialwpn(wpnent))n {n reload(owner);n return 4;n }n }n return 1;n}nnpublic fwd_RoundState(msgid, msgdest, id)n{n if (plugin_enabled())n {n new arg = get_msg_arg_int(1);n if (arg == 1)n {n g_roundlive = true;n }n elsen {n new var1;n if (arg == 3 || arg == 4)n {n g_roundlive = false;n }n }n }n return 0;n}nnpublic fwd_UpdateClientData_Post(id, sendweapons, cd_handle)n{n if (plugin_enabled())n {n new var1;n if (is_user_alive(id) && has_specialwpn(id, get_user_weapon(id, 0, 0), -1))n {n set_cd(cd_handle, 23, floatadd(981668463, get_gametime()));n }n }n return 0;n}nnpublic fwd_AddToFullPack_Post(es_handle, e, entid, host, hostflags, player, pSet)n{n if (plugin_enabled())n {n new var1;n if (player && is_user_alive(e) && g_holding[e])n {n new playseq = g_anim[e][0];n if (playseq)n {n new seq = g_plseq[playseq][0];n new maxframes = g_plseq[playseq][1];n new curframe = g_anim[e][1];n if (curframe <= maxframes)n {n set_es(es_handle, 7, seq);n set_es(es_handle, 8, float(curframe));n g_anim[e][1]++;n }n elsen {n g_anim[e][0] = 0;n }n }n }n }n return 0;n}nnpublic fwd_CmdStart(id, uc_handle, seed)n{n if (plugin_enabled())n {n new var1;n if (is_user_alive(id) && has_specialwpn(id, get_user_weapon(id, 0, 0), -1))n {n static newbuttons;n static buttons;n buttons = get_uc(uc_handle, 7);n newbuttons = buttons;n if (buttons & 1)n {n newbuttons = newbuttons & -2;n new Float:gtime = get_gametime();n new var2;n if (g_roundlive && can_fire(id))n {n if (g_nextShot[id] <= gtime)n {n fire(id);n g_nextShot[id] = floatadd(1065353216, gtime);n }n }n elsen {n if (g_roundlive)n {n if (g_nextShot[id] <= gtime)n {n empty_sound(id);n g_nextShot[id] = floatadd(1065353216, gtime);n }n }n }n }n if (buttons & 2048)n {n newbuttons = newbuttons & -2049;n }n if (newbuttons != buttons)n {n set_uc(uc_handle, 7, newbuttons);n return 4;n }n }n }n return 1;n}nnpublic fwd_Touch(ptd, ptr)n{n if (plugin_enabled())n {n new var1;n if (pev_valid(ptd) && is_user_alive(ptr))n {n new wpnid = get_user_weapon(ptr, 0, 0);n if (has_specialwpn(ptr, wpnid, -1))n {n new owner = pev(ptd, 18);n new team = get_user_team(ptr, {0}, xs__ITaskId);n static ptd_classname[32];n pev(ptd, 1, ptd_classname, 31);n if (ptr != owner)n {n new var2;n if ((team == 1 && !dod_is_map_british() && equal(ptd_classname, strings[6], xs__ITaskId)) || (team == 1 && equal(ptd_classname, strings[7], xs__ITaskId)) || (team == 2 && equal(ptd_classname, strings[8], xs__ITaskId)))n {n new bpammo = bp_ammo(ptr, -1, 0);n new newammo = bpammo + 5;n if (bpammo < 454)n {n new var6;n if (newammo <= 454)n {n var6 = newammo;n }n elsen {n var6 = 454;n }n bp_ammo(ptr, var6, 0);n emit_sound(ptd, "", strings[19], 1061997773, 1061997773, xs__ITaskId, 100);n set_pev(ptd, 70, 0);n set_pev(ptd, 84, 1073741824);n }n return 4;n }n }n }n }n }n return 1;n}nnpublic fwd_SetModel(ent, model[])n{n if (plugin_enabled())n {n new owner = pev(ent, 18);n new var3;n if (pev_valid(ent) && (owner && g_holding[owner]) && (equal(model, strings[9], xs__ITaskId) || equal(model, strings[10], xs__ITaskId) || equal(model, strings[11], xs__ITaskId)))n {n engfunc(2, ent, strings[2]);n return 4;n }n }n return 1;n}nnpublic clcmd_set_class(id)n{n if (plugin_enabled())n {n set_class(id, 1);n client_print(id, "", "*You will respawn as Shotgun");n return 1;n }n return 0;n}nnpublic dod_player_spawn(id)n{n if (plugin_enabled())n {n if (is_class(id))n {n g_holding[id] = 1;n has_specialwpn(id, 0, 1);n set_visuals(id);n clip_ammo(id, 5, 0);n bp_ammo(id, 444, 0);n alter_hud_ammo(id);n g_nextShot[id] = 0;n g_anim[id][0] = 0;n g_anim[id][1] = 0;n }n g_holding[id] = 0;n }n return 0;n}nnpublic dod_client_changeclass(id, class, oldclass)n{n if (plugin_enabled())n {n if (g_isClass[id])n {n new var1;n if (class != 6 && class != 24 && class != 13)n {n set_class(id, 0);n }n }n }n return 0;n}nnpublic clcmd_class_menu(id)n{n if (plugin_enabled())n {n if (class_allowed(id))n {n new menu = menu_create("Support Classes", "menu_handler", xs__ITaskId);n menu_additem(menu, "BAR Class", 9960, xs__ITaskId, -1);n menu_additem(menu, "Shotgun Class", 9960, xs__ITaskId, -1);n menu_display(id, menu, xs__ITaskId);n }n }n return 0;n}nnpublic menu_handler(id, menu, item)n{n if (!item)n {n set_class(id, 0);n }n if (item == 1)n {n set_class(id, 1);n client_print(id, "", "*You will respawn as Shotgun");n }n return 0;n}nnfire(id)n{n if (task_exists(id, xs__ITaskId))n {n remove_task(id, xs__ITaskId);n }n if (task_exists(id + 2929, xs__ITaskId))n {n remove_task(id + 2929, xs__ITaskId);n reload_done_cock(id + 2929);n return 0;n }n emit_sound(id, 1, strings[14], 1061997773, 1061997773, xs__ITaskId, 100);n if (clip_ammo(id, -1, 0) - 1)n {n set_task(1056964608, "cock_sound", id, 10180, xs__ITaskId, 10184, xs__ITaskId);n }n set_playeranim(id, 1);n set_weaponanim(id, 3);n create_recoil(id, 10.0);n muzzle_flash(id);n clip_ammo(id, -1, -1);n new Float:offset[3] = 0.0;n new Float:cof = get_pcvar_float(p_cof);n pev(id, 126, offset);n new Float:velocity[3] = 0.0;n pev(id, 120, velocity);n new var1;n if (velocity[0] || velocity[1] || velocity[2])n {n cof = get_pcvar_float(p_cofmoving);n }n offset[0] = floatadd(offset[0], random_float(cof, floatmul(-1082130432, cof)));n new var2 = offset[1];n var2 = floatadd(var2, random_float(cof, floatmul(-1082130432, cof)));n new i;n while (get_pcvar_num(p_wpn_pellets) > i)n {n shoot_pellet(id, offset);n i++;n }n return 0;n}nnshoot_pellet(id, Float:offset[3])n{n new Float:start[3] = 0.0;n new Float:view_ofs[3] = 0.0;n pev(id, 118, start);n pev(id, 135, view_ofs);n xs_vec_add(start, view_ofs, start);n new Float:dest[3] = 0.0;n xs_vec_copy(offset, dest);n new Float:spread = get_pcvar_float(p_spread);n new Float:distance = get_pcvar_float(p_dist);n dest[0] = floatadd(dest[0], random_float(spread, floatmul(-1082130432, spread)));n new var1 = dest[1];n var1 = floatadd(var1, random_float(spread, floatmul(-1082130432, spread)));n engfunc(17, dest);n new Float:fwd[3] = 0.0;n global_get(28, fwd);n xs_vec_mul_scalar(fwd, distance, dest);n xs_vec_add(start, dest, dest);n new Float:end[3] = 0.0;n traceline(start, dest, id, end);n if (!xs_vec_equal(dest, end))n {n new Float:newstart[3] = 0.0;n xs_vec_mul_scalar(fwd, get_pcvar_float(p_wall), newstart);n xs_vec_add(end, newstart, newstart);n if (engfunc("target", newstart) == -1)n {n traceline(newstart, dest, id, {0.0,0.0,0.0});n }n }n return 0;n}nntraceline(Float:start[3], Float:dest[3], id, Float:end[3])n{n engfunc(29, start, dest, 0, id, 0);n new ent = get_tr2(xs__ITaskId, 8);n get_tr2(xs__ITaskId, 5, end);n bullet_decal(end);n if (get_pcvar_num(p_tracers))n {n tracer(start, end);n }n if (pev_valid(ent))n {n ExecuteHam(9, ent, 0, id, get_pcvar_float(p_wpn_damage), 2);n }n return 0;n}nntracer(Float:fStart[3], Float:fEnd[3])n{n new start[3];n new end[3];n FVecIVec(fStart, start);n FVecIVec(fEnd, end);n message_begin(xs__ITaskId, 23, 10200, xs__ITaskId);n write_byte(xs__ITaskId);n write_coord(start[0]);n write_coord(start[1]);n write_coord(start[2]);n write_coord(end[0]);n write_coord(end[1]);n write_coord(end[2]);n write_short(beam);n write_byte(xs__ITaskId);n write_byte(xs__ITaskId);n write_byte(get_pcvar_num(p_beamlife));n write_byte(10);n write_byte(xs__ITaskId);n write_byte(random(255));n write_byte(random(255));n write_byte(random(255));n write_byte(200);n write_byte(10);n message_end();n return 0;n}nnreload(id)n{n if (!task_exists(id, xs__ITaskId))n {n new clipammo = clip_ammo(id, -1, 0);n new bpammo = bp_ammo(id, -1, 0);n new slots = 5 - clipammo;n if (slots > bpammo)n {n slots = bpammo;n }n if (slots)n {n set_weaponanim(id, 6);n set_task(1056964608, "insert_round", id, 10180, xs__ITaskId, 10264, slots);n if (!clipammo)n {n set_task(floatmul(1056964608, float(slots + 1)), "reload_done_cock", id + 2929, 10180, xs__ITaskId, 10184, xs__ITaskId);n }n set_task(floatmul(1056964608, float(slots + 1)), "reload_done", id, 10180, xs__ITaskId, 10184, xs__ITaskId);n }n }n return 0;n}nnpublic insert_round(id)n{n clip_ammo(id, -1, 1);n bp_ammo(id, -1, -1);n set_playeranim(id, 2);n set_weaponanim(id, 1);n emit_sound(id, xs__ITaskId, strings[16], 1061997773, 1061997773, xs__ITaskId, 100);n return 0;n}nnpublic reload_done(id)n{n set_weaponanim(id, 0);n return 0;n}nnpublic reload_done_cock(id)n{n set_weaponanim(id, 7);n g_nextShot[id] = floatadd(1065353216, get_gametime());n return 0;n}nnpublic cock_sound(id)n{n emit_sound(id, xs__ITaskId, strings[15], 1061997773, 1061997773, xs__ITaskId, 100);n return 0;n}nnempty_sound(id)n{n client_cmd(id, "spk %s", strings[17]);n return 0;n}nncan_fire(id)n{n new waterlevel = pev(id, 87);n new var1;n return clip_ammo(id, -1, 0) > 0 && waterlevel <= 2;n}nnhas_specialwpn(id, wpnid, set)n{n if (!wpnid)n {n new team = get_user_team(id, {0}, xs__ITaskId);n new var1;n if (team == 1 && !dod_is_map_british())n {n wpnid = 11;n }n elsen {n if (team == 1)n {n wpnid = 27;n }n wpnid = 8;n }n }n elsen {n new var2;n if (wpnid != 11 && wpnid != 27 && wpnid != 8)n {n return 0;n }n }n new wpnent = dod_get_weapon_ent_by_owner(id, wpnid);n new var3;n if (wpnent && set > -1)n {n set_pev(wpnent, 102, set);n }n new var4;n if (wpnent)n {n var4 = pev(wpnent, 102);n }n elsen {n var4 = 0;n }n return var4;n}nnis_specialwpn(wpnent)n{n static classname[32];n pev(wpnent, 1, classname, 31);n new var1;n if (equal(classname, strings[3], xs__ITaskId) || equal(classname, strings[4], xs__ITaskId) || equal(classname, strings[5], xs__ITaskId))n {n return pev(wpnent, 102);n }n return 0;n}nnset_class(id, set)n{n if (set)n {n g_isClass[id] = 1;n new class;n new team = get_user_team(id, {0}, xs__ITaskId);n new var1;n if (team == 1 && !dod_is_map_british())n {n class = 6;n }n elsen {n if (team == 1)n {n class = 24;n }n class = 13;n }n set_pdata_int(id, 366, class, 4);n set_pdata_int(id, 367, xs__ITaskId, 4);n }n elsen {n g_isClass[id] = 0;n }n return 0;n}nnis_class(id)n{n new class = dod_get_user_class(id);n new var2;n if (g_isClass[id] && (class == 6 || class == 24 || class == 13))n {n return 1;n }n return 0;n}nnset_visuals(id)n{n new var1 = strings;n set_pev(id, 144, var1[0][var1]);n set_pev(id, 143, strings[1]);n return 0;n}nnpublic alter_hud_ammo(id)n{n message_begin(1, g_msgCurWeapon, 10200, id);n write_byte(1);n write_byte(10);n write_byte(xs__ITaskId);n message_end();n return 0;n}nnset_weaponanim(id, seq)n{n set_pev(id, 90, seq);n message_begin(1, 35, 10200, id);n write_byte(seq);n write_byte(pev(id, 72));n message_end();n return 0;n}nnset_playeranim(id, seq)n{n g_anim[id][0] = seq;n g_anim[id][1] = 0;n return 0;n}nnmuzzle_flash(id)n{n set_pev(id, 73, pev(id, 73) | 2);n return 0;n}nnbullet_decal(Float:fOrigin[3])n{n new origin[3];n FVecIVec(fOrigin, origin);n message_begin(xs__ITaskId, 23, origin, xs__ITaskId);n write_byte(116);n write_coord(origin[0]);n write_coord(origin[1]);n write_coord(origin[2]);n write_byte(10);n message_end();n return 0;n}nnclass_allowed(id)n{n new team;n new class;n new limit;n team = get_user_team(id, {0}, xs__ITaskId);n new var1;n if (team == 1 && !dod_is_map_british())n {n class = 6;n limit = get_pcvar_num(p_limitamer);n }n elsen {n if (team == 1)n {n class = 24;n limit = get_pcvar_num(p_limitbrit);n }n class = 13;n limit = get_pcvar_num(p_limitaxis);n }n new pClass;n new classmembers;n new i = 1;n while (get_maxplayers() >= i)n {n if (is_user_connected(i))n {n pClass = dod_get_user_class(i);n if (pClass == class)n {n classmembers++;n }n }n i++;n }n new var2;n if (limit > classmembers || limit == -1 || class != dod_get_user_class(id))n {n return 1;n }n return 0;n}nncreate_recoil(id, Float:recoil)n{n new Float:angles[3] = 0.0;n pev(id, 126, angles);n angles[0] = floatsub(angles[0], random_float(floatmul(1067030938, recoil), floatmul(1061997773, recoil)));n if (angles[0] < -88.99475)n {n angles[0] = -88.99475;n }n elsen {n if (angles[0] > 88.99475)n {n angles[0] = 88.99475;n }n }n new var1 = angles[1];n var1 = floatadd(var1, random_float(floatmul(1051931443, recoil), floatmul(-1095552205, recoil)));n if (angles[1] > 180.0)n {n new var2 = angles[1];n var2 = floatsub(var2, 1135869952);n }n elsen {n if (angles[1] < -180.0)n {n new var3 = angles[1];n var3 = floatadd(1135869952, var3);n }n }n set_pev(id, 124, angles);n set_pev(id, 65, 1);n return 0;n}nnclip_ammo(id, set, diff)n{n new wpnent = dod_get_weapon_ent_by_owner(id, get_user_weapon(id, 0, 0));n new ammo = get_pdata_int(wpnent, 108, 4);n if (set > -1)n {n ammo = set;n set_pdata_int(wpnent, 108, ammo, 4);n }n if (diff)n {n ammo = diff + ammo;n set_pdata_int(wpnent, 108, ammo, 4);n }n return ammo;n}nnbp_ammo(id, set, diff)n{n new wpnid = get_user_weapon(id, 0, 0);n new channel = 3;n new ammo = dod_get_user_ammo(id, wpnid);n if (set > -1)n {n ammo = set;n dod_set_user_ammo(id, wpnid, ammo);n message_begin(1, g_msgAmmoX, 10200, id);n write_byte(channel);n write_byte(ammo * 5);n message_end();n }n if (diff)n {n ammo = diff + ammo;n dod_set_user_ammo(id, wpnid, ammo);n message_begin(1, g_msgAmmoX, 10200, id);n write_byte(channel);n write_byte(ammo * 5);n message_end();n }n return ammo;n}nndod_get_weapon_ent_by_owner(id, wpnid)n{n new wpnname;n switch (wpnid)n {n case 8:n {n wpnname = 5;n }n case 11:n {n wpnname = 3;n }n case 27:n {n wpnname = 4;n }n default:n {n return 0;n }n }n return fm_find_ent_by_owner(0, strings[wpnname], id, 0);n}nnplugin_enabled()n{n return get_pcvar_num(p_enabled);n}nn
Decompiled source reconstructed
dod_spawn_fwd.amxx was published compiled only. This Pawn was recovered from the
bytecode with Lysis — 50 lines. Strings, cvars and the plugin registration
survive; local variable names do not. It is an approximation, not the author's file.
// Decompiled from dod_spawn_fwd.amxx by Lysis.n// This is RECONSTRUCTED source, not the author's original: withoutn// debug symbols the variable names are lost and control flow isn// rebuilt from bytecode. Treat it as a readable approximation.nnnew gName[32] =n{n 100, 111, 100, 95, 112, 108, 97, 121, 101, 114, 95, 115, 112, 97, 119, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0n};nnew gForward;nnew gReturn;npublic plugin_init()n{n register_plugin("DOD Spawn Forward", "1.0", "Captain Wilson");n register_message(get_user_msgid("PStatus"), "msg_PStatus");n register_forward(113, "plugin_end", gName);n if (1 > (gForward = CreateMultiForward(gName, gName, 0)))n {n log_amx("Error creating %s forward", gName);n }n return 0;n}nnpublic msg_PStatus(msgid, msgdest, id)n{n new player = get_msg_arg_int(1);n new status = get_msg_arg_int(2);n new var1;n if (is_user_connected(player) && status)n {n set_task(1036831949, "spawn_forward", player, 568, gName, 572, gName);n }n return 0;n}nnpublic spawn_forward(id)n{n if (!ExecuteForward(gForward, gReturn, id))n {n log_amx("Error executing %s forward", gName);n }n return 0;n}nnpublic plugin_end()n{n DestroyForward(gForward);n return 0;n}nn
Added later in the thread
| dod_flamethrower.amxx | Compiled Plugin | 27 KB | 42 dl | Download |
| dod_flamethrower.sma | v1.0 | 24 KB | 82 dl | Download Compile |
| dod_shotgun.amxx | Compiled Plugin | 25 KB | 47 dl | Download |
| dod_shotgun.sma | v1.0 | 22 KB | 91 dl | Download Compile |
| dod_spawn_fwd.amxx | Compiled Plugin | 2 KB | 43 dl | Download |
| dod_spawn_fwd.sma | v1.0 | 1 KB | 91 dl | Download Compile |
| 357_cock1.wav | Sound | 5 KB | 48 dl | Download |
| laserbeam.spr | Model / Sprite | 3 KB | 44 dl | Download |
| p_trenchshotgun.mdl | Model / Sprite | 303 KB | 48 dl | Download |
| reload2.wav | Sound | 11 KB | 50 dl | Download |
| sbarrel1.wav | Sound | 32 KB | 52 dl | Download |
| scock1.wav | Sound | 10 KB | 54 dl | Download |
| _period.wav | Sound | 5 KB | 36 dl | Download |
| burning1.wav | Sound | 58 KB | 29 dl | Download |
| cexplo.spr | Model / Sprite | 158 KB | 27 dl | Download |
| dod_stocks.inc | Include | 6 KB | 31 dl | Download |
| explode1.spr | Model / Sprite | 69 KB | 31 dl | Download |
| explode4.wav | Sound | 93 KB | 32 dl | Download |
| p_flamethrower1.mdl | Model / Sprite | 85 KB | 29 dl | Download |
| rocketflame1.wav | Sound | 60 KB | 30 dl | Download |
| steamburst1.wav | Sound | 26 KB | 31 dl | Download |
The thread
All 15 posts from 2 people on Zombie Mod Making, kept as they were written.
Threads: 5
Joined: Jan 2012
Hello to everyone i would like to ask; To all the scripters to join me in the zombie mod making as i started it but i would like ur help to make it better the goal here is to make a zombie mod were u have 5 kinds of zombies i have the models for the mod but could not add them so my contribution was to make claws work by changing knife and u can type /zombie and u turn into one but still u only see zombie claw model and one kill hit the question here is would you like to participate only the ones who contributed will have the plugin when its completely reached its goalrnrnpost here in this thread if u wanna paarticipate. gonna post the plugin soon so u guys can start editing it ;) Lets make dod pack more of a punch than it does
Threads: 5
Joined: Jan 2012
You can find the php code at scripting help zombie mod fun bug
Threads: 5
Joined: Jan 2012
I think im the only one that has gotten the Iniciative to make this zombie mod for dod 1.3
Threads: 23
Joined: Aug 2007
Idk if this helps, but this is a similar plugin.nhttps://www.dodplugins.net/forums/showthread.php?t=83&highlight=chicken
Threads: 5
Joined: Jan 2012
Thx Meathead any info on how can I make players glow when they are zombies again Thx alot :cheers: Peace & Respect.... Oh almost forgot fix it for your use when u get it working your way tell me to upload the models or to anyone who needs them ....
Threads: 5
Joined: Jan 2012
Oh and I got 29th ID Wilson's flamethrower and shotgun working like a charm so see the YouTube video its entitled 29th ID wilsons plugins fixed excuse the lag on vid I use old fraps version now I got the new one..... Hope u like the video
Threads: 23
Joined: Aug 2007
cool. You going to share? I think I have a working shotgun but going to finish this other project before I work on that. I don't think I have the flamethrower.
Threads: 5
Joined: Jan 2012
Yeah im Share here u got em below
Threads: 5
Joined: Jan 2012
Below V.V about to more replys and all is up cant upload rar for some reason plz make a rar and upload them when u can meathead
Threads: 5
Joined: Jan 2012
the rest up tommorow sry im gonna make it a rar and upload it in fpsbanana
Threads: 23
Joined: Aug 2007
Threads: 5
Joined: Jan 2012
I'm uploading my shotgun models caused they are hand covered.. completely and look better
Threads: 5
Joined: Jan 2012
kio
Threads: 23
Joined: Aug 2007
Where does the stocks.inc go?
Threads: 5
Joined: Jan 2012
Stocks.inc goes in scripting/include

