Hallo leute und sorry wenn ich nerve aber ich verzweifle bei meinem Gate system für Fraktionen!
Ich wollte mal etwas Sparender Scripten also hab ich mich an sowas gewendet..
Es funktioniert eigentlich alles, aber nicht so wie es sollte!
Bei mir lassen sich die Tore mit H öffnen - Funktioniert!
Doch das Tor geht zwar runter, doch es wird sozusagen kopiert und das eigentliche Tor bleibt einfach zu.
Sobald ich nur1 Tor drin habe geht alles! doch sobald mehrere kommen geht es wieder nicht.
Hier mein Code.
//Gate System
forward CloseTor(playerid);
//____Gates____________
enum Gates {
Float: OpenX,
Float: OpenY,
Float: OpenZ,
Text[200],
Float: CloseX,
Float: CloseY,
Float: CloseZ,
Gateteam,
TorID[4]//Damit das System weiß welches es öffnen soll und vor welchem ich stehe
};
//___________Gates und Tore usw_________________________________________________
//X Y Z to Open, Text, X Y Z to Close, Team, TorID
new Float:Tore[][Gates] = {
{-1522.80005, 482.5, -0.4,"Das Tor schließt sich Automatisch nach 8 Sekunden", -1522.80005, 482.5, 6.2, 1, 1},
{-1631.7, 688.20001, 3.4,"Das Tor schließt sich Automatisch nach 8 Sekunden",-1631.7, 688.20001, 8.5, 1, 2}
};
for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++)
{
Tore[Gateid][TorID][1] = CreateObject(987, -1522.80005, 482.5, 6.2, 0, 0, 180);//Army Oben
Tore[Gateid][TorID][2] = CreateObject(980, -1631.7, 688.20001, 8.5, 0, 0, 0); //SFPD
}
if(newkeys & KEY_CROUCH) {
for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++) {
if(IsPlayerInRangeOfPoint(playerid,20.0, Tore[Gateid][CloseX],Tore[Gateid][CloseY],Tore[Gateid][CloseZ])) {
if(SpielerInfo[playerid][pTeam] == Tore[Gateid][Gateteam]) {
MoveObject(Tore[Gateid][TorID], Tore[Gateid][OpenX], Tore[Gateid][OpenY], Tore[Gateid][OpenZ], 5);
SendClientMessage(playerid,tortext, Tore[Gateid][Text]); }
SetTimer("CloseTor", 8000, 0); }
}
}
//_______Tore________//
public CloseTor(playerid) {
for(new Gateid = 0; Gateid < sizeof(Tore); Gateid++) {
MoveObject(Tore[Gateid][TorID], Tore[Gateid][CloseX],Tore[Gateid][CloseY],Tore[Gateid][CloseZ],5.0); }
return 1; }
Habe ich irgendwie was falsch gemacht ?
ich weiß nicht mehr weiter!
MfG