Also ich hab folgendes problem
Nach dem ich mein haus system fertig hatte muste ich zu entsetzen feststelln das meine cameras dei beim connecten gesetzt werden nicht gehen siehe pawncode
public OnPlayerConnect(playerid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(fexist(accFormat))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379);
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109);
}
else
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059);
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469);
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
return 1;
}
die Dialoge werden aufgerufen nur beide cameras gehen nicht
[die obere schaut auf die Stadt, und die untere auf den ls Flughafen ]
wo liegt da der fehler ich erkenne ihn nicht
Cameras gehen nicht
- carlos1710
- Geschlossen
- Erledigt
-
-
Verändert OnDialogResponse etwas an den Camerapositionen?
-
Schau am besten unter OnPlayerRequestClass nach, denn wenn wegen dem werden auch die KameraPositionen verschwinden bzw. Setze die KameraPositionen dort rein mit den Abfragen wie "Ob Spieler Eingeloggt ist" und "Spieler bereits Registriert/Neu ist".
-
Yo, unter OnPlayerRequestClass ist es am besten, so hab ichs auch drinnen
-
Es geht nicht ich hab es nun so
public OnPlayerRequestClass(playerid, classid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(Spieler[playerid][Eingeloggt] < 1)
{
if(fexist(accFormat))
{
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379);
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109);
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
}
else
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059);
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469);
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
}
SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
SetPlayerFacingAngle(playerid,270.0000);
return 1;
}
doch ich schau beim einloggen immernoch auf den dummen strand -
Du ehm, ich will nix sagen, aber das wird doch langsam peinlich für dich oder? Schau mal die Letzten 4 Zeilen an xD
-
schön da wird die cam auf den spieler gesetzt aber erst nachdem er eingeloggt ist ich erkenn da nix grosartiges
(dan wirds halt peinlich hab ich auch kein problem mit) -
Ok ich kommentiere dir nun den Scriptteil... Kommentare sind nach // zu sehen. Nun solltest du es sehen, was ich meine..
public OnPlayerRequestClass(playerid, classid) //Gut, aufgerufen wenn einer in Skinauswahl kommt/ist.
{
new pname[MAX_PLAYERS],accFormat[128]; //Schöne Arrays for Spieler-/Dateinamen
GetPlayerName(playerid,pname,sizeof pname); //Findet Spielernamen heraus
format(accFormat,sizeof accFormat,"%s.datei",pname); //formatiert Dateinamen zum auslesen
if(Spieler[playerid][Eingeloggt] < 1) //Ob Spieler eingeloggt ist, aber wenn nicht ...
{
if(fexist(accFormat)) //... überprüfe ob Account vorhanden ist, ansonsten...
{
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379); //Setzt die SpielerKamera auf die Koordinaten für bereits registrierte Spieler.
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109); //Der Punkt für die SpielerKamera wohin sie schauen soll für bereits registrierte Spieler.
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen"); //LoginDialog für Spieler zeigen
}
else //...zwinge Ihn neu zum registrieren.
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059); //Setzt die SpielerKamera auf die Koordinaten für neue Spieler.
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469); //Der Punkt für die SpielerKamera wohin sie schauen soll für neue Spieler.
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen"); //Registrierungsdialog für Spieler zeigen.
}
}
SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683); //Setzt Spieler Koordinate auf Punkt, egal ob Registriert oder Neu.
SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683); //Setzt SpielerKamera Neu für Spieler, egal ob Registriert oder Neu.
SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683); //Setzt Punkt für Spielerkamera neu für Spieler, egal ob Registriert oder Neu.
SetPlayerFacingAngle(playerid,270.0000); //Richtet die Ausrichtung vom Skin, wohin der Skin schauen soll.
return 1;
} -
schön da wird die cam auf den spieler gesetzt aber erst nachdem er eingeloggt ist ich erkenn da nix grosartiges
(dan wirds halt peinlich hab ich auch kein problem mit)Naja, dass du da die Camera wieder zu einer anderen Position settest solltest aber schon selbst erkennen
-
danke deine kommentirung hätt ich nicht gebraucht sa dumm bin ich auch wieder nicht ich versuch nun mal was anderes hat mich zumindest auf eine idee gebracht
//EDIT: ja ich wie dass ich die camera auf eine andere Position setzt aber ich war der Meinung das passirt erst wen die if abfragen fertig sind und zudem schaute die camera für den Spieler auch erst dann dahin wen er den Dialog fertig hat von daher war ich der Überzeugung das das so stimmt
2.//EDIT:meine Lösung geht immer noch nicht
SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683); //Die kamera kommt erst wen der spieler fertig ist mit den dialogen, wen er bei den dialogen ist ist er NOCH am strand
SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683); //wird auch erst nach den dialogengemacht
SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683); //auch erst danach
SetPlayerFacingAngle(playerid,270.0000);
return 1; -
-
public OnPlayerRequestClass(playerid, classid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(Spieler[playerid][Eingeloggt] < 1)
{
if(fexist(accFormat))
{
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379);
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109);
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
}
else
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059);
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469);
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
return 1; //Dieses return blockiert nun den kommenden Scriptblock.
}
SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
SetPlayerFacingAngle(playerid,270.0000);
return 1;
} -
oke gebe zu ich habs nicht so mit den returns manchmal braucht mans manchmal net aber danke ich tests mal
//EDIT: nur doof das es selbst mit dem return nicht geht -
Jetzt mal ganz langsam ;).
Sowas wie "returns manchmal braucht mans manchmal net" gibt's in diesem Kontext nicht. Das ist schon sehr klar definiert. Ich würde Dir auch vom verwenden von Returns mittem im Code abraten - aber das ist Geschmackssache.
Nochmal meine Frage die Du leider noch nicht beantwortet hast:
Verändert OnDialogResponse etwas an den Camerapositionen?
Ansonsten (außer Du machst etwas was man anhand deiner Ausschnitte nicht sehen kann) funkioniert der Code der Dir vorgestellt wurde.
-
Bis auf das, dass bei deiner KameraPos oben das SetPlayerPos fehlt, hab ich es selbst getestet und es ging bei mir.
-
also
1. nein die Dialoge brauchen keine camera sprich es wird keine verwendet
2. das SetPlayerPos ist mit Absicht nicht da, da während des registrieren die camera auf den fFlughafen geht (einfliegen)
und wen der Spieler schon mal eingeflogen ist kommt die camera auf die StadtBei mir passirt aber nur
-man connectet
-man registriert/logt sich ein, camera auf den dummen Strand (wo sie eigentlich auf den Flughafen/Stadt gehört)
-nach dem registrieren/login geht die camera wie gewollt auf den Spieleres ging auch schon bei mir nur plötzlich gehts nimma
-
Wie gesagt, der Code Ausschnitt der Dir von Templer vorgestellt wurde funktioniert als solcher. Entweder Du hast weitere Funktionen die aufgerufen werden und die Cameraposition verändern - oder die Werte für die if-Abfragen sind nicht korrekt gesetzt
if(Spieler[playerid][Eingeloggt] < 1)
{
if(fexist(accFormat))
{Viele andere Möglichkeiten gibt es nicht mehr.
-
oa shit ich hab den fehler bei durchgehen nochmal gesehen das ist nun wirklich peinlich wen ichs reinschreib
aber danke an alle die versucht haben mir zu helfen -
public OnPlayerRequestClass(playerid, classid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(Spieler[playerid][Eingeloggt] == 1)
{
if(fexist(accFormat))
{
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379);
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109);
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
}
else
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059);
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469);
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
}
SetPlayerPos(playerid, 1-1983.5542,665.4218,46.5683);
SetPlayerCameraPos(playerid, -1977.6497,665.9248,46.5683);
SetPlayerCameraLookAt(playerid, -1983.5542,665.4218,46.5683);
SetPlayerFacingAngle(playerid,270.0000);
return 1;}
Ka, sollteste aber mal versuchen ;D.
-
danke es geht schon vorher aber du hast eine frage beantwortet die cih nicht gestellt hab
//EDIT:baer das geht nicht weil eingeloggt mus 0 sein bei 1 ist er schon eingelogt -
So hier.. darauf müsst ihr doch selbst kommen. Da ihr die Camera Position durch die letzten 4Zeilen wieder woanders hinsetzt bringt davor kein Setten der Camera Pos. das ist genau so wie zweimal hintereinander SetPlayerPos mit anderen Kords er wird nur zur letzten geportet...!
public OnPlayerRequestClass(playerid, classid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(Spieler[playerid][Eingeloggt] == 1)
{
if(fexist(accFormat))
{
SetPlayerCameraPos(playerid,1334.1407,-1885.0770,194.1379);
SetPlayerCameraLookAt(playerid, 1528.7094,-1553.2479,67.2109);
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
}
else
{
SetPlayerCameraPos(playerid,2041.2831,-2717.3804,94.2059);
SetPlayerCameraLookAt(playerid, 1856.8364,-2562.0042,13.5469);
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
}
return 1;
}