GTAvision.com - Forum - Grand Theft Auto News, Downloads, Community and more...

Position: Grand Theft Auto: San Andreas » Multiplayer » [SA-MP v2] auto login » Druckansicht
andreas2007, 11.02.2008, 15:57
hallo zusammen,
kann mir jmd.ein code sagen wie ich das mache das wenn spieler eingelogt sind und gehen und sie
kommen z.B nach einer stunde wieder,sie wieder eingelogt sind?

register code hab ich schon:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    if (strcmp(cmd, "/login", true) == 0)
{
if (logged[playerid] != 1 && udb_Exists(PlayerName(playerid)))
{
new dir[256];
dir = strtok(cmdtext, idx);
if (strlen(dir) && strcmp(dir, dUser(PlayerName(playerid)).("password"), true) == 0)
{
logged[playerid] = 1;
SendClientMessage(playerid, COLOR_SpecialRed, "Erfolgreich eingeloggt! Dein Geld wurde geladen!");
GivePlayerMoney(playerid, dUserINT(PlayerName(playerid)).("geld"));
}
}
else SendClientMessage(playerid, COLOR_SpecialRed, "Es ist ein Fehler beim Einloggen aufgetreten!");
return 1;
}


if (strcmp(cmd, "/register", true) == 0)
{
if (logged[playerid] != 1 && !udb_Exists(PlayerName(playerid)))
{
new dir[256];
dir = strtok(cmdtext, idx);
if (strlen(dir))
{
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(PlayerName(playerid)));
dini_Create(fname);
dUserSetINT(PlayerName(playerid)).("geld",50000);
dUserSet(PlayerName(playerid)).("password", dir);
SendClientMessage(playerid, COLOR_SpecialRed, "Erfolgreich registriert! Bitte logge dich nun mit /lo
gin [Passwort] ein!");
}
}
else SendClientMessage(playerid, COLOR_SpecialRed, "Es ist ein Fehler beim Registrieren aufgetreten!"
);
return 1;
}


MFG Andi :D
dödel, 11.02.2008, 16:08
Jaaaa......... und geht das ganze jetzt auch mal auf deutsch :/
Ripper, 11.02.2008, 16:14
Zitatdödel hat folgendes geschrieben:
Jaaaa......... und geht das ganze jetzt auch mal auf deutsch :/


Ich glaube der meint das so:

1. Jemand registriert sich
2. Dieser zockt und denne geht er mal raus
3. Er kommt wieder in den Server und ist automatisch eingeloggt, muss also kein /login Passwort
mehr machen!
4. Das macht den Leuten das Leben leichter xD


MfG Ripper
dödel, 11.02.2008, 16:28
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public OnPlayerConnect(playerid)
{


if(logged[playerid] != 1 && udb_Exists(PlayerName(playerid)))
{
new dir[256];
dir = strtok(cmdtext, idx);
if (strlen(dir) && strcmp(dir, dUser(PlayerName(playerid)).("password"), true) == 0)
{
logged[playerid] = 1;
SendClientMessage(playerid, COLOR_SpecialRed, "Erfolgreich eingeloggt! Dein Geld wurde geladen!");
GivePlayerMoney(playerid, dUserINT(PlayerName(playerid)).("geld"));
}
}


}



Fertig :D
welch große Veränderung *g*
andreas2007, 11.02.2008, 16:52
genau das meinte ich :D

MFG Andi
andreas2007, 11.02.2008, 19:56
es kommt jetzt leider ne fehler meldungen :/


Code:

1
2
3
4
5
C:\Users\Andi\Desktop\meine Server\gamemodes\Freeroam2.pwn(123) : error 017: undefined symbol "cmdte
xt"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


kann mir einer da helfen?

mfg andi
dödel, 11.02.2008, 19:59
K, habs ja nur rüberkopiert, damit du siehst wie das gehen soll.

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

public OnPlayerConnect(playerid)
{


if(logged[playerid] != 1 && udb_Exists(PlayerName(playerid)))
{
logged[playerid] = 1;
SendClientMessage(playerid, COLOR_SpecialRed, "Erfolgreich eingeloggt! Dein Geld wurde geladen!");
GivePlayerMoney(playerid, dUserINT(PlayerName(playerid)).("geld"));
}


}

?>


Die anderen Abfragen haben da ja nichts mehr zu suchen ;)
andreas2007, 11.02.2008, 20:16
hmm jetzt geht es danke =)

ich hab einfach nur ne klammer weg gemacht:

Code:
1
2
3
4
5
6
if(logged[playerid] != 1 && udb_Exists(PlayerName(playerid)))
{
logged[playerid] = 1;
SendClientMessage(playerid, COLOR_SpecialRed, "Erfolgreich eingeloggt! Dein Geld wurde geladen!");
GivePlayerMoney(playerid, dUserINT(PlayerName(playerid)).("geld"));
}


MFG Andi
Recycler, 11.02.2008, 20:25
Mh, also so kann jeder einfach den Benutzernamen von z.B. einem Admin nehmen und sich damit
automatisch einloggen, wenn dieser eine Userdatei hat, die er sicherlich hat :-O
So wie ich das sehe meinst du, dass da ein zeitlicher Login bestehen soll, d.h. nachdem der Spieler
eingeloggt war und den Server verlassen hat, kann er z.B. eine Stunde lang nach dem Verlassen
wieder beitreten und muss sich nicht wieder einloggen.
Da wäre dann aber ein IP Abgleich erforderlich, denn es besteht auch hier die Gefahr, dass andere
User sich mit falschem Benutzernamen in den Server klinken.

MfG
Recycler
dödel, 11.02.2008, 22:18
Naja, er wollte es ja so, an die Folgen muss man schon selber denken :D
es natürlich am besten, wenn man sein PW jedesmal eingeben muss.
GTAvision.com :: Forumregeln :: FAQ :: Impressum :: Kontakt :: RDRvision.com :: LANOIREvision.com :: MaxPayneVision.com
NetVisionWork.NET
.: © 2006-2014 by GTAvision.com :.

Rockstar GamesTake-Two Interactive Deutschland

Free Grand Theft Auto Downloads