How to disable score, when I'm in AFK Mode
#1

Hello people!

I'm using this AFK system

PHP код:
#include <a_samp>
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#pragma tabsize 0
//Colors
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x00FF00AA
#define COLOR_RED 0xFF0000AA
#define COLOR_LIGHTBLUE                 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA
enum Player
{
    
AFKstatus
}
new 
PlayerInfo[MAX_PLAYERS][Player];
public 
OnFilterScriptExit()
{
        return 
1;
}
dcmd_afk(playeridparams[])
        {
            
#pragma unused params
                
new string[256];
                if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: Your status is already AFK/BRB!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) is now away from keyboard!"pname,playerid);
                        
SendClientMessageToAll(COLOR_YELLOWstring);
                        
TogglePlayerControllable(playerid,0);
                        
PlayerInfo[playerid][AFKstatus] = 1;
                        return 
1;
                }
return 
0;
}
dcmd_brb(playeridparams[])
        {
            
#pragma unused params
                
new string[256];
                if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: You are aready AFK or BRB!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) Will Be Right Back (BRB)"pname,playerid);
                        
SendClientMessageToAll(COLOR_GREENstring);
                        
TogglePlayerControllable(playerid,0);
                        
PlayerInfo[playerid][AFKstatus] = 1;
                        return 
1;
 }
return 
0;
}
dcmd_back(playeridparams[])
        {
                
#pragma unused params
                
new string [256];
                if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: You are Aready Back!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) is now back!"pname,playerid);
                        
SendClientMessageToAll(COLOR_GREENstring);
                        
TogglePlayerControllable(playerid,1);
                        
PlayerInfo[playerid][AFKstatus] = 0;
                        return 
1;
 }
return 
0;
}
dcmd_afklistplayeridparams[ ] )
{
    
#pragma unused params
        
new count 0;
        new 
name[MAX_PLAYER_NAME];
                new 
string[128];
        
//
                
SendClientMessage(playeridCOLOR_WHITE"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                
SendClientMessage(playeridCOLOR_LIGHTBLUE"AFK List:");
                
SendClientMessage(playeridCOLOR_WHITE"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
        for(new 
0MAX_PLAYERSi++)
                {
                        if (
IsPlayerConnected(i))
                        {
                            if(
PlayerInfo[i][AFKstatus] == 1)
                            {
                                        
GetPlayerName(inamesizeof(name));
                                        
format(string256"AFK> %s{FFFFFF} (ID:%d)"name,);
                                        
SendClientMessage(playeridCOLOR_YELLOWstring);
                                
count++;
                                }
                        }
                }
                if (
count == 0)
                {
                
SendClientMessage(playeridCOLOR_RED"NoOne is afk or brb");
                }
                
SendClientMessage(playeridCOLOR_WHITE"-=---=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
PlayerInfo[playerid][AFKstatus] = 0;
        return 
1;
}
public 
OnPlayerText(playeridtext[])
{
        if (
PlayerInfo[playerid][AFKstatus] == 1)
        {
                
SendClientMessage(playeridCOLOR_RED"ERROR: Use /back to speak again!");
                return 
0;
        }
        else if (
PlayerInfo[playerid][AFKstatus] == 0)
        {
                return 
1;
        }
        return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
        
dcmd(afk,3,cmdtext);
        
dcmd(brb,3,cmdtext);
        
dcmd(back,4,cmdtext);
        
dcmd(afklist,7,cmdtext);
        return 
0;
}
//don't remove credits, maded by KINGINA 
And I want, when a player types /afk, then the players score is stopping. My Server is using score system 1 minut = 1 score, but when the player types /afk then it will stop, when he/she types /back, then the score is going up again.
Can enyone help me please!?

Sorry for my bad english, hope you understand.

Thank You: martin3644
Reply
#2

Go to the timer where you give 1 score each minute then add this to it
pawn Код:
if(PlayerInfo[playerid][AFKstatus] == 1) return 1;
Reply
#3

filterscripts\AFK.pwn(25) : error 017: undefined symbol "playerid"
Reply
#4

PHP код:
#include <a_samp>
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#pragma tabsize 0
//Colors
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x00FF00AA
#define COLOR_RED 0xFF0000AA
#define COLOR_LIGHTBLUE                 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA
forward Score();
enum Player
{
    
AFKstatus
}
new 
PlayerInfo[MAX_PLAYERS][Player];
public 
OnFilterScriptInit()
{
if(
PlayerInfo[playerid][AFKstatus] == 1)
SetTimer("Score",60000,1);
return 
1;
}
public 
OnFilterScriptExit()
{
        return 
1;
}
dcmd_afk(playeridparams[])
        {
            
#pragma unused params
                
new string[256];
                if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: Your status is already AFK/BRB!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) is now away from keyboard!"pname,playerid);
                        
SendClientMessageToAll(COLOR_YELLOWstring);
                        
TogglePlayerControllable(playerid,0);
                        
PlayerInfo[playerid][AFKstatus] = 1;
                        return 
1;
                }
return 
0;
}
dcmd_brb(playeridparams[])
        {
            
#pragma unused params
                
new string[256];
                if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: You are aready AFK or BRB!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) Will Be Right Back (BRB)"pname,playerid);
                        
SendClientMessageToAll(COLOR_GREENstring);
                        
TogglePlayerControllable(playerid,0);
                        
PlayerInfo[playerid][AFKstatus] = 1;
                        return 
1;
 }
