Hallo zusammen,
Ich suche ein Tut oder vil eine hilfe denn ich würde gerne alle tore via /mv öffnen und schließen. Und zwar von beiden Seiten und da iss immo mein problem mit PlayertoPoint hab ich es versucht aber da konnte ich es entweder nur öffnen oder nur einseitig öffnen oder schließen. Plz um Hilfe
Alle Tore mit /mv öffnen und schließen
- PaddyBoy
- 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
-
-
if(strcmp(cmdtext, "/mv", true) == 0)
{
// Präsidenten Büro Gate
if(PlayerToPoint(3, playerid, 368.8720, 162.7807, 1024.7889))
{
if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7)
{
MoveObject(pdoor,368.8720,162.7807,1020.7891,4);
GameTextForPlayer(playerid,"Buero",4000, 1);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "***Du bist nicht der Präsident***");
}
}
// Hitman Base Gate
else if(PlayerToPoint(15, playerid, 1024.607544, -366.574341, 75.701904))
{
if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
{
MoveObject(hitgate,1024.607544, -366.574341, 70.126839,4);
GameTextForPlayer(playerid,"Hitman",4000, 1);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "***Du gehörst nicht zur Hitman Agency***");
}
}
return 1;
}So kannse mehrere Tore mit nur einem Befehl öffnen.Wie das mit schliessen geht weiß ich selbst nicht
-
push
-
PaddyBoy das was Sampi gesagt hat ist richtig
-
danach muss er eigenbtL am ende ein Timer einbauen was alle tore wieder schließen lässt.
-
ja dann muss er auch noch ein Callback erstellen
-
das schließen geht doch genau so, aber man muss halt dann /close reinmachen...oder mit nem timer...
-
ich dachte halt so, also wie Sampi schon gesagt hat und halt am ende des /mv oder wie der befehl war den timer also,
forward CloseAllGates(playerid);
und bei den publicspublic CloseAllGates(playerid)
{
MoveObject(pdoor,368.8720,162.7807,1020.7891,4);
MoveObject(hitgate,1024.607544, -366.574341, 70.126839,4);
//undsoweiter
return 1;
}
achja und das mit settimer ranhängen dachte ich so
ja also am ende des /mv befehles
// Hitman Base Gate
else if(PlayerToPoint(15, playerid, 1024.607544, -366.574341, 75.701904))
{
if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
{
MoveObject(hitgate,1024.607544, -366.574341, 70.126839,4);
GameTextForPlayer(playerid,"Hitman",4000, 1);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "***Du gehörst nicht zur Hitman Agency***");
SetTimer("CloseAllGates", 5000, 0);
}
}
return 1;
}
Also i-wie so in der art. -
edeneT ich glaube der Timer muss in OnGameModeInit...
bin mir nicht sicher ob das auch in OnPlayerCommandText geht^^
-
Es kommt halt drauf an, wenn die Gates wieder geschlossen werden sollen per Cmd dann braucht man ja kein settimer aber halt wenn man sie öffnet und sie wieder nach 5 secs geclosed werden sollen sollte eigentL der settimer am ende des cmds hintun, weil wenn du in unter gamemodeinit tust woher soll es wissen wann er ausgelöst werden soll.
-
du hast das callback definiert?
der Timer
SetTimer("CloseAllGates", 5000,0);nimmt dann das Callback^^
-
hä hab jetzt nix verstsanden was du meinst xD, naja egal war aber doch richtig
-
ähm ich wollte ja ben nix mit Timer sondern das ich alle tore mit /mv öffne und dann auch wieder mit /mv schließe aber danke für die hilfe
-
also wo soll ich den SetTimer("CloseAllGates", 5000, 0);
hin machen?? unter den command?
if (strcmp(cmdtext, "/auf", true)==0) // Befehl zum Öffnen
{
MoveObject(Gate, 1587.7099609375, -1637.8260498047, 20.267284393311, 4); // Die Kords, wo das tor sein soll wenns offen isthelft mir plss ist wichtig..
-
Einfach unter MoveObject(bla); schreiben!
-
geht nicht hab das yetzt so gemacht
//Gates
new Gate;//Gates
Gate = CreateObject(980, 1588.5018310547, -1638.3094482422, 15.167593002319, 0, 0, 0);if (strcmp(cmdtext, "/auf", true)==0) // Befehl zum Öffnen
{
MoveObject(Gate, 1587.7099609375, -1637.8260498047, 20.267284393311, 4); // Die Kords, wo das tor sein soll wenns offen ist
SetTimer("CloseGate", 5000, 0);und der schließt das nicht nach 5sek. ...
//edit:
hab ein neues versucht trotzdem funk. nicht -
if (strcmp(cmdtext, "/auf", true)==0) // Befehl zum Öffnen
{
MoveObject(Name, x,y,z, Speed);
MoveObject(Name, x,y,z, Speed);
MoveObject(Name, x,y,z, Speed); // usw
return 1;
}einfach alle die offen gehen sollen da rein packen fertiq^^
// Edit:
Zeiq mal dein Public vom timer
-
alsoo ich hab das alles so rein getan ...
Gate = CreateObject(969, 1584.7315673828, -1637.9521484375, 12.382760047913, 0, 0, 0);
if (strcmp(cmdtext, "/auf", true)==0) // Befehl zum Öffnen
{
MoveObject(Gate, 1592.4787597656, -1637.9388427734, 12.977451324463, 4); // Die Kords, wo das tor sein soll wenns offen ist
SetTimer("CloseGate", 5000, 0);
return 1;und das hab ich drinne
//edit:
Hab yetzt
if (strcmp(cmdtext, "/zu", true)==0) // Befehl zum Öffnen
{
MoveObject(Gate, 1584.7315673828, -1637.9521484375, 12.382760047913, 4); // Die Kords, wo das tor sein soll wenns geschlossen ist
return 1;
}hinzugefügt muss ich villeicht dort irgendwas einfügen?
-
Also du willst doch das das tor von alleine zu geht oder wieso hast
duSetTimer("CloseGate", 5000, 0);
Eingebaut?
-
yaa ich will es aber ich weiß nicht wohin damit ?!?!
-