Hey,
ich hab von irgendwoher, ich glaub aus einer Hazardmap, das Teleprojektil, welches für die Sturmpistole verwendet werden kann. Damit kann sich der Hazardclonk zu dem Projektil beamen.
Nun scheint es mal zu funktionieren und mal nicht. Ich konnte durch stundenlanges Versuchen nun endlich rausfinden, dass es davon abhängt, welcher Clonk als Startclonk in der Szenrariotxt Datei zuerst aufgelistet wird.
Steht dort: Crew=CLNK=1;HZCK=1 dann geht alles.
steht dort allerdings : Crew=HZCK=1;CLNK=1 dann funktioniert es nicht.
Dass es nicht funktioniert sieht wie folgt aus: anstatt dass der Hazardclonk sich zum Projektil beamt, wird stattdessen der normale clonk mit angewählt (also dann 2 figuren angewählt).
Das Teleprojektil Skript sieht so aus:
/*-- Teleprojektil --*/
`#strict`
local iRemoveTimer;
local user;
func Initialize()
{
user=GetCrew(GetController());
iRemoveTimer=175;
SetPlrViewRange(50);
}
func Hit()
{
Sound("Bip");
}
func ControlDigDouble()
{
//var user=
var xpos=GetX();
var ypos=GetY();
if(GBackSolid(-2,-20) || GBackSolid(2,-20) || GBackSolid(0,-10)) {Message("$BadPlace$",user); SetCursor(GetController(),user); return(RemoveObject());}
DrawParticleLine("XSpark",0,0,GetX(user)-xpos,GetY(user)-ypos,1,50,RGBa(255,0,0,128),RGBa(0,255,0,128));
SetPosition(xpos,ypos-12,user);
SetCursor(GetController(),user);
RemoveObject();
Sound("Electric");
CastObjects(SPRK,20,30,0,-20);
Sound("Fire1");
}
func Launch(int xdir, int ydir, int iDmg)
{
SetSpeed(xdir, ydir);
}
func CheckCursor() {
iRemoveTimer--;
if(!iRemoveTimer) {SetCursor(GetController(),user); RemoveObject();}
//if(!GetCursor(GetOwner(this()))==this()) RemoveObject();
}
func IsBouncy() { return(true); }
Ich hab das auch schon mit ausschließlich dem Hazardpack + der modifizierten Pistole getestet, es liegt also nicht an irgendwelchen appendto's die in anderer reihenfolge platziert werden (wie ich es zuerst vermutet hatte).
Wisst ihr warum das so ist? Und wie müsste man das Skript modifizieren, damit das nicht mehr passiert?