Entfernt, es war einfach zu voll mit Bugs
Neu! Login/Register System machen
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
-
-
Cooles Tut.
Aber das ist ja fast genauso wie das hier
FILTERSCRIPT Login und Register System -
gutes TuT für Anfänger aber mach lieber ein eigenes und nimm es nicht aus dem GF :s
-
Ist zwar schon sehr gut,
aber mein Motto.
Learning by Doing -
Aber das ist ja fast genauso wie das hier
FILTERSCRIPT Login und Register SystemIst schon ein Unterscheid wenn es einem erklärt wird und wenn man es einfach nur runterlädt.
Nice Tut
-
Danke^^ ich weis is net von mir aber von dort habe ich es gelernt wie es geht (Steht oben) aber manche wissen immer noch net wie es geht^^
-
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(100) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(101) : warning 209: function "OnPlayerConnect" should return a value
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(102) : error 010: invalid function or declaration
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(172) : error 004: function "Encrypt" is not implemented
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(177) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(192) : error 017: undefined symbol "pPassword"
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(193) : error 004: function "Encrypt" is not implemented
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(211) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(212) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(219) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(387) : error 017: undefined symbol "password"
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(389) : error 017: undefined symbol "password"
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(399) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(400) : warning 217: loose indentation
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(435) : error 017: undefined symbol "password"
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(468) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase7 Errors.
...
-
hehe nice tut^^
mach mal das oben rein
#pragma unused ret_memcpy -
Danke,
hab nun ein paar gelöst, mein einziges Problem istD:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(175) : error 004: function "Encrypt" is not implemented
D:\GTASAN~1\ULTIMA~1\GAMEMO~1\gm.pwn(196) : error 004: function "Encrypt" is not implemented
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhasedas.
-
mach unten hin:
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 64;
}
}
return 1;
}
habe ich vergessen^^ -
-
Was muss ich alles ändern, damit es in dem Ordner Scriptfiles/Spieler gespeichert wird?
-
if (strcmp(cmd, "/register", true)==0) //wenn der Spieler /register eingibt
{
new string[128];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) //Wenn er z.B /registre eingibt
{
SendClientMessage(playerid, farbe, "Benutze: /register [password]"); //sendet eine Nachricht
return 1;
}
if (gPlayerAccount[playerid] == 1) //Wenn er bereits einen Account hat
{
SendClientMessage(playerid, farbe, "Dieser Username ist schon registriert!"); //Sendet eine Nachricht
return 1;
}strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
Encrypt(PlayerInfo[playerid][pPassword]);
GetPlayerName(playerid, playername, sizeof(playername)); //kriegt den Spielernamen
format(string, sizeof(string), "/Spieler/%s.ini", playername); //Da<<<<<<<<<<<<<<<<<<<
new File: file = fopen(string, io_read); //erstellt eine Datei mit den Spielernamen z.B. zombie.modder.ini im Ordner Scriptfiles
if (file) //wenn es bereits eine Datei mit diesem Namen gibt
{
SendClientMessage(playerid, farbe, "Diesen Benutzernamen gibt es schon"); //sendet eine Nachricht
fclose(file);
return 1;
}
new File:hFile; //erstellt eine Datei
hFile = fopen(string, io_append); //öffnet sie
new var[32];//
format(var, 32, "%s\n", PlayerInfo[playerid][passwort]);fwrite(hFile, var); //schreibt das Passwort in die Datei
format(var, 32, "Morde=%d\n",PlayerInfo[playerid][morde]);fwrite(hFile, var);//schreibt die Anzahl derKills in die Datei
format(var, 32, "Tode=%d\n",PlayerInfo[playerid][tode]);fwrite(hFile, var);//schreibt die Anzahl der Tode in die Datei
PlayerInfo[playerid][geld] = GetPlayerMoney(playerid);//findet heraus wie viel Geld der Spieler hat
format(var, 32, "Geld=%d\n",PlayerInfo[playerid][geld]);fwrite(hFile, var);//schreibt das Geld in die Datei
PlayerInfo[playerid][skin] = GetPlayerMoney(playerid);//findet heraus welche Skin ID der Spieler hat
format(var, 32, "SkinID=%d\n",PlayerInfo[playerid][skin]);fwrite(hFile, var);//schreibt die Skin iD in die Datei
fclose(hFile);
SendClientMessage(playerid, farbe, "Erfolgreich registriert!!");
SendClientMessage(playerid, farbe, "Benutze beim nächsten Besuch /login (passwort).");
OnPlayerLogin(playerid,PlayerInfo[playerid][passwort]);
return 1;
}public OnPlayerConnect(playerid)
{
new spielername[MAX_PLAYER_NAME]; //für den Spielernamem
new connect[128];
GetPlayerName(playerid, spielername, sizeof(spielername)); //findet den Namen des Spielers raus
format(connect, sizeof(connect), "/Spieler/%s.ini", spielername); //<<<<<<<<<<<<<<<<<<<<<<da
if(fexist(connect)) //Wenn die Datei des Spielers existiert
{
gPlayerAccount[playerid] = 1; //Er hat einen Account
SendClientMessage(playerid, COLOR_YELLOW, "Du bist bereits registriert. Benutze /login [password]"); // Sendet ihm eine Bestätigung das er bereits registriert ist
return 1;
}
else //wenn er keinen account hat{
gPlayerAccount[playerid] = 0; //er hat keinen Account
SendClientMessage(playerid, COLOR_YELLOW, "Du bist neu hier. Bitte benutze /register [password] um dich zu registrieren"); //sendet ihm eine Nachricht das sein Account fehlt
}
return 1;
}
public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string2[64];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2)); //kriegt den Namen
format(string2, sizeof(string2), "/Spieler/%s.ini", pname2); //<<<<<<<<<<<<<<<<<<da
new File: UserFile = fopen(string2, io_read); //"öffnet" die datei des spielersif (UserFile)
{
new valtmp[128];
fread(UserFile, valtmp);strmid(PlayerInfo[playerid][password], valtmp, 0, strlen(valtmp)-1, 255);if ((strcmp(PlayerInfo[playerid][password], string, true, strlen(valtmp)-1) == 0)) //Wenn das passwort richtig is (?)
{
new key[128],val[128];
new Data[128];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if( strcmp( key , "Morde" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][morde] = strval( val ); } //weis net xD
if( strcmp( key , "Tode" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }
if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][geld] = strval( val ); }
if( strcmp( key , "SkinID" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }
GivePlayerMoney(playerid,PlayerInfo[playerid][geld]); //gibt ihm das Geld was er beim Leaven hatte
SetPlayerSkin(playerid,PlayerInfo[playerid][skin]); //gibt ihm den Skin den er beim leaven hatte
}
fclose(UserFile);
gPlayerLogged[playerid] = 1; //er ist absofort eingeloggt
gPlayerAccount[playerid] = 1; //er hat einen account
new kills = PlayerInfo[playerid][morde];
SetPlayerScore(playerid, kills); //gibt dem Spieler den Score den er beim verlassen hatte
GetPlayerName(playerid, pname3, sizeof(pname3)); //kriegt den Spielernamen
format(string3, sizeof(string3), "Willkommen %s, ydu hast dich erfolgreich eingeloggt!", pname3);
SendClientMessage(playerid, farbe,string3);
}
else
{
SendClientMessage(playerid, farbe, "Das Password ist falsch!"); //Wenn das Password falsch ist
fclose(UserFile);
}
}
return 1;
}public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid)) //wenn der spieler online ist
{
if(gPlayerLogged[playerid]) //Wenn er eingeloggt ist
{
new string3[32];
new pname3[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname3, sizeof(pname3)); //kriegt den namen des spielers
format(string3, sizeof(string3), "%s.ini", pname3);
new File: pFile = fopen(string3, io_write);
if (pFile)
{
new var[32];
format(var, 32, "/Spieler/%s\n", PlayerInfo[playerid][password]);fwrite(pFile, var); //<<<<<<<<<<<<<<<da
fclose(pFile);
new File: hFile = fopen(string3, io_append);
PlayerInfo[playerid][geld] = GetPlayerMoney(playerid);
format(var, 32, "Morde=%d\n",PlayerInfo[playerid][morde]);fwrite(hFile, var); //Weis net^^
format(var, 32, "Tode=%d\n",PlayerInfo[playerid][tode]);fwrite(hFile, var);
format(var, 32, "Geld=%d\n",PlayerInfo[playerid][geld]);fwrite(hFile, var);
format(var, 32, "SkinID=%d\n",PlayerInfo[playerid][skin]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}MfG
-
Danke, kann man auch machen, dass wenn man sich nicht einloggt und SHIFT drückt, dann rausfliegt? Also Server Closed The Connection?
-
ja:
OnPlayerSpawn(playerid)
{
if(gPlayerLogged[playerid] == 0;
{
Kick(playerid);
]
return 1;
Ausm Kopf geschrieben -
Gutes Tutorial!
Aber eine Frage, wie speichert man Positionen?
mfg -
Ist da nicht entwas Falsch?
if( strcmp( key , "SkinID" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][tode] = strval( val ); }
Das tode gibts doch schon ist doch Falsch oder
-
ja danke mein Fehler änder ich sofot
-
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(91) : error 029: invalid expression, assumed zero
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(92) : error 029: invalid expression, assumed zero
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(92 -- 93) : warning 215: expression has no effect
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(93) : error 001: expected token: ";", but found "if"
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(101) : warning 217: loose indentation
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(102) : warning 209: function "OnPlayerConnect" should return a value
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(103) : error 010: invalid function or declaration
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(105) : error 010: invalid function or declaration
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(213) : error 017: undefined symbol "pPassword"
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(214) : error 017: undefined symbol "pPassword"
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(336) : error 017: undefined symbol "password"
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(338) : error 017: undefined symbol "password"
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(348) : warning 217: loose indentation
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(349) : warning 217: loose indentation
C:\Users\Fell\Desktop\Spiele\gta sa server\gamemodes\PENNERLIFE.pwn(383) : error 017: undefined symbol "password"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase10 Errors.
-
hast du alles richtig eingefügt?
edit: Mein Fehler habs editiert probiers nochmal (habe es gestern im halbschlaf um 23:00 Uhr geschrieben )
-
Wie speichert man Positionen?