PM_System errors with nativechecker
#3

I do have sscanf folder and plugin and .inc.

here is pm system:
Код:
[pawno]
//// scripter bros lol mark and tony
#include <a_samp>
#include <sscanf2>

#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

#define COLOR_RED 0xFF0000FF
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_ORANGE 0xFF9900AA


enum PlayerInfo
{
        Last,
        NoPM,
}

new pInfo[MAX_PLAYERS][PlayerInfo];

public OnFilterScriptInit()
{
        print("\n--------------------------------------------");
        print(" PM System, Created by mark and drunk tony  ");
        print("--------------------------------------------\n");
        return 1;
}

public OnFilterScriptExit()
{
    print("\n--------------------------------------------");
        print(" PM System Shut down ");
        print("--------------------------------------------\n");
        return 1;
}

public OnPlayerConnect(playerid)
{
        pInfo[playerid][Last] = -1;
        pInfo[playerid][NoPM] = 0;
        return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    pInfo[playerid][Last] = -1;
        pInfo[playerid][NoPM] = 0;
        return 1;
}

stock PlayerName(playerid)
{
        new pName[MAX_PLAYER_NAME];
        GetPlayerName(playerid, pName, sizeof(pName));
        return pName;
}

dcmd_nopm(playerid, params[])
{
        #pragma unused params
        if(pInfo[playerid][NoPM] == 0)
        {
            pInfo[playerid][NoPM] = 1;
            SendClientMessage(playerid, COLOR_YELLOW, "You are no longer accepting private messages.");
        }
        else
        {
            pInfo[playerid][NoPM] = 0;
            SendClientMessage(playerid, COLOR_YELLOW, "You are now accepting private messages.");
        }
}

dcmd_pm(playerid, params[])
{
        new pID, text[128], string[128];
        if(sscanf(params, "us", pID, text)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /pm (nick/id) (message) - Enter a valid Playername / ID");
        if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected. ");
        if(pID == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot PM yourself.");
        format(string, sizeof(string), "%s (%d) is not accepting private messages at the moment. ", PlayerName(pID), pID);
        if(pInfo[pID][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, string);
        format(string, sizeof(string), "PM to %s: %s", PlayerName(pID), text);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        format(string, sizeof(string), "PM from %s: %s", PlayerName(playerid), text);
        SendClientMessage(pID, COLOR_YELLOW, string);
        pInfo[pID][Last] = playerid;
        return 1;
}

dcmd_reply(playerid, params[])
{
        new text[128], string[128];
        if(sscanf(params, "s", text)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /reply (message) - Enter your message");
        new pID = pInfo[playerid][Last];
        if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_RED, "Player is not connected.");
        if(pID == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot PM yourself.");
        format(string, sizeof(string), "%s (%d) is not accepting private messages at the moment.", PlayerName(pID), pID);
        if(pInfo[pID][NoPM] == 1) return SendClientMessage(playerid, COLOR_RED, string);
        format(string, sizeof(string), "PM to %s: %s", PlayerName(pID), text);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        format(string, sizeof(string), "PM from %s: %s", PlayerName(playerid), text);
        SendClientMessage(pID, COLOR_YELLOW, string);
        pInfo[pID][Last] = playerid;
        return 1;
}

dcmd_ms(playerid, params[]) return dcmd_pm(playerid, params);
dcmd_m(playerid, params[]) return dcmd_pm(playerid, params);
dcmd_r(playerid, params[]) return dcmd_reply(playerid, params);

public OnPlayerCommandText(playerid, cmdtext[])
{
        dcmd(pm, 2, cmdtext);
        dcmd(ms, 2, cmdtext);
        dcmd(m, 1, cmdtext);
        dcmd(r, 1, cmdtext);
        dcmd(reply, 5, cmdtext);
        dcmd(nopm, 4, cmdtext);
        return 0;
}
[/pawno]
PS: My friend made it, so i am not sure if it has some critical error. This compiles finely.
Reply


Messages In This Thread
PM_System errors with nativechecker - by ThatThoseTheThy - 29.04.2014, 13:25
Re: PM_System errors with nativechecker - by Raaf - 29.04.2014, 13:30
Re: PM_System errors with nativechecker - by ThatThoseTheThy - 29.04.2014, 13:33
Re: PM_System errors with nativechecker - by Raaf - 29.04.2014, 13:54
Re: PM_System errors with nativechecker - by ThatThoseTheThy - 29.04.2014, 14:15

Forum Jump:


Users browsing this thread: 1 Guest(s)