Also ich habe folgende Frage
Wenn der Spieler /TV eingibt sieht er er Fernseher
Nun gibts Folgendes problem wenn er Sagen wir /Aus eingibt soll er wieder an die Postion geportet werden wo er vorher war.
Wie kann ich seine Alte Postion Speicher und ihn dort wieder zurück hinschicken?
TV Show
- BiGGian
- 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
-
-
die Pos in eine PVar saven z.B. und dann den Spieler wieder dort hin setzen.
-
gaanz einfach:
speichern:
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);wieder zurückporten:
SetPlayerPos(playerid, x, y+1, z); -
Mich verwirrt das jetzt etwas
if(strcmp(cmdtext,"/tv",true)==0)
{
SetPlayerCameraPos(playerid,1795.9348,-1297.5889,125.7266);
SetPlayerCameraPos(playerid,1797.3387,-1297.2854,122.1929);
SetPlayerCameraLookAt(playerid,1798.3269,-1306.1991,120.2586);
return 1;
}
if(strcmp(cmdtext,"/aus",true)==0)
{
SetPlayerPos(playerid, x, y+1, z);
return 1;
}
Die Speicherung muss doch vor /TV Passieren also vor SetPlayerCamera etc -
Die Speicherung muss passieren, wenn du /TV machst
und bei /aus natürlich ein SetCameraBehindPlayer(playerid)
-
Ja das mein ich ja also
if(strcmp(cmdtext,"/tv",true)==0)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerCameraPos(playerid,1795.9348,-1297.5889,125.7266);
SetPlayerCameraPos(playerid,1797.3387,-1297.2854,122.1929);
SetPlayerCameraLookAt(playerid,1798.3269,-1306.1991,120.2586);
return 1;
}
if(strcmp(cmdtext,"/aus",true)==0)
{
SetPlayerPos(playerid, x, y+1, z);
SetCameraBehindPlayer(playerid) ;
return 1;
}So? Ich denke so sollte es klappen?
-
nein die Float muss global oben gemacht werde, so dass sie überall gilt
-
//============================================TVSHOW=================================================
if(strcmp(cmdtext,"/tv",true)==0)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid,1795.9348,-1297.5889,125.7266);
SetPlayerCameraPos(playerid,1797.3387,-1297.2854,122.1929);
SetPlayerCameraLookAt(playerid,1798.3269,-1306.1991,120.2586);
return 1;
}
if(strcmp(cmdtext,"/aus",true)==0)
{
new Float:x, Float:y, Float:z;
SetPlayerPos(playerid, x, y+1, z);
SetCameraBehindPlayer(playerid);
return 1;
}
//=========================================TVSHOWENDE====================================================Ich habe die Float nicht Global gemacht , weil ich einfach irgendwelche Warnings Bekomme .
Wegen meinem Streamer und meinem Autohaus
Also hab ich es einfach so gelöst.
Nur wenn ich /aus mache
Spawne ich immer an diesem Punkt wo die Farm ist . -
if(strcmp(cmdtext,"/tv",true)==0)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPVarFloat(playerid, "TVx", x);
SetPVarFloat(playerid, "TVy", y);
SetPVarFloat(playerid, "TVz", z);
SetPlayerCameraPos(playerid,1795.9348,-1297.5889,125.7266);
SetPlayerCameraPos(playerid,1797.3387,-1297.2854,122.1929);
SetPlayerCameraLookAt(playerid,1798.3269,-1306.1991,120.2586);
return 1;
}
if(strcmp(cmdtext,"/aus",true)==0)
{
new Float:x, Float:y, Float:z;
SetPlayerPos(playerid, GetPVarInt(playerid, "TVx"), GetPVarInt(playerid, "TVy"), GetPVarInt(playerid, "TVz"));
SetCameraBehindPlayer(playerid);
return 1;
}Ungetestet sollte aber funktionieren
//Edit: Ja sorry hab ich nich dran gedacht.
-
Klappt nit
-
SetPlayerPos(playerid, GetPVarInt(playerid, "TVx"), GetPVarInt(playerid, "TVx"), GetPVarInt(playerid, "TVx")); sollte doch SetPlayerPos(playerid, GetPVarFloat(playerid, "TVx"), GetPVarFloat(playerid, "TVy"), GetPVarFloat(playerid, "TVz")); heißen
EDIT: x zu y und z ausgebessert
-
Wenn sollte man es auch richtig machen...
nur alles x sonder so:
SetPlayerPos(playerid, GetPVarFloat(playerid, "TVx"), GetPVarFloat(playerid, "TVy"), GetPVarFloat(playerid, "TVz"));Gruß Deo
-
Klappt
Ich hätte mir etwas Zeit nehmen sollen , weil ich mache gerade noch nebenbei etwas anderes für meine TVshow
Das mit dem 3mal X darauf könnte ich auch kommen können aber ich habe es mir nicht durchgelesen.Aber nun gibt es eine neues Problem , Wenn Spieler schon im TV war , und /aus macht wird er zurück geportet .
Nun Passiert folgendes Der Spieler fährt durch die Gegend Sagen wir er hat TV in LV gemacht
Und er Fährt nach Sf, und er hat keine Lust mehr auf SF und gibt /Aus ein und Zack ist er wieder in LV
Weil es ja in LV Gesaved wurde also kann er sich immer wieder dort hin porten.
Ich weiß nicht wie man das lösen könnte -
Füge deinem /aus Befehl noch hinzu:
Am Anfang (nach dem Stringcompare für /aus)
if(GetPVarFloat(playerid, "TVx") != 0.00 || GetPVarFloat(playerid, "TVy") != 0.00 || GetPVarFloat(playerid, "TVz") != 0.00))
Um sicherzustellen, dass man nicht versehentlich aufgrund gelöschter Variablen in der Pampa bei 0/0/0 landet.Und am Ende nach dem SetPlayerPos:
DeletePVar(playerid, TVx); DeletePVar(playerid, TVy); DeletePVar(playerid, TVz);
Nebenher spart man so auchnoch etwas RAM. -
: error 029: invalid expression, assumed zero
if(GetPVarFloat(playerid, "TVx") != 0.00 || GetPVarFloat(playerid, "TVy") != 0.00 || GetPVarFloat(playerid, "TVz") != 0.00))error 017: undefined symbol "TVx"
error 017: undefined symbol "TVy"
error 017: undefined symbol "TVz"
Muss hier kein Float hinter?
DeletePVar(playerid, TVx); DeletePVar(playerid, TVy); DeletePVar(playerid, TVz); -
Mein Fehler, war schon spät
if(floatcmp(GetPVarFloat(playerid, "TVx") , 0.00) != 0 || floatcmp(GetPVarFloat(playerid, "TVy" ), 0.00) != 0 || floatcmp(GetPVarFloat(playerid, "TVz") , 0.00) != 0)
DeletePVar(playerid, "TVx"); DeletePVar(playerid, "TVy"); DeletePVar(playerid, "TVz");
Edit: Klammern -.-
-
Ok Passt Dankedir
-
breadfish.de
Hat das Thema geschlossen.