X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fvehicles%2Fvehicles.qc;h=40c90943e7d4d0b65d128aee672b8f12f1b66d20;hb=fc817b49df670b0b36fcfc3f43368157f174045c;hp=2cfeed9ad569c4917ff5ae5028cb459f62139ad7;hpb=cfc97de2f89e06a0dd538202d4073c4aed16173e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 2cfeed9ad..40c90943e 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -46,7 +46,7 @@ float SendAuxiliaryXhair(entity to, float sf) void UpdateAuxiliaryXhair(entity own, vector loc, vector clr, float axh_id) { - if (clienttype(own) != CLIENTTYPE_REAL) + if not(IS_REAL_CLIENT(own)) return; entity axh; @@ -101,7 +101,7 @@ void SendAuxiliaryXhair2(entity own, vector loc, vector clr, float axh_id) **/ void CSQCVehicleSetup(entity own, float vehicle_id) { - if (clienttype(own) != CLIENTTYPE_REAL) + if not(IS_REAL_CLIENT(own)) return; msg_entity = own; @@ -503,11 +503,11 @@ void vehicles_spawn() // Better way of determening whats crushable needed! (fl_crushable?) float vehicles_crushable(entity e) { - if(e.classname == "player") + if(IS_PLAYER(e)) return TRUE; - if(e.classname == "monster_zombie") - return TRUE; + if(e.flags & FL_MONSTER) + return TRUE; // more bitflags for everyone! return FALSE; } @@ -544,7 +544,7 @@ void vehicles_touch() if(vehicles_crushable(other)) { if(vlen(self.velocity) != 0) - Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_VHCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force); + Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_VH_CRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force); return; // Dont do selfdamage when hitting "soft targets". } @@ -556,7 +556,7 @@ void vehicles_touch() return; } - if(other.classname != "player") + if not(IS_PLAYER(other)) return; if(other.deadflag != DEAD_NO) @@ -572,7 +572,7 @@ void vehicles_enter() { // Remove this when bots know how to use vehicles - if (clienttype(other) == CLIENTTYPE_BOT) + if (IS_BOT_CLIENT(other)) if (autocvar_g_vehicles_allow_bots) dprint("Bot enters vehicle\n"); // This is where we need to disconnect (some, all?) normal bot AI and hand over to vehicle's _aiframe() else @@ -634,7 +634,7 @@ void vehicles_enter() self.team = self.owner.team; self.flags -= FL_NOTARGET; - if (clienttype(other) == CLIENTTYPE_REAL) + if (IS_REAL_CLIENT(other)) { msg_entity = other; WriteByte (MSG_ONE, SVC_SETVIEWPORT); @@ -740,7 +740,7 @@ void vehicles_exit(float eject) } vehicles_exit_running = TRUE; - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { _vehicle = self.vehicle; @@ -761,7 +761,7 @@ void vehicles_exit(float eject) if (_player) { - if (clienttype(_player) == CLIENTTYPE_REAL) + if (IS_REAL_CLIENT(_player)) { msg_entity = _player; WriteByte (MSG_ONE, SVC_SETVIEWPORT); @@ -1268,14 +1268,14 @@ float vehicle_initialize(string net_name, self.vehicle_exit = exitfunc; self.vehicle_enter = enterproc; self.PlayerPhysplug = physproc; - self.event_damage = vehicles_damage; + self.event_damage = func_null; self.touch = vehicles_touch; self.think = vehicles_spawn; self.nextthink = time; self.vehicle_respawntime = _respawntime; self.vehicle_spawn = spawnproc; self.effects = EF_NODRAW; - if(g_assault || !autocvar_g_vehicles_delayspawn) + if(!autocvar_g_vehicles_delayspawn) self.nextthink = time + 0.5; else self.nextthink = time + _respawntime + (random() * autocvar_g_vehicles_delayspawn_jitter); @@ -1315,6 +1315,9 @@ float vehicle_initialize(string net_name, self.pos1 = self.origin; self.pos2 = self.angles; self.tur_head.team = self.team; + + if(MUTATOR_CALLHOOK(VehicleSpawn)) + return FALSE; return TRUE; }