Diesen Post ignorieren...
schaut meinen letzten Post an, danke =)
Nach Login: Stay within the World Boundries
- n0skillg3t
- 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
-
-
frag mal die coordinaten bei onPlayerDissconnet ab und anch dort für jede koordinate eine zeile also
dini_FloatSet([DEIN_DATEINAME],"lastx",Spieler[playerid][lastx]);
dini_FloatSetDEIN_DATEINAME],"lasty",Spieler[playerid][lasty]);
dini_FloatSetDEIN_DATEINAME],"lastz",Spieler[playerid][lastz]);
und bei on player spawn
Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
lädst du die variabeln und setzt den spieler an die position ( musst du an dein scritp editiren) -
Und wie kann ich die LastX bzw. Y Z Koordinaten abfragen?
Ich benutze GetPVar und SetPVar nicht enum./edit: Die Position wird gespeichert nur in einem unleserlichen Format: "Position=1145821343"
-
GetPlayerPos(playerid, Spieler[playerid][lastx], Spieler[playerid][lasty], Spieler[playerid][lastz]);
so hab ich die position des spielers abgefragt schau mal im tutorialbereich da is ein simples login/registrir tut und wa wird auch diese funktion angesprochen. -
Schön und gut, ich möchte das aber mit PVar machen und nicht mit enums.
-
gut damit kenn ich michj nicht aus versuch trotzdem jede einzelne variable zu speichern und wieder zudammen zu fassen
-
Hab jetzt ein neues Problem...
Wenn ich mich einlogge dann kommt gleich da nach "Stay within the World Boundries",
obwohl ich nirgendswo in meinem Script diese Funktion verwende...Hier mein Code:
public OnPlayerDisconnect(playerid, reason)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
new Float:lastx, Float:lasty, Float:lastz;
GetPlayerPos(playerid, lastx, lasty, lastz);
SetPVarInt(playerid,"lastx",lastx);
SetPVarInt(playerid,"lasty",lasty);
SetPVarInt(playerid,"lastz",lastz);
new playername[24];
GetPlayerName(playerid, playername, sizeof(playername));
{
SpielerSpeichern(playerid);
}
return 1;
}public OnPlayerSpawn(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
SetPlayerPos(playerid,dini_Int(Spielerdatei,"lastx"),dini_Int(Spielerdatei,"lasty"),dini_Int(Spielerdatei,"lastz"));
return 1;
}stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.ini",name);
dini_IntSet(Spielerdatei,"lastx",GetPVarInt(playerid,"lastx"));
dini_IntSet(Spielerdatei,"lasty",GetPVarInt(playerid,"lasty"));
dini_IntSet(Spielerdatei,"lastz",GetPVarInt(playerid,"lastz"));
}
return 1;
}Hier ein Screen wie das aussieht:
Hoffe um Hilfe.
/edit:
Hab das mal in einen Befehl eingebaut.
Das Ergebnis: Sobald ich den Befehl eingebe kommt wieder "Stay within the World Boundries"....
Ich glaube es liegt an den Koordinaten.
Die Koordinaten werden in diesem Format abgespeichert:Zitat
lastx=1318915341
lasty=-834262984
lastz=1318911568 -
Hm, hatte damals das gleiche Problem.
Lass mich raten, unter OnGameModeInit() hast du:
AddPlayerClass(0, ...)
Damals hatte ich es gelöst, indem ich einfach ein weiteres AddPlayerClass hinzugefügt hatte.
Nur eben mit einer anderen SkinID. -
Nein
Das ist auch nicht das Problem...
Da ich das ja jetzt in einen Befehl gepackt habe, habe ich gesehen,
das etwas mit den Koordinaten nicht stimmt.So wird es wiedergebeben:
SetPlayerPos(playerid,1318915341,-834262984,1318911568);
//Hier bekomme ich das "Stay within the World Boundries"Dann habe ich es so probiert:
SetPlayerPos(playerid,1318.915341,-8342.62984,13.18911568);
//Hier bekomme ich das "Stay within....blabla" nicht mehr aber ich werd irgendwo im Meer gespawnt...ERGO: Die Koordinaten werden falsch gespeichert bzw. gelesen.
Bitte um Hilfe =)
-
Vielleicht würde es helfen wenn du anstatt dini_Int, dini_Float benutzen würdest.
Schließlich willst du ja eine Kommazahl auslesen. -
-
Das liegt daran das dein Char kein Skin hat mach PlayerSpawnInfo(....) oder SetPlayerSkin(playerid, skinid);
-
Vielleicht würde es helfen wenn du anstatt dini_Int, dini_Float benutzen würdest.
Schließlich willst du ja eine Kommazahl auslesen.
Volltreffer mylord -
breadfish.de
Hat das Thema geschlossen.