X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcheats.qc;h=aa87763ca360441eb5268efca18ed2eb922c3818;hb=f40d50ebdbbfc5c65f0e75cdfa3bd176501e8d4a;hp=62e968e896fa2170c738e04841f892e0d27f946e;hpb=5b22584122d4354ab7819853d0fa5219d14d832e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cheats.qc b/qcsrc/server/cheats.qc index 62e968e89..aa87763ca 100644 --- a/qcsrc/server/cheats.qc +++ b/qcsrc/server/cheats.qc @@ -11,7 +11,6 @@ #include "../common/constants.qh" #include "../common/deathtypes.qh" -#include "../common/effects.qh" #include "../common/util.qh" #include "../common/monsters/all.qh" @@ -129,8 +128,8 @@ void info_autoscreenshot_findtarget() self.angles_y = a.y; // we leave Rick Roll alone } -void spawnfunc_info_autoscreenshot() -{SELFPARAM(); +spawnfunc(info_autoscreenshot) +{ if(++num_autoscreenshot > autocvar_g_max_info_autoscreenshot) { objerror("Too many info_autoscreenshot entitites. FAIL!"); @@ -283,7 +282,7 @@ float CheatImpulse(float i) e = self; Send_Effect(EFFECT_ROCKET_EXPLODE, e.origin, '0 0 0', 1); - sound(e, CH_SHOTS, W_Sound("rocket_impact"), VOL_BASE, ATTEN_NORM); + sound(e, CH_SHOTS, SND_ROCKET_IMPACT, VOL_BASE, ATTEN_NORM); e2 = spawn(); setorigin(e2, e.origin); @@ -307,7 +306,6 @@ float CheatCommand(float argc) cmd = argv(0); switch(cmd) { - entity e; float effectnum, f; vector start, end; entity oldself; @@ -362,7 +360,7 @@ float CheatCommand(float argc) } else { - e = spawn(); + entity e = spawn(); e.model = strzone(argv(1)); e.mdl = "rocket_explode"; e.health = 1000; @@ -373,10 +371,7 @@ float CheatCommand(float argc) e.angles = fixedvectoangles2(trace_plane_normal, v_forward); e.angles = AnglesTransform_ApplyToAngles(e.angles, '-90 0 0'); // so unrotated models work } - oldself = self; - self = e; - spawnfunc_func_breakable(); - self = oldself; + WITH(entity, self, e, spawnfunc_func_breakable(e)); // now, is it valid? if(f == 0) { @@ -406,14 +401,14 @@ float CheatCommand(float argc) } sprint(self, "Usage: sv_cheats 1; restart; cmd penalty 5.0 AHAHAHAHAHAHAH))\n"); break; - case "dragbox_spawn": + case "dragbox_spawn": { IS_CHEAT(0, argc, 0); - e = spawn(); + entity e = spawn(); e.classname = "dragbox_box"; e.think = DragBox_Think; e.nextthink = time; e.solid = -1; // black - setmodel(e, "null"); // network it + setmodel(e, MDL_Null); // network it if(argc == 4) e.cnt = stof(argv(1)); else @@ -422,7 +417,7 @@ float CheatCommand(float argc) e.aiment = spawn(); e.aiment.classname = "dragbox_corner_1"; e.aiment.owner = e; - setmodel(e.aiment, "models/marker.md3"); + setmodel(e.aiment, MDL_MARKER); e.aiment.skin = 0; setsize(e.aiment, '0 0 0', '0 0 0'); if(argc == 4) @@ -436,7 +431,7 @@ float CheatCommand(float argc) e.enemy = spawn(); e.enemy.classname = "dragbox_corner_2"; e.enemy.owner = e; - setmodel(e.enemy, "models/marker.md3"); + setmodel(e.enemy, MDL_MARKER); e.enemy.skin = 1; setsize(e.enemy, '0 0 0', '0 0 0'); end = normalize(self.origin + self.view_ofs - e.aiment.origin); @@ -460,14 +455,15 @@ float CheatCommand(float argc) setorigin(e.killindicator.killindicator, '0 0 8'); DID_CHEAT(); break; - case "dragpoint_spawn": + } + case "dragpoint_spawn": { IS_CHEAT(0, argc, 0); - e = spawn(); + entity e = spawn(); e.classname = "dragpoint"; e.think = DragBox_Think; e.nextthink = time; e.solid = 0; // nothing special - setmodel(e, "models/marker.md3"); + setmodel(e, MDL_MARKER); setsize(e, PL_MIN, PL_MAX); e.skin = 2; if(argc == 3) @@ -495,13 +491,14 @@ float CheatCommand(float argc) setorigin(e.killindicator.killindicator, '0 0 56'); DID_CHEAT(); break; + } case "drag_remove": IS_CHEAT(0, argc, 0); RandomSelection_Init(); crosshair_trace(self); - for(e = world; (e = find(e, classname, "dragbox_box")); ) + for(entity e = world; (e = find(e, classname, "dragbox_box")); ) RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos)); - for(e = world; (e = find(e, classname, "dragpoint")); ) + for(entity e = world; (e = find(e, classname, "dragpoint")); ) RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos)); if(RandomSelection_chosen_ent) { @@ -521,9 +518,9 @@ float CheatCommand(float argc) { RandomSelection_Init(); crosshair_trace(self); - for(e = world; (e = find(e, classname, "dragbox_box")); ) + for(entity e = world; (e = find(e, classname, "dragbox_box")); ) RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos)); - for(e = world; (e = find(e, classname, "dragpoint")); ) + for(entity e = world; (e = find(e, classname, "dragpoint")); ) RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos)); if(RandomSelection_chosen_ent) { @@ -543,11 +540,11 @@ float CheatCommand(float argc) { f = fopen(argv(1), FILE_WRITE); fputs(f, "cmd drag_clear\n"); - for(e = world; (e = find(e, classname, "dragbox_box")); ) + for(entity e = world; (e = find(e, classname, "dragbox_box")); ) { fputs(f, strcat("cmd dragbox_spawn ", ftos(e.cnt), " \"", vtos(e.aiment.origin), "\" \"", vtos(e.enemy.origin), "\"\n")); } - for(e = world; (e = find(e, classname, "dragpoint")); ) + for(entity e = world; (e = find(e, classname, "dragpoint")); ) { fputs(f, strcat("cmd dragpoint_spawn ", ftos(e.cnt), " \"", vtos(e.origin), "\"\n")); } @@ -562,7 +559,7 @@ float CheatCommand(float argc) if(argc == 2) { f = fopen(argv(1), FILE_WRITE); - for(e = world; (e = find(e, classname, "dragbox_box")); ) + for(entity e = world; (e = find(e, classname, "dragbox_box")); ) { fputs(f, "{\n"); fputs(f, "\"classname\" \"trigger_race_checkpoint\"\n"); @@ -572,7 +569,7 @@ float CheatCommand(float argc) fputs(f, strcat("\"targetname\" \"checkpoint", ftos(e.cnt), "\"\n")); fputs(f, "}\n"); } - for(e = world; (e = find(e, classname, "dragpoint")); ) + for(entity e = world; (e = find(e, classname, "dragpoint")); ) { start = '0 0 0'; effectnum = 0; @@ -628,15 +625,15 @@ float CheatCommand(float argc) break; case "drag_clear": IS_CHEAT(0, argc, 0); - for(e = world; (e = find(e, classname, "dragbox_box")); ) + for(entity e = world; (e = find(e, classname, "dragbox_box")); ) remove(e); - for(e = world; (e = find(e, classname, "dragbox_corner_1")); ) + for(entity e = world; (e = find(e, classname, "dragbox_corner_1")); ) remove(e); - for(e = world; (e = find(e, classname, "dragbox_corner_2")); ) + for(entity e = world; (e = find(e, classname, "dragbox_corner_2")); ) remove(e); - for(e = world; (e = find(e, classname, "dragpoint")); ) + for(entity e = world; (e = find(e, classname, "dragpoint")); ) remove(e); - for(e = world; (e = find(e, classname, "drag_digit")); ) + for(entity e = world; (e = find(e, classname, "drag_digit")); ) remove(e); DID_CHEAT(); break; @@ -697,43 +694,38 @@ float CheatCommand(float argc) break; case "usetarget": IS_CHEAT(0, argc, 0); - e = self; - self = spawn(); + setself(spawn()); self.target = argv(1); - activator = e; + activator = this; SUB_UseTargets(); remove(self); - self = e; + setself(this); DID_CHEAT(); break; case "killtarget": IS_CHEAT(0, argc, 0); - e = self; - self = spawn(); + setself(spawn()); self.killtarget = argv(1); - activator = e; + activator = this; SUB_UseTargets(); remove(self); - self = e; + setself(this); DID_CHEAT(); break; case "teleporttotarget": IS_CHEAT(0, argc, 0); - e = self; - self = spawn(); + setself(spawn()); setorigin(self, self.origin); self.classname = "cheattriggerteleport"; self.target = argv(1); teleport_findtarget(); if(!wasfreed(self)) { - Simple_TeleportPlayer(self, e); + Simple_TeleportPlayer(self, this); remove(self); - self = e; DID_CHEAT(); } - else - self = e; + setself(this); break; } @@ -1091,19 +1083,19 @@ void DragBox_Think() if(self.cnt == -1) // actually race_place -1 { // show "10 10" for qualifying spawns - setmodel(self.killindicator, "models/sprites/10.spr32"); - setmodel(self.killindicator.killindicator, "models/sprites/10.spr32"); + setmodel(self.killindicator, MDL_NUM(10)); + setmodel(self.killindicator.killindicator, MDL_NUM(10)); } else if(self.cnt == -2) // actually race_place 0 { // show "10 0" for loser spawns - setmodel(self.killindicator, "models/sprites/10.spr32"); - setmodel(self.killindicator.killindicator, "models/sprites/0.spr32"); + setmodel(self.killindicator, MDL_NUM(10)); + setmodel(self.killindicator.killindicator, MDL_NUM(0)); } else { - setmodel(self.killindicator, strcat("models/sprites/", ftos(self.cnt % 10), ".spr32")); - setmodel(self.killindicator.killindicator, strcat("models/sprites/", ftos(floor(self.cnt / 10)), ".spr32")); + setmodel(self.killindicator, MDL_NUM(self.cnt % 10)); + setmodel(self.killindicator.killindicator, MDL_NUM(floor(self.cnt / 10))); } self.nextthink = time;