if a player failed login and hes kicked but why player stats reseted kills deaths money bank
function AccInfo( player )
{
try{
EchoMessage( ICOL_ORANGE + "** [" + player.ID + "] " + player.Name + " Joined the Server." );
if ( CheckBan( player ) == 1 ) Kick( player, "Server", "Banned From Server" );
status[ player.ID ] = PlayerStats();
local id = player.ID;
local ip = player.IP;
if ( GetLevel( player ) > 0 )
{
if ( ip != GetIP( player ) )
{
ePrivMessage( "Welcome to the Server " + player.Name + "!", player );
ePrivMessage( "You're not Logged-In. Please login by /login <password>", player );
status[ player.ID ].IsReg = true;
status[ player.ID ].IsLogged = false;
}
else if ( ip == GetIP( player ) )
{
local q = QuerySQL( db, "SELECT * FROM Account WHERE Name='" + player.Name.tolower() + "'" );
if ( GetSQLColumnData( q, 0 ) != null )
{
status[ player.ID ].Kills = GetSQLColumnData( q, 4 );
status[ player.ID ].Deaths = GetSQLColumnData( q, 5 );
status[ player.ID ].Cash = GetSQLColumnData( q, 6 );
status[ player.ID ].Bank = GetSQLColumnData( q, 7 );
status[ player.ID ].Level = GetSQLColumnData( q, 2 );
}
FreeSQLQuery( q );
ePrivMessage( "Welcome to the Server " + player.Name + "!", player );
ePrivMessage( "You've auto-logged in onto the server!", player );
status[ player.ID ].IsReg = true;
status[ player.ID ].IsLogged = true;
EchoMessage( ICOL_BROWN + ">> " + player.Name + " Auto-Logged In." );
}
}
else
{
ePrivMessage( "Welcome to the Server " + player.Name + "!", player );
ePrivMessage( "You're not registered with us. Register by /register <password>", player );
}
WriteIniString( "Files/ServData.ini", "IP", player.Name, player.IP );
}
catch(e) print( "AccInfo Error: " + e );
}
OnPlAyerspawn
function onPlayerSpawn( player )
{
Message( ">> " + player.Name + " has spawned." );
if ( ( status[ player.ID ].IsReg == true ) && ( status[ player.ID ].IsLogged == false ) )
{
Announce( "/Login", player );
ePrivMessage("Login First To Access Services",player);
player.Kick();
}
if ( status[ player.ID ].IsReg == false )
{
Announce( "/ register", player );
ePrivMessage("Register First To Access Services",player);
player.Kick();
}
if ( ( status[ player.ID ].IsReg ) && ( status[ player.ID ].IsLogged ) )
{
player.Cash = status[ player.ID ].Cash;
}
}
Why you kick player when you can prevent spawn if they aren't logged/registered
function onPlayerRequestSpawn(player)
{
if(status[ player.ID ].IsReg== false)
{
MessagePlayer("Please register first by /register",player);
return 0;
}
else if(status[ player.ID ].IsReg == true && status[ player.ID ].IsLogged == false)
{
MessagePlayer("Please login first by /login",player);
return 0;
}
else return 1;
}
thanks kusnangi its great idea
can you give me idea how to create logout cmds and function
The best way to implement logout is to first edit your IP in database to something else and then you need to set your logged class as false as well as kill the player when you have logged out.
Easy.
else if ( cmd == "logout" )
{
if ( status[player.ID].IsReg == false ) MessagePlayer("You are not registered.",player);
elss if ( status[player.ID].IsLogged == false ) MessagePlayer("You are not logged in",player);
else
{
status[player.ID].IsLogged=false;
player.Health=0.00;
player.Pos=Vector(player.Pos.x,player.Pos.y,player.Pos.z 10); //to eject player if in a vehicle. Remember to put the plus sign at player.Pos.z. 10 as my mobile doesnt have the plus sign
MessagePlayer("Logged out.",player);
}
}
Untested because I am at mob.
Quote from: Mashreq on Oct 08, 2015, 10:59 AMThe best way to implement logout is to first edit your IP in database to something else and then you need to set your logged class as false as well as kill the player when you have logged out.
Quote from: Xmair on Oct 08, 2015, 11:00 AMEasy.
else if ( cmd == "logout" )
{
if ( status[player.ID].IsReg == false ) MessagePlayer("You are not registered.",player);
elss if ( status[player.ID].IsLogged == false ) MessagePlayer("You are not logged in");
else
{
status[player.ID].IsLogged=false;
player.Health=0.00;
player.Pos=Vector(player.Pos.x,player.Pos.y,player.Pos.z 10); //to eject player if in a vehicle.
}
}
Untested because I am at mob.
Okay but what about the data that will only gonna save when player leaves server
I guess there is already a savestats function onPlayerPart in warchiefs.
Anyway, updated :
else if ( cmd == "logout" )
{
if ( status[player.ID].IsReg == false ) MessagePlayer("You are not registered.",player);
elss if ( status[player.ID].IsLogged == false ) MessagePlayer("You are not logged in",player);
else
{
SaveStats(player);//Or wotever you use to save the stats.
status[player.ID].IsLogged=false;
player.Health=0.00;
player.Pos=Vector(player.Pos.x,player.Pos.y,player.Pos.z 10); //to eject player if in a vehicle. Remember to put the plus sign at player.Pos.z. 10 as my mobile doesnt have the plus sign
MessagePlayer("Logged out.",player);
}
}
Untested because I am at mob.
error end of statment expected if or ;
-..-
else if ( cmd == "logout" )
{
if ( status[player.ID].IsReg == false ) MessagePlayer("You are not registered.",player);
else if ( status[player.ID].IsLogged == false ) MessagePlayer("You are not logged in",player);
else
{
SaveStats(player);//Or wotever you use to save the stats.
status[player.ID].IsLogged=false;
player.Health=0.00;
player.Pos=Vector(player.Pos.x,player.Pos.y,player.Pos.z 10); //to eject player if in a vehicle. Remember to put the plus sign at player.Pos.z. 10 as my mobile doesnt have the plus sign
MessagePlayer("Logged out.",player);
}
}
Try using this one:
else if ( cmd == "logout" )
{
if ( status[ player.ID ].IsReg == false ) MessagePlayer("You are not registered.",player);
elss if ( status[ player.ID ].IsLogged == false ) MessagePlayer("You are not logged in",player);
else
{
SaveStats( player );
local IP = "0.0.0.0";
QuerySQL( db, "UPDATE Account SET IP='" + IP + "' WHERE Name='" + player.Name.tolower() + "'" );
status[ player.ID ].IsLogged = false;
player.Health = 0;
player.Pos = player.Pos;
MessagePlayer("You have logged out from the server.",player);
}
}
Same Error but why
I have spotted a error while checking if a player is logged in or not.
Change your:
elss if ( status[ player.ID ].IsLogged == false ) MessagePlayer("You are not logged in",player);
to
else if ( status[ player.ID ].IsLogged == false ) MessagePlayer("You are not logged in",player);
error player trying to set null
On which line does it shows the error?
no line was specified only OnPlayerCommand Player trying to set null
Then remove the try catch around your script.
That error is in onPlayerPart in last line status[player.ID] = null;
I know because i already had that problem few months ago
You need to remove your status[ id ] = null; in your SaveStats and you can add status[ player.ID ] = null; in your onPlayerPart event below your SaveStats or at the end of the event.
not works
Quote from: xxkillerxx on Oct 09, 2015, 02:52 PMnot works
:poop:
(https://lh3.ggpht.com/CHvlu-o3SlISrZIIZLcH23WrqrE5wVxoNOn7MXwS7_bPZniwoe30BOImmFo7Ru535WM=w300)
I think you're the one that doesn't work.
(https://forum.vc-mp.org/proxy.php?request=http%3A%2F%2Fimg-comment-fun.9cache.com%2Fmedia%2F2ad99bf4141683179577626170_700wa_0.gif&hash=857fee999ad2688cf1d40f91c7d56f195bc77c22)
Quote from: Kusanagi on Oct 08, 2015, 05:00 PMThat error is in onPlayerPart in last line status[player.ID] = null;
I know because i already had that problem few months ago
how you solve it
Quote from: xxkillerxx on Oct 09, 2015, 03:06 PMQuote from: Kusanagi on Oct 08, 2015, 05:00 PMThat error is in onPlayerPart in last line status[player.ID] = null;
I know because i already had that problem few months ago
how you solve it
That was solved by my Unexpected bettery fault that exploded my laptop
what can i use for giving back weps to a player for example i disarm a player give him 1 wep in case of like !fight when he exit how i can give him weps back
Save them in a array and do it.
i try but its giving error calling to array
I know an easy fix however it might be hard for you
[spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler][spoiler]buy a brain[/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler][/spoiler]
WTF is that!
Buy a brain.
Show us your onPlayerPart and cKick functions.