return 
0;
}
dcmd_back(playeridparams[])
        {
                
#pragma unused params
                
new string [256];
                if (
PlayerInfo[playerid][AFKstatus] == 0)
                {
                        
SendClientMessage(playeridCOLOR_RED"ERROR: You are Aready Back!");
                        return 
1;
                }
                else if (
PlayerInfo[playerid][AFKstatus] == 1)
                {
                        new 
pname[MAX_PLAYER_NAME];
                        
GetPlayerName(playeridpnamesizeof(pname));
                        
format(stringsizeof(string), "%s (ID:%d) is now back!"pname,playerid);
                        
SendClientMessageToAll(COLOR_GREENstring);
                        
TogglePlayerControllable(playerid,1);
                        
PlayerInfo[playerid][AFKstatus] = 0;
                        return 
1;
 }
return 
0;
}
dcmd_afklistplayeridparams[ ] )
{
    
#pragma unused params
        
new count 0;
        new 
name[MAX_PLAYER_NAME];
                new 
string[128];
        
//
                
SendClientMessage(playeridCOLOR_WHITE"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                
SendClientMessage(playeridCOLOR_LIGHTBLUE"AFK List:");
                
SendClientMessage(playeridCOLOR_WHITE"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
        for(new 
0MAX_PLAYERSi++)
                {
                        if (
IsPlayerConnected(i))
                        {
                            if(
PlayerInfo[i][AFKstatus] == 1)
                            {
                                        
GetPlayerName(inamesizeof(name));
                                        
format(string256"AFK> %s{FFFFFF} (ID:%d)"name,);
                                        
SendClientMessage(playeridCOLOR_YELLOWstring);
                                
count++;
                                }
                        }
                }
                if (
count == 0)
                {
                
SendClientMessage(playeridCOLOR_RED"NoOne is afk or brb");
                }
                
SendClientMessage(playeridCOLOR_WHITE"-=---=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
PlayerInfo[playerid][AFKstatus] = 0;
        return 
1;
}
public 
OnPlayerText(playeridtext[])
{
        if (
PlayerInfo[playerid][AFKstatus] == 1)
        {
                
SendClientMessage(playeridCOLOR_RED"ERROR: Use /back to speak again!");
                return 
0;
        }
        else if (
PlayerInfo[playerid][AFKstatus] == 0)
        {
                return 
1;
        }
        return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
        
dcmd(afk,3,cmdtext);
        
dcmd(brb,3,cmdtext);
        
dcmd(back,4,cmdtext);
        
dcmd(afklist,7,cmdtext);
        return 
0;
}
public 
Score()
{
for(new 
0;!= MAX_PLAYERS;++i)
{
    
SetPlayerScore(iGetPlayerScore(i)+1);
}
return 
1;
}
//don't remove credits, maded by KINGINA 
Now I made this, changed a little bit things. And I get this error.
Reply
#5

pawn Код:
#include <a_samp>

#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

#pragma tabsize 0


//Colors
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x00FF00AA
#define COLOR_RED 0xFF0000AA
#define COLOR_LIGHTBLUE                 0x33CCFFAA
#define COLOR_YELLOW 0xFFFF00AA

forward Score();

enum Player
{
    AFKstatus
}
new PlayerInfo[MAX_PLAYERS][Player];

public OnFilterScriptInit()
{
if(PlayerInfo[playerid][AFKstatus] == 1)
SetTimer("Score",60000,1);
return 1;
}

public OnFilterScriptExit()
{
        return 1;
}

dcmd_afk(playerid, params[])
        {
            #pragma unused params
                new string[256];
                if (PlayerInfo[playerid][AFKstatus] == 1)
                {
                        SendClientMessage(playerid, COLOR_RED, "ERROR: Your status is already AFK/BRB!");
                        return 1;
                }

                else if (PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new pname[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, pname, sizeof(pname));
                        format(string, sizeof(string), "%s (ID:%d) is now away from keyboard!", pname,playerid);
                        SendClientMessageToAll(COLOR_YELLOW, string);
                        TogglePlayerControllable(playerid,0);
                        PlayerInfo[playerid][AFKstatus] = 1;
                        return 1;
                }
return 0;
}

dcmd_brb(playerid, params[])
        {
            #pragma unused params
                new string[256];
                if (PlayerInfo[playerid][AFKstatus] == 1)
                {
                        SendClientMessage(playerid, COLOR_RED, "ERROR: You are aready AFK or BRB!");
                        return 1;
                }

                else if (PlayerInfo[playerid][AFKstatus] == 0)
                {
                        new pname[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, pname, sizeof(pname));
                        format(string, sizeof(string), "%s (ID:%d) Will Be Right Back (BRB)", pname,playerid);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        TogglePlayerControllable(playerid,0);
                        PlayerInfo[playerid][AFKstatus] = 1;
                        return 1;
 }
return 0;
}

dcmd_back(playerid, params[])
        {
                #pragma unused params
                new string [256];
                if (PlayerInfo[playerid][AFKstatus] == 0)
                {
                        SendClientMessage(playerid, COLOR_RED, "ERROR: You are Aready Back!");
                        return 1;
                }

                else if (PlayerInfo[playerid][AFKstatus] == 1)
                {
                        new pname[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, pname, sizeof(pname));
                        format(string, sizeof(string), "%s (ID:%d) is now back!", pname,playerid);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        TogglePlayerControllable(playerid,1);
                        PlayerInfo[playerid][AFKstatus] = 0;
                        return 1;
 }
return 0;
}

dcmd_afklist( playerid, params[ ] )
{
    #pragma unused params
        new count = 0;
        new name[MAX_PLAYER_NAME];
                new string[128];
        //
                SendClientMessage(playerid, COLOR_WHITE, "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "AFK List:");
                SendClientMessage(playerid, COLOR_WHITE, "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
        for(new i = 0; i < MAX_PLAYERS; i++)
                {
                        if (IsPlayerConnected(i))
                        {

                            if(PlayerInfo[i][AFKstatus] == 1)
                            {
                                        GetPlayerName(i, name, sizeof(name));
                                        format(string, 256, "AFK> %s{FFFFFF} (ID:%d)", name,i );
                                        SendClientMessage(playerid, COLOR_YELLOW, string);
                                count++;
                                }
                        }

                }
                if (count == 0)
                {
                SendClientMessage(playerid, COLOR_RED, "NoOne is afk or brb");
                }
                SendClientMessage(playerid, COLOR_WHITE, "-=---=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    PlayerInfo[playerid][AFKstatus] = 0;
        return 1;
}

public OnPlayerText(playerid, text[])
{
        if (PlayerInfo[playerid][AFKstatus] == 1)
        {
                SendClientMessage(playerid, COLOR_RED, "ERROR: Use /back to speak again!");
                return 0;
        }

        else if (PlayerInfo[playerid][AFKstatus] == 0)
        {
                return 1;
        }
        return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
        dcmd(afk,3,cmdtext);
        dcmd(brb,3,cmdtext);
        dcmd(back,4,cmdtext);
        dcmd(afklist,7,cmdtext);
        return 0;
}

public Score()
{
for(new i = 0;i != MAX_PLAYERS;++i)
{
    if(PlayerInfo[i][AFKstatus] == 1) return 1;
    SetPlayerScore(i, GetPlayerScore(i)+1);
}
return 1;
}

//don't remove credits, maded by KINGINA
Reply
#6

PHP код:
public Score() 

for(new 
0;!= MAX_PLAYERS;++i

    
SetPlayerScore(iGetPlayerScore(i)+1); 

return 
1

Reply
#7

pawn Код:
public Score()
{
for(new i = 0;i != MAX_PLAYERS;++i)
{
    if(PlayerInfo[i][AFKstatus] == 1) return 1;
    SetPlayerScore(i, GetPlayerScore(i)+1);
}
return 1;
}
Reply
#8

OMG || error 017: undefined symbol "playerid"
Reply
#9

Quote:
Originally Posted by martin3644
Посмотреть сообщение
OMG || error 017: undefined symbol "playerid"
What are you talking about?there is no playerid.
Reply
#10

Idk, when I klick compile then I get this error :S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)