X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fvehicles%2Fvehicle%2Fspiderbot_weapons.qc;h=8876f89594cc80aab5d2f0fcda15691e502fbb83;hp=afa57de2dad1f0fa328520996595a4892b716b0d;hb=678388b78fdaad89fc8218dadf7007432b4153c3;hpb=834fed09016056ff2cd32d1980f0719d09c403a2 diff --git a/qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc b/qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc index afa57de2d..8876f8959 100644 --- a/qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc +++ b/qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc @@ -4,46 +4,46 @@ #ifdef SVQC -void spiderbot_rocket_artillery() -{SELFPARAM(); - self.nextthink = time; - UpdateCSQCProjectile(self); +void spiderbot_rocket_artillery(entity this) +{ + this.nextthink = time; + UpdateCSQCProjectile(this); } -void spiderbot_rocket_unguided() -{SELFPARAM(); +void spiderbot_rocket_unguided(entity this) +{ vector newdir, olddir; - self.nextthink = time; + this.nextthink = time; - olddir = normalize(self.velocity); - newdir = normalize(self.pos1 - self.origin) + randomvec() * autocvar_g_vehicle_spiderbot_rocket_noise; - self.velocity = normalize(olddir + newdir * autocvar_g_vehicle_spiderbot_rocket_turnrate) * autocvar_g_vehicle_spiderbot_rocket_speed; + olddir = normalize(this.velocity); + newdir = normalize(this.pos1 - this.origin) + randomvec() * autocvar_g_vehicle_spiderbot_rocket_noise; + this.velocity = normalize(olddir + newdir * autocvar_g_vehicle_spiderbot_rocket_turnrate) * autocvar_g_vehicle_spiderbot_rocket_speed; - UpdateCSQCProjectile(self); + UpdateCSQCProjectile(this); - if (IS_DEAD(self.owner) || self.cnt < time || vdist(self.pos1 - self.origin, <, 16)) - self.use(); + if (IS_DEAD(this.owner) || this.cnt < time || vdist(this.pos1 - this.origin, <, 16)) + this.use(this, NULL, NULL); } -void spiderbot_rocket_guided() -{SELFPARAM(); +void spiderbot_rocket_guided(entity this) +{ vector newdir, olddir; - self.nextthink = time; + this.nextthink = time; - if(!self.realowner.vehicle) - self.think = spiderbot_rocket_unguided; + if(!this.realowner.vehicle) + setthink(this, spiderbot_rocket_unguided); - crosshair_trace(self.realowner); - olddir = normalize(self.velocity); - newdir = normalize(trace_endpos - self.origin) + randomvec() * autocvar_g_vehicle_spiderbot_rocket_noise; - self.velocity = normalize(olddir + newdir * autocvar_g_vehicle_spiderbot_rocket_turnrate) * autocvar_g_vehicle_spiderbot_rocket_speed; + crosshair_trace(this.realowner); + olddir = normalize(this.velocity); + newdir = normalize(trace_endpos - this.origin) + randomvec() * autocvar_g_vehicle_spiderbot_rocket_noise; + this.velocity = normalize(olddir + newdir * autocvar_g_vehicle_spiderbot_rocket_turnrate) * autocvar_g_vehicle_spiderbot_rocket_speed; - UpdateCSQCProjectile(self); + UpdateCSQCProjectile(this); - if (IS_DEAD(self.owner) || self.cnt < time) - self.use(); + if (IS_DEAD(this.owner) || this.cnt < time) + this.use(this, NULL, NULL); } void spiderbot_guide_release(entity this) @@ -56,10 +56,10 @@ void spiderbot_guide_release(entity this) crosshair_trace(this.owner); while(rkt) { - if(rkt.think == spiderbot_rocket_guided) + if(getthink(rkt) == spiderbot_rocket_guided) { rkt.pos1 = trace_endpos; - rkt.think = spiderbot_rocket_unguided; + setthink(rkt, spiderbot_rocket_unguided); } rkt = rkt.chain; } @@ -140,9 +140,9 @@ vector spiberbot_calcartillery(vector org, vector tgt, float ht) } void spiderbot_rocket_do(entity this) -{; +{ vector v; - entity rocket = world; + entity rocket = NULL; if (this.wait != -10) { @@ -196,7 +196,7 @@ void spiderbot_rocket_do(entity this) float _dist = (random() * autocvar_g_vehicle_spiderbot_rocket_radius) + vlen(v - trace_endpos); _dist -= (random() * autocvar_g_vehicle_spiderbot_rocket_radius) ; rocket.nextthink = time + (_dist / autocvar_g_vehicle_spiderbot_rocket_speed); - rocket.think = vehicles_projectile_explode; + setthink(rocket, vehicles_projectile_explode_think); if(PHYS_INPUT_BUTTON_ATCK2(this.owner) && this.tur_head.frame == 1) this.wait = -10; @@ -209,7 +209,7 @@ void spiderbot_rocket_do(entity this) crosshair_trace(this.owner); rocket.pos1 = trace_endpos; rocket.nextthink = time; - rocket.think = spiderbot_rocket_guided; + setthink(rocket, spiderbot_rocket_guided); break; @@ -234,7 +234,7 @@ void spiderbot_rocket_do(entity this) rocket.velocity = spiberbot_calcartillery(v, rocket.pos1, ((h1 < h2) ? h1 : h2)); rocket.movetype = MOVETYPE_TOSS; rocket.gravity = 1; - //rocket.think = spiderbot_rocket_artillery; + //setthink(rocket, spiderbot_rocket_artillery); break; } rocket.classname = "spiderbot_rocket";