Also ich hab ne schranke am pd gamppt wie mach ich das die hoch und runter gemacht!
Schranke Hoch Runter!
- Xelvenzu
- 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
-
-
Erstmal musst du die schranke wenn sie zu ist mappen und die koords auswerten lassen und dann wenn sie offen ist.
Im Zu-Zustand musst du erstmal machen
Ganz oben
New PD-Schranke
Unter GameModeInit
Creatobject(...) // was du beim Zu-Zustand beim Konverter raus hastpublic OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/auf", cmdtext, true, 10) == 0)
{
If(isPlayergTeam == Cops)
If(isPlayertoPoint(Radius,Kords) // nur die 3 koordinaten und den Radius in M eintragen
Moveobject(PD-Schranke, Kords); // Koords vom offenen eintragen
{
else
SendClientMessage(playerid,Farbe; "Du bist kein Cop, oder du bist nicht nah genug am Tor");
}
return 1;
}
return 0;
}SO müsste das glaub ich gehen nicht getestet, kann sein das Tippfehler drin sind
-
hab 4 errors:
CodeC:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8852) : error 017: undefined symbol "isPlayertoPoint" C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8853) : error 017: undefined symbol "Moveobject" C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8855) : error 029: invalid expression, assumed zero C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8864) : error 021: symbol already defined: "OnPlayerCommandText" C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(28661) : warning 203: symbol is never used: "pdschranke" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.
-
hey ich hatte auch 4 errors
-
Jetzt hab ich 3 Errors:
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8893) : warning 213: tag mismatch
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8893) : warning 202: number of arguments does not match definition
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8893) : error 001: expected token: ")", but found ";"
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8893) : error 036: empty statement
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8894) : warning 202: number of arguments does not match definition
C:\Users\Grabowski\Desktop\GTASERVER - Kopie\gamemodes\GGF.pwn(8896) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase3 Errors.
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/auf", cmdtext, true, 10) == 0)
{
If(gTeam[playerid] == Cops)
{
If(isPlayertoPoint(Radius,Kords)
{ // nur die 3 koordinaten und den Radius in M eintragen
Moveobject(PD-Schranke, Kords); // Koords vom offenen eintragen
{
else
SendClientMessage(playerid,Farbe, "Du bist kein Cop, oder du bist nicht nah genug am Tor");
}
return 1;
}
return 0; // Nur wenns Filterscript ist ^^
}So sollte es richtig sein ... was habt ihr da mit gteam gemacht ? If(playerinfogteam ? was das xD
Ich hätte es aber mit SetObjectRot gemacht anstatt mit MoveObject, denn mit MoveObject bewegt es sich einfach nach unten und mit SetObjectRot geht es runter
-
das bringt mir 26 errors
-
aso musst noch machen
PD-Schranke==(Creatobject...) glaub ich -
hab ich ja auch kannste das mir per teamviewer machen?
-
New Gate
Dann bei OnGameModeInit
Gate = CreateObject(987, 1642.695313, -1711.768799, 19.544977, 0.0000, 0.0000, 270.0000);//Die KordsDann bei OnPlayerCommandText
if (strcmp(cmdtext, "/auf", true)==0) // Befehl zum Öffnen
{
if(gTeam[playerid] == TEAM_COPS){
MoveObject(Gate,1640.695313, -1711.768799, 19.544977,4); // Die Kords, wo das tor sein soll wenns offen ist
return 1;
}
if (strcmp(cmdtext, "/zu", true)==0)
{
MoveObject(Gate,1642.695313, -1711.768799, 19.544977,4); // Die Kords, wo das tor sein soll wenns zu ist
return 1;
}So das ist so aus dem TUT kopiert das muss klappen
-
-
-
und was füge ich ein damit das nur in einem bestimmten Radius möglich ist
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/auf", cmdtext, true, 10) == 0)
{
If(gTeam[playerid] == Cops)
{
If(isPlayertoPoint(Radius,Kords)
} // nur die 3 koordinaten und den Radius in M eintragen
Moveobject(PD-Schranke, Kords); // Koords vom offenen eintragen
{
else
}
SendClientMessage(playerid,Farbe, "Du bist kein Cop, oder du bist nicht nah genug am Tor");
}
return 1;
}
return 0; // Nur wenns Filterscript ist ^^
}so sollte es funken habe ebend nicht auf die Klammern geachtet^^
-
ich hab das jetz so gemacht wie ich das bei gates gemacht nur anstadt so schräg hoch fährt das wie ein gate hoch lol?
und ich hab jetzt wieder was geändert kann mal kurz einer auf mein server dann zeig ich es euch was jetzt nicht geht oder so:
wenn ich /pdsauf machen dann verschiebt die schranke sich aber fährt nicht hoch
-
erstell einfach ne schranke nach oben und nach unten
mach die nach unten rein und setzt bei /auf die position von der wo nach oben war^^
quasi einfach nur 2 schranken machen und 1 benutzen^^
-
1.
ich hab das jetz so gemacht wie ich das bei gates gemacht nur anstadt so schräg hoch fährt das wie ein gate hoch lol?
und ich hab jetzt wieder was geändert kann mal kurz einer auf mein server dann zeig ich es euch was jetzt nicht geht oder so:
wenn ich /pdsauf machen dann verschiebt die schranke sich aber fährt nicht hoch
Wenn du bei MoveObject(Gate,X,Y,Z); nur die Z-Achse veränderst, ist es selbstverständlich,dass sich das Gate NUR nach oben bewegen wird !
Du müsstest ein zweites Gate erstellen/mappen,und nur dessen Koordianten verwenden.Bei MoveObject(Gate,Koords); ( Beim Öffnen des Tores, sei es durch einen Timer oder einen Befehl,wie /auf )die Koords von der hochgestellten Schranke
und nicht von der "tiefgelegten" Schranke.
Und beim Schließen ( durch /zu oder einen Timer ) die Koordinaten der ursprünglichen,tieferen Schranke.2.
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/auf", cmdtext, true, 10) == 0)
{
If(gTeam[playerid] == Cops)
{
If(isPlayertoPoint(Radius,Kords)
} // nur die 3 koordinaten und den Radius in M eintragen
Moveobject(PD-Schranke, Kords); // Koords vom offenen eintragen
{
else
}
SendClientMessage(playerid,Farbe, "Du bist kein Cop, oder du bist nicht nah genug am Tor");
}
return 1;
}
return 0; // Nur wenns Filterscript ist ^^
}so sollte es funken habe ebend nicht auf die Klammern geachtet^^
Zunächst muss man vergewissert sein,dass er mit gTeam arbeitet, und er dies nicht im GF oder anderen Scripts, in denen es bereits anders definiert ist, verwendet.
Das IsPlayerToPoint(Radius,Koords) ist eine Sache der Definition. Beispielsweise in meinem Script oder im [G]od[F]ather ist es so festgehalten:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
// also PlayerToPoint(Radius,playerid,X,Y,Z);Hinzu kommt,dass offen steht,wie das Tor geschlossen werden soll .
Es ist,wie oben schön beschrieben, durch einen Befehl, wie /zu möglich, doch eine wahrscheinlich elegantere Variante ist einen Timer zu benutzen.
//>>>In dem Befehl "/auf"<<<
//...
SetTimer("Close",5000,0); //Erklärung: SetTimer("Timername",Wann Er ausgeführt wird in Milisekunden, Wiederholung Ja = 1 und Nein = 0);
//....// >>>ganz oben bei den Definitionen<<<
//...
forward Close();
//....//>>>Auerßhalb eines CallBacks<<<
public Close()
{
MoveObject(Gate,Koords); // !!!WICHTIG!!! Diese Koordianten sind jene beim geschlossenen Zustand (!) !!!WICHTIG!!! ,da das Tor ja geschlossen wird
/* Möglich: */ SendCientMessageToAll(0xE3E3E3FF, "PD-Tor wurde wieder geschlossen");return 1;
}3.
und was füge ich ein damit das nur in einem bestimmten Radius möglich ist
Schau dir dies mal näher an :P: PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ich hoffe, dass alles richtig ist, ich helfen konnte und es nun geklärt ist.
-
Stimmt nur bedingt. Wenn er eine Schranke will muss er SetObjectRot(Object, Float:Rot); verwenden.
So in etwa sollte es aussehen:
if(strcmp("/open",cmdtext, true, 10) == 0)
{
if(gTeam[playerid] == Cops)
{
if(PlayerToPoint(10.0,playerid,Float:x, Float:y, Float:z);
{
SetObjectRot(PDSchranke, 90.0);
return true;
}
}
}Habs jetzt mal ohne else gemacht. Soll er selbst machen.
-
breadfish.de
Hat das Thema geschlossen.