SA-MP Forums Archive
auto login - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: auto login (/showthread.php?tid=132342)



auto login - laser50 - 07.03.2010

Could someone give me an example of an Auto login using Dini please?
(or just make the whole code :P)

Also, how do i make a Textdra above the character in the character seletion?
Like, Soldier skin, with a textdraw USA above him..


Re: auto login - laser50 - 07.03.2010

Anyone?


Re: auto login - Miguel - 07.03.2010

Look for a textdraw editor.


Re: auto login - Desert - 07.03.2010

Haiho laser hope you remember me :P


10 minutes is not 12 hours and double post is a bad thing

Eitherway heres my auto login using dini

pawn Код:
public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME],file[23];
    GetPlayerName(playerid,name,sizeof(name));
    format(file,sizeof(file),"%s.ini",name);
    if(!fexist(file))
    {
      SendClientMessage(playerid,COLOUR_RED,"You have not registered yourself! Use /register so your stats will be saved!");
      return 1;
      }
    else
    {
      GetPlayerIp(playerid,pi[playerid][pip],16);
        pi[playerid][rip] = dini_Int(file,"IP");
        if(strcmp(pi[playerid][pip],pi[playerid][rip]))
        {
        new string[72];
      pi[playerid][Adminlevel] = dini_Int(file,"Adminlevel");
        SetPlayerScore(playerid,dini_Int(file,"Stat"));
        logged[playerid] = 1;
        format(string,sizeof(string),"Welcome back %s! You have been automatically logged in",name);
        SendClientMessage(playerid,COLOUR_GREEN,string);
        return 1;
        }
        else
        {
        SendClientMessage(playerid,COLOUR_GREEN,"An account in that name is registered! Use /login to regain your previous stats!");
        return 1;
        }
        }
}

As you can see i save the 2 IPs in enum because i think it was easier. Also theres "pip" and "rip" pip is player IP (The players IP) and rip is real IP (The IP which i have saved in the ini file) It checks if they are the same. If they are the same hes automatically logged in and if its not the same he has to login manually. As a safety that other people with same name don't get your stats


Re: auto login - laser50 - 07.03.2010

its not really working,...

Do you maybe have sumthin Easier? as most of these things, are not in my script xD

(Hey Desert :P)





Re: auto login - Desert - 07.03.2010

Well you can just change the pi's

The importent thing is to make 2 diffrent IP saves. 1 thats saved in the ini file and 1 thats set to the playerid's IP


You could also keep it simple and just check if fexist then autologin. But that would make it easy to hack others account


Re: auto login - laser50 - 07.03.2010

I still dont really get it...
if their a simpeler way? witch checks the ip??


Re: auto login - laser50 - 08.03.2010

come on, some1?


Re: auto login - bajskorv123 - 08.03.2010

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
  if(classid = 0)//The first class that got added at GameModeInit()
  {
    GameTextForPlayer(playerid, "Usa", 3000, 4);
  }
  else if(classid = 1)//The second class that got added at GameModeInit()
  {
    GameTextForPlayer(playerid, "Japan", 3000, 4);
  }
  else if(classid = 2)//The third class that got added at GameModeInit()
  {
    GameTextForPlayer(playerid, "Russia", 3000, 4);
  }
  return 1;
}
If you have more than 3 classes, just add the "else if(classid...)" loop...


Re: auto login - Desert - 08.03.2010

Im currently not at home so im not sure if this might work

put this on top of your script: new pip[MAX_PLAYERS][16],rip[MAX_PLAYERS][16];

You put this under OnPlayerConnect

pawn Код:
new file[23],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(file,sizeof(file),"%s.ini",name);
if(fexist(file))
{
GetPlayerIp(playerid,pip[playerid],16);
rip[playerid] = dini_Int(file,"IP");
if(strcmp(pip[playerid],rip[playerid]))
{
//Load the players stats
return 1;
}
else return SendClientMessage(playerid,0xFFFFFF,"You need to login first");
}
else return SendClientMessage(playerid,0xFFFFFF,"Please register first");

And add this save under your register and login

pawn Код:
GetPlayerIp(playerid,rip[playerid],16);
dini_Set(file,"IP",rip[playerid]);

As said im not sure if it works