Erst mal einen schönen guten Tag und Hallo.
Ich will euch heute zeigen wie man Tore erstellen kann die dann per Befehl zu öffnen sind und sich automatisch wieder schließen.
Aufbau des TuT's
Ich werde hier immer den passenden PAWN-Code Posten und seinen Aufbau dann erklären.
Bsp.:
SendClientMessage(playerid, 0xFFFFFF00, "Dies ist ein Test");
Mit der Funktion SendClientMessage senden wir an die playerid den Text "Dies ist ein Test" in weiß.
Das TuT
Als erstes müssen wir ein paar Informationen unter unseren Includes einbringen.
#define GELB 0xFFFF00AA
new torname;
forward tornametimer();
Als mit "#define" definieren wir das Wort "GELB" mit dem Farbcode "0xFFFF00AA".
Dann erstellen wir noch die Variable "torname" in der wir später die ObjectID speichern.
Und wir erstellen schonmal das "forward" für den Timer der das Tor wieder schließen soll.
Nun müsst ihr in eurem ObjoctEditor ein Tor erstellen und es geschlossen von eine Tür oder Ähnliches stellen.
In diesem TuT erstellen wir das Tor am Area51 vom Seitenausgang. Nun bekommt ihr von eurem Map Editor die Koordinaten des Tores im geschlossenen zustand.
public OnGameModeInit()
{
torname = CreateObject(988, 96.60, 1920.00, 18.16, 0.00, 0.00, 270.00);
return 1;
}
Mit "CreateObject" ertsellen wir nun des Tor an der ausgewählte Position. (Damit es immer erstellt wird kommt es ins OnGameModeInit)
Mit dem Teil "torname =" stecken wir die ObjectID des Tores in die oben erstellte Variable "torname".
Das eigentliche Tor ist nun erstellt, nur das man es noch nicht öffnen kann.
Daher verschieben wir das Tor nun im MAP Editor so das es offen ist und Speichern diese Position ab.
Jetzt erstellen wir den Befehl um es zu öffnen.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/area", true))
{
MoveObject(torname, 96.60, 1916.00, 18.16, 2);
SetTimer("tornametimer", 10000, false);
SendClientMessage(playerid, GELB, "Du hast das Tor des Area51 geöffnet, es schließt sich in 10 Sekunden wieder.");
return 1;
}
return 0;
}
Mit der Funktion "MoveObject" schieben wir das Tor nun an die geöffnete Position mit der Geschwindigkeit 2.
Dann starten wir den Timer mit 10 Sek. der das Tor wieder schließen soll.
Zu aller letzt schicken wir dem Spieler noch eine Nachricht in Gelb das er das Tor geöffnet hat und das es sich wieder schließt.
Damit sich das Tor auch nach 10 Sek. wieder schließt erstellen wir nun noch das public zum Timer.
Dieses könnt ihr irgent wo im Script unter dem forward einsetzen.
public tornametimer()
{
MoveObject(torname, 96.60, 1920.00, 18.16, 2);
}
Das schiebt das Tor dann wieder mit der Geschwindigkeit 2 an die Originalposition.
Das war es dann auch schon.
Nun kann das Tor mit dem Befehl /area öffnen und es schließt sich nach 10 Sek. wieder.
Ich hoffe das TuT hat euch geholfen. Kritik, Vorschläge und Wünsche sind gerne gesehen. Bei gefallen bitte bedanken
Hilfen:
SendClientMessage
MoveObject
OnGameModeInit
OnPlayerCommandText
CreateObject
SetTimer