z.B den /tor befehl das den halt jede frak ausüben kann aber halt immer nur sein tor öffnen kann
Wie mach ich es das ich den selben befehl öfters verwenden kann?
- Silvio.Castro
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Mit einer Abfrage.
Bei mir z.b.
if(IsPlayerInFrac(playerid, 1))
( LSPD )
Wenn aber auch mehrere Staatsfraktion ( Beispiel! ) das Tor öffnen dürfen dann so:
if(IsPlayerinFrac(playerid, 1) || IsPlayerInFrac(playerid, 2) || IsPlayerInFrac(playerid, 3))
LSPD = 1
FBI = 2
Army = 3Wenn du hilfe brauchst sende mir deine TV daten per PN oder schreib mir so
-
dcmd_tor(playerid, params[])
{
if(SpielerInfo[playerid][Fraktion] == 1)
{
//öffne Tor von Fraktion 1
}
else if(SpielerInfo[playerid][Fraktion] == 2)
{
//öffne Tor von Fraktion 2
}
//...
return 1;
}Das Tor erstellst du mit:
http://wiki.sa-mp.com/wiki/CreateObjectBewegt wird es mit:
http://wiki.sa-mp.com/wiki/MoveObject -
Wenn iich das so mache: (ist nur für eine frak noch)
ocmd:tor(playerid, params[])
{
if(sInfo[playerid][fraktion] == 3)
{
return 1;
//öffne Tor von Fraktion 1
}
else if(sInfo[playerid][fraktion] == 4)
{
return 1;
//öffne Tor von Fraktion 2
}
else if(sInfo[playerid][fraktion] == 6)
{
return 1;
//öffne Tor von Fraktion 2
}
else if(sInfo[playerid][fraktion] == 8)
{
return 1;
MoveObject(980, 2347.23779, 2723.17090, 11.41084, 5, 0.00000, 0.00000, -11.80000);
//öffne Tor von Fraktion Hitman
}
else if(sInfo[playerid][fraktion] == 9)
{
return 1;
//öffne Tor von Fraktion 2
}
else if(sInfo[playerid][fraktion] == 11)
{
return 1;
//öffne Tor von Fraktion 2
}
return 1;
}Dann kommt dieser warning:
C:\Users\Spiele\Desktop\Server Ordner\Server Projekt\gamemodes\ServerProjekt.pwn(1924) : warning 225: unreachable code
-
Das return eventuell unterm Code :)?
MfG
ocmd:tor(playerid, params[])
{
if(sInfo[playerid][fraktion] == 3)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 4)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 6)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 8)
{
MoveObject(980, 2347.23779, 2723.17090, 11.41084, 5, 0.00000, 0.00000, -11.80000);
return 1;
}
else if(sInfo[playerid][fraktion] == 9)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 11)
{
//öffnen
return 1;
}
return 1;
} -
Warum passiert da nichts?
ocmd:tor(playerid, params[])
{
if(sInfo[playerid][fraktion] == 2)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 3)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 5)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 7)
{
if(!IsPlayerInRangeOfPoint(playerid,20,2347.23779, 2723.17090, 11.41084))return SendClientMessage(playerid,COLOR_YELLOW, "Du bist nicht an dem Tor deiner Base");
MoveObject(980, 2347.23779, 2723.17090, 11.41084, 5, 0.00000, 0.00000, -11.80000);
SendClientMessage(playerid,COLOR_GREEN, "Tor geöffnet");
return 1;}
else if(sInfo[playerid][fraktion] == 8)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 10)
{
//öffnen
return 1;
}
return 1;
}Ich bekomme alle nachrichten wie "nicht nah genug dran" oder "tor geöffnet" aber es bewegt sich einfach nichts^^
-
Du gibst die Model ID an, nicht die Objekt ID.
Poste mal, wie du das Objekt erstellst, welches bewegt werden soll. -
CreateObject(980, 2347.23779, 2723.17090, 11.41084, 0.00000, 0.00000, -1.80000); //Hitman Tor
-
Hier eine nähere Anleitung, bezüglich MoveObject.
Wie Jeffry sagte, musst du zunächst das Tor "erstellen" und als ID definieren lassen.
Näheres hier: http://wiki.sa-mp.com/wiki/MoveObject -
Wie soll ich das genau machen? bin halt noch neu in der szene^^
-
Setze oben, unter deine Includes:
new gateOfFrak7;Das Objekt:
gateOfFrak7 = CreateObject(980, 2347.23779, 2723.17090, 11.41084, 0.00000, 0.00000, -1.80000); //Hitman TorUnd Die Bewegung:
MoveObject(gateOfFrak7, 2347.23779, 2723.17090, 11.40084, 0.005, 0.00000, 0.00000, -11.80000);Du musst, wenn du nur die Rotation änderst, ein bisschen was an der Position verändern (ich habe dir es um 0.01 tiefer gesetzt), damit es geht. Außerdem musst du es dann gaaaanz langsam (0.005 hab ich mal gemacht) bewegen lassen. Das kannst du natürlich anpassen, aber 5 war die viel zu viel, da es sich ja nur um 0.01 bewegt.
-
Naja musste zwar bissl was umändern von der bewegung aber ist okay
Jz gibts noch ein problem...
Wie kommt das tor wieder nach oben jz, also das es zurückkommt^^code:
ocmd:tor(playerid, params[])
{
if(sInfo[playerid][fraktion] == 2)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 3)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 5)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 7)
{
if(!IsPlayerInRangeOfPoint(playerid,20,2347.23779, 2723.17090, 11.41084))return SendClientMessage(playerid,COLOR_YELLOW, "Du bist nicht an dem Tor deiner Base");
MoveObject(HitmanTor, 2347.23779, 2723.17090, 1.40084, 0.010, 0.00000, 0.00000, -1.80000);
SendClientMessage(playerid,COLOR_GREEN, "Tor geöffnet");
return 1;}
else if(sInfo[playerid][fraktion] == 8)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 10)
{
//öffnen
return 1;
}
return 1;
} -
Das kannst du so machen:
else if(sInfo[playerid][fraktion] == 7)
{
static bool:isOpen;
if(!IsPlayerInRangeOfPoint(playerid,20,2347.23779, 2723.17090, 11.41084))return SendClientMessage(playerid,COLOR_YELLOW, "Du bist nicht an dem Tor deiner Base");
if(!isOpen)
{
isOpen = true;
MoveObject(HitmanTor, 2347.23779, 2723.17090, 1.40084, 0.010, 0.00000, 0.00000, -1.80000);
SendClientMessage(playerid,COLOR_GREEN, "Tor geöffnet");
}
else
{
isOpen = false;
//MoveObject...
SendClientMessage(playerid,COLOR_GREEN, "Tor geschlossen");
}
return 1;
} -
Jeffry: es gibtn kleines problen, du siehst ja am CreateObject wie das object eig. steht, aber ich krieg es einfach net hin es richtig zu stuern, wie würdest du es machen (Das Tor soll nach unten schliessen, also durch den boden, kannst du das vlt. kurz umschreiben? ) dann ich das auch in zukunft verbessern
-
Wenn du das Objekt so erstellst, und nach unten haben willst:
CreateObject(980, 2347.23779, 2723.17090, 11.41084, 0.00000, 0.00000, -1.80000);muss du die "11.41084" kleiner machen, also zum Beispiel "-5.0" (je nach dem wo es hin soll).
Bei MoveObject musst du dann (da du ja die Position änderst) die Geschwindigkeit wieder hochsetzen, zum Beispiel zu 1.5.
-
Jeffry:
Es passiert nichts, da steht zwar tow auf oder geschlossen aber es passiert nichts
ocmd:tor(playerid, params[])
{
if(sInfo[playerid][fraktion] == 2)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 3)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 5)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 7)
{
static bool:isOpen;
if(!IsPlayerInRangeOfPoint(playerid,20,2347.23779, 2723.17090, 11.41084))return SendClientMessage(playerid,COLOR_YELLOW, "Du bist nicht an dem Tor deiner Base");
if(!isOpen)
{
isOpen = true;
CreateObject(HitmanTor, 2347.23779, 2723.17090, -5, 0.00000, 0.00000, -1.80000);
SendClientMessage(playerid,COLOR_GREEN, "Tor geöffnet");
}
else
{
isOpen = false;
CreateObject(HitmanTor, 2347.23779, 2723.17090, 11.41084, 0.00000, 0.00000, -1.80000);
SendClientMessage(playerid,COLOR_GREEN, "Tor geschlossen");
}
return 1;
}
else if(sInfo[playerid][fraktion] == 8)
{
//öffnen
return 1;
}
else if(sInfo[playerid][fraktion] == 10)
{
//öffnen
return 1;
}
return 1;
} -
Beitrag von Jeffry ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Du hast "MoveObject" vergessen..
-
-
CreateObject
Da hat jemand was überlesen -> MoveObject -