Hey Help with stats Textdraw
#1

Hello Friends its me again asking for help LOL

I am using Ladmin in my server.I maded a textdraw to show player stats i want it to show up when player logins can someone make it to work.

TD CODE
Код:
new Text:Textdraw0;
 
//In OnGameModeInit or any other place, we procced to create our textdraw:
Textdraw0 = TextDrawCreate(3.000000,435.000000,"Deaths:1000 | Kills:1000 | Ratio:1.0 | Money:1000$ | IP:192.168.1");
TextDrawUseBox(Textdraw0,1);
TextDrawBoxColor(Textdraw0,0x00000099);
TextDrawTextSize(Textdraw0,636.000000,-1.000000);
TextDrawAlignment(Textdraw0,0);
TextDrawBackgroundColor(Textdraw0,0x000000ff);
TextDrawFont(Textdraw0,2);
TextDrawLetterSize(Textdraw0,0.399999,1.100000);
TextDrawColor(Textdraw0,0xffffffff);
TextDrawSetProportional(Textdraw0,1);
TextDrawSetShadow(Textdraw0,1);
ladmin login command code

Код:
dcmd_login(playerid,params[])
{
    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
    if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
    if (udb_CheckLogin(PlayerName2(playerid),params))
	{
		new file[256], tmp3[100], string[128];
	   	format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
   		GetPlayerIp(playerid,tmp3,100);
	   	dini_Set(file,"ip",tmp3);
		LoginPlayer(playerid);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		if(PlayerInfo[playerid][Level] > 0) {
			format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
			return SendClientMessage(playerid,green,string);
       	} else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
	}
	else {
		PlayerInfo[playerid][FailLogin]++;
		printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
		if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
		{
			new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
			SendClientMessageToAll(grey, string);
			print(string);
			Kick(playerid);
		}
		return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
	}
}
Please someone make it to work and also tell where to place the codes.
Reply
#2

pawn Код:
dcmd_login(playerid,params[])
{
    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
    if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
    if (udb_CheckLogin(PlayerName2(playerid),params))
    {
        new file[256], tmp3[100], string[128];
        format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
        GetPlayerIp(playerid,tmp3,100);
        dini_Set(file,"ip",tmp3);
        LoginPlayer(playerid);
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
//________________
TextDrawShowForPlayer(playerid,Textdraw0);
//________________
        if(PlayerInfo[playerid][Level] > 0) {
            format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
            return SendClientMessage(playerid,green,string);
        } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
    }
    else {
        PlayerInfo[playerid][FailLogin]++;
        printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
        if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
        {
            new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
            SendClientMessageToAll(grey, string);
            print(string);
            Kick(playerid);
        }
        return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
    }
}
Reply
#3

Roxor dude fail..
I know it will show the textdraw but will show the deaths kills which are same in textdraw i want it to show player kills deaths ratio and keep updating like when he kill anyone it will get updated in its stats textdraw.
Reply
#4

OK, so here it is

pawn Код:
dcmd_login(playerid,params[])
{
    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
    if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
    if (udb_CheckLogin(PlayerName2(playerid),params))
    {
        new file[256], tmp3[100], string[128];
        format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
        GetPlayerIp(playerid,tmp3,100);
        dini_Set(file,"ip",tmp3);
        LoginPlayer(playerid);
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
//________________
//Assuming you store Player Kills as pInfo[playerid][Kills] and so on
        new string[256];
        GetPlayerIp(playerid,pInfo[playerid][IP],20);
        if(pInfo[playerid][Deaths]!=0) format(string,sizeof(string),"Deaths:%d | Kills:%d | Ratio:%0.2f | Money:%d$ | IP:%s",pInfo[playerid][Deaths],pInfo[playerid][Kills],(pInfo[playerid][Kills]/pInfo[playerid][Deaths]),pInfo[playerid][Money],pInfo[playerid][IP]);
        else format(string,sizeof(string),"Deaths:%d | Kills:%d | Ratio:N/A | Money:%d$ | IP:%s",pInfo[playerid][Deaths],pInfo[playerid][Kills],pInfo[playerid][Money],pInfo[playerid][IP]);
        TextDrawSetString(Textdraw0,string);
        TextDrawShowForPlayer(playerid,Textdraw0);
//________________
        if(PlayerInfo[playerid][Level] > 0) {
            format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
            return SendClientMessage(playerid,green,string);
        } else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
    }
    else {
        PlayerInfo[playerid][FailLogin]++;
        printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
        if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
        {
            new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
            SendClientMessageToAll(grey, string);
            print(string);
            Kick(playerid);
        }
        return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
    }
}
Reply
#5

Roxor bro your code is not working properly btw i modified it from stats command

like this
Код:
dcmd_login(playerid,params[])
{
    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
    if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login [password]'");
    if (udb_CheckLogin(PlayerName2(playerid),params))
	{
		new file[256], tmp3[100], string[256];
	   	format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(PlayerName2(playerid)) );
   		GetPlayerIp(playerid,tmp3,100);
	   	dini_Set(file,"ip",tmp3);
		LoginPlayer(playerid);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		if(PlayerInfo[playerid][Level] > 0) {
			format(string,sizeof(string),"ACCOUNT: Successfully Logged In. (Level %d)", PlayerInfo[playerid][Level] );
			SendClientMessage(playerid,green,string);
       	} else SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
   	new pDeaths, player1, h, m, s;
 	TotalGameTime(player1, h, m, s);
	if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
	format(string, sizeof(string), "| %s's Stats:  Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d | Time: %d hrs %d mins %d secs |",PlayerName2(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths,GetPlayerMoney(player1), h, m, s);
    TextDrawSetString(Textdraw0,string);
	TextDrawShowForPlayer(playerid,Textdraw0);
	SetTimerEx("UpdateTextdraw0",1000,true,"i",playerid);
	    return 1;
	}
	else {
		PlayerInfo[playerid][FailLogin]++;
		printf("LOGIN: %s has failed to login, Wrong password (%s) Attempt (%d)", PlayerName2(playerid), params, PlayerInfo[playerid][FailLogin] );
		if(PlayerInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
		{
			new string[128]; format(string, sizeof(string), "%s has been kicked (Failed Logins)", PlayerName2(playerid) );
			SendClientMessageToAll(grey, string);
			print(string);
			Kick(playerid);
		}
		return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
	}
}
But now the problem is on login the textdraw is showing the stats of ID 0 not of that player plz anyone help.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)