Hey liebe BROTFISCHE ,
wie die der titel schon verräter brauche ich hilfe . Ich will es so einstellen das wenn man sich ausloggt und wieder einlogt genau da spawnt wo man sich ausgeloggt hat.
So was hat auch der server Life of German vlt kennt ihr ihn ja , ich were echt dankbar wenn ihr mir erklären könntet wie ich das einstelle
[Script frage]Nach dem Einloggen am ausloggs point spielen
- [RoG]Gummibaer21
- 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 letzten X, Y und Z Koordinaten speichern und laden. <- So viel zur Theorie
-
Du speicherst in den Account Daten:
Position: x,y,z und die Angle und wenn man spawnt setzt du den Spieler dann da hinL.G.
heyho -
Könntes du bitte erklären wie das geht?
-
arbeitest du mit MySQL oder mit DINI?
-
Benutz mal die Sufu, gibt viele Threads.
-
Die Funktionen brauchst du:
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X,Y, Z); -
ich benutze dini , wo soll ich den diese getplayerpos und setplayerpos einfügen?
-
Also bei deinem stock SpielerSpeichern oder wie du ihn genannt hast Gettest du die letzten posX, posY, posZ von dem Spieler.
Ggf. auch die FacingAngle, weiß aber nicht ob das nötig ist.
Beim stock Laden, ließt du diese Koordinaten aus und setzt sie mit SetPlayerPos.
Nur nicht vergessen das Postionen als Float gelten ^^.Kann dir im mom keinen Beispielcode machen da ich am Handy bin
-
new Float:X,Float:Y:Float:Z;
stock SpielerSpeichern
GetPlayerPos(X,Y,Z);
stock SpielerLaden
SetPlayerPos(X,Y,Z); -
also das new ganzoben rein und GetPlayerPos einfach rein?
//Edit
Könntet ihr vlt die pastebin bearbeiten ?
were echt geil von euch
-
Dein SpielerSpeichern ändern zu:
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
new Float:x, Float:y, Float:z; // falls nicht generiert
GetPlayerPos(playerid,x,yz);
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Job",sSpieler[playerid][Job]);
dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
dini_IntSet(Spieler,"Skin",GetPlayerSkin(playerid));
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
dini_FloatSet(Spieler,"X", x);
dini_FloatSet(Spieler,"Y", y);
dini_FloatSet(Spieler,"Z", z);
return 1;
}
return 1;
}
Dein SpielerLaden Befehl ändern zu:
stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
sSpieler[playerid][Job] = dini_Int(Spieler,"Job");
sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
sSpieler[playerid][sLogin] = 1;
sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");
GivePlayerMoney(playerid, sSpieler[playerid][Geld]);
SetPlayerPos(playerid,dini_Float(Spieler,"X"),dini_Float(Spieler,"Y"),dini_Float(Spieler,"Z"));
return 1;
}
return 1;
}Und fertig... (Weiss gerade nicht obs dini_Float und dini_FloatSet ist ich arbeite nicht mehr mit dini nur noch mit MySql)
-
breadfish.de
Hat das Thema geschlossen.