| 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;
}
|