Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Problem mit neuer Granate Di Jun 10, 2008 11:01 pm
hallo ihr alle
ich wollte ne neue granate machen, aber irgendwie will die nich so wie ich will, zwar kann man sie verschießen und alles, aber wenn sie dann eigentlich blitze verschleudern sollte, kommt kurz ein kleiner blauer blitz, und dann isch alles wieder weg.
for(var i = 0; i <= 360; i += 10) { var lightning = CreateObject(LGTH, GetX(),GetY(), GetOwner()); var xdir = +Sin(i,RandomX(15,30)); var ydir = -Cos(i,RandomX(15,30));
lightning -> Launch(xdir,ydir,0, 10); //Launch(int ixdir, int iydir, bool slime, int iDamagepar) } }
func ExplodeDelay() { return(50); }
und hier noch der granatenscript, der ja inkludiert wird:
Zitat :
/*-- Granate --*/
#strict
local iDamage; local shooter;
func Construction(object byObj) { // nichts? :C if(!byObj) return(); // Waffe? if(byObj->~IsWeapon()) // User der Waffe? if(!(shooter = byObj->GetUser())) // kein User -> Waffe. shooter = byObj;
// noch immer nichst gefunden? if(!shooter) // dann einfach byObj nehmen. shooter = byObj; }
// Oben angestoßen if(GetContact(this(), -1) & CNAT_Top) y=Abs(GetYDir()/3); // Unten angestoßen // Warum verlieren Objekte auf glattem Boden ihre YDir..? // Hacken wir halt ein bisschen.. Zufall drauf. // Ich kann nicht mehr so recht lesen was da steht und ich denke das hat einen gewissen Vorteil. else if(GetContact(this(), -1) & CNAT_Bottom) y=-(Max(Abs(GetYDir()/4), Abs(GetXDir())/4)+Random(3)); // Nichts davon: Alte YDir else y=GetYDir()/2; // Rumdopsen.. Komplizierter als man meint SetXDir(x); SetYDir(y); // Letztendlich hört man den Aufprall auch noch Sound("GrenadeHit*"); }
func IsBulletTarget(id id) { // Kann von anderen Geschossen getroffen werden return(true); }
public func NoDecoDamage() { return(true); }
func FxGrenadeTimer(object target, int effect, int time) { if(time > ExplodeDelay()) return(HitObject()); var vel=Abs(GetXDir())+Abs(GetYDir()); var alpha=Max(0,100-vel);