Vice City: Multiplayer

Server Development => Scripting and Server Management => Script and Content Requests => Topic started by: =RK=MarineForce on Sep 21, 2018, 10:42 AM

Title: Hello Guyz can some one teach me ?
Post by: =RK=MarineForce on Sep 21, 2018, 10:42 AM
how can i make register and login system? with database?
Title: Re: Hello Guyz can some one teach me ?
Post by: doxuanhien2002 on Sep 21, 2018, 11:21 AM
1. Fuzzie's Account System (https://forum.vc-mp.org/?topic=224.0)
2. Anik's Account System (https://forum.vc-mp.org/?topic=4440.0)
3. Kewun Account System_1 (https://forum.vc-mp.org/?topic=3341.0)
4. Kewun Account System_2 (https://forum.vc-mp.org/?topic=3506.0)
5. Luis Account System (https://forum.vc-mp.org/?topic=3499.0)
6. ! Account System (https://forum.vc-mp.org/?topic=5144.0)
7. Muhammed's Account System (https://forum.vc-mp.org/?topic=5571.0)
8. =TRC=Kelvin Account System (https://forum.vc-mp.org/?topic=6170.0)
Title: Re: Hello Guyz can some one teach me ?
Post by: =RK=MarineForce on Sep 21, 2018, 01:53 PM
class PlayerStats
{
login = false;
register = false;
}

function onScriptLoad()
{
db <- ConnectSQL( "DataBase.db" );
QuerySQL( db, "CREATE TABLE IF NOT EXISTS Stats ( Name VARCHAR(32), IP VARCHAR(25), Admin TEXT, Reason TEXT )" );

database<- ConnectSQL( "database.db" );
QuerySQL( database, "CREATE TABLE IF NOT EXISTS Stats ( player VARCHAR(255), password VARCHAR(255), uid VARCHAR(255) " );
Stats <- array(GetMaxPlayers(), null);
print("Register,Login System Has Been Loaded by MarineForce");
}

function onScriptUnload()
{
DisconnectSQL( db );
DisconnectSQL( database );
}

function onPlayerJoin( player )
{
Stats[player.ID] = PlayerStats();
Message(" " + player.Name + " Has Joined The server  : " + player.IP + " ");

}

function onPlayerCommand( player, cmd, text )
{
if ( cmd == "register" )
{
  if ( ( Stats[ player.ID ].register ) || ( Stats[ player.ID ].login ) ) PrivMessage( player, "Error: You are already registered." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else
  {
   QuerySQL( database, "INSERT INTO Stats ( player, password, uid) VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   PrivMessage( player, format( "You have been successfully registered! Nickname:[ %s ] Password:[ %s ]", player.Name, text ) );
   MessageAllExcept( format( "[#00FF00]>> %s has been successfully registered.", player.Name ), player );
  }
}

else if ( cmd == "login" )
{
  if ( Stats[ player.ID ].login ) PrivMessage( player, "Error: You are already logged-in." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM Stats WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
  else
  {
   local query = QuerySQL( database, "SELECT * FROM Stats WHERE player = '" + player.Name.tolower() + "'" );
   if ( query )
   {
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   Message(" Welcome Back To Server " + player.Name + " ");
   }
   else PrivMessage( player, "wtf" );
  }
}
}
its not save the data when i quit. Commands Made by =TRC=Kelvin. i can but i need to know about steps.

///if i learn this thing i hope i will make my own Account System :P

///Some Things From Kelvin aCCOUNT system which i don't understand its only in cmd

Can u tell me, how to use it and what is . it

//what is GetSQLColumnData ??? and tolower

 ' + player.Name.tolower()+"' ");  what it Tolower?

I know QuerySQL( database, "SELECT password FROM Stats WHERE player  = ' " +
//else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM account WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
// QuerySQL( database, "INSERT INTO Stats ( player, password, uid)
 //  VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
Title: Re: Hello Guyz can some one teach me ?
Post by: Mahmoud Tornado on Sep 22, 2018, 12:48 AM
GetSQLColumnData (http://wiki.vc-mp.org/wiki/Scripting/Squirrel/Functions/GetSQLColumnData)
Tolower (https://www.tutorialspoint.com/c_standard_library/c_function_tolower.htm)
"The C library function int tolower(int c) converts a given letter to lowercase."
Title: Re: Hello Guyz can some one teach me ?
Post by: D4rkR420R on Sep 22, 2018, 06:57 AM
[noae]
Quote from: =RK=MarineForce on Sep 21, 2018, 01:53 PMclass PlayerStats
{
login = false;
register = false;
}

function onScriptLoad()
{
db <- ConnectSQL( "DataBase.db" );
QuerySQL( db, "CREATE TABLE IF NOT EXISTS Stats ( Name VARCHAR(32), IP VARCHAR(25), Admin TEXT, Reason TEXT )" );

database<- ConnectSQL( "database.db" );
QuerySQL( database, "CREATE TABLE IF NOT EXISTS Stats ( player VARCHAR(255), password VARCHAR(255), uid VARCHAR(255) " );
Stats <- array(GetMaxPlayers(), null);
print("Register,Login System Has Been Loaded by MarineForce");
}

function onScriptUnload()
{
DisconnectSQL( db );
DisconnectSQL( database );
}

function onPlayerJoin( player )
{
Stats[player.ID] = PlayerStats();
Message(" " + player.Name + " Has Joined The server  : " + player.IP + " ");

}

function onPlayerCommand( player, cmd, text )
{
if ( cmd == "register" )
{
  if ( ( Stats[ player.ID ].register ) || ( Stats[ player.ID ].login ) ) PrivMessage( player, "Error: You are already registered." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else
  {
   QuerySQL( database, "INSERT INTO Stats ( player, password, uid) VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   PrivMessage( player, format( "You have been successfully registered! Nickname:[ %s ] Password:[ %s ]", player.Name, text ) );
   MessageAllExcept( format( "[#00FF00]>> %s has been successfully registered.", player.Name ), player );
  }
}

else if ( cmd == "login" )
{
  if ( Stats[ player.ID ].login ) PrivMessage( player, "Error: You are already logged-in." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM Stats WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
  else
  {
   local query = QuerySQL( database, "SELECT * FROM Stats WHERE player = '" + player.Name.tolower() + "'" );
   if ( query )
   {
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   Message(" Welcome Back To Server " + player.Name + " ");
   }
   else PrivMessage( player, "wtf" );
  }
}
}
its not save the data when i quit. Commands Made by =TRC=Kelvin. i can but i need to know about steps.

///if i learn this thing i hope i will make my own Account System :P

///Some Things From Kelvin aCCOUNT system which i don't understand its only in cmd

Can u tell me, how to use it and what is . it

//what is GetSQLColumnData ??? and tolower

 ' + player.Name.tolower()+"' ");  what it Tolower?

I know QuerySQL( database, "SELECT password FROM Stats WHERE player  = ' " +
//else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM account WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
// QuerySQL( database, "INSERT INTO Stats ( player, password, uid)
 //  VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
[/noae]

Haven't you written a code where it'll update the player's statistics into the database on the onPlayerPart event?
Title: Re: Hello Guyz can some one teach me ?
Post by: =RK=MarineForce on Sep 22, 2018, 01:45 PM
onplayerpart{PlayerStats();} ?
Title: Re: Hello Guyz can some one teach me ?
Post by: Mahmoud Tornado on Sep 24, 2018, 06:08 PM
[noae]
Quote from: KuRuMi^ on Sep 22, 2018, 06:57 AM[noae]
Quote from: =RK=MarineForce on Sep 21, 2018, 01:53 PMclass PlayerStats
{
login = false;
register = false;
}

function onScriptLoad()
{
db <- ConnectSQL( "DataBase.db" );
QuerySQL( db, "CREATE TABLE IF NOT EXISTS Stats ( Name VARCHAR(32), IP VARCHAR(25), Admin TEXT, Reason TEXT )" );

database<- ConnectSQL( "database.db" );
QuerySQL( database, "CREATE TABLE IF NOT EXISTS Stats ( player VARCHAR(255), password VARCHAR(255), uid VARCHAR(255) " );
Stats <- array(GetMaxPlayers(), null);
print("Register,Login System Has Been Loaded by MarineForce");
}

function onScriptUnload()
{
DisconnectSQL( db );
DisconnectSQL( database );
}

function onPlayerJoin( player )
{
Stats[player.ID] = PlayerStats();
Message(" " + player.Name + " Has Joined The server  : " + player.IP + " ");

}

function onPlayerCommand( player, cmd, text )
{
if ( cmd == "register" )
{
  if ( ( Stats[ player.ID ].register ) || ( Stats[ player.ID ].login ) ) PrivMessage( player, "Error: You are already registered." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else
  {
   QuerySQL( database, "INSERT INTO Stats ( player, password, uid) VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   PrivMessage( player, format( "You have been successfully registered! Nickname:[ %s ] Password:[ %s ]", player.Name, text ) );
   MessageAllExcept( format( "[#00FF00]>> %s has been successfully registered.", player.Name ), player );
  }
}

else if ( cmd == "login" )
{
  if ( Stats[ player.ID ].login ) PrivMessage( player, "Error: You are already logged-in." );
  else if ( !text ) PrivMessage( player, format( "Error: Use /%s <password>", cmd ) );
  else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM Stats WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
  else
  {
   local query = QuerySQL( database, "SELECT * FROM Stats WHERE player = '" + player.Name.tolower() + "'" );
   if ( query )
   {
   Stats[player.ID].register = true;
   Stats[player.ID].login = true;
   Message(" Welcome Back To Server " + player.Name + " ");
   }
   else PrivMessage( player, "wtf" );
  }
}
}
its not save the data when i quit. Commands Made by =TRC=Kelvin. i can but i need to know about steps.

///if i learn this thing i hope i will make my own Account System :P

///Some Things From Kelvin aCCOUNT system which i don't understand its only in cmd

Can u tell me, how to use it and what is . it

//what is GetSQLColumnData ??? and tolower

 ' + player.Name.tolower()+"' ");  what it Tolower?

I know QuerySQL( database, "SELECT password FROM Stats WHERE player  = ' " +
//else if ( SHA256( text ) != GetSQLColumnData( QuerySQL( database, "SELECT password FROM account WHERE player = '" + player.Name.tolower() + "'" ), 0 ) ) PrivMessage( player, "INVALID PASSWORD." );
// QuerySQL( database, "INSERT INTO Stats ( player, password, uid)
 //  VALUES ( '" + player.Name.tolower() + "', '" + SHA256( text ) + "', '" + player.UniqueID + "', '0', '0', '0', '1', '0', '1', 'on' )" );
[/noae]

Haven't you written a code where it'll update the player's statistics into the database on the onPlayerPart event?
[/noae]
I can remember that, @KuRuMi^ . ^-^
Title: Re: Hello Guyz can some one teach me ?
Post by: D4rkR420R on Sep 25, 2018, 10:29 PM
Quote from: =RK=MarineForce on Sep 22, 2018, 01:45 PMonplayerpart{PlayerStats();} ?

What is it that you want to store in the database based from the player's statistics?
Title: Re: Hello Guyz can some one teach me ?
Post by: Mahmoud Tornado on Oct 04, 2018, 09:38 AM
Make SaveStats function!.

QuerySQL( database, "UPDATE Players SET Cash='"+Stats[ player.ID ].Cash+"',Bank='"+Stats[ player.ID ].Bank+"' WHERE Name LIKE '" + player.Name + "'" );