AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help me to fix this plugin plz. (https://forums.alliedmods.net/showthread.php?t=154505)

GarbageBox 04-09-2011 14:01

Help me to fix this plugin plz.
 
As I am newbie, the code just I use copy and paste to do it.
Please help me to fix this plugin to make it can work.
Code:

#include <amxmodx>

#define PLUGIN        "Handle Say System"
#define VERSION        "1.0"
#define AUTHOR        Everybody"
#define SIGN_MIN_LEN 1
#define SIGN_MAX_LEN 12

new szMaxPlayers, szLevels[10], szSayText;
new szName[33][32];
new users_signs_file[256];
new szDataName[12] = "Signs"

#define MAX_SIGN 96
new szSigns1
new szSigns2[MAX_SIGN][32]
new szSigns3[MAX_SIGN][96]

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR);
        register_clcmd("say", "hook_say");
       
        szMaxPlayers = get_maxplayers();
       
        szSayText = get_user_msgid("SayText")
        cmdLoadSigns()
}

public plugin_cfg()
{
        server_cmd(szAddCmd, PLUGIN)
}

cmdLoadSigns()
{
        new szConfigDir[64], szFile[128];
        get_configsdir(szConfigDir, 63);
       
        formatex(users_signs_file, sizeof users_signs_file - 1, "%s/%s.ini", szConfigDir, szDataName);
        formatex(szFile, sizeof szFile - 1, "; AUTO CREATE FILE, YOU CAN MODIFY IT!")
       
        if(!file_exists(szConfigDir))
        {
                write_file(users_signs_file, szFile)
        }
       
        szSigns1 = 0;
        new szTxtLen, szPos = 0;
        new szOutput[128];
        while(szSigns1 < MAX_SIGN && read_file (szConfigDir, szPos++, szOutput, 127, szTxtLen))
        {
                if (szOutput[0] != '"')
                        continue;
                parse (szOutput, szSigns2[szSigns1], 31, szSigns3[szSigns1], 95);
                szSigns1++;
        }
        server_print ("Loaded %d . Max %d .", szSigns1, MAX_SIGN);
        return 1;
}

public hook_say(id)
{
        new szMessages[192];
        new szAlive = is_user_alive(id);
       
        read_args(szMessages, 191);
        remove_quotes(szMessages);
        get_user_name(id, szName[id], 31);
       
        new szInput[256];
        read_argv(1, szMessages, charsmax(szMessages))
//        if(equali(szMessages, "/sign"))
        {
                new szArg[12]
                read_argv(1, szArg, charsmax(szArg))
                new szLen = strlen(szArg);
               
                formatex(szInput, charsmax(szInput), "^"%s^" ^"%s^"^n", szName[id], szArg);
       
                if(szLen < SIGN_MIN_LEN)
                        {
                                client_printc(id, "[AMXX] Sign must longer than 1 byte and less than 12 bytes.", SIGN_MIN_LEN, SIGN_MAX_LEN);
                                return 1;
                        }
                if(szLen > SIGN_MAX_LEN)
                        {
                                client_printc(id, "[AMXX] Sign must longer than 1 byte and less than 12 bytes.", SIGN_MIN_LEN, SIGN_MAX_LEN);
                                return 1;
                        }
                client_printc(id, "[AMXX] Your sign: %s", szArg);
                write_file(users_signs_file, szInput);
        }
       
        if(equal(szMessages, ""))
                return PLUGIN_HANDLED;
        if(equal(szMessages, " "))
                return PLUGIN_HANDLED;
        if(equal(szMessages, "%"))
                return PLUGIN_HANDLED;
       
        if(get_user_flags(id) & ADMIN_LEVEL_A)
        {
                szLevels = "[Boss]"
        }
        else
        if(get_user_flags(id) & ADMIN_LEVEL_B)
        {
                szLevels = "[Manager]"
        }
        else
        if(get_user_flags(id) & ADMIN_LEVEL_C)
        {
                szLevels = "[Staff]"
        }
        else
        if(get_user_flags(id) & ADMIN_LEVEL_D)
        {
                szLevels = "[Cleaner]"
        }
        else
        {
                szLevels = "[Player]"
        }
       
        if(equali(szName[id], szSigns2[id]))
        {
                (szAlive ? client_printc(id, "^x04%s ^x01分數: %d ^x03%s ^x01: %s", szSigns3[id], szScores, szName[id], szMessages) : client_printc(id, "^x01*陣亡* ^x04%s ^x01分數: %d ^x03%s ^x01: %s", szSigns3[id], szScores, szName[id], szMessages));
        }
        else
        {
                (szAlive ? client_printc(id, "^x04%s ^x01分數: %d ^x03%s ^x01: %s", szLevels, szScores, szName[id], szMessages) : client_printc(id, "^x01*陣亡* ^x04%s ^x01分數: %d ^x03%s ^x01: %s", szLevels, szScores, szName[id], szMessages));
        }
       
        for(new i = 0; i <= szMaxPlayers; i++)
        {
                if(!is_user_connected(i))
                        continue;
        }
        return PLUGIN_HANDLED;
}



All times are GMT -4. The time now is 19:45.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.