Recovered from the archived server. This was never posted on the forum, so there is no thread behind it and no author post to quote — the attribution below comes from the plugin's own register_plugin() call where it has one.
dod_gore
by Unknown · 2005-05-18
recovered from the server
From the first post
Files
| dod_gore.amxx | Compiled Plugin | 7 KB | Download |
Decompiled source reconstructed
dod_gore.amxx was published compiled only. This Pawn was recovered from the
bytecode with Lysis — 329 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_gore.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 g_vara0;nnew g_var9c;nnew g_var84;nnew g_var88;nnew g_var8c;nnew g_var90;nnew g_var94;nnew g_var98;npublic client_damage(_arg0, _arg1)n{n new var1;n var1 = get_gore_flags();n 0[_arg1] = get_user_health(_arg1);n if (var1 & 2)n {n new var2 = 0;n get_user_origin(_arg1, var2, 0);n fx_blood(var2);n sub_16e0(var2, 10);n }n return 0;n}nnpublic client_death(_arg0, _arg1, _arg2, _arg3)n{n new var5;n var5 = get_gore_flags();n new var6 = 0;n new var7;n new var1;n if (_arg3 == 1)n {n var1 = 1;n }n elsen {n var1 = 0;n }n var7 = var1;n new var2;n if (var5 & 1 && var7)n {n get_user_origin(_arg1, var6, 0);n fx_headshot(var6);n }n elsen {n new var4;n if (var5 & 8 && (xmod_is_melee_wpn(_arg2) || _arg2 == 29 || _arg2 == 30 || _arg2 == 31 || _arg2 == 13 || _arg2 == 14 || _arg2 == 36 || 0[_arg1] - get_user_health(_arg1) > 100))n {n get_user_origin(_arg1, var6, 0);n sub_fe8(_arg1, 0);n sub_1d88(var6, 5);n sub_1a34(var6, 3);n sub_16e0(var6, 20);n var6 + 8/* ERROR unknown load Binary */ = var6 + 8/* ERROR unknown load Binary */ - 45;n set_user_origin(_arg1, var6);n }n }n return 0;n}nnpublic event_blood()n{n new var1;n var1 = get_gore_flags();n if (var1 & 4)n {n new var2 = 0;n new var3 = 0;n new var4 = 0;n new var5 = 0;n get_players(var3, var4, 200, 208);n new var6 = 0;n while (var6 < var4)n {n var2 = var3[var6];n if (20 > get_user_health(var2))n {n get_user_origin(var2, var5, 0);n fx_bleed(var5);n sub_16e0(var5, 5);n }n var6++;n }n }n return 0;n}nnpublic event_respawn(_arg0)n{n 0[_arg0] = get_user_health(_arg0);n sub_fe8(_arg0, 255);n return 0;n}nnpublic fx_bleed(_arg0)n{n message_begin(0, 23, {0,0,0}, 0);n write_byte(101);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */ + 10);n write_coord(random_num(-100, 100));n write_coord(random_num(-100, 100));n write_coord(random_num(-10, 10));n write_byte(70);n write_byte(random_num(50, 100));n message_end();n return 0;n}nnpublic fx_blood(_arg0)n{n message_begin(0, 23, {0,0,0}, 0);n write_byte(115);n write_coord(random_num(-20, 20) + _arg0);n write_coord(random_num(-20, 20) + _arg0 + 4/* ERROR unknown load Binary */);n write_coord(random_num(-20, 20) + _arg0 + 8/* ERROR unknown load Binary */);n write_short(g_vara0);n write_short(g_var9c);n write_byte(248);n write_byte(10);n message_end();n return 0;n}nnpublic fx_headshot(_arg0)n{n new var1 = 0;n while (var1 < 5)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(101);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */ + 30);n write_coord(random_num(-20, 20));n write_coord(random_num(-20, 20));n write_coord(random_num(50, 300));n write_byte(70);n write_byte(random_num(100, 200));n message_end();n var1++;n }n return 0;n}nnpublic get_gore_flags()n{n new var1 = 0;n get_cvar_string("amx_gore", var1, 24);n return read_flags(var1);n}nnpublic plugin_init()n{n register_plugin("Plugin Gore", "1.0", "mike_cao");n register_statsfwd(0);n register_statsfwd(1);n register_event("ResetHUD", "event_respawn", "be", "1=1");n register_cvar("amx_gore", "abcd", 0, 0);n set_cvar_string("amx_gore", "abc");n set_task(1065353216, "event_blood", 0, 1348, 0, 1352, 0);n return 0;n}nnpublic plugin_modules()n{n require_module("fun");n require_module("dodx");n return 0;n}nnpublic plugin_precache()n{n g_var9c = precache_model(296);n g_vara0 = precache_model("sprites/bloodspray.spr");n g_var84 = precache_model("models/Fleshgibs.mdl");n g_var88 = precache_model("models/GIB_Skull.mdl");n g_var8c = precache_model("models/GIB_Legbone.mdl");n g_var90 = precache_model("models/GIB_Lung.mdl");n g_var94 = precache_model("models/GIB_B_Gib.mdl");n g_var98 = precache_model("models/GIB_B_Bone.mdl");n return 0;n}nnsub_16e0(_arg0, _arg1)n{n new var1 = 0;n while (var1 < _arg1)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(116);n write_coord(random_num(-100, 100) + _arg0);n write_coord(random_num(-100, 100) + _arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */ - 36);n write_byte(260[random_num(0, 6)]);n message_end();n var1++;n }n return 0;n}nnsub_fe8(_arg0, _arg1)n{n set_user_rendering(_arg0, 0, 0, 0, 0, 4, _arg1);n return 0;n}nnsub_1d88(_arg0, _arg1)n{n new var1 = 0;n new var2 = 0;n new var3 = 0;n new var4 = 0;n var1 = g_var84;n var1 + 4/* ERROR unknown load Binary */ = g_var94;n var1 + 8/* ERROR unknown load Binary */ = g_var8c;n message_begin(0, 23, {0,0,0}, 0);n write_byte(106);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */);n write_coord(random_num(-100, 100));n write_coord(random_num(-100, 100));n write_coord(random_num(100, 200));n write_angle(random_num(0, 360));n write_short(g_var88);n write_byte(0);n write_byte(500);n message_end();n message_begin(0, 23, {0,0,0}, 0);n write_byte(106);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */);n write_coord(random_num(-100, 100));n write_coord(random_num(-100, 100));n write_coord(random_num(100, 200));n write_angle(random_num(0, 360));n write_short(g_var98);n write_byte(0);n write_byte(500);n message_end();n new var5 = 0;n while (random_num(1, 2) > var5)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(106);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */);n write_coord(random_num(-100, 100));n write_coord(random_num(-100, 100));n write_coord(random_num(100, 200));n write_angle(random_num(0, 360));n write_short(g_var90);n write_byte(0);n write_byte(500);n message_end();n var5++;n }n new var6 = 0;n while (var6 < 5)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(106);n write_coord(_arg0);n write_coord(_arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */);n write_coord(random_num(-100, 100));n write_coord(random_num(-100, 100));n write_coord(random_num(100, 200));n write_angle(random_num(0, 360));n write_short(var1[random_num(0, 2)]);n write_byte(0);n write_byte(500);n message_end();n var6++;n }n new var7 = 0;n while (var7 < _arg1)n {n var2 = random_num(-100, 100);n var3 = random_num(-100, 100);n var4 = random_num(0, 100);n new var8 = 0;n while (var8 < 5)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(115);n write_coord(var8 * var2 + _arg0);n write_coord(var8 * var3 + _arg0 + 4/* ERROR unknown load Binary */);n write_coord(var8 * var4 + _arg0 + 8/* ERROR unknown load Binary */);n write_short(g_vara0);n write_short(g_var9c);n write_byte(248);n write_byte(15);n message_end();n var8++;n }n var7++;n }n return 0;n}nnsub_1a34(_arg0, _arg1)n{n new var1 = 0;n while (var1 < _arg1)n {n message_begin(0, 23, {0,0,0}, 0);n write_byte(116);n write_coord(random_num(-50, 50) + _arg0);n write_coord(random_num(-50, 50) + _arg0 + 4/* ERROR unknown load Binary */);n write_coord(_arg0 + 8/* ERROR unknown load Binary */ - 36);n write_byte(288[random_num(0, 1)]);n message_end();n var1++;n }n return 0;n}nn

