Přejít na obsah
  • Vytvořit účet
  • 0

Gamescript c++ ->CoD2 help


Dutch

Otázka

Dělám takový amatérský módy do CoD2 a můj poslední výtvor bylo stvořit něco jako letadlo... Ta část se mi povedla, ale teď se snažim o to, aby to letadlo umělo bombardovat. To se mi částečně taky povedlo, ale jak jsem spíš takovej domácí kutil, tak mi občas neni všechno jasný xD Tady je ten kód:

plane()

{

self hide();

while (1)

{

startOrigin = self getEye();

forward = anglesToForward( self getplayerangles() );

forward = maps\mp\_utility::vectorScale( forward, 200 );

endOrigin = startOrigin + forward;

trace = bulletTrace( startOrigin, endOrigin, false, self );

angles = vectortoangles(vectornormalize(trace["normal"]));

model = spawn("script_model", trace["position"]);

model2 = spawn("script_model", self.origin);

self linkto (model2);

plane = spawn("script_model", self.origin+(0,0,-30));

plane setmodel("xmodel/vehicle_stuka_flying");

plane.angles = (self.angles);

model2 moveto(model.origin, 0.2);

wait (0.02);

model delete();

model2 delete();

plane delete();

if(self UseButtonPressed())

{

model delete();

model2 delete();

plane delete();

return(0);

self show();

}

if (self MeleeButtonPressed())

{

bomb = spawn("script_model", self.origin );

bomb setmodel("xmodel/prop_mortar_ammunition");

//bombarding

startOrigin = self.origin;

down = anglesToForward( self.angles+(90,0,0) );

down = maps\mp\_utility::vectorScale( down, 10000 );

endOrigin = startOrigin + down;

trace = bulletTrace( startOrigin, endOrigin, false, self );

angles = vectortoangles(vectornormalize(trace["normal"]));

destination = spawn("script_model", trace["position"] );

x = destination.origin[0];

y = destination.origin[1];

z = destination.origin[2];

m = self.origin[0];

n = self.origin[1];

o = self.origin[2];

//neodmocnena vzdalenost dvou bodu

i = ((x-m)*(x-m))+((y-n)*(y-n))+((z-o)*(z-o));

//newtonuv vzorec pro odmocneni -> vzdalenosti dvou bodu

a = 1;

a = a-((a*a-i)/(2*a));

// t=s/v -> t=j v=120000[px/s] s=a[px]

j=a/120000;

bomb moveto(destination.origin, j);

bomb wattil("movedone");

level._effect["mortexplosion"] = loadfx("fx/explosions/flak88_explosion.efx");

playfx(level._effect["mortexplosion"], destination.origin);

destination playSound("flak88_explode");

radiusDamage (destination.origin+(0,0,30), 400, 250, 250);

}

}

}

Problém je v tom, že jakmile je v kódu čekání na bombu než dosahne bodu kde má bouchnout "bomb wattil("movedone");" nebo případná obdoba wait(j);

Tak se cely kod zastavi.

Letadlo zmizi

Jakmile bomba dosahne vybuchu, tak kod opet pokracuje a jsem opet letadlo. (mezitim ovšem doletim na zem a rozplacnu se, ale to je vedlejší :))

Jde mi o to, jestli neexistuje nějaká funkce co by dokázala vytáhnout proměný destination.origin a bomb.origin abych mohl do while napsat další if, ktery by obsahovalo destination.origin=bomb.origin.

(Když bych to tak napsal, tak nevěděl co to destination a bomb je.)

Help protože jinak budu mít letadlo co nebombarduje a to pak ztrácí celej význam xD

edit:

while(1)

{

spawnuje se letadlo a meni pozice;

if (tlacitko F)

{

letadlo zmizi;

return 0; cyklus konci

}

if (tlacitko shift)

{

pod nami se objevi pozice kam poleti bomba;

bomba se respne a leti do pozice kde ma bouchnout;

jenze potrebuju nejak napsat, aby bomba letela na pozici a ja zatim mohl letet dal, aby mi to neomezovalo fci while

}

}

Odkaz ke komentáři
Sdílet na ostatní stránky

1 odpověď na tuto otázku

Recommended Posts

Návštěvník
Toto téma je nyní uzavřeno, a proto není možné odpovídat.
×
×
  • Vytvořit...

Důležitá informace

Tento web používá k poskytování služeb a k analýze návštěvnosti soubory cookies. Více informací naleznete v Zásady ochrany osobních údajů a Pravidla webu